aboutsummaryrefslogtreecommitdiff
path: root/lib/libpfctl
diff options
context:
space:
mode:
authorKristof Provost <kp@FreeBSD.org>2021-11-08 12:25:20 +0000
committerKristof Provost <kp@FreeBSD.org>2021-11-10 10:27:22 +0000
commit218a8a491c4980dcc941908f9505d37e7f052868 (patch)
treede9ba7f554a7892611cf90a19f38498f9d0bafa9 /lib/libpfctl
parent3987e506112a7e8af6f09966792fb8656d630496 (diff)
Diffstat (limited to 'lib/libpfctl')
-rw-r--r--lib/libpfctl/libpfctl.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/libpfctl/libpfctl.c b/lib/libpfctl/libpfctl.c
index da7c27522fd2..e298d69775b8 100644
--- a/lib/libpfctl/libpfctl.c
+++ b/lib/libpfctl/libpfctl.c
@@ -287,14 +287,20 @@ pfctl_nv_add_addr_wrap(nvlist_t *nvparent, const char *name,
static void
pf_nvaddr_wrap_to_addr_wrap(const nvlist_t *nvl, struct pf_addr_wrap *addr)
{
+ bzero(addr, sizeof(*addr));
+
addr->type = nvlist_get_number(nvl, "type");
addr->iflags = nvlist_get_number(nvl, "iflags");
- if (addr->type == PF_ADDR_DYNIFTL)
+ if (addr->type == PF_ADDR_DYNIFTL) {
strlcpy(addr->v.ifname, nvlist_get_string(nvl, "ifname"),
IFNAMSIZ);
- if (addr->type == PF_ADDR_TABLE)
+ addr->p.dyncnt = nvlist_get_number(nvl, "dynctl");
+ }
+ if (addr->type == PF_ADDR_TABLE) {
strlcpy(addr->v.tblname, nvlist_get_string(nvl, "tblname"),
PF_TABLE_NAME_SIZE);
+ addr->p.tblcnt = nvlist_get_number(nvl, "tblcnt");
+ }
pf_nvaddr_to_addr(nvlist_get_nvlist(nvl, "addr"), &addr->v.a.addr);
pf_nvaddr_to_addr(nvlist_get_nvlist(nvl, "mask"), &addr->v.a.mask);