diff --git a/l2tpns.c b/l2tpns.c index eb18f4f..209d637 100644 --- a/l2tpns.c +++ b/l2tpns.c @@ -1247,6 +1247,15 @@ void routes6set(sessionidt s, sessiont *sp, int add) if (!add || sessionbyipv6(sp->ipv6address) != s) route6set(s, sp->ipv6address, 128, add); } + else + { + in_addr_t addr_ipv4 = htonl(session[s].ip); + struct in6_addr addr; + memset(&addr, 0, sizeof(addr)); + memcpy(&addr, &config->ipv6_prefix, 8); + memcpy(&addr.s6_addr[8], &addr_ipv4, 4); + route6set(s, addr, 96, add); + } } //