BUG/MEDIUM: ssl: subsequent handshakes fail after server configuration changes
On server's configuration change, if the previously used
cipher is disabled, all subsequent connect attempts fail.
Fix consists in freeing cached session on handshake failure.
diff --git a/src/ssl_sock.c b/src/ssl_sock.c
index 88a5adb..9f61198 100644
--- a/src/ssl_sock.c
+++ b/src/ssl_sock.c
@@ -747,6 +747,12 @@
return 1;
out_error:
+ /* free resumed session if exists */
+ if (target_srv(&conn->target) && target_srv(&conn->target)->ssl_ctx.reused_sess) {
+ SSL_SESSION_free(target_srv(&conn->target)->ssl_ctx.reused_sess);
+ target_srv(&conn->target)->ssl_ctx.reused_sess = NULL;
+ }
+
/* Fail on all other handshake errors */
conn->flags |= CO_FL_ERROR;
conn->flags &= ~flag;