Mercurial > hg > nginx-quic
comparison src/event/ngx_event_openssl.c @ 3992:a1dd9dc754ab
A new fix for the case when ssl_session_cache defined, but ssl is not
enabled in any server. The previous r1033 does not help when unused zone
becomes used after reconfiguration, so it is backed out.
The initial thought was to make SSL modules independed from SSL implementation
and to keep OpenSSL code dependance as much as in separate files.
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Thu, 04 Aug 2011 11:12:30 +0000 |
parents | df2ae4bc7415 |
children | 5b776ad53c3c |
comparison
equal
deleted
inserted
replaced
3991:509db6c0c5dc | 3992:a1dd9dc754ab |
---|---|
24 static void ngx_ssl_shutdown_handler(ngx_event_t *ev); | 24 static void ngx_ssl_shutdown_handler(ngx_event_t *ev); |
25 static void ngx_ssl_connection_error(ngx_connection_t *c, int sslerr, | 25 static void ngx_ssl_connection_error(ngx_connection_t *c, int sslerr, |
26 ngx_err_t err, char *text); | 26 ngx_err_t err, char *text); |
27 static void ngx_ssl_clear_error(ngx_log_t *log); | 27 static void ngx_ssl_clear_error(ngx_log_t *log); |
28 | 28 |
29 static ngx_int_t ngx_ssl_session_cache_init(ngx_shm_zone_t *shm_zone, | 29 ngx_int_t ngx_ssl_session_cache_init(ngx_shm_zone_t *shm_zone, void *data); |
30 void *data); | |
31 static int ngx_ssl_new_session(ngx_ssl_conn_t *ssl_conn, | 30 static int ngx_ssl_new_session(ngx_ssl_conn_t *ssl_conn, |
32 ngx_ssl_session_t *sess); | 31 ngx_ssl_session_t *sess); |
33 static ngx_ssl_session_t *ngx_ssl_get_cached_session(ngx_ssl_conn_t *ssl_conn, | 32 static ngx_ssl_session_t *ngx_ssl_get_cached_session(ngx_ssl_conn_t *ssl_conn, |
34 u_char *id, int len, int *copy); | 33 u_char *id, int len, int *copy); |
35 static void ngx_ssl_remove_session(SSL_CTX *ssl, ngx_ssl_session_t *sess); | 34 static void ngx_ssl_remove_session(SSL_CTX *ssl, ngx_ssl_session_t *sess); |
1503 } | 1502 } |
1504 | 1503 |
1505 SSL_CTX_set_timeout(ssl->ctx, (long) timeout); | 1504 SSL_CTX_set_timeout(ssl->ctx, (long) timeout); |
1506 | 1505 |
1507 if (shm_zone) { | 1506 if (shm_zone) { |
1508 shm_zone->init = ngx_ssl_session_cache_init; | |
1509 | |
1510 SSL_CTX_sess_set_new_cb(ssl->ctx, ngx_ssl_new_session); | 1507 SSL_CTX_sess_set_new_cb(ssl->ctx, ngx_ssl_new_session); |
1511 SSL_CTX_sess_set_get_cb(ssl->ctx, ngx_ssl_get_cached_session); | 1508 SSL_CTX_sess_set_get_cb(ssl->ctx, ngx_ssl_get_cached_session); |
1512 SSL_CTX_sess_set_remove_cb(ssl->ctx, ngx_ssl_remove_session); | 1509 SSL_CTX_sess_set_remove_cb(ssl->ctx, ngx_ssl_remove_session); |
1513 | 1510 |
1514 if (SSL_CTX_set_ex_data(ssl->ctx, ngx_ssl_session_cache_index, shm_zone) | 1511 if (SSL_CTX_set_ex_data(ssl->ctx, ngx_ssl_session_cache_index, shm_zone) |
1522 | 1519 |
1523 return NGX_OK; | 1520 return NGX_OK; |
1524 } | 1521 } |
1525 | 1522 |
1526 | 1523 |
1527 static ngx_int_t | 1524 ngx_int_t |
1528 ngx_ssl_session_cache_init(ngx_shm_zone_t *shm_zone, void *data) | 1525 ngx_ssl_session_cache_init(ngx_shm_zone_t *shm_zone, void *data) |
1529 { | 1526 { |
1530 size_t len; | 1527 size_t len; |
1531 ngx_slab_pool_t *shpool; | 1528 ngx_slab_pool_t *shpool; |
1532 ngx_ssl_session_cache_t *cache; | 1529 ngx_ssl_session_cache_t *cache; |