Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
477c6086
cloud-kernel
项目概览
openanolis
/
cloud-kernel
接近 2 年 前同步成功
通知
170
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
477c6086
编写于
2月 18, 2010
作者:
P
Patrick McHardy
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'ebt_config_compat_v4' of
git://git.breakpoint.cc/fw/nf-next-2.6
上级
6457d26b
6e705f56
变更
4
展开全部
隐藏空白更改
内联
并排
Showing
4 changed file
with
1132 addition
and
127 deletion
+1132
-127
net/bridge/netfilter/ebt_limit.c
net/bridge/netfilter/ebt_limit.c
+16
-0
net/bridge/netfilter/ebt_mark.c
net/bridge/netfilter/ebt_mark.c
+31
-0
net/bridge/netfilter/ebt_mark_m.c
net/bridge/netfilter/ebt_mark_m.c
+37
-0
net/bridge/netfilter/ebtables.c
net/bridge/netfilter/ebtables.c
+1048
-127
未找到文件。
net/bridge/netfilter/ebt_limit.c
浏览文件 @
477c6086
...
...
@@ -84,6 +84,19 @@ static bool ebt_limit_mt_check(const struct xt_mtchk_param *par)
return
true
;
}
#ifdef CONFIG_COMPAT
/*
* no conversion function needed --
* only avg/burst have meaningful values in userspace.
*/
struct
ebt_compat_limit_info
{
compat_uint_t
avg
,
burst
;
compat_ulong_t
prev
;
compat_uint_t
credit
,
credit_cap
,
cost
;
};
#endif
static
struct
xt_match
ebt_limit_mt_reg
__read_mostly
=
{
.
name
=
"limit"
,
.
revision
=
0
,
...
...
@@ -91,6 +104,9 @@ static struct xt_match ebt_limit_mt_reg __read_mostly = {
.
match
=
ebt_limit_mt
,
.
checkentry
=
ebt_limit_mt_check
,
.
matchsize
=
sizeof
(
struct
ebt_limit_info
),
#ifdef CONFIG_COMPAT
.
compatsize
=
sizeof
(
struct
ebt_compat_limit_info
),
#endif
.
me
=
THIS_MODULE
,
};
...
...
net/bridge/netfilter/ebt_mark.c
浏览文件 @
477c6086
...
...
@@ -52,6 +52,32 @@ static bool ebt_mark_tg_check(const struct xt_tgchk_param *par)
return
false
;
return
true
;
}
#ifdef CONFIG_COMPAT
struct
compat_ebt_mark_t_info
{
compat_ulong_t
mark
;
compat_uint_t
target
;
};
static
void
mark_tg_compat_from_user
(
void
*
dst
,
const
void
*
src
)
{
const
struct
compat_ebt_mark_t_info
*
user
=
src
;
struct
ebt_mark_t_info
*
kern
=
dst
;
kern
->
mark
=
user
->
mark
;
kern
->
target
=
user
->
target
;
}
static
int
mark_tg_compat_to_user
(
void
__user
*
dst
,
const
void
*
src
)
{
struct
compat_ebt_mark_t_info
__user
*
user
=
dst
;
const
struct
ebt_mark_t_info
*
kern
=
src
;
if
(
put_user
(
kern
->
mark
,
&
user
->
mark
)
||
put_user
(
kern
->
target
,
&
user
->
target
))
return
-
EFAULT
;
return
0
;
}
#endif
static
struct
xt_target
ebt_mark_tg_reg
__read_mostly
=
{
.
name
=
"mark"
,
...
...
@@ -60,6 +86,11 @@ static struct xt_target ebt_mark_tg_reg __read_mostly = {
.
target
=
ebt_mark_tg
,
.
checkentry
=
ebt_mark_tg_check
,
.
targetsize
=
sizeof
(
struct
ebt_mark_t_info
),
#ifdef CONFIG_COMPAT
.
compatsize
=
sizeof
(
struct
compat_ebt_mark_t_info
),
.
compat_from_user
=
mark_tg_compat_from_user
,
.
compat_to_user
=
mark_tg_compat_to_user
,
#endif
.
me
=
THIS_MODULE
,
};
...
...
net/bridge/netfilter/ebt_mark_m.c
浏览文件 @
477c6086
...
...
@@ -35,6 +35,38 @@ static bool ebt_mark_mt_check(const struct xt_mtchk_param *par)
return
true
;
}
#ifdef CONFIG_COMPAT
struct
compat_ebt_mark_m_info
{
compat_ulong_t
mark
,
mask
;
uint8_t
invert
,
bitmask
;
};
static
void
mark_mt_compat_from_user
(
void
*
dst
,
const
void
*
src
)
{
const
struct
compat_ebt_mark_m_info
*
user
=
src
;
struct
ebt_mark_m_info
*
kern
=
dst
;
kern
->
mark
=
user
->
mark
;
kern
->
mask
=
user
->
mask
;
kern
->
invert
=
user
->
invert
;
kern
->
bitmask
=
user
->
bitmask
;
}
static
int
mark_mt_compat_to_user
(
void
__user
*
dst
,
const
void
*
src
)
{
struct
compat_ebt_mark_m_info
__user
*
user
=
dst
;
const
struct
ebt_mark_m_info
*
kern
=
src
;
if
(
put_user
(
kern
->
mark
,
&
user
->
mark
)
||
put_user
(
kern
->
mask
,
&
user
->
mask
)
||
put_user
(
kern
->
invert
,
&
user
->
invert
)
||
put_user
(
kern
->
bitmask
,
&
user
->
bitmask
))
return
-
EFAULT
;
return
0
;
}
#endif
static
struct
xt_match
ebt_mark_mt_reg
__read_mostly
=
{
.
name
=
"mark_m"
,
.
revision
=
0
,
...
...
@@ -42,6 +74,11 @@ static struct xt_match ebt_mark_mt_reg __read_mostly = {
.
match
=
ebt_mark_mt
,
.
checkentry
=
ebt_mark_mt_check
,
.
matchsize
=
sizeof
(
struct
ebt_mark_m_info
),
#ifdef CONFIG_COMPAT
.
compatsize
=
sizeof
(
struct
compat_ebt_mark_m_info
),
.
compat_from_user
=
mark_mt_compat_from_user
,
.
compat_to_user
=
mark_mt_compat_to_user
,
#endif
.
me
=
THIS_MODULE
,
};
...
...
net/bridge/netfilter/ebtables.c
浏览文件 @
477c6086
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录