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> | 2007-12-08 18:37:19 +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> | 2007-12-08 18:37:19 +0000 |
commit | d167a7b1f5307c73a39b5a209e0f9bc54cd2d989 (patch) | |
tree | b33f6637cf8ae2981266b4723ee9d60cc4476d7e /src/conntrack/parse.c | |
parent | d6acf4bdeff295896a5a16c6da2e493fccb64ff2 (diff) |
Add support for conntrack master setup
Diffstat (limited to 'src/conntrack/parse.c')
-rw-r--r-- | src/conntrack/parse.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/conntrack/parse.c b/src/conntrack/parse.c index 9fbada4..75c5072 100644 --- a/src/conntrack/parse.c +++ b/src/conntrack/parse.c @@ -25,6 +25,9 @@ static void __parse_ip(const struct nfattr *attr, case __DIR_REPL: set_bit(ATTR_REPL_IPV4_SRC, set); break; + case __DIR_MASTER: + set_bit(ATTR_MASTER_IPV4_SRC, set); + break; } } @@ -37,6 +40,9 @@ static void __parse_ip(const struct nfattr *attr, case __DIR_REPL: set_bit(ATTR_REPL_IPV4_DST, set); break; + case __DIR_MASTER: + set_bit(ATTR_MASTER_IPV4_DST, set); + break; } } @@ -50,6 +56,9 @@ static void __parse_ip(const struct nfattr *attr, case __DIR_REPL: set_bit(ATTR_REPL_IPV6_SRC, set); break; + case __DIR_MASTER: + set_bit(ATTR_MASTER_IPV6_SRC, set); + break; } } @@ -63,6 +72,9 @@ static void __parse_ip(const struct nfattr *attr, case __DIR_REPL: set_bit(ATTR_REPL_IPV6_DST, set); break; + case __DIR_MASTER: + set_bit(ATTR_MASTER_IPV6_DST, set); + break; } } } @@ -85,6 +97,9 @@ static void __parse_proto(const struct nfattr *attr, case __DIR_REPL: set_bit(ATTR_REPL_L4PROTO, set); break; + case __DIR_MASTER: + set_bit(ATTR_MASTER_L4PROTO, set); + break; } } @@ -98,6 +113,9 @@ static void __parse_proto(const struct nfattr *attr, case __DIR_REPL: set_bit(ATTR_REPL_PORT_SRC, set); break; + case __DIR_MASTER: + set_bit(ATTR_MASTER_PORT_SRC, set); + break; } } @@ -111,6 +129,9 @@ static void __parse_proto(const struct nfattr *attr, case __DIR_REPL: set_bit(ATTR_REPL_PORT_DST, set); break; + case __DIR_MASTER: + set_bit(ATTR_MASTER_PORT_DST, set); + break; } } @@ -279,6 +300,10 @@ void __parse_conntrack(const struct nlmsghdr *nlh, __parse_tuple(cda[CTA_TUPLE_REPLY-1], &ct->tuple[__DIR_REPL], __DIR_REPL, ct->set); + if (cda[CTA_TUPLE_MASTER-1]) + __parse_tuple(cda[CTA_TUPLE_MASTER-1], + &ct->tuple[__DIR_MASTER], __DIR_MASTER, ct->set); + if (cda[CTA_STATUS-1]) { ct->status = ntohl(*(u_int32_t *)NFA_DATA(cda[CTA_STATUS-1])); set_bit(ATTR_STATUS, ct->set); |