diff options
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:01:39 +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:01:39 +0000 |
commit | 7f9112dc9b40a7cb952d2d5927cae12cbb35960a (patch) | |
tree | 6a7cc48d9a62cfbb54e583c0a732003ff54ba615 /src/conntrack/setter.c | |
parent | b2d40aaaff0feea0c682700c255d9e56b4980f0c (diff) |
add support for NAT sequence adjusment
Diffstat (limited to 'src/conntrack/setter.c')
-rw-r--r-- | src/conntrack/setter.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/conntrack/setter.c b/src/conntrack/setter.c index 39f0396..5ba8e40 100644 --- a/src/conntrack/setter.c +++ b/src/conntrack/setter.c @@ -207,6 +207,36 @@ static void set_attr_master_l4proto(struct nf_conntrack *ct, const void *value) ct->tuple[__DIR_MASTER].protonum = *((u_int8_t *) value); } +static void set_attr_orig_cor_pos(struct nf_conntrack *ct, const void *value) +{ + ct->tuple[__DIR_ORIG].natseq.correction_pos = *((u_int32_t *) value); +} + +static void set_attr_orig_off_bfr(struct nf_conntrack *ct, const void *value) +{ + ct->tuple[__DIR_ORIG].natseq.offset_before = *((u_int32_t *) value); +} + +static void set_attr_orig_off_aft(struct nf_conntrack *ct, const void *value) +{ + ct->tuple[__DIR_ORIG].natseq.offset_after = *((u_int32_t *) value); +} + +static void set_attr_repl_cor_pos(struct nf_conntrack *ct, const void *value) +{ + ct->tuple[__DIR_REPL].natseq.correction_pos = *((u_int32_t *) value); +} + +static void set_attr_repl_off_bfr(struct nf_conntrack *ct, const void *value) +{ + ct->tuple[__DIR_REPL].natseq.offset_before = *((u_int32_t *) value); +} + +static void set_attr_repl_off_aft(struct nf_conntrack *ct, const void *value) +{ + ct->tuple[__DIR_REPL].natseq.offset_after = *((u_int32_t *) value); +} + set_attr set_attr_array[] = { [ATTR_ORIG_IPV4_SRC] = set_attr_orig_ipv4_src, [ATTR_ORIG_IPV4_DST] = set_attr_orig_ipv4_dst, @@ -248,4 +278,10 @@ set_attr set_attr_array[] = { [ATTR_MASTER_L3PROTO] = set_attr_master_l3proto, [ATTR_MASTER_L4PROTO] = set_attr_master_l4proto, [ATTR_SECMARK] = set_attr_secmark, + [ATTR_ORIG_NAT_SEQ_CORRECTION_POS] = set_attr_orig_cor_pos, + [ATTR_ORIG_NAT_SEQ_OFFSET_BEFORE] = set_attr_orig_off_aft, + [ATTR_ORIG_NAT_SEQ_OFFSET_AFTER] = set_attr_orig_off_bfr, + [ATTR_REPL_NAT_SEQ_CORRECTION_POS] = set_attr_repl_cor_pos, + [ATTR_REPL_NAT_SEQ_OFFSET_BEFORE] = set_attr_repl_off_aft, + [ATTR_REPL_NAT_SEQ_OFFSET_AFTER] = set_attr_repl_off_bfr, }; |