summaryrefslogtreecommitdiffstats
path: root/src/expect/parse.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2012-02-05 01:30:22 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2012-02-06 23:44:01 +0100
commitc9983354fa65c835643f85567f57cc8e9992cd29 (patch)
treebf99dc393ab9749903422385c727756a418e2683 /src/expect/parse.c
parent815805101cbc0e513cf909a77b5dfcd8d39684fd (diff)
expect: add NAT support
This patch adds ATTR_EXP_NAT_TUPLE and ATTR_EXP_NAT_DIR attributes. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/expect/parse.c')
-rw-r--r--src/expect/parse.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/expect/parse.c b/src/expect/parse.c
index 8b6dd5f..5796072 100644
--- a/src/expect/parse.c
+++ b/src/expect/parse.c
@@ -89,4 +89,24 @@ void __parse_expect(const struct nlmsghdr *nlh,
ntohl(*(u_int32_t *)NFA_DATA(cda[CTA_EXPECT_CLASS-1]));
set_bit(ATTR_EXP_CLASS, exp->set);
}
+ if (cda[CTA_EXPECT_NAT-1]) {
+ struct nfattr *tb[CTA_EXPECT_NAT_MAX];
+
+ nfnl_parse_nested(tb, CTA_EXPECT_NAT_MAX,
+ cda[CTA_EXPECT_NAT-1]);
+
+ if (tb[CTA_EXPECT_NAT_TUPLE-1]) {
+ __parse_tuple(tb[CTA_EXPECT_NAT_TUPLE-1],
+ &exp->nat.orig,
+ __DIR_ORIG,
+ exp->nat.set);
+ set_bit(ATTR_EXP_NAT_TUPLE, exp->set);
+ }
+ if (tb[CTA_EXPECT_NAT_DIR-1]) {
+ exp->nat_dir =
+ ntohl(*((u_int32_t *)
+ NFA_DATA(tb[CTA_EXPECT_NAT_DIR-1])));
+ set_bit(ATTR_EXP_NAT_DIR, exp->set);
+ }
+ }
}