summaryrefslogtreecommitdiff
path: root/accel-pppd/radius/acct.c
diff options
context:
space:
mode:
authorKozlov Dmitry <dima@server>2011-08-16 17:46:25 +0400
committerKozlov Dmitry <dima@server>2011-08-16 17:46:25 +0400
commitdc7cbe120d8794d8520e6d9d35c121474453d807 (patch)
treea6eb87b3dca80e110b6390278b63c782a3e8a56c /accel-pppd/radius/acct.c
parent852f842d6521c5c260d24cf23a0e5a317cf25a0b (diff)
downloadaccel-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.c19
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);