summaryrefslogtreecommitdiffstats
path: root/src/conntrack/parse.c
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-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
commit845dc5b01cefe918597061f3b0534fd2a7b4ee1d (patch)
tree1788dde3561bd096deade15249c0f11c12e23e66 /src/conntrack/parse.c
parentea5ae395bef0188a0f3d85444e9ae7abb611e051 (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.c18
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,