aboutsummaryrefslogtreecommitdiff
path: root/lib/libpfctl
diff options
context:
space:
mode:
authorKristof Provost <kp@FreeBSD.org>2021-04-29 19:24:56 +0000
committerKristof Provost <kp@FreeBSD.org>2021-05-07 20:13:31 +0000
commit2a00c4db93b8db0c326a57363ca8a690ef6ab082 (patch)
tree89a9c83fb975c79efc1f5b7beace7ac48a8a4d33 /lib/libpfctl
parente989530a09b6e9f77b89c950ecf32f1b4fa709da (diff)
Diffstat (limited to 'lib/libpfctl')
-rw-r--r--lib/libpfctl/libpfctl.c24
-rw-r--r--lib/libpfctl/libpfctl.h2
2 files changed, 22 insertions, 4 deletions
diff --git a/lib/libpfctl/libpfctl.c b/lib/libpfctl/libpfctl.c
index 8c8b21d22a46..9f504237b4ee 100644
--- a/lib/libpfctl/libpfctl.c
+++ b/lib/libpfctl/libpfctl.c
@@ -50,6 +50,9 @@
#include "libpfctl.h"
+static int _pfctl_clear_states(int , const struct pfctl_kill *,
+ unsigned int *, uint64_t);
+
static void
pf_nvuint_8_array(const nvlist_t *nvl, const char *name, size_t maxelems,
u_int8_t *numbers, size_t *nelems)
@@ -624,9 +627,9 @@ pfctl_nv_add_state_cmp(nvlist_t *nvl, const char *name,
nvlist_add_nvlist(nvl, name, nv);
}
-int
-pfctl_clear_states(int dev, const struct pfctl_kill *kill,
- unsigned int *killed)
+static int
+_pfctl_clear_states(int dev, const struct pfctl_kill *kill,
+ unsigned int *killed, uint64_t ioctlval)
{
struct pfioc_nv nv;
nvlist_t *nvl;
@@ -647,7 +650,7 @@ pfctl_clear_states(int dev, const struct pfctl_kill *kill,
nvlist_destroy(nvl);
nvl = NULL;
- ret = ioctl(dev, DIOCCLRSTATESNV, &nv);
+ ret = ioctl(dev, ioctlval, &nv);
if (ret != 0) {
free(nv.data);
return (ret);
@@ -667,3 +670,16 @@ pfctl_clear_states(int dev, const struct pfctl_kill *kill,
return (ret);
}
+
+int
+pfctl_clear_states(int dev, const struct pfctl_kill *kill,
+ unsigned int *killed)
+{
+ return (_pfctl_clear_states(dev, kill, killed, DIOCCLRSTATESNV));
+}
+
+int
+pfctl_kill_states(int dev, const struct pfctl_kill *kill, unsigned int *killed)
+{
+ return (_pfctl_clear_states(dev, kill, killed, DIOCKILLSTATESNV));
+}
diff --git a/lib/libpfctl/libpfctl.h b/lib/libpfctl/libpfctl.h
index 3ec2a7fa535f..aa7f0ffd8fad 100644
--- a/lib/libpfctl/libpfctl.h
+++ b/lib/libpfctl/libpfctl.h
@@ -207,5 +207,7 @@ int pfctl_add_rule(int dev, const struct pfctl_rule *r,
int pfctl_set_keepcounters(int dev, bool keep);
int pfctl_clear_states(int dev, const struct pfctl_kill *kill,
unsigned int *killed);
+int pfctl_kill_states(int dev, const struct pfctl_kill *kill,
+ unsigned int *killed);
#endif