src/server/daemon/httplistener.c

changeset 162
b169992137a8
parent 161
aadda87bad1b
child 169
76c96ee18221
--- a/src/server/daemon/httplistener.c	Thu Jan 26 18:53:52 2017 +0100
+++ b/src/server/daemon/httplistener.c	Sat Jan 28 10:38:34 2017 +0100
@@ -407,9 +407,22 @@
             int ssl_ar = SSL_accept(ssl);
             if(ssl_ar <= 0) {
                 int error = SSL_get_error(ssl, ssl_ar);
-                log_ereport(LOG_INFORM, "SSL accept error: %d", error);
+                char *errstr;
+                switch(error) {
+                    default: errstr = "unknown"; break;
+                    case SSL_ERROR_ZERO_RETURN: errstr = "SSL_ERROR_ZERO_RETURN"; break;
+                    case SSL_ERROR_WANT_READ: errstr = "SSL_ERROR_WANT_READ"; break;
+                    case SSL_ERROR_WANT_WRITE: errstr = "SSL_ERROR_WANT_WRITE"; break;
+                    case SSL_ERROR_WANT_CONNECT: errstr = "SSL_ERROR_WANT_CONNECT"; break;
+                    case SSL_ERROR_WANT_ACCEPT: errstr = "SSL_ERROR_WANT_ACCEPT"; break;
+                    case SSL_ERROR_WANT_X509_LOOKUP: errstr = "SSL_ERROR_WANT_X509_LOOKUP"; break;
+                    case SSL_ERROR_SYSCALL: errstr = "SSL_ERROR_SYSCALL"; break;
+                    case SSL_ERROR_SSL: errstr = "SL_ERROR_SSL"; break;
+                }
+                log_ereport(LOG_VERBOSE, "SSL accept error[%d]: %s", error, errstr);
                 free(conn);
                 conn = NULL;
+                close(clientfd);
             } else {
                 conn->ssl = ssl;
                 conn->read = connection_ssl_read;

mercurial