Remove stale errors from early connection attempts in a client The init_client() function in the apps sets up the client connection. It may try multiple addresses until it finds one that works. We should clear the error queue if we eventually get a successful connection because otherwise we get stale errors hanging around. This can cause problems in subsequent calls to SSL_get_error(), i.e. non-fatal NBIO events appear as fatal. Reviewed-by: Richard Levitte <levitte@openssl.org>
diff --git a/apps/s_socket.c b/apps/s_socket.c index 4653217..6d77d82 100644 --- a/apps/s_socket.c +++ b/apps/s_socket.c
@@ -195,6 +195,8 @@ if (*sock == INVALID_SOCKET) { ERR_print_errors(bio_err); } else { + /* Remove any stale errors from previous connection attempts */ + ERR_clear_error(); ret = 1; } BIO_ADDRINFO_free(res);