Mercurial > hg > nginx
changeset 3229:a632dc9f3e73
fix r3225 and r3227: preserve default_server bit during listen options
overwriting
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Thu, 22 Oct 2009 10:17:54 +0000 |
parents | 1e1e66ef3a40 |
children | a7491af45540 |
files | src/http/ngx_http.c |
diffstat | 1 files changed, 8 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/http/ngx_http.c Thu Oct 22 09:48:42 2009 +0000 +++ b/src/http/ngx_http.c Thu Oct 22 10:17:54 2009 +0000 @@ -1167,7 +1167,7 @@ { u_char *p; size_t len, off; - ngx_uint_t i; + ngx_uint_t i, default_server; struct sockaddr *sa; ngx_http_conf_addr_t *addr; @@ -1209,6 +1209,9 @@ return NGX_ERROR; } + /* preserve default_server bit during listen options overwriting */ + default_server = addr[i].opt.default_server; + if (lsopt->set) { if (addr[i].opt.set) { @@ -1224,15 +1227,18 @@ if (lsopt->default_server) { - if (addr[i].opt.default_server) { + if (default_server) { ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, "a duplicate default server for %s", addr[i].opt.addr); return NGX_ERROR; } + default_server = 1; addr[i].default_server = cscf; } + addr[i].opt.default_server = default_server; + return NGX_OK; }