From 4effce64cfea7e67e2825e936a874943337474aa Mon Sep 17 00:00:00 2001 From: "/C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org" Date: Tue, 29 Apr 2008 12:56:23 +0000 Subject: Add missing master tuple getters (reported by Max Wilhelm) --- src/conntrack/api.c | 2 ++ src/conntrack/getter.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) (limited to 'src/conntrack') diff --git a/src/conntrack/api.c b/src/conntrack/api.c index 7d82d4d..4d5abb7 100644 --- a/src/conntrack/api.c +++ b/src/conntrack/api.c @@ -289,6 +289,8 @@ const void *nfct_get_attr(const struct nf_conntrack *ct, return NULL; } + assert(get_attr_array[type]); + return get_attr_array[type](ct); } diff --git a/src/conntrack/getter.c b/src/conntrack/getter.c index 6a42dfb..48ba386 100644 --- a/src/conntrack/getter.c +++ b/src/conntrack/getter.c @@ -102,6 +102,46 @@ static const void *get_attr_repl_l4proto(const struct nf_conntrack *ct) return &ct->tuple[__DIR_REPL].protonum; } +static const void *get_attr_master_ipv4_src(const struct nf_conntrack *ct) +{ + return &ct->tuple[__DIR_MASTER].src.v4; +} + +static const void *get_attr_master_ipv4_dst(const struct nf_conntrack *ct) +{ + return &ct->tuple[__DIR_MASTER].dst.v4; +} + +static const void *get_attr_master_ipv6_src(const struct nf_conntrack *ct) +{ + return &ct->tuple[__DIR_MASTER].src.v6; +} + +static const void *get_attr_master_ipv6_dst(const struct nf_conntrack *ct) +{ + return &ct->tuple[__DIR_MASTER].dst.v6; +} + +static const void *get_attr_master_port_src(const struct nf_conntrack *ct) +{ + return &ct->tuple[__DIR_MASTER].l4src.all; +} + +static const void *get_attr_master_port_dst(const struct nf_conntrack *ct) +{ + return &ct->tuple[__DIR_MASTER].l4dst.all; +} + +static const void *get_attr_master_l3proto(const struct nf_conntrack *ct) +{ + return &ct->tuple[__DIR_MASTER].l3protonum; +} + +static const void *get_attr_master_l4proto(const struct nf_conntrack *ct) +{ + return &ct->tuple[__DIR_MASTER].protonum; +} + static const void *get_attr_tcp_state(const struct nf_conntrack *ct) { return &ct->protoinfo.tcp.state; @@ -265,6 +305,14 @@ get_attr get_attr_array[] = { [ATTR_TCP_FLAGS_REPL] = get_attr_tcp_flags_repl, [ATTR_TCP_MASK_ORIG] = get_attr_tcp_mask_orig, [ATTR_TCP_MASK_REPL] = get_attr_tcp_mask_repl, + [ATTR_MASTER_IPV4_SRC] = get_attr_master_ipv4_src, + [ATTR_MASTER_IPV4_DST] = get_attr_master_ipv4_dst, + [ATTR_MASTER_IPV6_SRC] = get_attr_master_ipv6_src, + [ATTR_MASTER_IPV6_DST] = get_attr_master_ipv6_dst, + [ATTR_MASTER_PORT_SRC] = get_attr_master_port_src, + [ATTR_MASTER_PORT_DST] = get_attr_master_port_dst, + [ATTR_MASTER_L3PROTO] = get_attr_master_l3proto, + [ATTR_MASTER_L4PROTO] = get_attr_master_l4proto, [ATTR_SECMARK] = get_attr_secmark, [ATTR_ORIG_NAT_SEQ_CORRECTION_POS] = get_attr_orig_cor_pos, [ATTR_ORIG_NAT_SEQ_OFFSET_BEFORE] = get_attr_orig_off_bfr, -- cgit v1.2.3