Mercurial > hg > nginx-vendor-1-0
comparison src/http/ngx_http_upstream_round_robin.c @ 434:49a0eb7ce20c NGINX_0_7_29
nginx 0.7.29
*) Bugfix: the "fastcgi_pass" and "proxy_pass" directives did not
support variables if unix domain sockets were used.
*) Bugfixes in subrequest processing; the bugs had appeared in 0.7.25.
*) Bugfix: a "100 Continue" response was issued for HTTP/1.0 requests;
Thanks to Maxim Dounin.
*) Bugfix: in memory allocation in the ngx_http_gzip_filter_module on
Cygwin.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Wed, 24 Dec 2008 00:00:00 +0300 |
parents | 6ebbca3d5ed7 |
children | 65fd8be45530 |
comparison
equal
deleted
inserted
replaced
433:18f6c20ac73a | 434:49a0eb7ce20c |
---|---|
277 | 277 |
278 peers->single = (ur->naddrs == 1); | 278 peers->single = (ur->naddrs == 1); |
279 peers->number = ur->naddrs; | 279 peers->number = ur->naddrs; |
280 peers->name = &ur->host; | 280 peers->name = &ur->host; |
281 | 281 |
282 for (i = 0; i < ur->naddrs; i++) { | 282 if (ur->sockaddr) { |
283 | 283 peers->peer[0].sockaddr = ur->sockaddr; |
284 len = NGX_INET_ADDRSTRLEN + sizeof(":65536") - 1; | 284 peers->peer[0].socklen = ur->socklen; |
285 | 285 peers->peer[0].name = ur->host; |
286 p = ngx_pnalloc(r->pool, len); | 286 peers->peer[0].weight = 1; |
287 if (p == NULL) { | 287 peers->peer[0].current_weight = 1; |
288 return NGX_ERROR; | 288 peers->peer[0].max_fails = 1; |
289 } | 289 peers->peer[0].fail_timeout = 10; |
290 | 290 |
291 len = ngx_inet_ntop(AF_INET, &ur->addrs[i], p, NGX_INET_ADDRSTRLEN); | 291 } else { |
292 len = ngx_sprintf(&p[len], ":%d", ur->port) - p; | 292 |
293 | 293 for (i = 0; i < ur->naddrs; i++) { |
294 sin = ngx_pcalloc(r->pool, sizeof(struct sockaddr_in)); | 294 |
295 if (sin == NULL) { | 295 len = NGX_INET_ADDRSTRLEN + sizeof(":65536") - 1; |
296 return NGX_ERROR; | 296 |
297 } | 297 p = ngx_pnalloc(r->pool, len); |
298 | 298 if (p == NULL) { |
299 sin->sin_family = AF_INET; | 299 return NGX_ERROR; |
300 sin->sin_port = htons(ur->port); | 300 } |
301 sin->sin_addr.s_addr = ur->addrs[i]; | 301 |
302 | 302 len = ngx_inet_ntop(AF_INET, &ur->addrs[i], p, NGX_INET_ADDRSTRLEN); |
303 peers->peer[i].sockaddr = (struct sockaddr *) sin; | 303 len = ngx_sprintf(&p[len], ":%d", ur->port) - p; |
304 peers->peer[i].socklen = sizeof(struct sockaddr_in); | 304 |
305 peers->peer[i].name.len = len; | 305 sin = ngx_pcalloc(r->pool, sizeof(struct sockaddr_in)); |
306 peers->peer[i].name.data = p; | 306 if (sin == NULL) { |
307 peers->peer[i].weight = 1; | 307 return NGX_ERROR; |
308 peers->peer[i].current_weight = 1; | 308 } |
309 peers->peer[i].max_fails = 1; | 309 |
310 peers->peer[i].fail_timeout = 10; | 310 sin->sin_family = AF_INET; |
311 sin->sin_port = htons(ur->port); | |
312 sin->sin_addr.s_addr = ur->addrs[i]; | |
313 | |
314 peers->peer[i].sockaddr = (struct sockaddr *) sin; | |
315 peers->peer[i].socklen = sizeof(struct sockaddr_in); | |
316 peers->peer[i].name.len = len; | |
317 peers->peer[i].name.data = p; | |
318 peers->peer[i].weight = 1; | |
319 peers->peer[i].current_weight = 1; | |
320 peers->peer[i].max_fails = 1; | |
321 peers->peer[i].fail_timeout = 10; | |
322 } | |
311 } | 323 } |
312 | 324 |
313 rrp->peers = peers; | 325 rrp->peers = peers; |
314 rrp->current = 0; | 326 rrp->current = 0; |
315 | 327 |