At present we close the underlying socket connection whenever we want to disconnect.
While this ensures we always end up disconnected instead of hanging stupidly, it means we're not closing SSL connections properly which may upset some servers that actually play nice.
We could try shutting down the SSL socket gracefully in a separate thread, and if that doesn't work fast enough then result to closing the underlying socket
At present we close the underlying socket connection whenever we want to disconnect.
While this ensures we always end up disconnected instead of hanging stupidly, it means we're not closing SSL connections properly which may upset some servers that actually play nice.
We could try shutting down the SSL socket gracefully in a separate thread, and if that doesn't work fast enough then result to closing the underlying socket