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)


Reply via email to