diff options
author | Guillaume Nault <g.nault@alphalink.fr> | 2013-01-24 16:14:18 +0100 |
---|---|---|
committer | Kozlov Dmitry <xeb@mail.ru> | 2013-01-25 00:04:53 +0400 |
commit | 459720a96d868e31b8ab859fdf488c1c208b2647 (patch) | |
tree | bfd574523f3027cd4bc4127189f1fd9a97717031 /CMakeLists.txt | |
parent | a478611de8d0454389225d296a0c210d261a1b5b (diff) | |
download | accel-ppp-459720a96d868e31b8ab859fdf488c1c208b2647.tar.gz accel-ppp-459720a96d868e31b8ab859fdf488c1c208b2647.zip |
l2tp: Fix PPP session disconnection
When a PPP session terminates on its own (i.e. not on behalf of a L2TP
tunnel/session request), the l2tp_ppp_finished() callback calls the
L2TP session disconnection function without updating the session's
state.
Session disconnection code then works like if the PPP session was still
up: it tries to disconnect the PPP by calling ap_session_terminate().
But since the PPP is already terminated, it returns immediately,
without calling the l2tp_ppp_finished() callback; so session cleanup
won't happen.
This patch updates the session's state upon PPP disconnection, so that
the session disconnection code won't try to disconnect the PPP in
__l2tp_session_free().
The stat_active counter is now updated inside the l2tp_ppp_finished()
callback so that it gets called upon any PPP disconnection.
Sending of the EV_CTRL_FINISHED event has also been moved. It is now
performed in the generic part of __l2tp_session_free() because it has
to be done every time the session really terminates.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
Diffstat (limited to 'CMakeLists.txt')
0 files changed, 0 insertions, 0 deletions