Commit e3a2575776cebe16a8033dc0a1f84a37b7fd2b80
1 parent
e5febe41
Exists in
master
and in
2 other branches
Fixing SSL connect error messages.
Showing
2 changed files
with
19 additions
and
7 deletions
Show diff stats
src/network_modules/openssl/context.c
| @@ -112,6 +112,16 @@ static void info_callback(INFO_CONST SSL *s, int where, int ret) | @@ -112,6 +112,16 @@ static void info_callback(INFO_CONST SSL *s, int where, int ret) | ||
| 112 | err_buf[0] = '\0'; | 112 | err_buf[0] = '\0'; |
| 113 | } | 113 | } |
| 114 | 114 | ||
| 115 | + debug("SSL Connect error %d\nMessage: %s\nState: %s\nAlert: %s\n", | ||
| 116 | + ret, | ||
| 117 | + err_buf, | ||
| 118 | + SSL_state_string_long(s), | ||
| 119 | + SSL_alert_type_string_long(ret) | ||
| 120 | + ); | ||
| 121 | + | ||
| 122 | + hSession->ssl.error = e; | ||
| 123 | + debug("hSession->ssl.error=%d",hSession->ssl.error); | ||
| 124 | + | ||
| 115 | trace_ssl(hSession,"SSL Connect error %d\nMessage: %s\nState: %s\nAlert: %s\n", | 125 | trace_ssl(hSession,"SSL Connect error %d\nMessage: %s\nState: %s\nAlert: %s\n", |
| 116 | ret, | 126 | ret, |
| 117 | err_buf, | 127 | err_buf, |
src/network_modules/openssl/start.c
| @@ -216,6 +216,7 @@ | @@ -216,6 +216,7 @@ | ||
| 216 | } | 216 | } |
| 217 | 217 | ||
| 218 | trace_ssl(hSession, "%s","Running SSL_connect\n"); | 218 | trace_ssl(hSession, "%s","Running SSL_connect\n"); |
| 219 | + hSession->ssl.error = 0; | ||
| 219 | int rv = SSL_connect(context->con); | 220 | int rv = SSL_connect(context->con); |
| 220 | trace_ssl(hSession, "SSL_connect exits with rc=%d\n",rv); | 221 | trace_ssl(hSession, "SSL_connect exits with rc=%d\n",rv); |
| 221 | 222 | ||
| @@ -223,13 +224,14 @@ | @@ -223,13 +224,14 @@ | ||
| 223 | { | 224 | { |
| 224 | LIB3270_SSL_MESSAGE message = { | 225 | LIB3270_SSL_MESSAGE message = { |
| 225 | .type = LIB3270_NOTIFY_ERROR, | 226 | .type = LIB3270_NOTIFY_ERROR, |
| 226 | - .title = N_( "SSL Connect failed" ), | ||
| 227 | - .summary = N_("The client was unable to negotiate a secure connection with the host"), | 227 | + .title = N_( "Connection failed" ), |
| 228 | + .summary = N_("Unable to negotiate a secure connection with the host"), | ||
| 228 | }; | 229 | }; |
| 229 | 230 | ||
| 230 | - int code = SSL_get_error(context->con,rv); | 231 | + if(!hSession->ssl.error) |
| 232 | + hSession->ssl.error = SSL_get_error(context->con,rv); | ||
| 231 | 233 | ||
| 232 | - if(code == SSL_ERROR_SYSCALL) { | 234 | + if(hSession->ssl.error == SSL_ERROR_SYSCALL) { |
| 233 | 235 | ||
| 234 | // Some I/O error occurred. | 236 | // Some I/O error occurred. |
| 235 | // The OpenSSL error queue may contain more information on the error. | 237 | // The OpenSSL error queue may contain more information on the error. |
| @@ -248,12 +250,12 @@ | @@ -248,12 +250,12 @@ | ||
| 248 | 250 | ||
| 249 | } else { | 251 | } else { |
| 250 | 252 | ||
| 251 | - message.body = ERR_reason_error_string(code); | 253 | + message.body = ERR_reason_error_string(hSession->ssl.error); |
| 252 | 254 | ||
| 253 | } | 255 | } |
| 254 | 256 | ||
| 255 | - debug("SSL_connect failed: %s (rc=%d)\n",message.body ? message.body : message.summary, code); | ||
| 256 | - trace_ssl(hSession,"SSL_connect failed: %s (rc=%d)\n",message.body ? message.body : message.summary, code); | 257 | + debug("SSL_connect failed: %s (rc=%d)\n",message.body ? message.body : message.summary, hSession->ssl.error); |
| 258 | + trace_ssl(hSession,"SSL_connect failed: %s (rc=%d)\n",message.body ? message.body : message.summary, hSession->ssl.error); | ||
| 257 | 259 | ||
| 258 | hSession->ssl.message = &message; | 260 | hSession->ssl.message = &message; |
| 259 | return -1; | 261 | return -1; |