summaryrefslogtreecommitdiff
path: root/src/internal_bypass.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/internal_bypass.c')
-rw-r--r--src/internal_bypass.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/internal_bypass.c b/src/internal_bypass.c
index 5c83c21..61988c7 100644
--- a/src/internal_bypass.c
+++ b/src/internal_bypass.c
@@ -49,7 +49,7 @@ internal_bypass_ct_dump_cb(enum nf_conntrack_msg_type type,
static void internal_bypass_ct_dump(int fd, int type)
{
struct nfct_handle *h;
- u_int32_t family = AF_UNSPEC;
+ uint32_t family = AF_UNSPEC;
int ret;
h = nfct_open(CONFIG(netlink).subsys_id, 0);
@@ -67,7 +67,7 @@ static void internal_bypass_ct_dump(int fd, int type)
static void internal_bypass_ct_flush(void)
{
- nl_flush_conntrack_table(STATE(flush));
+ nl_flush_conntrack_table_selective();
}
struct {
@@ -180,7 +180,7 @@ internal_bypass_exp_dump_cb(enum nf_conntrack_msg_type type,
static void internal_bypass_exp_dump(int fd, int type)
{
struct nfct_handle *h;
- u_int32_t family = AF_UNSPEC;
+ uint32_t family = AF_UNSPEC;
int ret;
h = nfct_open(CONFIG(netlink).subsys_id, 0);
@@ -283,6 +283,11 @@ static int internal_bypass_exp_event_del(struct nf_expect *exp, int origin)
return 1;
}
+static int internal_bypass_exp_master_find(const struct nf_conntrack *master)
+{
+ return nl_get_conntrack(STATE(get), master) == 0;
+}
+
struct internal_handler internal_bypass = {
.init = internal_bypass_init,
.close = internal_bypass_close,
@@ -309,5 +314,6 @@ struct internal_handler internal_bypass = {
.new = internal_bypass_exp_event_new,
.upd = internal_bypass_exp_event_upd,
.del = internal_bypass_exp_event_del,
+ .find = internal_bypass_exp_master_find,
},
};