]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Win32: set next-hop for IPv6 routes according to TUN/TAP mode - in TUN mode,
authorGert Doering <gert@greenie.muc.de>
Fri, 5 Mar 2010 08:42:11 +0000 (09:42 +0100)
committerGert Doering <gert@greenie.muc.de>
Sun, 24 Apr 2011 15:22:41 +0000 (17:22 +0200)
       use special next-hop address (fe80::8) that tapdrv will handle ND for

route.c

diff --git a/route.c b/route.c
index 1604e9eb50fbc4c639ba029cd112c6760e967033..b150302e1a2ba51ccc1f71cc2cbd38faa1e0c94c 100644 (file)
--- a/route.c
+++ b/route.c
@@ -1348,9 +1348,19 @@ add_route_ipv6 (struct route_ipv6 *r6, const struct tuntap *tt, unsigned int fla
               r6->netbits,
               device);
 
+  /* next-hop depends on TUN or TAP mode:
+   * - in TAP mode, we use the "real" next-hop
+   * - in TUN mode we use a special-case link-local address that the tapdrvr
+   *   knows about and will answer ND (neighbor discovery) packets for
+   */
+  if ( tt->type == DEV_TYPE_TUN )
+       argv_printf_cat( &argv, " %s", "fe80::8" );
+  else
+       argv_printf_cat( &argv, " %s", gateway );
+
 #if 0
   if (r->metric_defined)
-    argv_printf_cat (&argv, "METRIC %d", r->metric);
+    argv_printf_cat (&argv, " METRIC %d", r->metric);
 #endif
 
   argv_msg (D_ROUTE, &argv);