On 03/23/2012 03:34 PM, David Sommerseth wrote: > > Hi Samuel, > > Interesting finding you've found here. However, we're not developing the > 2.1 branch any more. So if you could try the latest git master branch > [1], that'd be great ... And if that still fails, try to apply your patch > to see if that improves it. > > There has been some fixes to the whole routing part in 2.2 and 2.3, so we > need to be sure we're not fixing something which is fixed in a different way. > I've just tested with the git master: same problem with the exact same cause.
My patch just create an empty route list and set appropriate flags, just like "redirect-gateway". I've also noted that redirect_default_route_to_vpn() will only apply the pushed default route if a default route already exist on the client. If there is no default route, the pushed default route won't be applied. Is that an expected/desired behavior ? Here is the patch against the latest git master: ---- Author: Samuel CUELLA <samuel.cue...@supinfo.com> Fix the route-gateway option behavior. Signed-off-by: Samuel CUELLA <samuel.cue...@supinfo.com> ---- diff -Nur openvpn-git-orig/options.c openvpn-git/options.c --- openvpn-git-orig/options.c 2012-03-23 15:59:29.000000000 +0100 +++ openvpn-git/options.c 2012-03-23 17:29:33.000000000 +0100 @@ -5218,6 +5218,7 @@ else if (streq (p[0], "route-gateway") && p[1]) { VERIFY_PERMISSION (OPT_P_ROUTE_EXTRAS); + rol_check_alloc (options); if (streq (p[1], "dhcp")) { options->route_gateway_via_dhcp = true; @@ -5227,6 +5228,7 @@ if (ip_or_dns_addr_safe (p[1], options->allow_pull_fqdn) || is_special_addr (p[1])) /* FQDN -- may be DNS name */ { options->route_default_gateway = p[1]; + options->routes->flags |= (RG_ENABLE|RG_REROUTE_GW); } else {