Routing loops are avoided using the VPNService API protect API --- src/openvpn/route.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/openvpn/route.c b/src/openvpn/route.c index 3959abd..0142c58 100644 --- a/src/openvpn/route.c +++ b/src/openvpn/route.c @@ -768,6 +768,10 @@ init_route_ipv6_list (struct route_ipv6_list *rl6, r6->next = rl6->routes_ipv6; rl6->routes_ipv6 = r6; +#ifndef TARGET_ANDROID + /* On Android the VPNService protect function call will take of + avoiding routing loops, so ignore this part and let + remote_host_ipv6 always evaluate to false */ if ( remote_host_ipv6 && route_ipv6_match_host( r6, remote_host_ipv6 ) ) { @@ -776,7 +780,8 @@ init_route_ipv6_list (struct route_ipv6_list *rl6, print_in6_addr (r6->network, 0, &gc), r6->netbits, print_in6_addr (*remote_host_ipv6, 0, &gc)); } - } +#endif + } } } -- 2.3.2 (Apple Git-55)