]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
* (prototype) fix for supporting "redirect-gateway" for tunneled ipv4 over ipv6 endpoints
authorJuanJo Ciarlante <jjo@google.com>
Tue, 10 Nov 2009 22:46:46 +0000 (23:46 +0100)
committerJuanJo Ciarlante <juanjosec@gmail.com>
Fri, 25 Mar 2011 12:30:30 +0000 (13:30 +0100)
route.c
socket.c

diff --git a/route.c b/route.c
index b5092fe3094de254e93a68f3f220d6ed6c4f4878..f3ed974cdef360f26f7803ba2d317d9420574cb6 100644 (file)
--- a/route.c
+++ b/route.c
@@ -581,13 +581,17 @@ redirect_default_route_to_vpn (struct route_list *rl, const struct tuntap *tt, u
          if (!local)
            {
              /* route remote host to original default gateway */
-             add_route3 (rl->spec.remote_host,
-                         ~0,
-                         rl->spec.net_gateway,
-                         tt,
-                         flags,
-                         es);
-             rl->did_local = true;
+             if (rl->spec.remote_host != 0xffffffff) {
+               add_route3 (rl->spec.remote_host,
+                           ~0,
+                           rl->spec.net_gateway,
+                           tt,
+                           flags,
+                           es);
+               rl->did_local = true;
+             } else {
+               dmsg (D_ROUTE, "ROUTE remote_host protocol differs from tunneled");
+             }
            }
 
          /* route DHCP/DNS server traffic through original default gateway */
index bade47e1f79b3f6b8a45fcccad602153a88222ef..2d46d3f338d948db65b2d847f4169afa49171808 100644 (file)
--- a/socket.c
+++ b/socket.c
@@ -2147,7 +2147,7 @@ link_socket_current_remote (const struct link_socket_info *info)
  */
 #ifdef USE_PF_INET6
   if (lsa->actual.dest.addr.sa.sa_family != AF_INET)
-    return 0;
+    return 0xffffffff;
 #else
   ASSERT (lsa->actual.dest.addr.sa.sa_family == AF_INET);
 #endif