diff options
author | 2002-11-25 17:44:39 +0000 | |
---|---|---|
committer | 2002-11-25 17:44:39 +0000 | |
commit | efd05f93f9b9c5b11bb3a93c25314fa39d81a59b (patch) | |
tree | a794daed89fafb8c15b1765eef1d5d2c5c7b504a | |
parent | adjust; slightly off due to 1K = 1000 fix (diff) | |
download | wireguard-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.y | 13 |
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; |