summaryrefslogtreecommitdiffstats
path: root/expect.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2013-06-07 19:53:46 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2013-06-07 19:53:46 +0200
commit04cbb9c53929173ff0ae261c0bb22b5928ffc23b (patch)
tree97e54ffcc58d376dbe559082e57633983658b6cd /expect.c
parentc9b5bc2b976abeaa13a1c1fc46dd5491feb5b9e7 (diff)
expect: add new cthelper_* functions for SIP helper
This patch adds new functions to support the SIP helper in user-space. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'expect.c')
-rw-r--r--expect.c64
1 files changed, 64 insertions, 0 deletions
diff --git a/expect.c b/expect.c
index fc46a21..072e913 100644
--- a/expect.c
+++ b/expect.c
@@ -171,6 +171,11 @@ int cthelper_del_expect(struct nf_expect *exp)
return 0;
}
+int cthelper_upd_expect(struct nf_expect *exp)
+{
+ return 0;
+}
+
int cthelper_upd_ct(struct nf_conntrack *ct)
{
return 0;
@@ -203,3 +208,62 @@ cthelper_get_addr_dst(struct nf_conntrack *ct, int dir,
break;
}
}
+
+int cthelper_cmp_addr_src(struct nf_conntrack *ct, int dir,
+ union nfct_attr_grp_addr *addr)
+{
+ union nfct_attr_grp_addr tmp;
+
+ switch (dir) {
+ case MYCT_DIR_ORIG:
+ nfct_get_attr_grp(ct, ATTR_GRP_ORIG_ADDR_SRC, &tmp);
+ break;
+ case MYCT_DIR_REPL:
+ nfct_get_attr_grp(ct, ATTR_GRP_REPL_ADDR_SRC, &tmp);
+ break;
+ }
+ return memcmp(addr, &tmp, sizeof(union nfct_attr_grp_addr)) == 0;
+}
+
+int cthelper_cmp_addr_dst(struct nf_conntrack *ct, int dir,
+ union nfct_attr_grp_addr *addr)
+{
+ union nfct_attr_grp_addr tmp;
+
+ switch (dir) {
+ case MYCT_DIR_ORIG:
+ nfct_get_attr_grp(ct, ATTR_GRP_ORIG_ADDR_DST, &tmp);
+ break;
+ case MYCT_DIR_REPL:
+ nfct_get_attr_grp(ct, ATTR_GRP_REPL_ADDR_DST, &tmp);
+ break;
+ }
+ return memcmp(addr, &tmp, sizeof(union nfct_attr_grp_addr)) == 0;
+}
+
+int cthelper_cmp_exp_addr_dst(struct nf_expect *exp,
+ union nfct_attr_grp_addr *addr)
+{
+ const struct nf_conntrack *tuple = nfexp_get_attr(exp, ATTR_EXP_EXPECTED);
+ union nfct_attr_grp_addr tmp;
+
+ cthelper_get_addr_dst((struct nf_conntrack *)tuple, MYCT_DIR_ORIG, &tmp);
+
+ return memcmp(addr, &tmp, sizeof(union nfct_attr_grp_addr)) == 0;
+}
+
+int cthelper_iterate_exp(struct nf_conntrack *ct,
+ int (*cb)(struct nf_expect *exp, void *data),
+ void *data_cb)
+{
+ return 0;
+}
+
+struct nf_expect *cthelper_find_expect(union nfct_attr_grp_addr *saddr,
+ union nfct_attr_grp_addr *daddr,
+ uint16_t sport, uint16_t dport,
+ uint8_t l3num, uint8_t l4num,
+ uint16_t zone)
+{
+ return NULL;
+}