Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
5a49d0e0
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
5a49d0e0
编写于
3月 12, 2011
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
netfilter: Use flowi4 and flowi6 in nf_conntrack_h323_main
Signed-off-by:
N
David S. Miller
<
davem@davemloft.net
>
上级
b6f21b26
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
20 addition
and
12 deletion
+20
-12
net/netfilter/nf_conntrack_h323_main.c
net/netfilter/nf_conntrack_h323_main.c
+20
-12
未找到文件。
net/netfilter/nf_conntrack_h323_main.c
浏览文件 @
5a49d0e0
...
...
@@ -714,7 +714,6 @@ static int callforward_do_filter(const union nf_inet_addr *src,
u_int8_t
family
)
{
const
struct
nf_afinfo
*
afinfo
;
struct
flowi
fl1
,
fl2
;
int
ret
=
0
;
/* rcu_read_lock()ed by nf_hook_slow() */
...
...
@@ -722,17 +721,20 @@ static int callforward_do_filter(const union nf_inet_addr *src,
if
(
!
afinfo
)
return
0
;
memset
(
&
fl1
,
0
,
sizeof
(
fl1
));
memset
(
&
fl2
,
0
,
sizeof
(
fl2
));
switch
(
family
)
{
case
AF_INET
:
{
struct
flowi4
fl1
,
fl2
;
struct
rtable
*
rt1
,
*
rt2
;
fl1
.
fl4_dst
=
src
->
ip
;
fl2
.
fl4_dst
=
dst
->
ip
;
if
(
!
afinfo
->
route
((
struct
dst_entry
**
)
&
rt1
,
&
fl1
))
{
if
(
!
afinfo
->
route
((
struct
dst_entry
**
)
&
rt2
,
&
fl2
))
{
memset
(
&
fl1
,
0
,
sizeof
(
fl1
));
fl1
.
daddr
=
src
->
ip
;
memset
(
&
fl2
,
0
,
sizeof
(
fl2
));
fl2
.
daddr
=
dst
->
ip
;
if
(
!
afinfo
->
route
((
struct
dst_entry
**
)
&
rt1
,
flowi4_to_flowi
(
&
fl1
)))
{
if
(
!
afinfo
->
route
((
struct
dst_entry
**
)
&
rt2
,
flowi4_to_flowi
(
&
fl2
)))
{
if
(
rt1
->
rt_gateway
==
rt2
->
rt_gateway
&&
rt1
->
dst
.
dev
==
rt2
->
dst
.
dev
)
ret
=
1
;
...
...
@@ -745,12 +747,18 @@ static int callforward_do_filter(const union nf_inet_addr *src,
#if defined(CONFIG_NF_CONNTRACK_IPV6) || \
defined(CONFIG_NF_CONNTRACK_IPV6_MODULE)
case
AF_INET6
:
{
struct
flowi6
fl1
,
fl2
;
struct
rt6_info
*
rt1
,
*
rt2
;
memcpy
(
&
fl1
.
fl6_dst
,
src
,
sizeof
(
fl1
.
fl6_dst
));
memcpy
(
&
fl2
.
fl6_dst
,
dst
,
sizeof
(
fl2
.
fl6_dst
));
if
(
!
afinfo
->
route
((
struct
dst_entry
**
)
&
rt1
,
&
fl1
))
{
if
(
!
afinfo
->
route
((
struct
dst_entry
**
)
&
rt2
,
&
fl2
))
{
memset
(
&
fl1
,
0
,
sizeof
(
fl1
));
ipv6_addr_copy
(
&
fl1
.
daddr
,
&
src
->
in6
);
memset
(
&
fl2
,
0
,
sizeof
(
fl2
));
ipv6_addr_copy
(
&
fl2
.
daddr
,
&
dst
->
in6
);
if
(
!
afinfo
->
route
((
struct
dst_entry
**
)
&
rt1
,
flowi6_to_flowi
(
&
fl1
)))
{
if
(
!
afinfo
->
route
((
struct
dst_entry
**
)
&
rt2
,
flowi6_to_flowi
(
&
fl2
)))
{
if
(
!
memcmp
(
&
rt1
->
rt6i_gateway
,
&
rt2
->
rt6i_gateway
,
sizeof
(
rt1
->
rt6i_gateway
))
&&
rt1
->
dst
.
dev
==
rt2
->
dst
.
dev
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录