Mercurial > hg > nginx-quic
comparison src/http/ngx_http_upstream_round_robin.c @ 3964:ff127ba3b091
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
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Fri, 22 Jul 2011 16:30:17 +0000 |
parents | 7af1e5fe102c |
children | 74a93d3fdd85 e917fc5eceb7 |
comparison
equal
deleted
inserted
replaced
3963:10fbb8f02a45 | 3964:ff127ba3b091 |
---|---|
11 | 11 |
12 static ngx_int_t ngx_http_upstream_cmp_servers(const void *one, | 12 static ngx_int_t ngx_http_upstream_cmp_servers(const void *one, |
13 const void *two); | 13 const void *two); |
14 static ngx_uint_t | 14 static ngx_uint_t |
15 ngx_http_upstream_get_peer(ngx_http_upstream_rr_peers_t *peers); | 15 ngx_http_upstream_get_peer(ngx_http_upstream_rr_peers_t *peers); |
16 | |
17 #if (NGX_HTTP_SSL) | |
18 | |
19 static ngx_int_t ngx_http_upstream_empty_set_session(ngx_peer_connection_t *pc, | |
20 void *data); | |
21 static void ngx_http_upstream_empty_save_session(ngx_peer_connection_t *pc, | |
22 void *data); | |
23 | |
24 #endif | |
16 | 25 |
17 | 26 |
18 ngx_int_t | 27 ngx_int_t |
19 ngx_http_upstream_init_round_robin(ngx_conf_t *cf, | 28 ngx_http_upstream_init_round_robin(ngx_conf_t *cf, |
20 ngx_http_upstream_srv_conf_t *us) | 29 ngx_http_upstream_srv_conf_t *us) |
341 | 350 |
342 r->upstream->peer.get = ngx_http_upstream_get_round_robin_peer; | 351 r->upstream->peer.get = ngx_http_upstream_get_round_robin_peer; |
343 r->upstream->peer.free = ngx_http_upstream_free_round_robin_peer; | 352 r->upstream->peer.free = ngx_http_upstream_free_round_robin_peer; |
344 r->upstream->peer.tries = rrp->peers->number; | 353 r->upstream->peer.tries = rrp->peers->number; |
345 #if (NGX_HTTP_SSL) | 354 #if (NGX_HTTP_SSL) |
346 r->upstream->peer.set_session = | 355 r->upstream->peer.set_session = ngx_http_upstream_empty_set_session; |
347 ngx_http_upstream_set_round_robin_peer_session; | 356 r->upstream->peer.save_session = ngx_http_upstream_empty_save_session; |
348 r->upstream->peer.save_session = | |
349 ngx_http_upstream_save_round_robin_peer_session; | |
350 #endif | 357 #endif |
351 | 358 |
352 return NGX_OK; | 359 return NGX_OK; |
353 } | 360 } |
354 | 361 |
755 | 762 |
756 ngx_ssl_free_session(old_ssl_session); | 763 ngx_ssl_free_session(old_ssl_session); |
757 } | 764 } |
758 } | 765 } |
759 | 766 |
767 | |
768 static ngx_int_t | |
769 ngx_http_upstream_empty_set_session(ngx_peer_connection_t *pc, void *data) | |
770 { | |
771 return NGX_OK; | |
772 } | |
773 | |
774 | |
775 static void | |
776 ngx_http_upstream_empty_save_session(ngx_peer_connection_t *pc, void *data) | |
777 { | |
778 return; | |
779 } | |
780 | |
760 #endif | 781 #endif |