Supporting UNIX sockets in address matching.
This closes #645 issue on GitHub. (Also moved a changelog line that was misplaced in a previous commit.)
This commit is contained in:
@@ -2157,6 +2157,11 @@ nxt_conf_vldt_match_addr(nxt_conf_validation_t *vldt,
|
||||
return nxt_conf_vldt_error(vldt, "The \"address\" does not support "
|
||||
"IPv6 with your configuration.");
|
||||
|
||||
case NXT_ADDR_PATTERN_NO_UNIX_ERROR:
|
||||
return nxt_conf_vldt_error(vldt, "The \"address\" does not support "
|
||||
"UNIX domain sockets with your "
|
||||
"configuration.");
|
||||
|
||||
default:
|
||||
return nxt_conf_vldt_error(vldt, "The \"address\" has an unknown "
|
||||
"format.");
|
||||
|
||||
@@ -1818,6 +1818,13 @@ nxt_http_route_addr_pattern_match(nxt_http_route_addr_pattern_t *p,
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if (NXT_HAVE_UNIX_DOMAIN)
|
||||
case AF_UNIX:
|
||||
|
||||
match = (base->addr_family == AF_UNIX);
|
||||
break;
|
||||
#endif
|
||||
|
||||
default:
|
||||
match = 0;
|
||||
break;
|
||||
|
||||
@@ -41,6 +41,16 @@ nxt_http_route_addr_pattern_parse(nxt_mp_t *mp,
|
||||
base->negative = 0;
|
||||
}
|
||||
|
||||
if (nxt_str_eq(&addr, "unix", 4)) {
|
||||
#if (NXT_HAVE_UNIX_DOMAIN)
|
||||
base->addr_family = AF_UNIX;
|
||||
|
||||
return NXT_OK;
|
||||
#else
|
||||
return NXT_ADDR_PATTERN_NO_UNIX_ERROR;
|
||||
#endif
|
||||
}
|
||||
|
||||
if (nxt_slow_path(addr.length < 2)) {
|
||||
return NXT_ADDR_PATTERN_LENGTH_ERROR;
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@ enum {
|
||||
NXT_ADDR_PATTERN_RANGE_OVERLAP_ERROR,
|
||||
NXT_ADDR_PATTERN_CIDR_ERROR,
|
||||
NXT_ADDR_PATTERN_NO_IPv6_ERROR,
|
||||
NXT_ADDR_PATTERN_NO_UNIX_ERROR,
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user