From d65c9ce404a5a3dc4de220189daaf610f4ec306e Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Fri, 18 Jul 2008 14:36:06 +0200 Subject: Extend high-level API for netlink BSF to add negative logic This patch introduces nfct_filter_set_logic() to set the filtering logic which results in a more flexible solution. Signed-off-by: Pablo Neira Ayuso --- include/internal.h | 5 +++++ include/libnetfilter_conntrack/libnetfilter_conntrack.h | 10 ++++++++++ 2 files changed, 15 insertions(+) (limited to 'include') diff --git a/include/internal.h b/include/internal.h index 33b0dcd..9dc33f2 100644 --- a/include/internal.h +++ b/include/internal.h @@ -184,6 +184,11 @@ struct nfct_filter { * once it is attached, you can release this object. */ + /* + * filter logic: use positive or negative logic + */ + enum nfct_filter_logic logic[NFCT_FILTER_MAX]; + /* * This the layer 4 protocol map for filtering. */ diff --git a/include/libnetfilter_conntrack/libnetfilter_conntrack.h b/include/libnetfilter_conntrack/libnetfilter_conntrack.h index 328cf8b..9840f90 100644 --- a/include/libnetfilter_conntrack/libnetfilter_conntrack.h +++ b/include/libnetfilter_conntrack/libnetfilter_conntrack.h @@ -356,6 +356,16 @@ extern void nfct_filter_add_attr_u32(struct nfct_filter *filter, const enum nfct_filter_attr attr, const u_int32_t value); +enum nfct_filter_logic { + NFCT_FILTER_LOGIC_POSITIVE, + NFCT_FILTER_LOGIC_NEGATIVE, + NFCT_FILTER_LOGIC_MAX +}; + +extern int nfct_filter_set_logic(struct nfct_filter *filter, + const enum nfct_filter_attr attr, + const enum nfct_filter_logic logic); + extern int nfct_filter_attach(int fd, struct nfct_filter *filter); extern int nfct_filter_detach(int fd); -- cgit v1.2.3