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 6b2af3c..03f8332 100644
--- a/src/openvpn/route.c
+++ b/src/openvpn/route.c
@@ -528,8 +528,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);
@@ -817,6 +819,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;
@@ -849,6 +852,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);
-- 
2.3.2 (Apple Git-55)


Reply via email to