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>
... | ... |
@@ -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); |