Browse code

Don't redirect the gateway on Android even if requested

Routing loops are avoided using the VPNService API

Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <1442309019-7586-4-git-send-email-arne@rfc2549.org>
URL: http://article.gmane.org/gmane.network.openvpn.devel/10113

Signed-off-by: Gert Doering <gert@greenie.muc.de>

Arne Schwabe authored on 2015/09/15 18:23:34
Showing 1 changed files
... ...
@@ -528,8 +528,10 @@ add_block_local (struct route_list *rl)
528 528
     {
529 529
       size_t i;
530 530
 
531
+#ifndef TARGET_ANDROID
531 532
       /* add bypass for gateway addr */
532 533
       add_bypass_address (&rl->spec.bypass, rl->rgi.gateway.addr);
534
+#endif
533 535
 
534 536
       /* block access to local subnet */
535 537
       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
817 817
 	}
818 818
       else
819 819
 	{
820
+#ifndef TARGET_ANDROID
820 821
 	  bool local = BOOL_CAST(rl->flags & RG_LOCAL);
821 822
 	  if (rl->flags & RG_AUTO_LOCAL) {
822 823
 	    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
849 849
 		dmsg (D_ROUTE, "ROUTE remote_host protocol differs from tunneled");
850 850
 	      }
851 851
 	    }
852
+#endif
852 853
 
853 854
 	  /* route DHCP/DNS server traffic through original default gateway */
854 855
 	  add_bypass_routes (&rl->spec.bypass, rl->rgi.gateway.addr, tt, flags, &rl->rgi, es);