Commit Briefs
fix parse_sshaddr error reporting
errno doesn't contain anything useful in this case
move accounting after the connection was accepted
otherwise we may end up in a weird state where we're counting connections that we don't have or have cleared a timeout without a reason.
plug memory leak in try_to_connect
it should call conn_free to cleanup the connection struct now.
bind_socket early
so that if it fails the user is promptly notified. This requires us to make sure that fds 0-2 are opened, so steal the same trick slowcgi have.
don't die for OOM
instead, drop the current connection (we can't do anything about it) and try to continue to work. OOM can be a temporary situation, and in every case it's not nice to terminate other in-flight connections. To do so, refactor the freeing of the connection into conn_free, which now also looks for the state of the timeout. In every case we reach conn_free the timeout is not pending, but it doesn't hurt to check for it anyway. Future changes may want to free early.
cast argument to is*()
otherwise there can be issues on arches with signed chars (as amd64)