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