Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Achou.Wang
accel-ppp
提交
fc8e1ddf
A
accel-ppp
项目概览
Achou.Wang
/
accel-ppp
通知
6
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
accel-ppp
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
fc8e1ddf
编写于
3月 07, 2012
作者:
K
Kozlov Dmitry
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
pppoe: fix per-interface PADI limiting
上级
cf40442a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
10 addition
and
0 deletion
+10
-0
accel-pppd/ctrl/pppoe/pppoe.c
accel-pppd/ctrl/pppoe/pppoe.c
+9
-0
accel-pppd/ctrl/pppoe/pppoe.h
accel-pppd/ctrl/pppoe/pppoe.h
+1
-0
未找到文件。
accel-pppd/ctrl/pppoe/pppoe.c
浏览文件 @
fc8e1ddf
...
...
@@ -723,6 +723,7 @@ static int check_padi_limit(struct pppoe_serv_t *serv, uint8_t *addr)
if
((
ts
.
tv_sec
-
padi
->
ts
.
tv_sec
)
*
1000
+
(
ts
.
tv_nsec
-
padi
->
ts
.
tv_nsec
)
/
1000000
>
1000
)
{
list_del
(
&
padi
->
entry
);
mempool_free
(
padi
);
serv
->
padi_cnt
--
;
__sync_sub_and_fetch
(
&
total_padi_cnt
,
1
);
}
else
break
;
...
...
@@ -767,6 +768,7 @@ static void pppoe_recv_PADI(struct pppoe_serv_t *serv, uint8_t *pack, int size)
struct
pppoe_tag
*
service_name_tag
=
NULL
;
int
n
,
service_match
=
0
;
struct
delayed_pado_t
*
pado
;
struct
timespec
ts
;
__sync_add_and_fetch
(
&
stat_PADI_recv
,
1
);
...
...
@@ -775,6 +777,13 @@ static void pppoe_recv_PADI(struct pppoe_serv_t *serv, uint8_t *pack, int size)
if
(
check_padi_limit
(
serv
,
ethhdr
->
h_source
))
{
__sync_add_and_fetch
(
&
stat_PADI_drop
,
1
);
if
(
conf_verbose
)
{
clock_gettime
(
CLOCK_MONOTONIC
,
&
ts
);
if
(
ts
.
tv_sec
-
60
>=
serv
->
last_padi_limit_warn
)
{
log_warn
(
"pppoe: discarding overlimit PADI packets on interface %s
\n
"
,
serv
->
ifname
);
serv
->
last_padi_limit_warn
=
ts
.
tv_sec
;
}
}
return
;
}
...
...
accel-pppd/ctrl/pppoe/pppoe.h
浏览文件 @
fc8e1ddf
...
...
@@ -87,6 +87,7 @@ struct pppoe_serv_t
struct
list_head
padi_list
;
int
padi_cnt
;
int
padi_limit
;
time_t
last_padi_limit_warn
;
};
extern
int
conf_verbose
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录