diff options
author | Dmitry Kozlov <xeb@mail.ru> | 2014-05-12 14:36:46 +0400 |
---|---|---|
committer | Dmitry Kozlov <xeb@mail.ru> | 2014-05-12 14:36:46 +0400 |
commit | 1c79692a883d065c4d0c185e91c16afda49d5d36 (patch) | |
tree | fca81254214fcaa1f86f0ff64bdb9e29148420f4 | |
parent | f28cc4b2c0a00029b7aee3cc36d478df279f9c9b (diff) | |
download | accel-ppp-1c79692a883d065c4d0c185e91c16afda49d5d36.tar.gz accel-ppp-1c79692a883d065c4d0c185e91c16afda49d5d36.zip |
radius: close socket after receiving accounting reply
-rw-r--r-- | accel-pppd/radius/acct.c | 9 |
1 files 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); |