diff options
author | Igor Sysoev <igor@sysoev.ru> | 2011-07-22 16:30:17 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2011-07-22 16:30:17 +0000 |
commit | 08b597592f608e057be5fd3c432dfb8ffe5d77ae (patch) | |
tree | 4a629e16625cedb6509a996a28564229abd892df /src | |
parent | a3741fb24d9dc5ec0477d0cb3f513322ae7bfbb9 (diff) | |
download | nginx-08b597592f608e057be5fd3c432dfb8ffe5d77ae.tar.gz nginx-08b597592f608e057be5fd3c432dfb8ffe5d77ae.zip |
do not try to reuse and save a SSL session for a peer created on the fly
by ngx_http_upstream_create_round_robin_peer(), since the peer lives
only during request so the saved SSL session will never be used again
and just causes memory leak
patch by Maxim Dounin
Diffstat (limited to 'src')
-rw-r--r-- | src/http/ngx_http_upstream_round_robin.c | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/src/http/ngx_http_upstream_round_robin.c b/src/http/ngx_http_upstream_round_robin.c index 52bd80858..de34b2884 100644 --- a/src/http/ngx_http_upstream_round_robin.c +++ b/src/http/ngx_http_upstream_round_robin.c @@ -14,6 +14,15 @@ static ngx_int_t ngx_http_upstream_cmp_servers(const void *one, static ngx_uint_t ngx_http_upstream_get_peer(ngx_http_upstream_rr_peers_t *peers); +#if (NGX_HTTP_SSL) + +static ngx_int_t ngx_http_upstream_empty_set_session(ngx_peer_connection_t *pc, + void *data); +static void ngx_http_upstream_empty_save_session(ngx_peer_connection_t *pc, + void *data); + +#endif + ngx_int_t ngx_http_upstream_init_round_robin(ngx_conf_t *cf, @@ -343,10 +352,8 @@ ngx_http_upstream_create_round_robin_peer(ngx_http_request_t *r, r->upstream->peer.free = ngx_http_upstream_free_round_robin_peer; r->upstream->peer.tries = rrp->peers->number; #if (NGX_HTTP_SSL) - r->upstream->peer.set_session = - ngx_http_upstream_set_round_robin_peer_session; - r->upstream->peer.save_session = - ngx_http_upstream_save_round_robin_peer_session; + r->upstream->peer.set_session = ngx_http_upstream_empty_set_session; + r->upstream->peer.save_session = ngx_http_upstream_empty_save_session; #endif return NGX_OK; @@ -757,4 +764,18 @@ ngx_http_upstream_save_round_robin_peer_session(ngx_peer_connection_t *pc, } } + +static ngx_int_t +ngx_http_upstream_empty_set_session(ngx_peer_connection_t *pc, void *data) +{ + return NGX_OK; +} + + +static void +ngx_http_upstream_empty_save_session(ngx_peer_connection_t *pc, void *data) +{ + return; +} + #endif |