Print SSL error codes as well as the string. 43/3143/1
authorJoakim Soderberg <joakim.soderberg@gmail.com>
Fri, 22 Feb 2013 01:28:15 +0000 (09:28 +0800)
committerKevron Rees <kevron_m_rees@linux.intel.com>
Thu, 7 Mar 2013 21:01:38 +0000 (13:01 -0800)
CYASSL doesn't compile with the error strings in some configurations, so
it is nice to have the error code on SSL errors as well.

lib/client.c
lib/libwebsockets.c
lib/server.c

index e3d3da3..3da9326 100644 (file)
@@ -179,7 +179,8 @@ int lws_client_socket_service(struct libwebsocket_context *context,
                                 * run into the connection timeout or win
                                 */
 
-                               lwsl_err("SSL connect error %s\n",
+                               lwsl_err("SSL connect error %lu: %s\n", 
+                                       ERR_get_error(),
                                        ERR_error_string(ERR_get_error(),
                                              (char *)context->service_buffer));
                                return 0;
index 80a4ce0..68db541 100644 (file)
@@ -1860,14 +1860,16 @@ libwebsocket_create_context(struct lws_context_creation_info *info)
 
        method = (SSL_METHOD *)SSLv23_server_method();
        if (!method) {
-               lwsl_err("problem creating ssl method: %s\n",
+               lwsl_err("problem creating ssl method %lu: %s\n", 
+                       ERR_get_error(),
                        ERR_error_string(ERR_get_error(),
                                              (char *)context->service_buffer));
                goto bail;
        }
        context->ssl_ctx = SSL_CTX_new(method); /* create context */
        if (!context->ssl_ctx) {
-               lwsl_err("problem creating ssl context: %s\n",
+               lwsl_err("problem creating ssl context %lu: %s\n",
+                       ERR_get_error(),
                        ERR_error_string(ERR_get_error(),
                                              (char *)context->service_buffer));
                goto bail;
@@ -1886,7 +1888,8 @@ libwebsocket_create_context(struct lws_context_creation_info *info)
        if (info->port == CONTEXT_PORT_NO_LISTEN) {
                method = (SSL_METHOD *)SSLv23_client_method();
                if (!method) {
-                       lwsl_err("problem creating ssl method: %s\n",
+                       lwsl_err("problem creating ssl method %lu: %s\n",
+                               ERR_get_error(),
                                ERR_error_string(ERR_get_error(),
                                              (char *)context->service_buffer));
                        goto bail;
@@ -1894,7 +1897,8 @@ libwebsocket_create_context(struct lws_context_creation_info *info)
                /* create context */
                context->ssl_client_ctx = SSL_CTX_new(method);
                if (!context->ssl_client_ctx) {
-                       lwsl_err("problem creating ssl context: %s\n",
+                       lwsl_err("problem creating ssl context %lu: %s\n",
+                               ERR_get_error(),
                                ERR_error_string(ERR_get_error(),
                                              (char *)context->service_buffer));
                        goto bail;
@@ -1968,8 +1972,9 @@ libwebsocket_create_context(struct lws_context_creation_info *info)
                n = SSL_CTX_use_certificate_chain_file(context->ssl_ctx,
                                        info->ssl_cert_filepath);
                if (n != 1) {
-                       lwsl_err("problem getting cert '%s': %s\n",
+                       lwsl_err("problem getting cert '%s' %lu: %s\n",
                                info->ssl_cert_filepath,
+                               ERR_get_error(),
                                ERR_error_string(ERR_get_error(),
                                              (char *)context->service_buffer));
                        goto bail;
@@ -1978,8 +1983,9 @@ libwebsocket_create_context(struct lws_context_creation_info *info)
                if (SSL_CTX_use_PrivateKey_file(context->ssl_ctx,
                             info->ssl_private_key_filepath,
                                                       SSL_FILETYPE_PEM) != 1) {
-                       lwsl_err("ssl problem getting key '%s': %s\n",
+                       lwsl_err("ssl problem getting key '%s' %lu: %s\n",
                                info->ssl_private_key_filepath,
+                                       ERR_get_error(),
                                        ERR_error_string(ERR_get_error(),
                                              (char *)context->service_buffer));
                        goto bail;
index ae580c8..46aa182 100644 (file)
@@ -46,7 +46,7 @@ libwebsockets_decode_ssl_error(void)
 
        while ((err = ERR_get_error()) != 0) {
                ERR_error_string_n(err, buf, sizeof(buf));
-               lwsl_err("*** %s\n", buf);
+               lwsl_err("*** %lu %s\n", err, buf);
        }
 }
 #endif