Routing loops are avoided using the VPNService API
---
src/openvpn/route.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/openvpn/route.c b/src/openvpn/route.c
index 13eed5f..eb5fb46 100644
--- a/src/openvpn/route.c
+++ b/src/openvpn/route.c
@@ -530,8 +530,10 @@ add_block_local (struct route_list *rl)
{
size_t i;
+#ifndef TARGET_ANDROID
/* add bypass for gateway addr */
add_bypass_address (&rl->spec.bypass, rl->rgi.gateway.addr);
+#endif
/* block access to local subnet */
add_block_local_item (rl, &rl->rgi.gateway, rl->spec.remote_endpoint);
@@ -822,6 +824,7 @@ redirect_default_route_to_vpn (struct route_list *rl, const
struct tuntap *tt, u
}
else
{
+#ifndef TARGET_ANDROID
bool local = BOOL_CAST(rl->flags & RG_LOCAL);
if (rl->flags & RG_AUTO_LOCAL) {
const int tla = rl->spec.remote_host_local;
@@ -854,6 +857,7 @@ redirect_default_route_to_vpn (struct route_list *rl, const
struct tuntap *tt, u
dmsg (D_ROUTE, "ROUTE remote_host protocol differs from
tunneled");
}
}
+#endif
/* route DHCP/DNS server traffic through original default gateway */
add_bypass_routes (&rl->spec.bypass, rl->rgi.gateway.addr, tt, flags,
&rl->rgi, es);
--
1.8.5.2 (Apple Git-48)