Cleaned up dcb_accept_SSL and added missing logging.
This commit is contained in:
@ -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;
|
||||||
|
Reference in New Issue
Block a user