X-Git-Url: http://git.pk910.de/?p=ircu2.10.12-pk.git;a=blobdiff_plain;f=ircd%2Fssl.c;h=489c143f4b632f23d9f2626c03a6659c168ca757;hp=49e861f75cc20178c5403d4bc9f39c281e7454b6;hb=e894de73de8e7846934ecdf4d7cc3a14d5635ce6;hpb=c3727b053aa20cecf3984cc0c9c23b0140edf52c diff --git a/ircd/ssl.c b/ircd/ssl.c index 49e861f..489c143 100644 --- a/ircd/ssl.c +++ b/ircd/ssl.c @@ -866,7 +866,8 @@ const char *ssl_cipherstr(ssl_session_t *ssl) { -#ifdef HAVE_GNUTLS +#if defined(HAVE_GNUTLS) + unsigned int ssl_be_init() { signed int ret; if((ret = gnutls_global_init()) != GNUTLS_E_SUCCESS) { @@ -1021,15 +1022,25 @@ const char *ssl_cipherstr(ssl_session_t *ssl) { } IOResult ssl_be_send(signed int fd, ssl_be_session_t *ssl, const char *buf, unsigned int *count_out) { signed int res; + ssl_msg(SSL_DEBUG, "SSL: gnutls ssl_be_send(): %s", buf); res = gnutls_record_send(*ssl, buf, *count_out); *count_out = 0; - if(res == 0) return IO_FAILURE; + if(res == 0) { + ssl_msg(SSL_DEBUG, "SSL: gnutls ssl_be_send(): failed (IO_FAILURE)"); + return IO_FAILURE; + } else if(res < 0) { - if(res != GNUTLS_E_AGAIN && res != GNUTLS_E_INTERRUPTED) return IO_FAILURE; - else return IO_BLOCKED; + if(res != GNUTLS_E_AGAIN && res != GNUTLS_E_INTERRUPTED) { + ssl_msg(SSL_DEBUG, "SSL: gnutls ssl_be_send(): failed (IO_FAILURE)"); + return IO_FAILURE; + } else { + ssl_msg(SSL_DEBUG, "SSL: gnutls ssl_be_send(): failed (IO_BLOCKED)"); + return IO_BLOCKED; + } } else { *count_out = res; + ssl_msg(SSL_DEBUG, "SSL: gnutls ssl_be_send(): successful (IO_SUCCESS) %d", res); return IO_SUCCESS; } } @@ -1037,13 +1048,22 @@ const char *ssl_cipherstr(ssl_session_t *ssl) { signed int res; res = gnutls_record_recv(*ssl, buf, *count_out); *count_out = 0; - if(res == 0) return IO_FAILURE; + if(res == 0) { + ssl_msg(SSL_DEBUG, "SSL: gnutls ssl_be_recv(): failed (IO_FAILURE)"); + return IO_FAILURE; + } else if(res < 0) { - if(res == GNUTLS_E_AGAIN || res == GNUTLS_E_INTERRUPTED) return IO_BLOCKED; - else return IO_FAILURE; + if(res == GNUTLS_E_AGAIN || res == GNUTLS_E_INTERRUPTED) { + ssl_msg(SSL_DEBUG, "SSL: gnutls ssl_be_recv(): failed (IO_BLOCKED)"); + return IO_BLOCKED; + } else { + ssl_msg(SSL_DEBUG, "SSL: gnutls ssl_be_recv(): failed (IO_FAILURE)"); + return IO_FAILURE; + } } else { *count_out = res; + ssl_msg(SSL_DEBUG, "SSL: gnutls ssl_be_recv(): successful (IO_SUCCESS)"); return IO_SUCCESS; } }