From 0f036dcf3085880ef18786abf40f5d2e6c1b97fc Mon Sep 17 00:00:00 2001 From: Dmitry Kozlov Date: Mon, 25 Aug 2014 17:24:43 +0400 Subject: ipoe: add route to interface in mode "start=up,shared=0" --- accel-pppd/ctrl/ipoe/ipoe.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'accel-pppd/ctrl/ipoe') diff --git a/accel-pppd/ctrl/ipoe/ipoe.c b/accel-pppd/ctrl/ipoe/ipoe.c index b4a0e1a..6abfb30 100644 --- a/accel-pppd/ctrl/ipoe/ipoe.c +++ b/accel-pppd/ctrl/ipoe/ipoe.c @@ -802,6 +802,12 @@ static void __ipoe_session_activate(struct ipoe_session *ses) if (ses->ifindex == -1) { if (ses->serv->opt_ifcfg || (ses->serv->opt_mode == MODE_L2)) ipoe_ifcfg_add(ses); + + ipoe_nl_add_exclude(ses->yiaddr, 32); + + iproute_add(ses->serv->ifindex, ses->siaddr, ses->yiaddr, conf_proto); + + ses->ctrl.dont_ifcfg = 1; } else if (ses->ctrl.dont_ifcfg) ipaddr_add(ses->ifindex, ses->siaddr, ses->mask); @@ -976,7 +982,8 @@ static void ipoe_session_finished(struct ap_session *s) pthread_mutex_unlock(&uc_lock); } else ipoe_nl_delete(ses->ifindex); - } + } else + ipoe_nl_del_exclude(ses->yiaddr); if (ses->dhcp_addr) dhcpv4_put_ip(ses->serv->dhcpv4, ses->yiaddr); -- cgit v1.2.3