diff options
Diffstat (limited to 'accel-pppd/radius/backup.c')
-rw-r--r-- | accel-pppd/radius/backup.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/accel-pppd/radius/backup.c b/accel-pppd/radius/backup.c index 46041d78..b73d3bab 100644 --- a/accel-pppd/radius/backup.c +++ b/accel-pppd/radius/backup.c @@ -22,6 +22,7 @@ #define RAD_TAG_ACCT_SERVER_ADDR 9 #define RAD_TAG_ACCT_SERVER_PORT 10 #define RAD_TAG_IDLE_TIMEOUT 11 +#define RAD_TAG_ACCT_USERNAME 12 #define add_tag(id, data, size) if (!backup_add_tag(m, id, 0, data, size)) return -1; @@ -68,6 +69,9 @@ static int session_save(struct ap_session *ses, struct backup_mod *m) add_tag(RAD_TAG_TERMINATION_ACTION, &rpd->termination_action, 4); + if (rpd->acct_username) + add_tag(RAD_TAG_ACCT_USERNAME, rpd->acct_username, strlen(rpd->acct_username)); + if (rpd->acct_req) { add_tag(RAD_TAG_ACCT_SERVER_ADDR, &rpd->acct_req->server_addr, 4); add_tag(RAD_TAG_ACCT_SERVER_PORT, &rpd->acct_req->server_port, 2); @@ -144,6 +148,9 @@ void radius_restore_session(struct ap_session *ses, struct radius_pd_t *rpd) case RAD_TAG_TERMINATION_ACTION: rpd->termination_action = *(uint32_t *)tag->data; break; + case RAD_TAG_ACCT_USERNAME: + rpd->acct_username = _strndup(tag->data, tag->size); + break; case RAD_TAG_ACCT_SERVER_ADDR: acct_addr = *(in_addr_t *)tag->data; break; |