summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormickey <mickey@openbsd.org>2002-11-25 17:44:39 +0000
committermickey <mickey@openbsd.org>2002-11-25 17:44:39 +0000
commitefd05f93f9b9c5b11bb3a93c25314fa39d81a59b (patch)
treea794daed89fafb8c15b1765eef1d5d2c5c7b504a
parentadjust; slightly off due to 1K = 1000 fix (diff)
downloadwireguard-openbsd-efd05f93f9b9c5b11bb3a93c25314fa39d81a59b.tar.xz
wireguard-openbsd-efd05f93f9b9c5b11bb3a93c25314fa39d81a59b.zip
for loN and link1 translate the iface into address properly; henning@ ok
-rw-r--r--sbin/pfctl/parse.y13
1 files changed, 9 insertions, 4 deletions
diff --git a/sbin/pfctl/parse.y b/sbin/pfctl/parse.y
index edf9681bd6f..1b0e6ceda12 100644
--- a/sbin/pfctl/parse.y
+++ b/sbin/pfctl/parse.y
@@ -1,4 +1,4 @@
-/* $OpenBSD: parse.y,v 1.213 2002/11/25 16:30:22 henning Exp $ */
+/* $OpenBSD: parse.y,v 1.214 2002/11/25 17:44:39 mickey Exp $ */
/*
* Copyright (c) 2001 Markus Friedl. All rights reserved.
@@ -3444,9 +3444,14 @@ ifa_lookup(char *ifa_name, enum pfctl_iflookup_mode mode)
memcpy(&n->addr.mask, &p->addr.mask,
sizeof(struct pf_addr));
else {
- if (n->af == AF_INET)
- set_ipmask(n, 32);
- else
+ if (n->af == AF_INET) {
+ if (p->ifa_flags & IFF_LOOPBACK &&
+ p->ifa_flags & IFF_LINK1)
+ memcpy(&n->addr.mask, &p->addr.mask,
+ sizeof(struct pf_addr));
+ else
+ set_ipmask(n, 32);
+ } else
set_ipmask(n, 128);
}
n->ifindex = p->ifindex;