summaryrefslogtreecommitdiff
path: root/accel-pppd
diff options
context:
space:
mode:
authorKozlov Dmitry <xeb@mail.ru>2012-05-14 22:22:54 +0400
committerKozlov Dmitry <xeb@mail.ru>2012-05-14 22:30:13 +0400
commit64c36cc7dc0beac13c715bb5dedc697861c1badf (patch)
treea5cdd9d40a8f1c7662f541340ec6c55bc7b80252 /accel-pppd
parentaff9450a3b95e848f761533a4c659269477a2fd4 (diff)
downloadaccel-ppp-64c36cc7dc0beac13c715bb5dedc697861c1badf.tar.gz
accel-ppp-64c36cc7dc0beac13c715bb5dedc697861c1badf.zip
pppd_compat: use EV_PPP_PRE_FINISHED event to start ip-down script (fixes unexpected radattr file removal)
Diffstat (limited to 'accel-pppd')
-rw-r--r--accel-pppd/extra/pppd_compat.c2
-rw-r--r--accel-pppd/include/events.h1
-rw-r--r--accel-pppd/ppp/ppp.c2
3 files changed, 4 insertions, 1 deletions
diff --git a/accel-pppd/extra/pppd_compat.c b/accel-pppd/extra/pppd_compat.c
index d4eb10be..d89a6a6a 100644
--- a/accel-pppd/extra/pppd_compat.c
+++ b/accel-pppd/extra/pppd_compat.c
@@ -538,7 +538,7 @@ static void init(void)
triton_event_register_handler(EV_PPP_PRE_UP, (triton_event_func)ev_ppp_pre_up);
triton_event_register_handler(EV_PPP_STARTED, (triton_event_func)ev_ppp_started);
triton_event_register_handler(EV_PPP_FINISHING, (triton_event_func)ev_ppp_finishing);
- triton_event_register_handler(EV_PPP_FINISHED, (triton_event_func)ev_ppp_finished);
+ triton_event_register_handler(EV_PPP_PRE_FINISHED, (triton_event_func)ev_ppp_finished);
#ifdef RADIUS
if (triton_module_loaded("radius")) {
triton_event_register_handler(EV_RADIUS_ACCESS_ACCEPT, (triton_event_func)ev_radius_access_accept);
diff --git a/accel-pppd/include/events.h b/accel-pppd/include/events.h
index 4e48fe15..5d6fea7e 100644
--- a/accel-pppd/include/events.h
+++ b/accel-pppd/include/events.h
@@ -16,6 +16,7 @@
#define EV_PPP_ACCT_START 10
#define EV_CONFIG_RELOAD 11
#define EV_PPP_AUTH_FAILED 12
+#define EV_PPP_PRE_FINISHED 13
#define EV_IP_CHANGED 100
#define EV_SHAPER 101
#define EV_MPPE_KEYS 102
diff --git a/accel-pppd/ppp/ppp.c b/accel-pppd/ppp/ppp.c
index 3ab71662..4f3beb9e 100644
--- a/accel-pppd/ppp/ppp.c
+++ b/accel-pppd/ppp/ppp.c
@@ -202,6 +202,8 @@ exit_close_chan:
static void destablish_ppp(struct ppp_t *ppp)
{
+ triton_event_fire(EV_PPP_PRE_FINISHED, ppp);
+
pthread_rwlock_wrlock(&ppp_lock);
list_del(&ppp->entry);
pthread_rwlock_unlock(&ppp_lock);