-#ifdef HAVE_GNUTLS
+#if defined(HAVE_GNUTLS)
+
unsigned int ssl_be_init() {
signed int ret;
if((ret = gnutls_global_init()) != GNUTLS_E_SUCCESS) {
signed int res;
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)");
return IO_SUCCESS;
}
}
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;
}
}