Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
7775aa76
K
Kernel
项目概览
openeuler
/
Kernel
大约 1 年 前同步成功
通知
6
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
7775aa76
编写于
2月 15, 2006
作者:
L
Linus Torvalds
浏览文件
操作
浏览文件
下载
差异文件
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
上级
93544cc6
78872ccb
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
47 addition
and
6 deletion
+47
-6
include/linux/netfilter_ipv4.h
include/linux/netfilter_ipv4.h
+1
-1
net/bridge/br_stp_if.c
net/bridge/br_stp_if.c
+2
-2
net/ipv4/netfilter.c
net/ipv4/netfilter.c
+41
-0
net/ipv4/netfilter/ip_nat_standalone.c
net/ipv4/netfilter/ip_nat_standalone.c
+3
-3
未找到文件。
include/linux/netfilter_ipv4.h
浏览文件 @
7775aa76
...
...
@@ -79,7 +79,7 @@ enum nf_ip_hook_priorities {
#ifdef __KERNEL__
extern
int
ip_route_me_harder
(
struct
sk_buff
**
pskb
);
extern
int
ip_xfrm_me_harder
(
struct
sk_buff
**
pskb
);
#endif
/*__KERNEL__*/
#endif
/*__LINUX_IP_NETFILTER_H*/
net/bridge/br_stp_if.c
浏览文件 @
7775aa76
...
...
@@ -67,7 +67,7 @@ void br_stp_disable_bridge(struct net_bridge *br)
{
struct
net_bridge_port
*
p
;
spin_lock
(
&
br
->
lock
);
spin_lock
_bh
(
&
br
->
lock
);
list_for_each_entry
(
p
,
&
br
->
port_list
,
list
)
{
if
(
p
->
state
!=
BR_STATE_DISABLED
)
br_stp_disable_port
(
p
);
...
...
@@ -76,7 +76,7 @@ void br_stp_disable_bridge(struct net_bridge *br)
br
->
topology_change
=
0
;
br
->
topology_change_detected
=
0
;
spin_unlock
(
&
br
->
lock
);
spin_unlock
_bh
(
&
br
->
lock
);
del_timer_sync
(
&
br
->
hello_timer
);
del_timer_sync
(
&
br
->
topology_change_timer
);
...
...
net/ipv4/netfilter.c
浏览文件 @
7775aa76
...
...
@@ -78,6 +78,47 @@ int ip_route_me_harder(struct sk_buff **pskb)
}
EXPORT_SYMBOL
(
ip_route_me_harder
);
#ifdef CONFIG_XFRM
int
ip_xfrm_me_harder
(
struct
sk_buff
**
pskb
)
{
struct
flowi
fl
;
unsigned
int
hh_len
;
struct
dst_entry
*
dst
;
if
(
IPCB
(
*
pskb
)
->
flags
&
IPSKB_XFRM_TRANSFORMED
)
return
0
;
if
(
xfrm_decode_session
(
*
pskb
,
&
fl
,
AF_INET
)
<
0
)
return
-
1
;
dst
=
(
*
pskb
)
->
dst
;
if
(
dst
->
xfrm
)
dst
=
((
struct
xfrm_dst
*
)
dst
)
->
route
;
dst_hold
(
dst
);
if
(
xfrm_lookup
(
&
dst
,
&
fl
,
(
*
pskb
)
->
sk
,
0
)
<
0
)
return
-
1
;
dst_release
((
*
pskb
)
->
dst
);
(
*
pskb
)
->
dst
=
dst
;
/* Change in oif may mean change in hh_len. */
hh_len
=
(
*
pskb
)
->
dst
->
dev
->
hard_header_len
;
if
(
skb_headroom
(
*
pskb
)
<
hh_len
)
{
struct
sk_buff
*
nskb
;
nskb
=
skb_realloc_headroom
(
*
pskb
,
hh_len
);
if
(
!
nskb
)
return
-
1
;
if
((
*
pskb
)
->
sk
)
skb_set_owner_w
(
nskb
,
(
*
pskb
)
->
sk
);
kfree_skb
(
*
pskb
);
*
pskb
=
nskb
;
}
return
0
;
}
EXPORT_SYMBOL
(
ip_xfrm_me_harder
);
#endif
void
(
*
ip_nat_decode_session
)(
struct
sk_buff
*
,
struct
flowi
*
);
EXPORT_SYMBOL
(
ip_nat_decode_session
);
...
...
net/ipv4/netfilter/ip_nat_standalone.c
浏览文件 @
7775aa76
...
...
@@ -235,19 +235,19 @@ ip_nat_out(unsigned int hooknum,
return
NF_ACCEPT
;
ret
=
ip_nat_fn
(
hooknum
,
pskb
,
in
,
out
,
okfn
);
#ifdef CONFIG_XFRM
if
(
ret
!=
NF_DROP
&&
ret
!=
NF_STOLEN
&&
(
ct
=
ip_conntrack_get
(
*
pskb
,
&
ctinfo
))
!=
NULL
)
{
enum
ip_conntrack_dir
dir
=
CTINFO2DIR
(
ctinfo
);
if
(
ct
->
tuplehash
[
dir
].
tuple
.
src
.
ip
!=
ct
->
tuplehash
[
!
dir
].
tuple
.
dst
.
ip
#ifdef CONFIG_XFRM
||
ct
->
tuplehash
[
dir
].
tuple
.
src
.
u
.
all
!=
ct
->
tuplehash
[
!
dir
].
tuple
.
dst
.
u
.
all
#endif
)
return
ip_
route
_me_harder
(
pskb
)
==
0
?
ret
:
NF_DROP
;
return
ip_
xfrm
_me_harder
(
pskb
)
==
0
?
ret
:
NF_DROP
;
}
#endif
return
ret
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录