From d19ccc6f846ec6d54f6ad2171acdee08a48aef63 Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Fri, 5 Jun 2015 20:36:04 +0300 Subject: [PATCH] Fixed SSL_ERROR_WANT_READ, SSL_ERROR_WANT_WRITE and SSL_ERROR_NONE causing a debug assert. --- server/core/dcb.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/server/core/dcb.c b/server/core/dcb.c index 6beaec55d..538b0531a 100644 --- a/server/core/dcb.c +++ b/server/core/dcb.c @@ -1002,13 +1002,21 @@ int dcb_read_SSL( if (n < 0) { + char errbuf[200]; ssl_errno = SSL_get_error(dcb->ssl,n); - - if(ssl_errno != SSL_ERROR_WANT_READ && - ssl_errno != SSL_ERROR_WANT_WRITE && - ssl_errno != SSL_ERROR_NONE) +#ifdef SS_DEBUG + ERR_error_string(ssl_errno,errbuf); + skygw_log_write_flush(LD,"[%lu]SSL error %d: %s", + pthread_self(),ssl_errno,errbuf); +#endif + if(ssl_errno == SSL_ERROR_WANT_READ || + ssl_errno == SSL_ERROR_WANT_WRITE || + ssl_errno == SSL_ERROR_NONE) + { + n = 0; + } + else { - char errbuf[200]; ERR_error_string(ssl_errno,errbuf); LOGIF(LE, (skygw_log_write_flush( LOGFILE_ERROR, @@ -1019,10 +1027,10 @@ int dcb_read_SSL( dcb->fd, ssl_errno, errbuf))); - - gwbuf_free(buffer); - goto return_n; } + + gwbuf_free(buffer); + goto return_n; } else if(n == 0) {