summaryrefslogtreecommitdiff
path: root/accel-pppd/ctrl/ipoe/ipoe.c
diff options
context:
space:
mode:
authorKozlov Dmitry <xeb@mail.ru>2012-08-03 14:48:20 +0400
committerKozlov Dmitry <xeb@mail.ru>2012-08-03 14:48:20 +0400
commit75c3e6502bce4f88dd2750f3cc2814a2522ecf06 (patch)
treeb6b51e99675eab41c0d919f2a4548079a54f00d1 /accel-pppd/ctrl/ipoe/ipoe.c
parentbc071ac4349a96ec757ee418c08ffac509e6b6e4 (diff)
downloadaccel-ppp-xebd-75c3e6502bce4f88dd2750f3cc2814a2522ecf06.tar.gz
accel-ppp-xebd-75c3e6502bce4f88dd2750f3cc2814a2522ecf06.zip
ipoe: configure giaddr only if ifcfg=1
Diffstat (limited to 'accel-pppd/ctrl/ipoe/ipoe.c')
-rw-r--r--accel-pppd/ctrl/ipoe/ipoe.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/accel-pppd/ctrl/ipoe/ipoe.c b/accel-pppd/ctrl/ipoe/ipoe.c
index 14e8d37..a707bd9 100644
--- a/accel-pppd/ctrl/ipoe/ipoe.c
+++ b/accel-pppd/ctrl/ipoe/ipoe.c
@@ -1232,20 +1232,23 @@ static void add_interface(const char *ifname, int ifindex, const char *opt)
serv->dhcpv4 = NULL;
}
- serv->opt_up = opt_up;
- serv->opt_mode = opt_mode;
- serv->opt_ifcfg = opt_ifcfg;
-
if (serv->dhcpv4_relay &&
(serv->dhcpv4_relay->addr != relay_addr || serv->dhcpv4_relay->giaddr != giaddr)) {
- ipoe_serv_del_addr(serv, serv->dhcpv4_relay->giaddr);
+ if (serv->opt_ifcfg)
+ ipoe_serv_del_addr(serv, serv->dhcpv4_relay->giaddr);
dhcpv4_relay_free(serv->dhcpv4_relay, &serv->ctx);
serv->dhcpv4_relay = NULL;
}
if (serv->opt_dhcpv4 && opt_relay && opt_giaddr)
- ipoe_serv_add_addr(serv, serv->dhcpv4_relay->giaddr);
+ if (opt_ifcfg)
+ ipoe_serv_add_addr(serv, serv->dhcpv4_relay->giaddr);
serv->dhcpv4_relay = dhcpv4_relay_create(opt_relay, opt_giaddr, &serv->ctx, (triton_event_func)ipoe_recv_dhcpv4_relay);
+
+ serv->opt_up = opt_up;
+ serv->opt_mode = opt_mode;
+ serv->opt_ifcfg = opt_ifcfg;
+
if (str0)
_free(str0);
@@ -1276,7 +1279,8 @@ static void add_interface(const char *ifname, int ifindex, const char *opt)
serv->dhcpv4->recv = ipoe_recv_dhcpv4;
if (opt_relay && opt_giaddr) {
- ipoe_serv_add_addr(serv, giaddr);
+ if (opt_ifcfg)
+ ipoe_serv_add_addr(serv, giaddr);
serv->dhcpv4_relay = dhcpv4_relay_create(opt_relay, opt_giaddr, &serv->ctx, (triton_event_func)ipoe_recv_dhcpv4_relay);
}
}
@@ -1590,10 +1594,10 @@ static void ipoe_init(void)
triton_event_register_handler(EV_CONFIG_RELOAD, (triton_event_func)load_config);
#ifdef RADIUS
- /*if (triton_module_loaded("radius")) {
+ if (triton_module_loaded("radius")) {
triton_event_register_handler(EV_RADIUS_ACCESS_ACCEPT, (triton_event_func)ev_radius_access_accept);
triton_event_register_handler(EV_RADIUS_COA, (triton_event_func)ev_radius_coa);
- }*/
+ }
#endif
}