Mercurial > hg > nginx-quic
comparison src/http/ngx_http_upstream.c @ 5162:ee9a043765ea stable-1.2
Merge of r5133, r5134: peer.free() and peer.get() balance.
*) Upstream: only call peer.free() if peer.get() selected a peer.
*) Upstream: removed double-free workarounds in peer.free() methods.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Fri, 29 Mar 2013 18:16:27 +0000 |
parents | d6980725e25c |
children |
comparison
equal
deleted
inserted
replaced
5161:a5f7d455e271 | 5162:ee9a043765ea |
---|---|
2844 | 2844 |
2845 #if 0 | 2845 #if 0 |
2846 ngx_http_busy_unlock(u->conf->busy_lock, &u->busy_lock); | 2846 ngx_http_busy_unlock(u->conf->busy_lock, &u->busy_lock); |
2847 #endif | 2847 #endif |
2848 | 2848 |
2849 if (ft_type == NGX_HTTP_UPSTREAM_FT_HTTP_404) { | 2849 if (u->peer.sockaddr) { |
2850 state = NGX_PEER_NEXT; | 2850 |
2851 } else { | 2851 if (ft_type == NGX_HTTP_UPSTREAM_FT_HTTP_404) { |
2852 state = NGX_PEER_FAILED; | 2852 state = NGX_PEER_NEXT; |
2853 } | 2853 } else { |
2854 | 2854 state = NGX_PEER_FAILED; |
2855 if (ft_type != NGX_HTTP_UPSTREAM_FT_NOLIVE) { | 2855 } |
2856 | |
2856 u->peer.free(&u->peer, u->peer.data, state); | 2857 u->peer.free(&u->peer, u->peer.data, state); |
2858 u->peer.sockaddr = NULL; | |
2857 } | 2859 } |
2858 | 2860 |
2859 if (ft_type == NGX_HTTP_UPSTREAM_FT_TIMEOUT) { | 2861 if (ft_type == NGX_HTTP_UPSTREAM_FT_TIMEOUT) { |
2860 ngx_log_error(NGX_LOG_ERR, r->connection->log, NGX_ETIMEDOUT, | 2862 ngx_log_error(NGX_LOG_ERR, r->connection->log, NGX_ETIMEDOUT, |
2861 "upstream timed out"); | 2863 "upstream timed out"); |
3011 } | 3013 } |
3012 } | 3014 } |
3013 | 3015 |
3014 u->finalize_request(r, rc); | 3016 u->finalize_request(r, rc); |
3015 | 3017 |
3016 if (u->peer.free) { | 3018 if (u->peer.free && u->peer.sockaddr) { |
3017 u->peer.free(&u->peer, u->peer.data, 0); | 3019 u->peer.free(&u->peer, u->peer.data, 0); |
3020 u->peer.sockaddr = NULL; | |
3018 } | 3021 } |
3019 | 3022 |
3020 if (u->peer.connection) { | 3023 if (u->peer.connection) { |
3021 | 3024 |
3022 #if (NGX_HTTP_SSL) | 3025 #if (NGX_HTTP_SSL) |