changeset 1919:dc0f5013f674

create dummy resolver in http context to inherit it in all servers
author Igor Sysoev <igor@sysoev.ru>
date Thu, 06 Mar 2008 08:48:55 +0000
parents a47516c7065b
children 005bbad0df28
files src/http/ngx_http_core_module.c
diffstat 1 files changed, 16 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -2908,14 +2908,21 @@ ngx_http_core_merge_loc_conf(ngx_conf_t 
                               prev->resolver_timeout, 30000);
 
     if (conf->resolver == NULL) {
-        conf->resolver = prev->resolver;
-
-        if (conf->resolver == NULL) {
-            conf->resolver = ngx_resolver_create(cf, NULL);
-            if (conf->resolver == NULL) {
+
+        if (prev->resolver == NULL) {
+
+            /*
+             * create dummy resolver in http {} context
+             * to inherit it in all servers
+             */
+
+            prev->resolver = ngx_resolver_create(cf, NULL);
+            if (prev->resolver == NULL) {
                 return NGX_CONF_ERROR;
             }
         }
+ 
+        conf->resolver = prev->resolver;
     }
 
     ngx_conf_merge_path_value(conf->client_body_temp_path,
@@ -3717,6 +3724,10 @@ ngx_http_core_resolver(ngx_conf_t *cf, n
     ngx_url_t   u;
     ngx_str_t  *value;
 
+    if (clcf->resolver) {
+        return "is duplicate";
+    }
+
     value = cf->args->elts;
 
     ngx_memzero(&u, sizeof(ngx_url_t));