netfilter: conntrack: warn the user if there is a better helper to use
authorMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Thu, 21 May 2015 13:57:12 +0000 (10:57 -0300)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 12 Jun 2015 12:06:24 +0000 (14:06 +0200)
After db29a9508a92 ("netfilter: conntrack: disable generic tracking for
known protocols"), if the specific helper is built but not loaded
(a standard for most distributions) systems with a restrictive firewall
but weak configuration regarding netfilter modules to load, will
silently stop working.

This patch then puts a warning message so the sysadmin knows where to
start looking into. It's a pr_warn_once regardless of protocol itself
but it should be enough to give a hint on where to look.

Cc: Florian Westphal <fw@strlen.de>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_conntrack_proto_generic.c

index 60865f1103099383c4263a1a56e691b3c86c3720..2281be419a74b6d8abe0fd7da8d7e8b35d304600 100644 (file)
@@ -90,7 +90,13 @@ static int generic_packet(struct nf_conn *ct,
 static bool generic_new(struct nf_conn *ct, const struct sk_buff *skb,
                        unsigned int dataoff, unsigned int *timeouts)
 {
-       return nf_generic_should_process(nf_ct_protonum(ct));
+       bool ret;
+
+       ret = nf_generic_should_process(nf_ct_protonum(ct));
+       if (!ret)
+               pr_warn_once("conntrack: generic helper won't handle protocol %d. Please consider loading the specific helper module.\n",
+                            nf_ct_protonum(ct));
+       return ret;
 }
 
 #if IS_ENABLED(CONFIG_NF_CT_NETLINK_TIMEOUT)