From 3126cd8c4a5e43e382f773fc1a2045eef5b740a2 Mon Sep 17 00:00:00 2001 From: Kozlov Dmitry Date: Thu, 2 Jun 2011 13:30:45 +0400 Subject: ppp: make auth layer started after authentication acknowledge packet sent --- accel-pppd/ppp/ppp_auth.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'accel-pppd') diff --git a/accel-pppd/ppp/ppp_auth.c b/accel-pppd/ppp/ppp_auth.c index e02d8c1e..c8f3b95a 100644 --- a/accel-pppd/ppp/ppp_auth.c +++ b/accel-pppd/ppp/ppp_auth.c @@ -304,6 +304,16 @@ static void ppp_terminate_sec(struct ppp_t *ppp) ppp_terminate(ppp, TERM_NAS_REQUEST, 0); } +static void __ppp_auth_started(struct ppp_t *ppp) +{ + struct auth_layer_data_t *ad = container_of(ppp_find_layer_data(ppp, &auth_layer), typeof(*ad), ld); + + log_ppp_debug("auth_layer_started\n"); + ppp_layer_started(ppp, &ad->ld); + log_ppp_info1("%s: authentication successed\n", ppp->username); + triton_event_fire(EV_PPP_AUTHORIZED, ppp); +} + int __export ppp_auth_successed(struct ppp_t *ppp, char *username) { struct ppp_t *p; @@ -329,10 +339,7 @@ int __export ppp_auth_successed(struct ppp_t *ppp, char *username) ppp->username = username; pthread_rwlock_unlock(&ppp_lock); - log_ppp_debug("auth_layer_started\n"); - ppp_layer_started(ppp, &ad->ld); - log_ppp_info1("%s: authentication successed\n", username); - triton_event_fire(EV_PPP_AUTHORIZED, ppp); + triton_context_call(ppp->ctrl->ctx, (triton_event_func)__ppp_auth_started, ppp); return 0; } -- cgit v1.2.3