aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin
diff options
context:
space:
mode:
authorKristof Provost <kp@FreeBSD.org>2025-12-05 10:23:45 +0000
committerKristof Provost <kp@FreeBSD.org>2025-12-05 12:24:52 +0000
commitf6aa57c86b6239e1f8c8ff50f28c9d0ed1af2ce3 (patch)
treef3b215f7975a585b432d2d690241b333cf99f4cf /usr.sbin
parent08f54dfca1970b1e014c99c7f8fc806b949267af (diff)
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c21
1 files changed, 8 insertions, 13 deletions
diff --git a/usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c b/usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c
index f0f9e0f0e149..91194516614f 100644
--- a/usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c
+++ b/usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c
@@ -1356,17 +1356,16 @@ err1:
static int
pfa_table_addrs(u_int sidx, struct pfr_table *pt)
{
- struct pfioc_table io;
+ struct pfr_table tbl = { 0 };
struct pfr_astats *t = NULL;
struct pfa_entry *e;
- int i, numaddrs = 1;
+ int i, numaddrs = 1, outnum;
if (pt == NULL)
return (-1);
- memset(&io, 0, sizeof(io));
- strlcpy(io.pfrio_table.pfrt_name, pt->pfrt_name,
- sizeof(io.pfrio_table.pfrt_name));
+ strlcpy(tbl.pfrt_name, pt->pfrt_name,
+ sizeof(tbl.pfrt_name));
for (;;) {
t = reallocf(t, numaddrs * sizeof(struct pfr_astats));
@@ -1377,22 +1376,18 @@ pfa_table_addrs(u_int sidx, struct pfr_table *pt)
goto error;
}
- memset(t, 0, sizeof(*t));
- io.pfrio_size = numaddrs;
- io.pfrio_buffer = t;
- io.pfrio_esize = sizeof(struct pfr_astats);
-
- if (ioctl(pfctl_fd(pfh), DIOCRGETASTATS, &io)) {
+ outnum = numaddrs;
+ if (pfctl_get_astats(pfh, &tbl, t, &outnum, 0) != 0) {
syslog(LOG_ERR, "pfa_table_addrs(): ioctl() on %s: %s",
pt->pfrt_name, strerror(errno));
numaddrs = -1;
break;
}
- if (numaddrs >= io.pfrio_size)
+ if (numaddrs >= outnum)
break;
- numaddrs = io.pfrio_size;
+ numaddrs = outnum;
}
for (i = 0; i < numaddrs; i++) {