]> git.kaiwu.me - nginx.git/commitdiff
Set SSL session context for "ssl_session_cache none".
authorIgor Sysoev <igor@sysoev.ru>
Tue, 2 Mar 2010 08:41:47 +0000 (08:41 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Tue, 2 Mar 2010 08:41:47 +0000 (08:41 +0000)
This fixes a bug when client certficate is used and nginx closes connection
with the message: "SSL_GET_PREV_SESSION:session id context uninitialized".

src/event/ngx_event_openssl.c

index b8886fcc2c550d7fe91c5f3d69ab6f342dab6e34..134b361f62f9f8222ed273b8a2fa28c9493f4951 100644 (file)
@@ -1428,6 +1428,8 @@ ngx_ssl_session_cache(ngx_ssl_t *ssl, ngx_str_t *sess_ctx,
         return NGX_OK;
     }
 
+    SSL_CTX_set_session_id_context(ssl->ctx, sess_ctx->data, sess_ctx->len);
+
     if (builtin_session_cache == NGX_SSL_NONE_SCACHE) {
 
         /*
@@ -1459,8 +1461,6 @@ ngx_ssl_session_cache(ngx_ssl_t *ssl, ngx_str_t *sess_ctx,
 
     SSL_CTX_set_session_cache_mode(ssl->ctx, cache_mode);
 
-    SSL_CTX_set_session_id_context(ssl->ctx, sess_ctx->data, sess_ctx->len);
-
     if (builtin_session_cache != NGX_SSL_NO_BUILTIN_SCACHE) {
 
         if (builtin_session_cache != NGX_SSL_DFLT_BUILTIN_SCACHE) {