Commit 35db594a7a9b8bdbb0913826f275799e643d7fac
1 parent
76612edf
Exists in
master
and in
3 other branches
Disconnect from SSL error should be marked as "failed" using
host_disconnected.
Showing
1 changed file
with
6 additions
and
3 deletions
Show diff stats
src/lib3270/ssl/negotiate.c
| ... | ... | @@ -52,6 +52,7 @@ |
| 52 | 52 | #include <lib3270.h> |
| 53 | 53 | #include <lib3270/internals.h> |
| 54 | 54 | #include <lib3270/trace.h> |
| 55 | +#include "hostc.h" // host_disconnect | |
| 55 | 56 | #include "trace_dsc.h" |
| 56 | 57 | |
| 57 | 58 | /*--[ Implement ]------------------------------------------------------------------------------------*/ |
| ... | ... | @@ -152,7 +153,7 @@ static int background_ssl_negotiation(H3270 *hSession, void *message) |
| 152 | 153 | |
| 153 | 154 | ((SSL_ERROR_MESSAGE *) message)->title = N_( "Security error" ); |
| 154 | 155 | ((SSL_ERROR_MESSAGE *) message)->text = N_( "SSL Connect failed" ); |
| 155 | - lib3270_disconnect(hSession); | |
| 156 | + | |
| 156 | 157 | return -1; |
| 157 | 158 | |
| 158 | 159 | } |
| ... | ... | @@ -285,12 +286,13 @@ int ssl_negotiate(H3270 *hSession) |
| 285 | 286 | if(rc) |
| 286 | 287 | { |
| 287 | 288 | // SSL Negotiation has failed. |
| 289 | + host_disconnect(hSession,1); // Disconnect with "failed" status. | |
| 290 | + | |
| 288 | 291 | if(msg.description) |
| 289 | 292 | lib3270_popup_dialog(hSession, LIB3270_NOTIFY_ERROR, msg.title, msg.text, "%s", msg.description); |
| 290 | 293 | else |
| 291 | 294 | lib3270_popup_dialog(hSession, LIB3270_NOTIFY_ERROR, msg.title, msg.text, "%s", ERR_reason_error_string(msg.error)); |
| 292 | 295 | |
| 293 | - lib3270_disconnect(hSession); | |
| 294 | 296 | |
| 295 | 297 | } |
| 296 | 298 | |
| ... | ... | @@ -312,12 +314,13 @@ int ssl_init(H3270 *hSession) { |
| 312 | 314 | if(rc) |
| 313 | 315 | { |
| 314 | 316 | // SSL init has failed. |
| 317 | + host_disconnect(hSession,1); // Disconnect with "failed" status. | |
| 318 | + | |
| 315 | 319 | if(msg.description) |
| 316 | 320 | lib3270_popup_dialog(hSession, LIB3270_NOTIFY_ERROR, msg.title, msg.text, "%s", msg.description); |
| 317 | 321 | else |
| 318 | 322 | lib3270_popup_dialog(hSession, LIB3270_NOTIFY_ERROR, msg.title, msg.text, "%s", ERR_reason_error_string(msg.error)); |
| 319 | 323 | |
| 320 | - lib3270_disconnect(hSession); | |
| 321 | 324 | } |
| 322 | 325 | |
| 323 | 326 | non_blocking(hSession,True); | ... | ... |