diff options
author | Patrick McHardy <kaber@trash.net> | 2009-08-25 09:33:08 -0400 |
---|---|---|
committer | Patrick McHardy <kaber@trash.net> | 2009-08-25 09:33:08 -0400 |
commit | 74f7a6552c8d76ffc5e11eb8d9d6c07238b9ae77 (patch) | |
tree | 8ab3e8dd361de4d2f11536523aa5f0113272050e /net/ipv4 | |
parent | f3abc9b963e004b8c96cd7fbee6fd905f2bfd620 (diff) |
netfilter: nf_conntrack: log packets dropped by helpers
Log packets dropped by helpers using the netfilter logging API. This
is useful in combination with nfnetlink_log to analyze those packets
in userspace for debugging.
Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c index 9ac2fdc36ecc..aa95bb82ee6c 100644 --- a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c +++ b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <net/netfilter/ipv4/nf_conntrack_ipv4.h> | 26 | #include <net/netfilter/ipv4/nf_conntrack_ipv4.h> |
27 | #include <net/netfilter/nf_nat_helper.h> | 27 | #include <net/netfilter/nf_nat_helper.h> |
28 | #include <net/netfilter/ipv4/nf_defrag_ipv4.h> | 28 | #include <net/netfilter/ipv4/nf_defrag_ipv4.h> |
29 | #include <net/netfilter/nf_log.h> | ||
29 | 30 | ||
30 | int (*nf_nat_seq_adjust_hook)(struct sk_buff *skb, | 31 | int (*nf_nat_seq_adjust_hook)(struct sk_buff *skb, |
31 | struct nf_conn *ct, | 32 | struct nf_conn *ct, |
@@ -113,8 +114,11 @@ static unsigned int ipv4_confirm(unsigned int hooknum, | |||
113 | 114 | ||
114 | ret = helper->help(skb, skb_network_offset(skb) + ip_hdrlen(skb), | 115 | ret = helper->help(skb, skb_network_offset(skb) + ip_hdrlen(skb), |
115 | ct, ctinfo); | 116 | ct, ctinfo); |
116 | if (ret != NF_ACCEPT) | 117 | if (ret != NF_ACCEPT) { |
118 | nf_log_packet(NFPROTO_IPV4, hooknum, skb, in, out, NULL, | ||
119 | "nf_ct_%s: dropping packet", helper->name); | ||
117 | return ret; | 120 | return ret; |
121 | } | ||
118 | 122 | ||
119 | if (test_bit(IPS_SEQ_ADJUST_BIT, &ct->status)) { | 123 | if (test_bit(IPS_SEQ_ADJUST_BIT, &ct->status)) { |
120 | typeof(nf_nat_seq_adjust_hook) seq_adjust; | 124 | typeof(nf_nat_seq_adjust_hook) seq_adjust; |