]> git.kaiwu.me - nginx.git/commitdiff
fix "set_real_ip_from unix:" inheritance
authorIgor Sysoev <igor@sysoev.ru>
Wed, 11 Nov 2009 13:41:16 +0000 (13:41 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Wed, 11 Nov 2009 13:41:16 +0000 (13:41 +0000)
src/http/modules/ngx_http_realip_module.c

index 7942042a3f91fabb6b752b672f52100716a1e136..b88b122425a45d34622f3e73dbfcc87254fbe9c0 100644 (file)
@@ -26,7 +26,7 @@ typedef struct {
     ngx_uint_t         hash;
     ngx_str_t          header;
 #if (NGX_HAVE_UNIX_DOMAIN)
-    ngx_uint_t         unixsock; /* unsigned  unixsock:1; */
+    ngx_uint_t         unixsock; /* unsigned  unixsock:2; */
 #endif
 } ngx_http_realip_loc_conf_t;
 
@@ -411,10 +411,12 @@ ngx_http_realip_create_loc_conf(ngx_conf_t *cf)
      *     conf->from = NULL;
      *     conf->hash = 0;
      *     conf->header = { 0, NULL };
-     *     conf->unixsock = 0;
      */
 
     conf->type = NGX_CONF_UNSET_UINT;
+#if (NGX_HAVE_UNIX_DOMAIN)
+    conf->unixsock = 2;
+#endif
 
     return conf;
 }
@@ -428,10 +430,13 @@ ngx_http_realip_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
 
     if (conf->from == NULL) {
         conf->from = prev->from;
+    }
+
 #if (NGX_HAVE_UNIX_DOMAIN)
-        conf->unixsock = prev->unixsock;
-#endif
+    if (conf->unixsock == 2) {
+        conf->unixsock = (prev->unixsock == 2) ? 0 : prev->unixsock;
     }
+#endif
 
     ngx_conf_merge_uint_value(conf->type, prev->type, NGX_HTTP_REALIP_XREALIP);