summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--extensions/Makefile.am3
-rw-r--r--include/conntrack.h1
-rw-r--r--src/Makefile.am2
-rw-r--r--src/conntrack.c6
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 <ole@ans.pl>:
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);