src/server/daemon/httplistener.c

changeset 162
b169992137a8
parent 161
aadda87bad1b
child 169
76c96ee18221
equal deleted inserted replaced
161:aadda87bad1b 162:b169992137a8
405 SSL *ssl = SSL_new(ls->ssl->sslctx); 405 SSL *ssl = SSL_new(ls->ssl->sslctx);
406 SSL_set_fd(ssl, clientfd); 406 SSL_set_fd(ssl, clientfd);
407 int ssl_ar = SSL_accept(ssl); 407 int ssl_ar = SSL_accept(ssl);
408 if(ssl_ar <= 0) { 408 if(ssl_ar <= 0) {
409 int error = SSL_get_error(ssl, ssl_ar); 409 int error = SSL_get_error(ssl, ssl_ar);
410 log_ereport(LOG_INFORM, "SSL accept error: %d", error); 410 char *errstr;
411 switch(error) {
412 default: errstr = "unknown"; break;
413 case SSL_ERROR_ZERO_RETURN: errstr = "SSL_ERROR_ZERO_RETURN"; break;
414 case SSL_ERROR_WANT_READ: errstr = "SSL_ERROR_WANT_READ"; break;
415 case SSL_ERROR_WANT_WRITE: errstr = "SSL_ERROR_WANT_WRITE"; break;
416 case SSL_ERROR_WANT_CONNECT: errstr = "SSL_ERROR_WANT_CONNECT"; break;
417 case SSL_ERROR_WANT_ACCEPT: errstr = "SSL_ERROR_WANT_ACCEPT"; break;
418 case SSL_ERROR_WANT_X509_LOOKUP: errstr = "SSL_ERROR_WANT_X509_LOOKUP"; break;
419 case SSL_ERROR_SYSCALL: errstr = "SSL_ERROR_SYSCALL"; break;
420 case SSL_ERROR_SSL: errstr = "SL_ERROR_SSL"; break;
421 }
422 log_ereport(LOG_VERBOSE, "SSL accept error[%d]: %s", error, errstr);
411 free(conn); 423 free(conn);
412 conn = NULL; 424 conn = NULL;
425 close(clientfd);
413 } else { 426 } else {
414 conn->ssl = ssl; 427 conn->ssl = ssl;
415 conn->read = connection_ssl_read; 428 conn->read = connection_ssl_read;
416 conn->write = connection_ssl_write; 429 conn->write = connection_ssl_write;
417 conn->close = connection_ssl_close; 430 conn->close = connection_ssl_close;

mercurial