From d49a25b9f48ef5c65fe91a79e62c2f677169eac7 Mon Sep 17 00:00:00 2001 From: Dmitry Kozlov Date: Tue, 12 Apr 2016 00:23:16 +0300 Subject: ipv6: remove ipv6 address and routes on session termination --- accel-pppd/ipv6/dhcpv6.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'accel-pppd/ipv6') diff --git a/accel-pppd/ipv6/dhcpv6.c b/accel-pppd/ipv6/dhcpv6.c index 93801ace..595b5974 100644 --- a/accel-pppd/ipv6/dhcpv6.c +++ b/accel-pppd/ipv6/dhcpv6.c @@ -142,8 +142,15 @@ static void ev_ses_finished(struct ap_session *ses) if (pd->clientid) _free(pd->clientid); - if (ses->ipv6_dp) + if (ses->ipv6_dp) { + if (pd->dp_active) { + struct ipv6db_addr_t *p; + list_for_each_entry(p, &ses->ipv6_dp->prefix_list, entry) + ip6route_del(0, &p->addr, p->prefix_len); + } + ipdb_put_ipv6_prefix(ses, ses->ipv6_dp); + } triton_md_unregister_handler(&pd->hnd, 1); -- cgit v1.2.3