Print SSL error codes as well as the string.

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.
This commit is contained in:
Joakim Soderberg 2013-02-22 09:28:15 +08:00 committed by Andy Green
parent 51197c0d6f
commit b82b0dd118
3 changed files with 15 additions and 8 deletions

View 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;

View 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;

View 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