comparison src/http/ngx_http.c @ 3227:a610008bdc1a

test a duplicate listen in a server
author Igor Sysoev <igor@sysoev.ru>
date Thu, 22 Oct 2009 08:15:16 +0000
parents 4872f86df719
children a632dc9f3e73
comparison
equal deleted inserted replaced
3226:4872f86df719 3227:a610008bdc1a
1287 1287
1288 static ngx_int_t 1288 static ngx_int_t
1289 ngx_http_add_server(ngx_conf_t *cf, ngx_http_core_srv_conf_t *cscf, 1289 ngx_http_add_server(ngx_conf_t *cf, ngx_http_core_srv_conf_t *cscf,
1290 ngx_http_conf_addr_t *addr) 1290 ngx_http_conf_addr_t *addr)
1291 { 1291 {
1292 ngx_uint_t i;
1292 ngx_http_core_srv_conf_t **server; 1293 ngx_http_core_srv_conf_t **server;
1293 1294
1294 if (addr->servers.elts == NULL) { 1295 if (addr->servers.elts == NULL) {
1295 if (ngx_array_init(&addr->servers, cf->temp_pool, 4, 1296 if (ngx_array_init(&addr->servers, cf->temp_pool, 4,
1296 sizeof(ngx_http_core_srv_conf_t *)) 1297 sizeof(ngx_http_core_srv_conf_t *))
1297 != NGX_OK) 1298 != NGX_OK)
1298 { 1299 {
1299 return NGX_ERROR; 1300 return NGX_ERROR;
1301 }
1302
1303 } else {
1304 server = addr->servers.elts;
1305 for (i = 0; i < addr->servers.nelts; i++) {
1306 if (server[i] == cscf) {
1307 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
1308 "a duplicate listen %s", addr->opt.addr);
1309 return NGX_ERROR;
1310 }
1300 } 1311 }
1301 } 1312 }
1302 1313
1303 server = ngx_array_push(&addr->servers); 1314 server = ngx_array_push(&addr->servers);
1304 if (server == NULL) { 1315 if (server == NULL) {