diff options
author | Kozlov Dmitry <dima@server> | 2011-08-16 17:46:25 +0400 |
---|---|---|
committer | Kozlov Dmitry <dima@server> | 2011-08-16 17:46:25 +0400 |
commit | dc7cbe120d8794d8520e6d9d35c121474453d807 (patch) | |
tree | a6eb87b3dca80e110b6390278b63c782a3e8a56c /accel-pppd/radius/acct.c | |
parent | 852f842d6521c5c260d24cf23a0e5a317cf25a0b (diff) | |
download | accel-ppp-xebd-dc7cbe120d8794d8520e6d9d35c121474453d807.tar.gz accel-ppp-xebd-dc7cbe120d8794d8520e6d9d35c121474453d807.zip |
multi-radius support
Diffstat (limited to 'accel-pppd/radius/acct.c')
-rw-r--r-- | accel-pppd/radius/acct.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/accel-pppd/radius/acct.c b/accel-pppd/radius/acct.c index 2657fb3..66dcbb4 100644 --- a/accel-pppd/radius/acct.c +++ b/accel-pppd/radius/acct.c @@ -221,7 +221,7 @@ int rad_acct_start(struct radius_pd_t *rpd) time_t ts; unsigned int dt; - if (!rpd->acct_req->serv) + if (!conf_accounting) return 0; rpd->acct_req = rad_req_alloc(rpd, CODE_ACCOUNTING_REQUEST, rpd->ppp->username); @@ -346,7 +346,7 @@ void rad_acct_stop(struct radius_pd_t *rpd) time_t ts; unsigned int dt; - if (!rpd->acct_req->serv) + if (!rpd->acct_req || !rpd->acct_req->serv) return; if (rpd->acct_interim_timer.tpd) @@ -443,14 +443,15 @@ void rad_acct_stop(struct radius_pd_t *rpd) rad_server_req_exit(rpd->acct_req); - if (!rpd->acct_req->reply) { - rad_server_fail(rpd->acct_req->serv); - if (rad_server_realloc(rpd->acct_req, 1)) { - log_ppp_warn("radius:acct_stop: no servers available\n"); - break; - } - req_set_RA(rpd->acct_req, rpd->acct_req->serv->acct_secret); + if (rpd->acct_req->reply) + break; + + rad_server_fail(rpd->acct_req->serv); + if (rad_server_realloc(rpd->acct_req, 1)) { + log_ppp_warn("radius:acct_stop: no servers available\n"); + break; } + req_set_RA(rpd->acct_req, rpd->acct_req->serv->acct_secret); } rad_req_free(rpd->acct_req); |