diff options
| author | Igor Sysoev <igor@sysoev.ru> | 2008-05-26 07:14:13 +0000 |
|---|---|---|
| committer | Igor Sysoev <igor@sysoev.ru> | 2008-05-26 07:14:13 +0000 |
| commit | d6548faf64a1ff1f06f642558967bf2b337d178d (patch) | |
| tree | 3b13dbe1587a016a8b2eb61ba5e4b6b674917f6d /src/event | |
| parent | 4c8eb4263f3db2e09d0f506af15082c0d3814b85 (diff) | |
| download | nginx-d6548faf64a1ff1f06f642558967bf2b337d178d.tar.gz nginx-d6548faf64a1ff1f06f642558967bf2b337d178d.tar.bz2 | |
ssl_session_cache none
Diffstat (limited to 'src/event')
| -rw-r--r-- | src/event/ngx_event_openssl.c | 23 | ||||
| -rw-r--r-- | src/event/ngx_event_openssl.h | 7 |
2 files changed, 27 insertions, 3 deletions
diff --git a/src/event/ngx_event_openssl.c b/src/event/ngx_event_openssl.c index 559c00772..7b44815d7 100644 --- a/src/event/ngx_event_openssl.c +++ b/src/event/ngx_event_openssl.c @@ -1267,6 +1267,29 @@ ngx_ssl_session_cache(ngx_ssl_t *ssl, ngx_str_t *sess_ctx, return NGX_OK; } + if (builtin_session_cache == NGX_SSL_NONE_SCACHE) { + + /* + * If the server explicitly says that it does not support + * session reuse (see SSL_SESS_CACHE_OFF above), then + * Outlook Express fails to upload a sent email to + * the Sent Items folder on the IMAP server via a separate IMAP + * connection in the background. Therefore we have a special + * mode (SSL_SESS_CACHE_SERVER|SSL_SESS_CACHE_NO_INTERNAL_STORE) + * where the server pretends that it supports session reuse, + * but it does not actually store any session. + */ + + SSL_CTX_set_session_cache_mode(ssl->ctx, + SSL_SESS_CACHE_SERVER + |SSL_SESS_CACHE_NO_AUTO_CLEAR + |SSL_SESS_CACHE_NO_INTERNAL_STORE); + + SSL_CTX_sess_set_cache_size(ssl->ctx, 1); + + return NGX_OK; + } + cache_mode = SSL_SESS_CACHE_SERVER; if (shm_zone && builtin_session_cache == NGX_SSL_NO_BUILTIN_SCACHE) { diff --git a/src/event/ngx_event_openssl.h b/src/event/ngx_event_openssl.h index b9771c121..4c3dd4830 100644 --- a/src/event/ngx_event_openssl.h +++ b/src/event/ngx_event_openssl.h @@ -51,9 +51,10 @@ typedef struct { } ngx_ssl_connection_t; -#define NGX_SSL_DFLT_BUILTIN_SCACHE -2 -#define NGX_SSL_NO_BUILTIN_SCACHE -3 -#define NGX_SSL_NO_SCACHE -4 +#define NGX_SSL_NO_SCACHE -2 +#define NGX_SSL_NONE_SCACHE -3 +#define NGX_SSL_NO_BUILTIN_SCACHE -4 +#define NGX_SSL_DFLT_BUILTIN_SCACHE -5 #define NGX_SSL_MAX_SESSION_SIZE 4096 |
