Details
-
New Feature
-
Status: Open
-
Major
-
Resolution: Unresolved
-
proton-c-0.35.0, proton-c-0.34.0, proton-c-0.36.0
-
None
-
None
Description
The raw connection API needs a way to force the underlying socket to close immediately, releasing any pending un-sent write buffers.
The current API (pn_raw_connection_close()) will delay closing the underlying socket until all pending write buffers have been written to the socket. This is ideal behavior for a well functioning remote client. However if a client stops consuming from the socket due to an error condition, etc. then the socket will never close (no PN_RAW_CONNECTION_DISCONNECTED is generated) if pending write buffers cannot be written to the socket (blocked).
In the case of a misbehaving client the API needs a way to force close the connection immediately, returning any unsent write buffers to the application.