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.
This commit is contained in:
Emeric Brun 2012-10-04 17:09:56 +02:00 committed by Willy Tarreau
parent 3b5bc66554
commit 9fa8973abb

View File

@ -747,6 +747,12 @@ int ssl_sock_handshake(struct connection *conn, unsigned int flag)
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;