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
/
xfrm4_policy.c
diff --git
a/net/ipv4/xfrm4_policy.c
b/net/ipv4/xfrm4_policy.c
index
3aacce6
..
3ce6988
100644
(file)
--- a/
net/ipv4/xfrm4_policy.c
+++ b/
net/ipv4/xfrm4_policy.c
@@
-12,8
+12,8
@@
#include <net/xfrm.h>
#include <net/ip.h>
#include <net/xfrm.h>
#include <net/ip.h>
-
extern
struct dst_ops xfrm4_dst_ops;
-
extern
struct xfrm_policy_afinfo xfrm4_policy_afinfo;
+
static
struct dst_ops xfrm4_dst_ops;
+
static
struct xfrm_policy_afinfo xfrm4_policy_afinfo;
static struct xfrm_type_map xfrm4_type_map = { .lock = RW_LOCK_UNLOCKED };
static struct xfrm_type_map xfrm4_type_map = { .lock = RW_LOCK_UNLOCKED };
@@
-183,6
+183,15
@@
_decode_session4(struct sk_buff *skb, struct flowi *fl)
}
break;
}
break;
+ case IPPROTO_ICMP:
+ if (pskb_may_pull(skb, xprth + 2 - skb->data)) {
+ u8 *icmp = xprth;
+
+ fl->fl_icmp_type = icmp[0];
+ fl->fl_icmp_code = icmp[1];
+ }
+ break;
+
case IPPROTO_ESP:
if (pskb_may_pull(skb, xprth + 4 - skb->data)) {
u32 *ehdr = (u32 *)xprth;
case IPPROTO_ESP:
if (pskb_may_pull(skb, xprth + 4 - skb->data)) {
u32 *ehdr = (u32 *)xprth;
@@
-234,7
+243,7
@@
static void xfrm4_update_pmtu(struct dst_entry *dst, u32 mtu)
path->ops->update_pmtu(path, mtu);
}
path->ops->update_pmtu(path, mtu);
}
-struct dst_ops xfrm4_dst_ops = {
+st
atic st
ruct dst_ops xfrm4_dst_ops = {
.family = AF_INET,
.protocol = __constant_htons(ETH_P_IP),
.gc = xfrm4_garbage_collect,
.family = AF_INET,
.protocol = __constant_htons(ETH_P_IP),
.gc = xfrm4_garbage_collect,
@@
-243,7
+252,7
@@
struct dst_ops xfrm4_dst_ops = {
.entry_size = sizeof(struct xfrm_dst),
};
.entry_size = sizeof(struct xfrm_dst),
};
-struct xfrm_policy_afinfo xfrm4_policy_afinfo = {
+st
atic st
ruct xfrm_policy_afinfo xfrm4_policy_afinfo = {
.family = AF_INET,
.lock = RW_LOCK_UNLOCKED,
.type_map = &xfrm4_type_map,
.family = AF_INET,
.lock = RW_LOCK_UNLOCKED,
.type_map = &xfrm4_type_map,
@@
-254,12
+263,12
@@
struct xfrm_policy_afinfo xfrm4_policy_afinfo = {
.decode_session = _decode_session4,
};
.decode_session = _decode_session4,
};
-void __init xfrm4_policy_init(void)
+
static
void __init xfrm4_policy_init(void)
{
xfrm_policy_register_afinfo(&xfrm4_policy_afinfo);
}
{
xfrm_policy_register_afinfo(&xfrm4_policy_afinfo);
}
-void __exit xfrm4_policy_fini(void)
+
static
void __exit xfrm4_policy_fini(void)
{
xfrm_policy_unregister_afinfo(&xfrm4_policy_afinfo);
}
{
xfrm_policy_unregister_afinfo(&xfrm4_policy_afinfo);
}