summaryrefslogtreecommitdiffstats
path: root/apps/s_socket.c
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2016-05-04 09:12:27 +0100
committerMatt Caswell <matt@openssl.org>2016-05-04 10:16:39 +0100
commitea837d79f91f481d7b07ea7a985b35c24e9dcc79 (patch)
treedcab482d696a87951f7bcdcc3b9009db1281e644 /apps/s_socket.c
parent1697a81bafcc9a65012b62ba01c1661bf40e5edb (diff)
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>
Diffstat (limited to 'apps/s_socket.c')
-rw-r--r--apps/s_socket.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/apps/s_socket.c b/apps/s_socket.c
index 465321754c..6d77d8215b 100644
--- a/apps/s_socket.c
+++ b/apps/s_socket.c
@@ -195,6 +195,8 @@ int init_client(int *sock, const char *host, const char *port,
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);