The fact is we simply don't know if that's true. We could have a better idea if we checked a lot of error codes, but without doing that, we can't assume we're disconnected.
It may be we might be in a better position as far as avoiding error code checking to deduce the status of the socket if we made use of {:active, :once} on in the client, even still there will be cases where we won't be sure unless we poll the socket (i.e., try to perform a read and see what we get).
Currently a lot of places where a telemetry call is made assumes the state of the connection is disconnected.
Example : https://github.com/HCA-Healthcare/elixir-mllp/blob/cd0dc881e823bbcf2e6edfdbc3ce4d62f8a277ff/lib/mllp/sender.ex#L333
The fact is we simply don't know if that's true. We could have a better idea if we checked a lot of error codes, but without doing that, we can't assume we're disconnected.
It may be we might be in a better position as far as avoiding error code checking to deduce the status of the socket if we made use of
{:active, :once}
on in the client, even still there will be cases where we won't be sure unless we poll the socket (i.e., try to perform a read and see what we get).