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