freebsd-ports/sysutils/pfstat/files/patch-pf.c
Max Laier dc55152eac Make pfstat work on non-ALTQ kernels. Patch submitted upstream, but for now
patch around.  Also fix a typo and email markup, both spotted by Pav.

Reported by:	Lars Wittebrood
Approved by:	pav
2006-12-16 01:58:38 +00:00

44 lines
1.3 KiB
C

--- pf.c.orig Thu May 11 23:41:07 2006
+++ pf.c Mon Dec 11 21:08:31 2006
@@ -67,10 +67,8 @@
/* first, find out how many queues there are */
memset(&pa, 0, sizeof(pa));
- if (ioctl(fd, DIOCGETALTQS, &pa)) {
- fprintf(stderr, "ioctl: DIOCGETALTQS: %s\n", strerror(errno));
- return (1);
- }
+ if (ioctl(fd, DIOCGETALTQS, &pa))
+ return (0);
mnr = pa.nr;
/* fetch each of those queues */
@@ -144,23 +142,24 @@
query_ifaces(int fd, void (*cb)(int, const char *, int, double))
{
struct pfioc_iface io;
- struct pfi_kif ifs[256];
+ struct pfi_if ifs[256];
int i, j;
memset(&io, 0, sizeof(io));
io.pfiio_buffer = ifs;
io.pfiio_esize = sizeof(ifs[0]);
io.pfiio_size = sizeof(ifs) / sizeof(ifs[0]);
+ io.pfiio_flags = PFI_FLAG_ALLMASK;
if (ioctl(fd, DIOCIGETIFACES, &io)) {
fprintf(stderr, "ioctl: DIOCIGETIFACES: %s\n", strerror(errno));
return (1);
}
for (i = 0; i < io.pfiio_size; ++i)
for (j = 0; j < 16; ++j)
- (*cb)(COL_TYPE_IFACE, ifs[i].pfik_name,
+ (*cb)(COL_TYPE_IFACE, ifs[i].pfif_name,
j, j & 4 ?
- ifs[i].pfik_packets[j&1?0:1][j&2?0:1][j&8?0:1] :
- ifs[i].pfik_bytes[j&1?0:1][j&2?0:1][j&8?0:1]);
+ ifs[i].pfif_packets[j&1?0:1][j&2?0:1][j&8?0:1] :
+ ifs[i].pfif_bytes[j&1?0:1][j&2?0:1][j&8?0:1]);
/* bytes/packets[af][dir][op] */
return (0);
}