Page MenuHomeFreeBSD

D30057.id88869.diff
No OneTemporary

D30057.id88869.diff

diff --git a/contrib/pf/authpf/authpf.c b/contrib/pf/authpf/authpf.c
--- a/contrib/pf/authpf/authpf.c
+++ b/contrib/pf/authpf/authpf.c
@@ -36,6 +36,7 @@
#ifdef __FreeBSD__
#include <inttypes.h>
#endif
+#include <libpfctl.h>
#include <login_cap.h>
#include <pwd.h>
#include <grp.h>
@@ -889,37 +890,37 @@
static void
authpf_kill_states(void)
{
- struct pfioc_state_kill psk;
+ struct pfctl_kill kill;
struct pf_addr target;
- memset(&psk, 0, sizeof(psk));
+ memset(&kill, 0, sizeof(kill));
memset(&target, 0, sizeof(target));
if (inet_pton(AF_INET, ipsrc, &target.v4) == 1)
- psk.psk_af = AF_INET;
+ kill.af = AF_INET;
else if (inet_pton(AF_INET6, ipsrc, &target.v6) == 1)
- psk.psk_af = AF_INET6;
+ kill.af = AF_INET6;
else {
syslog(LOG_ERR, "inet_pton(%s) failed", ipsrc);
return;
}
/* Kill all states from ipsrc */
- memcpy(&psk.psk_src.addr.v.a.addr, &target,
- sizeof(psk.psk_src.addr.v.a.addr));
- memset(&psk.psk_src.addr.v.a.mask, 0xff,
- sizeof(psk.psk_src.addr.v.a.mask));
- if (ioctl(dev, DIOCKILLSTATES, &psk))
- syslog(LOG_ERR, "DIOCKILLSTATES failed (%m)");
+ memcpy(&kill.src.addr.v.a.addr, &target,
+ sizeof(kill.src.addr.v.a.addr));
+ memset(&kill.src.addr.v.a.mask, 0xff,
+ sizeof(kill.src.addr.v.a.mask));
+ if (pfctl_kill_states(dev, &kill, NULL))
+ syslog(LOG_ERR, "pfctl_kill_states() failed (%m)");
/* Kill all states to ipsrc */
- memset(&psk.psk_src, 0, sizeof(psk.psk_src));
- memcpy(&psk.psk_dst.addr.v.a.addr, &target,
- sizeof(psk.psk_dst.addr.v.a.addr));
- memset(&psk.psk_dst.addr.v.a.mask, 0xff,
- sizeof(psk.psk_dst.addr.v.a.mask));
- if (ioctl(dev, DIOCKILLSTATES, &psk))
- syslog(LOG_ERR, "DIOCKILLSTATES failed (%m)");
+ memset(&kill.src, 0, sizeof(kill.src));
+ memcpy(&kill.dst.addr.v.a.addr, &target,
+ sizeof(kill.dst.addr.v.a.addr));
+ memset(&kill.dst.addr.v.a.mask, 0xff,
+ sizeof(kill.dst.addr.v.a.mask));
+ if (pfctl_kill_states(dev, &kill, NULL))
+ syslog(LOG_ERR, "pfctl_kill_states() failed (%m)");
}
/* signal handler that makes us go away properly */
diff --git a/usr.sbin/authpf/Makefile b/usr.sbin/authpf/Makefile
--- a/usr.sbin/authpf/Makefile
+++ b/usr.sbin/authpf/Makefile
@@ -12,8 +12,9 @@
# XXX ALTQ:
CFLAGS+= -DENABLE_ALTQ
+CFLAGS+= -I${SRCTOP}/lib/libpfctl -I${OBJTOP}/lib/libpfctl
-LIBADD= m util
+LIBADD= m util pfctl
WARNS?= 3

File Metadata

Mime Type
text/plain
Expires
Sun, Mar 22, 7:19 AM (9 h, 9 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30113006
Default Alt Text
D30057.id88869.diff (2 KB)

Event Timeline