OpenWrt – Diff between revs 2 and 3
?pathlinks?
Rev 2 | Rev 3 | |||
---|---|---|---|---|
Line 15... | Line 15... | |||
15 | Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> |
15 | Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> |
|
16 | --- |
16 | --- |
|
Line 17... | Line 17... | |||
17 | |
17 | |
|
18 | --- a/include/linux/netfilter.h |
18 | --- a/include/linux/netfilter.h |
|
19 | +++ b/include/linux/netfilter.h |
19 | +++ b/include/linux/netfilter.h |
|
Line 20... | Line 20... | |||
20 | @@ -311,8 +311,6 @@ struct nf_queue_entry; |
20 | @@ -274,8 +274,6 @@ struct nf_queue_entry; |
|
21 | |
21 | |
|
22 | struct nf_afinfo { |
22 | struct nf_afinfo { |
|
23 | unsigned short family; |
23 | unsigned short family; |
|
24 | - int (*reroute)(struct net *net, struct sk_buff *skb, |
24 | - int (*reroute)(struct net *net, struct sk_buff *skb, |
|
25 | - const struct nf_queue_entry *entry); |
25 | - const struct nf_queue_entry *entry); |
|
Line 26... | Line 26... | |||
26 | int route_key_size; |
26 | int route_key_size; |
|
27 | }; |
27 | }; |
|
28 | |
28 | |
|
29 | @@ -331,6 +329,7 @@ __sum16 nf_checksum_partial(struct sk_bu |
29 | @@ -294,6 +292,7 @@ __sum16 nf_checksum_partial(struct sk_bu |
|
30 | u_int8_t protocol, unsigned short family); |
30 | u_int8_t protocol, unsigned short family); |
|
Line 136... | Line 136... | |||
136 | .route_key_size = sizeof(struct ip_rt_info), |
136 | .route_key_size = sizeof(struct ip_rt_info), |
|
137 | }; |
137 | }; |
|
Line 138... | Line 138... | |||
138 | |
138 | |
|
139 | --- a/net/ipv6/netfilter.c |
139 | --- a/net/ipv6/netfilter.c |
|
140 | +++ b/net/ipv6/netfilter.c |
140 | +++ b/net/ipv6/netfilter.c |
|
141 | @@ -70,7 +70,7 @@ int ip6_route_me_harder(struct net *net, |
141 | @@ -69,7 +69,7 @@ int ip6_route_me_harder(struct net *net, |
|
142 | } |
142 | } |
|
Line 143... | Line 143... | |||
143 | EXPORT_SYMBOL(ip6_route_me_harder); |
143 | EXPORT_SYMBOL(ip6_route_me_harder); |
|
144 | |
144 | |
|
145 | -static int nf_ip6_reroute(struct net *net, struct sk_buff *skb, |
145 | -static int nf_ip6_reroute(struct net *net, struct sk_buff *skb, |
|
146 | +static int nf_ip6_reroute(struct sk_buff *skb, |
146 | +static int nf_ip6_reroute(struct sk_buff *skb, |
|
147 | const struct nf_queue_entry *entry) |
147 | const struct nf_queue_entry *entry) |
|
148 | { |
148 | { |
|
149 | struct ip6_rt_info *rt_info = nf_queue_entry_reroute(entry); |
149 | struct ip6_rt_info *rt_info = nf_queue_entry_reroute(entry); |
|
150 | @@ -80,7 +80,7 @@ static int nf_ip6_reroute(struct net *ne |
150 | @@ -79,7 +79,7 @@ static int nf_ip6_reroute(struct net *ne |
|
151 | if (!ipv6_addr_equal(&iph->daddr, &rt_info->daddr) || |
151 | if (!ipv6_addr_equal(&iph->daddr, &rt_info->daddr) || |
|
152 | !ipv6_addr_equal(&iph->saddr, &rt_info->saddr) || |
152 | !ipv6_addr_equal(&iph->saddr, &rt_info->saddr) || |
|
153 | skb->mark != rt_info->mark) |
153 | skb->mark != rt_info->mark) |
|
154 | - return ip6_route_me_harder(net, skb); |
154 | - return ip6_route_me_harder(net, skb); |
|
155 | + return ip6_route_me_harder(entry->state.net, skb); |
155 | + return ip6_route_me_harder(entry->state.net, skb); |
|
156 | } |
156 | } |
|
157 | return 0; |
157 | return 0; |
|
158 | } |
158 | } |
|
159 | @@ -173,11 +173,11 @@ static const struct nf_ipv6_ops ipv6ops |
159 | @@ -172,11 +172,11 @@ static const struct nf_ipv6_ops ipv6ops |
|
160 | .checksum = nf_ip6_checksum, |
160 | .checksum = nf_ip6_checksum, |
|
161 | .checksum_partial = nf_ip6_checksum_partial, |
161 | .checksum_partial = nf_ip6_checksum_partial, |
|
162 | .route = nf_ip6_route, |
162 | .route = nf_ip6_route, |
|
Line 169... | Line 169... | |||
169 | .route_key_size = sizeof(struct ip6_rt_info), |
169 | .route_key_size = sizeof(struct ip6_rt_info), |
|
170 | }; |
170 | }; |
|
Line 171... | Line 171... | |||
171 | |
171 | |
|
172 | --- a/net/netfilter/nf_queue.c |
172 | --- a/net/netfilter/nf_queue.c |
|
173 | +++ b/net/netfilter/nf_queue.c |
173 | +++ b/net/netfilter/nf_queue.c |
|
174 | @@ -266,7 +266,6 @@ void nf_reinject(struct nf_queue_entry * |
174 | @@ -250,7 +250,6 @@ void nf_reinject(struct nf_queue_entry * |
|
175 | const struct nf_hook_entry *hook_entry; |
175 | const struct nf_hook_entry *hook_entry; |
|
176 | const struct nf_hook_entries *hooks; |
176 | const struct nf_hook_entries *hooks; |
|
177 | struct sk_buff *skb = entry->skb; |
177 | struct sk_buff *skb = entry->skb; |
|
178 | - const struct nf_afinfo *afinfo; |
178 | - const struct nf_afinfo *afinfo; |
|
179 | const struct net *net; |
179 | const struct net *net; |
|
180 | unsigned int i; |
180 | unsigned int i; |
|
181 | int err; |
181 | int err; |
|
182 | @@ -293,8 +292,7 @@ void nf_reinject(struct nf_queue_entry * |
182 | @@ -277,8 +276,7 @@ void nf_reinject(struct nf_queue_entry * |
|
Line 183... | Line 183... | |||
183 | verdict = nf_hook_entry_hookfn(hook_entry, skb, &entry->state); |
183 | verdict = nf_hook_entry_hookfn(hook_entry, skb, &entry->state); |
|
184 | |
184 | |
|
185 | if (verdict == NF_ACCEPT) { |
185 | if (verdict == NF_ACCEPT) { |