Sends data A, .defaultMessage, isComplete* = true
Sends data B, .finalMessage, isComplete* = true
I would expect the server to:
Receive data A, ctx.isFinal = false, isComplete = false
Receive data B, ctx.isFinal = true, isComplete = true
Receive data A, ctx.isFinal = false, isComplete = false
Receive data B, ctx.isFinal = false, isComplete = false
Receive nil data, ctx.isFinal = true, isComplete = true
The actuality is:
Receive data A, ctx.isFinal = true, isComplete = false
Receive data B, ctx.isFinal = true, isComplete = false
Receive nil data, ctx.isFinal = true, isComplete = true
But okay, whatever, I can just rely on isComplete.
However, then I turn on TLS, and the result is:
Receive data A, ctx.isFinal = true, isComplete = false
Receive data B, ctx.isFinal = true, isComplete = false
... crickets ...
Does Network.framework not sent TLS close-notify?
I realize I can cancel() the entire connection on the client, and then I get isComplete = true, but I want to close just one half of the stream; the server still needs to send its response.