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