diff options
author | Alan Antonuk <alan.antonuk@gmail.com> | 2013-04-15 14:09:16 -0700 |
---|---|---|
committer | Alan Antonuk <alan.antonuk@gmail.com> | 2013-04-17 09:56:30 -0700 |
commit | 098a555d563a2cff430aa0f7c99f5fc12029ea32 (patch) | |
tree | 4a9526de0b5e30dccd4622bad78e7bd72575f442 | |
parent | e93f902d03a2f3b6357e175d89d5f7514bec56aa (diff) | |
download | rabbitmq-c-github-ask-098a555d563a2cff430aa0f7c99f5fc12029ea32.tar.gz |
Add very rudimentary error code handling for SSL
-rw-r--r-- | librabbitmq/amqp_api.c | 5 | ||||
-rw-r--r-- | librabbitmq/amqp_cyassl.c | 9 | ||||
-rw-r--r-- | librabbitmq/amqp_gnutls.c | 9 | ||||
-rw-r--r-- | librabbitmq/amqp_openssl.c | 9 | ||||
-rw-r--r-- | librabbitmq/amqp_polarssl.c | 9 | ||||
-rw-r--r-- | librabbitmq/amqp_private.h | 5 |
6 files changed, 42 insertions, 4 deletions
diff --git a/librabbitmq/amqp_api.c b/librabbitmq/amqp_api.c index 4a84bd3..6bc8397 100644 --- a/librabbitmq/amqp_api.c +++ b/librabbitmq/amqp_api.c @@ -75,6 +75,11 @@ char *amqp_error_string(int err) case ERROR_CATEGORY_OS: return amqp_os_error_string(err); +#ifdef WITH_SSL + case ERROR_CATEGORY_SSL: + return amqp_ssl_error_string(err); +#endif + default: str = "(undefined error category)"; } diff --git a/librabbitmq/amqp_cyassl.c b/librabbitmq/amqp_cyassl.c index c609147..b04c657 100644 --- a/librabbitmq/amqp_cyassl.c +++ b/librabbitmq/amqp_cyassl.c @@ -29,6 +29,7 @@ #include "amqp_private.h" #include <cyassl/ssl.h> #include <stdlib.h> +#include <string.h> struct amqp_ssl_socket_t { CYASSL_CTX *ctx; @@ -118,7 +119,13 @@ amqp_ssl_socket_close(void *base) static int amqp_ssl_socket_error(AMQP_UNUSED void *user_data) { - return -1; + return ERROR_CATEGORY_SSL; +} + +char * +amqp_ssl_error_string(AMQP_UNUSED int err) +{ + return strdup("A ssl socket error occurred."); } static int diff --git a/librabbitmq/amqp_gnutls.c b/librabbitmq/amqp_gnutls.c index f4e3d62..8e5e1f2 100644 --- a/librabbitmq/amqp_gnutls.c +++ b/librabbitmq/amqp_gnutls.c @@ -30,6 +30,7 @@ #include <gnutls/gnutls.h> #include <gnutls/x509.h> #include <stdlib.h> +#include <string.h> struct amqp_ssl_socket_t { gnutls_session_t session; @@ -131,7 +132,13 @@ amqp_ssl_socket_close(void *base) static int amqp_ssl_socket_error(AMQP_UNUSED void *user_data) { - return -1; + return ERROR_CATEGORY_SSL; +} + +char * +amqp_ssl_error_string(AMQP_UNUSED int err) +{ + return strdup("A SSL error occurred"); } static int diff --git a/librabbitmq/amqp_openssl.c b/librabbitmq/amqp_openssl.c index 8a24366..5203756 100644 --- a/librabbitmq/amqp_openssl.c +++ b/librabbitmq/amqp_openssl.c @@ -33,6 +33,7 @@ #include <openssl/err.h> #include <openssl/ssl.h> #include <stdlib.h> +#include <string.h> #include "socket.h" @@ -262,7 +263,13 @@ amqp_ssl_socket_close(void *base) static int amqp_ssl_socket_error(AMQP_UNUSED void *base) { - return -1; + return ERROR_CATEGORY_SSL; +} + +char * +amqp_ssl_error_string(AMQP_UNUSED int err) +{ + return strdup("A ssl socket error occurred."); } static int diff --git a/librabbitmq/amqp_polarssl.c b/librabbitmq/amqp_polarssl.c index 77bb5fc..c5cf2be 100644 --- a/librabbitmq/amqp_polarssl.c +++ b/librabbitmq/amqp_polarssl.c @@ -32,6 +32,7 @@ #include <polarssl/net.h> #include <polarssl/ssl.h> #include <stdlib.h> +#include <string.h> struct amqp_ssl_socket_t { int sockfd; @@ -158,7 +159,13 @@ amqp_ssl_socket_close(void *base) static int amqp_ssl_socket_error(AMQP_UNUSED void *user_data) { - return -1; + return ERROR_CATEGORY_SSL; +} + +char * +amqp_ssl_error_string(AMQP_UNUSED int err) +{ + return strdup("A SSL socket error occurred"); } static int diff --git a/librabbitmq/amqp_private.h b/librabbitmq/amqp_private.h index 7f22ce8..a33205e 100644 --- a/librabbitmq/amqp_private.h +++ b/librabbitmq/amqp_private.h @@ -92,6 +92,11 @@ char * amqp_os_error_string(int err); +#ifdef WITH_SSL +char * +amqp_ssl_error_string(int err); +#endif + #include "amqp_socket.h" /* |