summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/nxt_conf_validation.c5
-rw-r--r--src/nxt_http_route.c7
-rw-r--r--src/nxt_http_route_addr.c10
-rw-r--r--src/nxt_http_route_addr.h1
4 files changed, 23 insertions, 0 deletions
diff --git a/src/nxt_conf_validation.c b/src/nxt_conf_validation.c
index 47164e92..8c532914 100644
--- a/src/nxt_conf_validation.c
+++ b/src/nxt_conf_validation.c
@@ -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.");
diff --git a/src/nxt_http_route.c b/src/nxt_http_route.c
index e00c37fe..cdc9077f 100644
--- a/src/nxt_http_route.c
+++ b/src/nxt_http_route.c
@@ -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;
diff --git a/src/nxt_http_route_addr.c b/src/nxt_http_route_addr.c
index 985fb737..34455af4 100644
--- a/src/nxt_http_route_addr.c
+++ b/src/nxt_http_route_addr.c
@@ -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;
}
diff --git a/src/nxt_http_route_addr.h b/src/nxt_http_route_addr.h
index 3b1e1da3..2deda6f8 100644
--- a/src/nxt_http_route_addr.h
+++ b/src/nxt_http_route_addr.h
@@ -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,
};