git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 1.9.3
[linux-2.6.git]
/
net
/
ipv4
/
netfilter
/
ip_fw_compat_masq.c
diff --git
a/net/ipv4/netfilter/ip_fw_compat_masq.c
b/net/ipv4/netfilter/ip_fw_compat_masq.c
index
fbd8b9b
..
07fc794
100644
(file)
--- a/
net/ipv4/netfilter/ip_fw_compat_masq.c
+++ b/
net/ipv4/netfilter/ip_fw_compat_masq.c
@@
-31,6
+31,7
@@
#include <linux/netfilter_ipv4/ip_conntrack.h>
#include <linux/netfilter_ipv4/ip_conntrack_core.h>
#include <linux/netfilter_ipv4/ip_conntrack.h>
#include <linux/netfilter_ipv4/ip_conntrack_core.h>
+#include <linux/netfilter_ipv4/ip_conntrack_protocol.h>
#include <linux/netfilter_ipv4/ip_nat.h>
#include <linux/netfilter_ipv4/ip_nat_core.h>
#include <linux/netfilter_ipv4/listhelp.h>
#include <linux/netfilter_ipv4/ip_nat.h>
#include <linux/netfilter_ipv4/ip_nat_core.h>
#include <linux/netfilter_ipv4/listhelp.h>
@@
-144,7
+145,8
@@
check_for_demasq(struct sk_buff **pskb)
switch ((*pskb)->nh.iph->protocol) {
case IPPROTO_ICMP:
/* ICMP errors. */
switch ((*pskb)->nh.iph->protocol) {
case IPPROTO_ICMP:
/* ICMP errors. */
- ct = icmp_error_track(*pskb, &ctinfo, NF_IP_PRE_ROUTING);
+ protocol->error(*pskb, &ctinfo, NF_IP_PRE_ROUTING);
+ ct = (struct ip_conntrack *)(*pskb)->nfct;
if (ct) {
/* We only do SNAT in the compatibility layer.
So we can manipulate ICMP errors from
if (ct) {
/* We only do SNAT in the compatibility layer.
So we can manipulate ICMP errors from
@@
-165,7
+167,8
@@
check_for_demasq(struct sk_buff **pskb)
case IPPROTO_UDP:
IP_NF_ASSERT(((*pskb)->nh.iph->frag_off & htons(IP_OFFSET)) == 0);
case IPPROTO_UDP:
IP_NF_ASSERT(((*pskb)->nh.iph->frag_off & htons(IP_OFFSET)) == 0);
- if (!get_tuple((*pskb)->nh.iph, *pskb, (*pskb)->nh.iph->ihl*4, &tuple, protocol)) {
+ if (!ip_ct_get_tuple((*pskb)->nh.iph, *pskb,
+ (*pskb)->nh.iph->ihl*4, &tuple, protocol)) {
if (net_ratelimit())
printk("ip_fw_compat_masq: Can't get tuple\n");
return NF_ACCEPT;
if (net_ratelimit())
printk("ip_fw_compat_masq: Can't get tuple\n");
return NF_ACCEPT;
@@
-184,7
+187,7
@@
check_for_demasq(struct sk_buff **pskb)
NULL, NULL, NULL);
/* Put back the reference gained from find_get */
NULL, NULL, NULL);
/* Put back the reference gained from find_get */
- nf_conntrack_put(&h->ctrack->
infos[0]
);
+ nf_conntrack_put(&h->ctrack->
ct_general
);
if (ret == NF_ACCEPT) {
struct ip_conntrack *ct;
ct = ip_conntrack_get(*pskb, &ctinfo);
if (ret == NF_ACCEPT) {
struct ip_conntrack *ct;
ct = ip_conntrack_get(*pskb, &ctinfo);
@@
-203,7
+206,7
@@
check_for_demasq(struct sk_buff **pskb)
} else {
if (h)
/* Put back the reference gained from find_get */
} else {
if (h)
/* Put back the reference gained from find_get */
- nf_conntrack_put(&h->ctrack->
infos[0]
);
+ nf_conntrack_put(&h->ctrack->
ct_general
);
ret = NF_ACCEPT;
}
ret = NF_ACCEPT;
}