summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhenning <henning@openbsd.org>2003-06-18 11:38:19 +0000
committerhenning <henning@openbsd.org>2003-06-18 11:38:19 +0000
commitc94b3262c1694204232ecc3676defa010c951280 (patch)
tree7b3daa6b90cd4ef34cd021913bd3768197092376
parentbackout last change, since it violates pkcs#1 (diff)
downloadwireguard-openbsd-c94b3262c1694204232ecc3676defa010c951280.tar.xz
wireguard-openbsd-c94b3262c1694204232ecc3676defa010c951280.zip
change expand_label_addr() to use a switch (h->addr.type) instead of
if .. else if .. else, and handle PF_ADDR_NOROUTE as well. inspired by a comment from cedric.
-rw-r--r--sbin/pfctl/parse.y53
1 files changed, 33 insertions, 20 deletions
diff --git a/sbin/pfctl/parse.y b/sbin/pfctl/parse.y
index c97171b1ccd..7e149e5191d 100644
--- a/sbin/pfctl/parse.y
+++ b/sbin/pfctl/parse.y
@@ -1,4 +1,4 @@
-/* $OpenBSD: parse.y,v 1.391 2003/06/18 11:04:14 henning Exp $ */
+/* $OpenBSD: parse.y,v 1.392 2003/06/18 11:38:19 henning Exp $ */
/*
* Copyright (c) 2001 Markus Friedl. All rights reserved.
@@ -3192,29 +3192,42 @@ expand_label_addr(const char *name, char *label, sa_family_t af,
char tmp[64], tmp_not[66];
if (strstr(label, name) != NULL) {
- if (h->addr.type == PF_ADDR_DYNIFTL)
+ switch (h->addr.type) {
+ case PF_ADDR_DYNIFTL:
snprintf(tmp, sizeof(tmp), "(%s)", h->addr.v.ifname);
- else if (h->addr.type == PF_ADDR_TABLE)
+ break;
+ case PF_ADDR_TABLE:
snprintf(tmp, sizeof(tmp), "<%s>", h->addr.v.tblname);
- else if (!af || (PF_AZERO(&h->addr.v.a.addr, af) &&
- PF_AZERO(&h->addr.v.a.mask, af)))
- snprintf(tmp, sizeof(tmp), "any");
- else {
- char a[48];
- int bits;
-
- if (inet_ntop(af, &h->addr.v.a.addr, a, sizeof(a)) ==
- NULL)
- snprintf(tmp, sizeof(tmp), "?");
+ break;
+ case PF_ADDR_NOROUTE:
+ snprintf(tmp, sizeof(tmp), "no-route");
+ break;
+ case PF_ADDR_ADDRMASK:
+ if (!af || (PF_AZERO(&h->addr.v.a.addr, af) &&
+ PF_AZERO(&h->addr.v.a.mask, af)))
+ snprintf(tmp, sizeof(tmp), "any");
else {
- bits = unmask(&h->addr.v.a.mask, af);
- if ((af == AF_INET && bits < 32) ||
- (af == AF_INET6 && bits < 128))
- snprintf(tmp, sizeof(tmp), "%s/%d",
- a, bits);
- else
- snprintf(tmp, sizeof(tmp), "%s", a);
+ char a[48];
+ int bits;
+
+ if (inet_ntop(af, &h->addr.v.a.addr, a,
+ sizeof(a)) == NULL)
+ snprintf(tmp, sizeof(tmp), "?");
+ else {
+ bits = unmask(&h->addr.v.a.mask, af);
+ if ((af == AF_INET && bits < 32) ||
+ (af == AF_INET6 && bits < 128))
+ snprintf(tmp, sizeof(tmp),
+ "%s/%d", a, bits);
+ else
+ snprintf(tmp, sizeof(tmp),
+ "%s", a);
+ }
}
+ break;
+ default:
+ snprintf(tmp, sizeof(tmp), "?");
+ break;
}
if (h->not) {