# HG changeset patch # User Igor Sysoev # Date 1257946876 0 # Node ID 8017f9bda3f6fc9965bf9a5532f9be2be19ff68f # Parent 6832c7f5e189434dc846c0ee44839dc9991e85a9 fix "set_real_ip_from unix:" inheritance diff --git a/src/http/modules/ngx_http_realip_module.c b/src/http/modules/ngx_http_realip_module.c --- a/src/http/modules/ngx_http_realip_module.c +++ b/src/http/modules/ngx_http_realip_module.c @@ -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 * 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_ if (conf->from == NULL) { conf->from = prev->from; + } + #if (NGX_HAVE_UNIX_DOMAIN) - conf->unixsock = prev->unixsock; + 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);