From 0e82c979fb08611ecb1aff659d9ac0ed056948ea Mon Sep 17 00:00:00 2001 From: "/C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org" Date: Tue, 25 Mar 2008 14:37:51 +0000 Subject: Krzysztof Oledzki : o add ICMPv6 (-p icmpv6) support o add possibility to distinguish between invalid (unknown) and empty proto --- ChangeLog | 4 +++- extensions/Makefile.am | 3 ++- include/conntrack.h | 1 + src/Makefile.am | 2 +- src/conntrack.c | 6 +++++- 5 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6a33399..a7ffb25 100644 --- a/ChangeLog +++ b/ChangeLog @@ -6,6 +6,8 @@ o remove .svn directory from make distcheck tarballs (reported by B.Benjamini) Krzysztof Oledzki : o fix minor compilation warning +o add ICMPv6 (-p icmpv6) support +o add possibility to distinguish between invalid (unknown) and empty proto version 0.9.6 (2008/03/08) ------------------------------ @@ -161,7 +163,7 @@ o fork when internal/external dump and commit requests are received o lots of cleanups = conntrack = -o fix segfault with conntrack --output (Krzysztof Oledzky) +o fix segfault with conntrack --output (Krzysztof Oledzki) o use NFCT_SOPT_SETUP_* facilities: nfct_setobjopt o remove bogus option to get a conntrack in test.sh example file o add aliases --sport and --dport to make it more iptables-like diff --git a/extensions/Makefile.am b/extensions/Makefile.am index cf45688..0eede22 100644 --- a/extensions/Makefile.am +++ b/extensions/Makefile.am @@ -1,8 +1,9 @@ include $(top_srcdir)/Make_global.am noinst_LTLIBRARIES = libct_proto_tcp.la libct_proto_udp.la \ - libct_proto_icmp.la + libct_proto_icmp.la libct_proto_icmpv6.la libct_proto_tcp_la_SOURCES = libct_proto_tcp.c libct_proto_udp_la_SOURCES = libct_proto_udp.c libct_proto_icmp_la_SOURCES = libct_proto_icmp.c +libct_proto_icmpv6_la_SOURCES = libct_proto_icmpv6.c diff --git a/include/conntrack.h b/include/conntrack.h index 63facf4..36897c2 100644 --- a/include/conntrack.h +++ b/include/conntrack.h @@ -188,5 +188,6 @@ extern void register_proto(struct ctproto_handler *h); extern void register_tcp(void); extern void register_udp(void); extern void register_icmp(void); +extern void register_icmpv6(void); #endif diff --git a/src/Makefile.am b/src/Makefile.am index 494da4f..d3fc020 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -7,7 +7,7 @@ CLEANFILES = read_config_yy.c read_config_lex.c sbin_PROGRAMS = conntrack conntrackd conntrack_SOURCES = conntrack.c -conntrack_LDADD = ../extensions/libct_proto_tcp.la ../extensions/libct_proto_udp.la ../extensions/libct_proto_icmp.la +conntrack_LDADD = ../extensions/libct_proto_tcp.la ../extensions/libct_proto_udp.la ../extensions/libct_proto_icmp.la ../extensions/libct_proto_icmpv6.la conntrack_LDFLAGS = $(all_libraries) @LIBNETFILTER_CONNTRACK_LIBS@ conntrackd_SOURCES = alarm.c main.c run.c hash.c queue.c rbtree.c \ diff --git a/src/conntrack.c b/src/conntrack.c index 82ff544..a6e7d6f 100644 --- a/src/conntrack.c +++ b/src/conntrack.c @@ -684,6 +684,7 @@ int main(int argc, char *argv[]) register_tcp(); register_udp(); register_icmp(); + register_icmpv6(); while ((c = getopt_long(argc, argv, "L::I::U::D::G::E::F::hVs:d:r:q:" "p:t:u:e:a:z[:]:{:}:m:i::f:o:n::" @@ -819,10 +820,13 @@ int main(int argc, char *argv[]) nfct_set_attr_u8(obj, ATTR_REPL_L3PROTO, l3protonum); break; case 'p': + if (!optarg || !*optarg) + exit_error(PARAMETER_PROBLEM, "proto needed\n"); + options |= CT_OPT_PROTO; h = findproto(optarg); if (!h) - exit_error(PARAMETER_PROBLEM, "proto needed\n"); + exit_error(PARAMETER_PROBLEM, "unknown proto\n"); nfct_set_attr_u8(obj, ATTR_ORIG_L4PROTO, h->protonum); nfct_set_attr_u8(obj, ATTR_REPL_L4PROTO, h->protonum); -- cgit v1.2.3