diff 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
line wrap: on
line diff
--- a/src/http/ngx_http.c
+++ b/src/http/ngx_http.c
@@ -1289,6 +1289,7 @@ static ngx_int_t
 ngx_http_add_server(ngx_conf_t *cf, ngx_http_core_srv_conf_t *cscf,
     ngx_http_conf_addr_t *addr)
 {
+    ngx_uint_t                  i;
     ngx_http_core_srv_conf_t  **server;
 
     if (addr->servers.elts == NULL) {
@@ -1298,6 +1299,16 @@ ngx_http_add_server(ngx_conf_t *cf, ngx_
         {
             return NGX_ERROR;
         }
+
+    } else {
+        server = addr->servers.elts;
+        for (i = 0; i < addr->servers.nelts; i++) {
+            if (server[i] == cscf) {
+                ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+                                   "a duplicate listen %s", addr->opt.addr);
+                return NGX_ERROR;
+            }
+        }
     }
 
     server = ngx_array_push(&addr->servers);