diff options
author | Dmitry Kozlov <xeb@mail.ru> | 2016-06-07 20:40:55 +0300 |
---|---|---|
committer | Dmitry Kozlov <xeb@mail.ru> | 2016-06-07 20:40:55 +0300 |
commit | 429ca0e6188594e5ccbce639d2d22576e5256e62 (patch) | |
tree | 42f87bcc5fdd4a454209326fa38757d6970711d1 /accel-pppd/radius/dm_coa.c | |
parent | d06572417e1e500d7bd56859335d2f7dd0f3fd8f (diff) | |
download | accel-ppp-xebd-429ca0e6188594e5ccbce639d2d22576e5256e62.tar.gz accel-ppp-xebd-429ca0e6188594e5ccbce639d2d22576e5256e62.zip |
radius: update Session-Timeout by CoA
Diffstat (limited to 'accel-pppd/radius/dm_coa.c')
-rw-r--r-- | accel-pppd/radius/dm_coa.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/accel-pppd/radius/dm_coa.c b/accel-pppd/radius/dm_coa.c index fd59bf1..ea9743d 100644 --- a/accel-pppd/radius/dm_coa.c +++ b/accel-pppd/radius/dm_coa.c @@ -146,6 +146,7 @@ static void disconnect_request(struct radius_pd_t *rpd) static void coa_request(struct radius_pd_t *rpd) { struct rad_attr_t *class; + struct rad_attr_t *attr; void *prev_class = rpd->attr_class; struct ev_radius_t ev = { .ses = rpd->ses, @@ -181,6 +182,10 @@ static void coa_request(struct radius_pd_t *rpd) rad_packet_add_octets(rpd->acct_req->pack, NULL, "Class", rpd->attr_class, rpd->attr_class_len); } + attr = rad_packet_find_attr(rpd->dm_coa_req, NULL, "Session-Timeout"); + if (attr) + rad_update_session_timeout(rpd, attr->val.integer); + dm_coa_send_ack(serv.hnd.fd, rpd->dm_coa_req, &rpd->dm_coa_addr); } |