diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2012-02-05 01:30:22 +0100 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2012-02-06 23:44:01 +0100 |
commit | c9983354fa65c835643f85567f57cc8e9992cd29 (patch) | |
tree | bf99dc393ab9749903422385c727756a418e2683 /src/expect/parse.c | |
parent | 815805101cbc0e513cf909a77b5dfcd8d39684fd (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.c | 20 |
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); + } + } } |