Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Achou.Wang
accel-ppp
提交
263854f9
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 搜索 >>
提交
263854f9
编写于
4月 04, 2016
作者:
D
Dmitry Kozlov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
pppoe: stop "vlan timeout" timer on new connection
上级
deabfa46
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
19 addition
and
12 deletion
+19
-12
accel-pppd/ctrl/pppoe/pppoe.c
accel-pppd/ctrl/pppoe/pppoe.c
+19
-12
未找到文件。
accel-pppd/ctrl/pppoe/pppoe.c
浏览文件 @
263854f9
...
...
@@ -148,16 +148,22 @@ static void pppoe_serv_start_timer(struct pppoe_serv_t *serv)
if
(
conf_vlan_timeout
)
{
serv
->
timer
.
expire
=
pppoe_serv_timeout
;
serv
->
timer
.
expire_tv
.
tv_sec
=
conf_vlan_timeout
;
triton_timer_add
(
&
serv
->
ctx
,
&
serv
->
timer
,
0
);
if
(
serv
->
timer
.
tpd
)
triton_timer_mod
(
&
serv
->
timer
,
0
);
else
triton_timer_add
(
&
serv
->
ctx
,
&
serv
->
timer
,
0
);
pthread_mutex_unlock
(
&
serv
->
lock
);
}
else
{
pthread_mutex_unlock
(
&
serv
->
lock
);
pppoe_disc_stop
(
serv
);
pppoe_server_free
(
serv
);
}
}
static
void
disconnect
(
struct
pppoe_conn_t
*
conn
)
{
struct
pppoe_serv_t
*
serv
=
conn
->
serv
;
if
(
conn
->
ppp_started
)
{
dpado_check_prev
(
__sync_fetch_and_sub
(
&
stat_active
,
1
));
conn
->
ppp_started
=
0
;
...
...
@@ -170,20 +176,20 @@ static void disconnect(struct pppoe_conn_t *conn)
log_ppp_info1
(
"disconnected
\n
"
);
pthread_mutex_lock
(
&
conn
->
serv
->
lock
);
pthread_mutex_lock
(
&
serv
->
lock
);
list_del
(
&
conn
->
entry
);
conn
->
serv
->
conn_cnt
--
;
if
(
conn
->
serv
->
conn_cnt
==
0
)
{
if
(
conn
->
serv
->
stopping
)
{
pthread_mutex_unlock
(
&
conn
->
serv
->
lock
);
p
ppoe_server_free
(
conn
->
serv
);
}
else
if
(
conn
->
serv
->
vlan_mon
)
{
triton_context_call
(
&
conn
->
serv
->
ctx
,
(
triton_event_func
)
pppoe_serv_start_timer
,
conn
->
serv
);
serv
->
conn_cnt
--
;
if
(
serv
->
conn_cnt
==
0
)
{
if
(
serv
->
stopping
)
{
triton_context_call
(
&
serv
->
ctx
,
(
triton_event_func
)
pppoe_server_free
,
serv
);
p
thread_mutex_unlock
(
&
serv
->
lock
);
}
else
if
(
serv
->
vlan_mon
)
{
triton_context_call
(
&
serv
->
ctx
,
(
triton_event_func
)
pppoe_serv_start_timer
,
serv
);
pthread_mutex_unlock
(
&
conn
->
serv
->
lock
);
}
else
pthread_mutex_unlock
(
&
conn
->
serv
->
lock
);
pthread_mutex_unlock
(
&
serv
->
lock
);
}
else
pthread_mutex_unlock
(
&
conn
->
serv
->
lock
);
pthread_mutex_unlock
(
&
serv
->
lock
);
pthread_mutex_lock
(
&
sid_lock
);
sid_map
[
conn
->
sid
/
(
8
*
sizeof
(
long
))]
|=
1
<<
(
conn
->
sid
%
(
8
*
sizeof
(
long
)));
...
...
@@ -403,6 +409,8 @@ static struct pppoe_conn_t *allocate_channel(struct pppoe_serv_t *serv, const ui
pthread_mutex_lock
(
&
serv
->
lock
);
list_add_tail
(
&
conn
->
entry
,
&
serv
->
conn_list
);
if
(
serv
->
timer
.
tpd
)
triton_timer_del
(
&
serv
->
timer
);
serv
->
conn_cnt
++
;
pthread_mutex_unlock
(
&
serv
->
lock
);
...
...
@@ -1261,7 +1269,6 @@ static void pppoe_serv_timeout(struct triton_timer_t *t)
pthread_mutex_lock
(
&
serv
->
lock
);
if
(
serv
->
conn_cnt
)
{
triton_timer_del
(
&
serv
->
timer
);
pthread_mutex_unlock
(
&
serv
->
lock
);
return
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录