commit dd4c60cf392ecabeeadd616c7fc561af87a7cef5 from: Alexander Barton date: Mon Aug 12 22:09:04 2013 UTC ConnSSL_HandleError: Code cleanup, more documentation commit - 4828bae8d321c6a87a724092ef0f258db7cd7e50 commit + dd4c60cf392ecabeeadd616c7fc561af87a7cef5 blob - 0bca9335ef0b7e65fb9bf2863e4ea1949ae0b10b blob + 1721aac560be1b6f8585754a35a42b48c61dc53e --- src/ngircd/conn-ssl.c +++ src/ngircd/conn-ssl.c @@ -488,16 +488,23 @@ ConnSSL_PrepareConnect(CONNECTION *c, UNUSED CONF_SERV } -/* - Check an Handle Error return code after failed calls to ssl/tls functions. - OpenSSL: - SSL_connect(), SSL_accept(), SSL_do_handshake(), SSL_read(), SSL_peek(), or SSL_write() on ssl. - GNUTLS: - gnutlsssl_read(), gnutls_write() or gnutls_handshake(). - Return: -1 on fatal error, 0 if we can try again later. +/** + * Check and handle error return codes after failed calls to SSL/TLS functions. + * + * OpenSSL: + * SSL_connect(), SSL_accept(), SSL_do_handshake(), SSL_read(), SSL_peek(), or + * SSL_write() on ssl. + * + * GNUTLS: + * gnutlsssl_read(), gnutls_write() or gnutls_handshake(). + * + * @param c The connection handle. + * @prarm code The return code. + * @param fname The name of the function in which the error occurred. + * @return -1 on fatal errors, 0 if we can try again later. */ static int -ConnSSL_HandleError( CONNECTION *c, const int code, const char *fname ) +ConnSSL_HandleError(CONNECTION * c, const int code, const char *fname) { #ifdef HAVE_LIBSSL int ret = SSL_ERROR_SYSCALL; @@ -518,21 +525,22 @@ ConnSSL_HandleError( CONNECTION *c, const int code, co case SSL_ERROR_ZERO_RETURN: LogDebug("TLS/SSL connection shut down normally"); break; - /* - SSL_ERROR_WANT_CONNECT, SSL_ERROR_WANT_ACCEPT, SSL_ERROR_WANT_X509_LOOKUP - */ case SSL_ERROR_SYSCALL: + /* SSL_ERROR_WANT_CONNECT, SSL_ERROR_WANT_ACCEPT, + * and SSL_ERROR_WANT_X509_LOOKUP */ sslerr = ERR_get_error(); if (sslerr) { - Log( LOG_ERR, "%s: %s", fname, ERR_error_string(sslerr, NULL )); + Log(LOG_ERR, "%s: %s", fname, + ERR_error_string(sslerr, NULL)); } else { switch (code) { /* EOF that violated protocol */ case 0: - Log(LOG_ERR, "%s: Client Disconnected", fname ); + Log(LOG_ERR, "%s: Client Disconnected", fname); break; - case -1: /* low level socket I/O error, check errno */ - Log(LOG_ERR, "%s: %s", fname, strerror(real_errno)); + case -1: /* low level socket I/O error, check errno */ + Log(LOG_ERR, "%s: %s", fname, + strerror(real_errno)); } } break; @@ -540,7 +548,7 @@ ConnSSL_HandleError( CONNECTION *c, const int code, co LogOpenSSLError("TLS/SSL Protocol Error", fname); break; default: - Log( LOG_ERR, "%s: Unknown error %d!", fname, ret); + Log(LOG_ERR, "%s: Unknown error %d!", fname, ret); } ConnSSL_Free(c); return -1;