summaryrefslogtreecommitdiff
path: root/accel-pppd/radius/req.c
diff options
context:
space:
mode:
Diffstat (limited to 'accel-pppd/radius/req.c')
-rw-r--r--accel-pppd/radius/req.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/accel-pppd/radius/req.c b/accel-pppd/radius/req.c
index 7b86503..a586111 100644
--- a/accel-pppd/radius/req.c
+++ b/accel-pppd/radius/req.c
@@ -32,8 +32,12 @@ struct rad_req_t *rad_req_alloc(struct radius_pd_t *rpd, int code, const char *u
req->hnd.fd = -1;
req->ctx.before_switch = log_switch;
- req->server_addr = conf_auth_server;
- req->server_port = conf_auth_server_port;
+ req->serv = rad_server_get();
+ if (!req->serv)
+ goto out_err;
+
+ req->server_addr = req->serv->auth_addr;
+ req->server_port = req->serv->auth_port;
while (1) {
if (read(urandom_fd, req->RA, 16) != 16) {
@@ -97,8 +101,8 @@ out_err:
int rad_req_acct_fill(struct rad_req_t *req)
{
- req->server_addr = conf_acct_server;
- req->server_port = conf_acct_server_port;
+ req->server_addr = req->serv->acct_addr;
+ req->server_port = req->serv->acct_port;
memset(req->RA, 0, sizeof(req->RA));
@@ -132,6 +136,8 @@ int rad_req_acct_fill(struct rad_req_t *req)
void rad_req_free(struct rad_req_t *req)
{
+ if (req->serv)
+ rad_server_put(req->serv);
if (req->hnd.fd >= 0 )
close(req->hnd.fd);
if (req->pack)