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-03-25 14:32:49 +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-03-25 14:32:49 +0000 |
commit | 845dc5b01cefe918597061f3b0534fd2a7b4ee1d (patch) | |
tree | 1788dde3561bd096deade15249c0f11c12e23e66 /src/conntrack/parse.c | |
parent | ea5ae395bef0188a0f3d85444e9ae7abb611e051 (diff) |
This rather trivial patch adds ICMPv6 support for libnetfilter_conntrack,
but only for the new API - deprecated/extensions was left unchanged.
Signed-off-by: Krzysztof Oledzki <ole@ans.pl>
Diffstat (limited to 'src/conntrack/parse.c')
-rw-r--r-- | src/conntrack/parse.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/conntrack/parse.c b/src/conntrack/parse.c index 6fc7732..e5e62c8 100644 --- a/src/conntrack/parse.c +++ b/src/conntrack/parse.c @@ -152,6 +152,24 @@ static void __parse_proto(const struct nfattr *attr, *(u_int16_t *)NFA_DATA(tb[CTA_PROTO_ICMP_ID-1]); set_bit(ATTR_ICMP_ID, set); } + + if (tb[CTA_PROTO_ICMPV6_TYPE-1]) { + tuple->l4dst.icmp.type = + *(u_int8_t *)NFA_DATA(tb[CTA_PROTO_ICMPV6_TYPE-1]); + set_bit(ATTR_ICMP_TYPE, set); + } + + if (tb[CTA_PROTO_ICMPV6_CODE-1]) { + tuple->l4dst.icmp.code = + *(u_int8_t *)NFA_DATA(tb[CTA_PROTO_ICMPV6_CODE-1]); + set_bit(ATTR_ICMP_CODE, set); + } + + if (tb[CTA_PROTO_ICMPV6_ID-1]) { + tuple->l4src.icmp.id = + *(u_int16_t *)NFA_DATA(tb[CTA_PROTO_ICMPV6_ID-1]); + set_bit(ATTR_ICMP_ID, set); + } } void __parse_tuple(const struct nfattr *attr, |