Cleaned up dcb_accept_SSL and added missing logging.

This commit is contained in:
Markus Makela
2015-10-29 15:38:24 +02:00
parent cab5e58045
commit f819f164b5

View File

@ -2865,7 +2865,8 @@ int dcb_create_SSL(DCB* dcb)
*/ */
int dcb_accept_SSL(DCB* dcb) int dcb_accept_SSL(DCB* dcb)
{ {
int rval = 0,ssl_rval,errnum = 0,fd,b = 0,pending; int rval = 0,ssl_rval,ssl_errnum = 0,fd,b = 0,pending;
int err_errnum;
char errbuf[140]; char errbuf[140];
fd = dcb->fd; fd = dcb->fd;
@ -2874,22 +2875,20 @@ int dcb_accept_SSL(DCB* dcb)
ssl_rval = SSL_accept(dcb->ssl); ssl_rval = SSL_accept(dcb->ssl);
LOGIF(LD,(skygw_log_write_flush(LD,"[dcb_accept_SSL] SSL_accept %d, error %d", LOGIF(LD,(skygw_log_write_flush(LD,"[dcb_accept_SSL] SSL_accept %d, error %d",
ssl_rval,errnum))); ssl_rval,ssl_errnum)));
switch(ssl_rval) switch(ssl_rval)
{ {
case 0: case 0:
errnum = SSL_get_error(dcb->ssl,ssl_rval); ssl_errnum = SSL_get_error(dcb->ssl,ssl_rval);
skygw_log_write(LE,"Error: SSL authentication failed (SSL error %d):", skygw_log_write(LE,"Error: SSL authentication failed (SSL error %d):",
dcb, ssl_errnum);
dcb->remote,
errnum);
if(errnum == SSL_ERROR_SSL || if(ssl_errnum == SSL_ERROR_SSL ||
errnum == SSL_ERROR_SYSCALL) ssl_errnum == SSL_ERROR_SYSCALL)
{ {
while((errnum = ERR_get_error()) != 0) while((err_errnum = ERR_get_error()) != 0)
{ {
ERR_error_string_n(errnum,errbuf,140); ERR_error_string_n(err_errnum,errbuf,140);
skygw_log_write(LE,"%s",errbuf); skygw_log_write(LE,"%s",errbuf);
} }
} }
@ -2903,9 +2902,9 @@ int dcb_accept_SSL(DCB* dcb)
case -1: case -1:
errnum = SSL_get_error(dcb->ssl,ssl_rval); ssl_errnum = SSL_get_error(dcb->ssl,ssl_rval);
if(errnum == SSL_ERROR_WANT_READ || errnum == SSL_ERROR_WANT_WRITE) if(ssl_errnum == SSL_ERROR_WANT_READ || ssl_errnum == SSL_ERROR_WANT_WRITE)
{ {
/** Not all of the data has been read. Go back to the poll /** Not all of the data has been read. Go back to the poll
queue and wait for more.*/ queue and wait for more.*/
@ -2921,17 +2920,22 @@ int dcb_accept_SSL(DCB* dcb)
"Error: Fatal error in SSL_accept for %s: (SSL version: %s SSL error code: %d)", "Error: Fatal error in SSL_accept for %s: (SSL version: %s SSL error code: %d)",
dcb->remote, dcb->remote,
SSL_get_version(dcb->ssl), SSL_get_version(dcb->ssl),
errnum); ssl_errnum);
if(errnum == SSL_ERROR_SSL || if(ssl_errnum == SSL_ERROR_SSL ||
errnum == SSL_ERROR_SYSCALL) ssl_errnum == SSL_ERROR_SYSCALL)
{ {
while((errnum = ERR_get_error()) != 0) while((err_errnum = ERR_get_error()) != 0)
{ {
ERR_error_string_n(errnum,errbuf,140); ERR_error_string_n(err_errnum,errbuf,140);
skygw_log_write(LE, skygw_log_write(LE,
"%s", "%s",
errbuf); errbuf);
} }
if(errno)
{
skygw_log_write(LE, "Error: SSL authentication failed due to system"
" error %d: %s", errno, strerror_r(errno, errbuf, sizeof(errbuf)));
}
} }
} }
break; break;