summaryrefslogtreecommitdiff
path: root/accel-pppd/radius
diff options
context:
space:
mode:
authorVladislav Grishenko <themiron@mail.ru>2012-11-12 16:36:46 +0400
committerKozlov Dmitry <xeb@mail.ru>2012-11-12 16:36:46 +0400
commit28749c59a24b277ca3f6e1bdf262c54155126f2a (patch)
treeb51991afa16d80c51d9e0186c7a231b076db5c62 /accel-pppd/radius
parentce56e6c72c0363cd02a77cd7c7b37f9f0b50d8a4 (diff)
downloadaccel-ppp-28749c59a24b277ca3f6e1bdf262c54155126f2a.tar.gz
accel-ppp-28749c59a24b277ca3f6e1bdf262c54155126f2a.zip
ppp: add NBNS (WINS) support
Diffstat (limited to 'accel-pppd/radius')
-rw-r--r--accel-pppd/radius/radius.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/accel-pppd/radius/radius.c b/accel-pppd/radius/radius.c
index 8f17fcc9..b6a0b5f5 100644
--- a/accel-pppd/radius/radius.c
+++ b/accel-pppd/radius/radius.c
@@ -58,9 +58,11 @@ int rad_proc_attrs(struct rad_req_t *req)
struct rad_attr_t *attr;
struct ipv6db_addr_t *a;
struct ev_dns_t dns;
+ struct ev_wins_t wins;
int res = 0;
dns.ppp = NULL;
+ wins.ppp = NULL;
req->rpd->acct_interim_interval = conf_acct_interim_interval;
list_for_each_entry(attr, &req->reply->attrs, entry) {
@@ -74,6 +76,14 @@ int rad_proc_attrs(struct rad_req_t *req)
dns.ppp = req->rpd->ppp;
dns.dns2 = attr->val.ipaddr;
break;
+ case MS_Primary_NBNS_Server:
+ wins.ppp = req->rpd->ppp;
+ wins.wins1 = attr->val.ipaddr;
+ break;
+ case MS_Secondary_NBNS_Server:
+ wins.ppp = req->rpd->ppp;
+ wins.wins2 = attr->val.ipaddr;
+ break;
}
continue;
} else if (attr->vendor)
@@ -134,6 +144,8 @@ int rad_proc_attrs(struct rad_req_t *req)
if (dns.ppp)
triton_event_fire(EV_DNS, &dns);
+ if (wins.ppp)
+ triton_event_fire(EV_WINS, &wins);
return res;
}