When initiating class HTTPSRequestHandler, all ConnectionErrors encountered are assumed to be due to a client abandoning a session. This is correct for the case where the error belongs to the socket of this object, but it will also catch ConnectionErrors cast by other sockets. Errors from these other sockets are real, unexpected errors, and we should not just ignore these.
It's not trivial how to check if an exception belongs to a specific socket. I looked into if we could use sockopt to see if there is an error on our socket. I found the option SO_ERROR. I tried it out, but I only got 0 even when I knew the socket had a broken pipe. Then I found in "unix network programming vol 1" that SO_ERROR is reset to 0 after errno has been set. So when we get the exception, it's to late, as I understand it.