summaryrefslogtreecommitdiff
path: root/accel-pppd
diff options
context:
space:
mode:
authorDmitry Kozlov <xeb@mail.ru>2014-08-26 16:56:27 +0400
committerDmitry Kozlov <xeb@mail.ru>2014-08-26 16:56:27 +0400
commitec9968885ed2f273c4d2c18297986c463fb9cf9b (patch)
tree4791da63b02cd99e34ed40b073ff069de20005e0 /accel-pppd
parent35aea541e7a9069d9d18be5c9c2946e004d03e4a (diff)
downloadaccel-ppp-xebd-ec9968885ed2f273c4d2c18297986c463fb9cf9b.tar.gz
accel-ppp-xebd-ec9968885ed2f273c4d2c18297986c463fb9cf9b.zip
ipoe: introduced attr-dhcp-lease-time option to specify radius attribute to pass dhcp lease time (attribute must be integer)
Diffstat (limited to 'accel-pppd')
-rw-r--r--accel-pppd/accel-ppp.conf1
-rw-r--r--accel-pppd/ctrl/ipoe/ipoe.c8
2 files changed, 7 insertions, 2 deletions
diff --git a/accel-pppd/accel-ppp.conf b/accel-pppd/accel-ppp.conf
index 943dc92..af10c44 100644
--- a/accel-pppd/accel-ppp.conf
+++ b/accel-pppd/accel-ppp.conf
@@ -116,6 +116,7 @@ start=dhcpv4
#attr-dhcp-client-ip=DHCP-Client-IP-Address
#attr-dhcp-router-ip=DHCP-Router-IP-Address
#attr-dhcp-mask=DHCP-Mask
+#attr-dhcp-lease-time=DHCP-Lease-Time
#attr-l4-redirect=L4-Redirect
#local-net=192.168.0.0/16
#lua-file=/etc/accel-ppp.lua
diff --git a/accel-pppd/ctrl/ipoe/ipoe.c b/accel-pppd/ctrl/ipoe/ipoe.c
index 6abfb30..5ee2d41 100644
--- a/accel-pppd/ctrl/ipoe/ipoe.c
+++ b/accel-pppd/ctrl/ipoe/ipoe.c
@@ -117,6 +117,7 @@ static int conf_noauth;
static int conf_attr_dhcp_client_ip;
static int conf_attr_dhcp_router_ip;
static int conf_attr_dhcp_mask;
+static int conf_attr_dhcp_lease_time;
static int conf_attr_l4_redirect;
#endif
static int conf_l4_redirect_table;
@@ -1709,7 +1710,8 @@ static void ev_radius_access_accept(struct ev_radius_t *ev)
ses->l4_redirect = 1;
} else if (attr->val.integer != 0)
ses->l4_redirect = 1;
- }
+ } else if (attr->attr->id == conf_attr_dhcp_lease_time)
+ ses->lease_time = attr->val.integer;
}
}
@@ -1733,7 +1735,8 @@ static void ev_radius_coa(struct ev_radius_t *ev)
} else if (strcmp(attr->attr->name, "Framed-IP-Address") == 0) {
if (ses->ses.ipv4 && ses->ses.ipv4->peer_addr != attr->val.ipaddr)
ipoe_change_addr(ses, attr->val.ipaddr);
- }
+ } else if (attr->attr->id == conf_attr_dhcp_lease_time)
+ ses->lease_time = attr->val.integer;
}
//if (l4_redirect && !ses->l4_redirect) || (!l4_redirect && ses->l4_redirect))
@@ -2536,6 +2539,7 @@ static void load_radius_attrs(void)
parse_conf_rad_attr("attr-dhcp-client-ip", &conf_attr_dhcp_client_ip);
parse_conf_rad_attr("attr-dhcp-router-ip", &conf_attr_dhcp_router_ip);
parse_conf_rad_attr("attr-dhcp-mask", &conf_attr_dhcp_mask);
+ parse_conf_rad_attr("attr-dhcp-lease-time", &conf_attr_dhcp_lease_time);
parse_conf_rad_attr("attr-l4-redirect", &conf_attr_l4_redirect);
}
#endif