From 1c79692a883d065c4d0c185e91c16afda49d5d36 Mon Sep 17 00:00:00 2001 From: Dmitry Kozlov Date: Mon, 12 May 2014 14:36:46 +0400 Subject: [PATCH] radius: close socket after receiving accounting reply --- accel-pppd/radius/acct.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/accel-pppd/radius/acct.c b/accel-pppd/radius/acct.c index 1803344..dc14bcc 100644 --- a/accel-pppd/radius/acct.c +++ b/accel-pppd/radius/acct.c @@ -107,7 +107,9 @@ static int rad_acct_read(struct triton_md_handler_t *h) triton_timer_del(&req->timeout); } - return 0; + triton_md_unregister_handler(h, 1); + + return 1; } static void __rad_req_send(struct rad_req_t *req) @@ -148,6 +150,7 @@ static void rad_acct_timeout(struct triton_timer_t *t) if (conf_acct_timeout == 0) { rad_server_timeout(req->serv); triton_timer_del(t); + triton_md_unregister_handler(&req->hnd, 1); return; } @@ -368,7 +371,9 @@ void rad_acct_stop(struct radius_pd_t *rpd) triton_timer_del(&rpd->acct_interim_timer); if (rpd->acct_req) { - triton_md_unregister_handler(&rpd->acct_req->hnd, 0); + if (rpd->acct_req->hnd.tpd) + triton_md_unregister_handler(&rpd->acct_req->hnd, 0); + if (rpd->acct_req->timeout.tpd) triton_timer_del(&rpd->acct_req->timeout); -- GitLab