summaryrefslogtreecommitdiff
path: root/accel-pppd/ctrl
diff options
context:
space:
mode:
authorGuillaume Nault <g.nault@alphalink.fr>2013-01-24 16:14:26 +0100
committerKozlov Dmitry <xeb@mail.ru>2013-01-25 00:05:10 +0400
commit03b5f8b86e84170a04196ed15a8da56dcef6e4c0 (patch)
tree11aa63d8f463497629a737702fc4c95cce5e50e1 /accel-pppd/ctrl
parent459720a96d868e31b8ab859fdf488c1c208b2647 (diff)
downloadaccel-ppp-xebd-03b5f8b86e84170a04196ed15a8da56dcef6e4c0.tar.gz
accel-ppp-xebd-03b5f8b86e84170a04196ed15a8da56dcef6e4c0.zip
l2tp: Register sessions timers in sessions context
The sessions timeout timers were registered in the triton context of their parent tunnel. This patch uses the session's context instead because the timer's callback function, l2tp_session_timeout(), expects to be called from a session context. Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
Diffstat (limited to 'accel-pppd/ctrl')
-rw-r--r--accel-pppd/ctrl/l2tp/l2tp.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/accel-pppd/ctrl/l2tp/l2tp.c b/accel-pppd/ctrl/l2tp/l2tp.c
index 4292aca..8dfbf65 100644
--- a/accel-pppd/ctrl/l2tp/l2tp.c
+++ b/accel-pppd/ctrl/l2tp/l2tp.c
@@ -257,10 +257,10 @@ static void __l2tp_session_free(void *data)
log_ppp_info1("disconnected\n");
- triton_context_unregister(&sess->sctx);
-
if (sess->timeout_timer.tpd)
triton_timer_del(&sess->timeout_timer);
+ triton_context_unregister(&sess->sctx);
+
if (sess->ppp.fd != -1)
close(sess->ppp.fd);
if (sess->ppp.ses.chan_name)
@@ -982,8 +982,7 @@ static int l2tp_send_ICRP(struct l2tp_sess_t *sess)
l2tp_send(sess->paren_conn, pack, 0);
if (!sess->timeout_timer.tpd)
- triton_timer_add(&sess->paren_conn->ctx,
- &sess->timeout_timer, 0);
+ triton_timer_add(&sess->sctx, &sess->timeout_timer, 0);
else
triton_timer_mod(&sess->timeout_timer, 0);