summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
author/C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org </C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org>2008-02-09 20:28:50 +0000
committer/C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org </C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org>2008-02-09 20:28:50 +0000
commitef56ba7fa2103984eefce9eb01227feab6fa2898 (patch)
tree899de5a5ea41d21b409478165675f0c485734dae /src
parent7784ef33db4361269afe9b302fa9dbb4a65aaf35 (diff)
add missing bits for NAT sequence adjusment support
Diffstat (limited to 'src')
-rw-r--r--src/build.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/build.c b/src/build.c
index d6c8837..6363458 100644
--- a/src/build.c
+++ b/src/build.c
@@ -146,6 +146,20 @@ void build_netpld(struct nf_conntrack *ct, struct netpld *pld, int query)
__nat_build_u16(data, pld, ATTR_DNAT_PORT);
}
+ /* NAT sequence adjustment */
+ if (nfct_attr_is_set(ct, ATTR_ORIG_NAT_SEQ_CORRECTION_POS))
+ __build_u32(ct, pld, ATTR_ORIG_NAT_SEQ_CORRECTION_POS);
+ if (nfct_attr_is_set(ct, ATTR_ORIG_NAT_SEQ_OFFSET_BEFORE))
+ __build_u32(ct, pld, ATTR_ORIG_NAT_SEQ_OFFSET_BEFORE);
+ if (nfct_attr_is_set(ct, ATTR_ORIG_NAT_SEQ_OFFSET_AFTER))
+ __build_u32(ct, pld, ATTR_ORIG_NAT_SEQ_OFFSET_AFTER);
+ if (nfct_attr_is_set(ct, ATTR_REPL_NAT_SEQ_CORRECTION_POS))
+ __build_u32(ct, pld, ATTR_REPL_NAT_SEQ_CORRECTION_POS);
+ if (nfct_attr_is_set(ct, ATTR_REPL_NAT_SEQ_OFFSET_BEFORE))
+ __build_u32(ct, pld, ATTR_REPL_NAT_SEQ_OFFSET_BEFORE);
+ if (nfct_attr_is_set(ct, ATTR_REPL_NAT_SEQ_OFFSET_AFTER))
+ __build_u32(ct, pld, ATTR_REPL_NAT_SEQ_OFFSET_AFTER);
+
pld->query = query;
PLD_HOST2NETWORK(pld);