diff options
author | Patrick McHardy <kaber@trash.net> | 2010-02-15 11:45:08 -0500 |
---|---|---|
committer | Patrick McHardy <kaber@trash.net> | 2010-02-15 11:45:08 -0500 |
commit | 8fea97ec1772bbf553d89187340ef624d548e115 (patch) | |
tree | c9f3936e346e388629e735538849b2102162478a /net/netfilter | |
parent | d5d1baa15f5b05e9110403724d5dc72d6d541e04 (diff) |
netfilter: nf_conntrack: pass template to l4proto ->error() handler
The error handlers might need the template to get the conntrack zone
introduced in the next patches to perform a conntrack lookup.
Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'net/netfilter')
-rw-r--r-- | net/netfilter/nf_conntrack_core.c | 3 | ||||
-rw-r--r-- | net/netfilter/nf_conntrack_proto_dccp.c | 5 | ||||
-rw-r--r-- | net/netfilter/nf_conntrack_proto_tcp.c | 2 | ||||
-rw-r--r-- | net/netfilter/nf_conntrack_proto_udp.c | 4 | ||||
-rw-r--r-- | net/netfilter/nf_conntrack_proto_udplite.c | 2 |
5 files changed, 9 insertions, 7 deletions
diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c index bd831410a396..65351ed5d815 100644 --- a/net/netfilter/nf_conntrack_core.c +++ b/net/netfilter/nf_conntrack_core.c | |||
@@ -799,7 +799,8 @@ nf_conntrack_in(struct net *net, u_int8_t pf, unsigned int hooknum, | |||
799 | * inverse of the return code tells to the netfilter | 799 | * inverse of the return code tells to the netfilter |
800 | * core what to do with the packet. */ | 800 | * core what to do with the packet. */ |
801 | if (l4proto->error != NULL) { | 801 | if (l4proto->error != NULL) { |
802 | ret = l4proto->error(net, skb, dataoff, &ctinfo, pf, hooknum); | 802 | ret = l4proto->error(net, tmpl, skb, dataoff, &ctinfo, |
803 | pf, hooknum); | ||
803 | if (ret <= 0) { | 804 | if (ret <= 0) { |
804 | NF_CT_STAT_INC_ATOMIC(net, error); | 805 | NF_CT_STAT_INC_ATOMIC(net, error); |
805 | NF_CT_STAT_INC_ATOMIC(net, invalid); | 806 | NF_CT_STAT_INC_ATOMIC(net, invalid); |
diff --git a/net/netfilter/nf_conntrack_proto_dccp.c b/net/netfilter/nf_conntrack_proto_dccp.c index dd375500dccc..9a2815549375 100644 --- a/net/netfilter/nf_conntrack_proto_dccp.c +++ b/net/netfilter/nf_conntrack_proto_dccp.c | |||
@@ -561,8 +561,9 @@ static int dccp_packet(struct nf_conn *ct, const struct sk_buff *skb, | |||
561 | return NF_ACCEPT; | 561 | return NF_ACCEPT; |
562 | } | 562 | } |
563 | 563 | ||
564 | static int dccp_error(struct net *net, struct sk_buff *skb, | 564 | static int dccp_error(struct net *net, struct nf_conn *tmpl, |
565 | unsigned int dataoff, enum ip_conntrack_info *ctinfo, | 565 | struct sk_buff *skb, unsigned int dataoff, |
566 | enum ip_conntrack_info *ctinfo, | ||
566 | u_int8_t pf, unsigned int hooknum) | 567 | u_int8_t pf, unsigned int hooknum) |
567 | { | 568 | { |
568 | struct dccp_hdr _dh, *dh; | 569 | struct dccp_hdr _dh, *dh; |
diff --git a/net/netfilter/nf_conntrack_proto_tcp.c b/net/netfilter/nf_conntrack_proto_tcp.c index ad118053971a..9dd8cd4fb6e6 100644 --- a/net/netfilter/nf_conntrack_proto_tcp.c +++ b/net/netfilter/nf_conntrack_proto_tcp.c | |||
@@ -760,7 +760,7 @@ static const u8 tcp_valid_flags[(TH_FIN|TH_SYN|TH_RST|TH_ACK|TH_URG) + 1] = | |||
760 | }; | 760 | }; |
761 | 761 | ||
762 | /* Protect conntrack agaist broken packets. Code taken from ipt_unclean.c. */ | 762 | /* Protect conntrack agaist broken packets. Code taken from ipt_unclean.c. */ |
763 | static int tcp_error(struct net *net, | 763 | static int tcp_error(struct net *net, struct nf_conn *tmpl, |
764 | struct sk_buff *skb, | 764 | struct sk_buff *skb, |
765 | unsigned int dataoff, | 765 | unsigned int dataoff, |
766 | enum ip_conntrack_info *ctinfo, | 766 | enum ip_conntrack_info *ctinfo, |
diff --git a/net/netfilter/nf_conntrack_proto_udp.c b/net/netfilter/nf_conntrack_proto_udp.c index 8d38f9a4bed8..8289088b8218 100644 --- a/net/netfilter/nf_conntrack_proto_udp.c +++ b/net/netfilter/nf_conntrack_proto_udp.c | |||
@@ -91,8 +91,8 @@ static bool udp_new(struct nf_conn *ct, const struct sk_buff *skb, | |||
91 | return true; | 91 | return true; |
92 | } | 92 | } |
93 | 93 | ||
94 | static int udp_error(struct net *net, struct sk_buff *skb, unsigned int dataoff, | 94 | static int udp_error(struct net *net, struct nf_conn *tmpl, struct sk_buff *skb, |
95 | enum ip_conntrack_info *ctinfo, | 95 | unsigned int dataoff, enum ip_conntrack_info *ctinfo, |
96 | u_int8_t pf, | 96 | u_int8_t pf, |
97 | unsigned int hooknum) | 97 | unsigned int hooknum) |
98 | { | 98 | { |
diff --git a/net/netfilter/nf_conntrack_proto_udplite.c b/net/netfilter/nf_conntrack_proto_udplite.c index 0b1bc9ba6678..263b5a72588d 100644 --- a/net/netfilter/nf_conntrack_proto_udplite.c +++ b/net/netfilter/nf_conntrack_proto_udplite.c | |||
@@ -89,7 +89,7 @@ static bool udplite_new(struct nf_conn *ct, const struct sk_buff *skb, | |||
89 | return true; | 89 | return true; |
90 | } | 90 | } |
91 | 91 | ||
92 | static int udplite_error(struct net *net, | 92 | static int udplite_error(struct net *net, struct nf_conn *tmpl, |
93 | struct sk_buff *skb, | 93 | struct sk_buff *skb, |
94 | unsigned int dataoff, | 94 | unsigned int dataoff, |
95 | enum ip_conntrack_info *ctinfo, | 95 | enum ip_conntrack_info *ctinfo, |