Browse code

Win32: set next-hop for IPv6 routes according to TUN/TAP mode - in TUN mode, use special next-hop address (fe80::8) that tapdrv will handle ND for

Gert Doering authored on 2010/03/05 17:42:11
Showing 1 changed files
... ...
@@ -1348,9 +1348,19 @@ add_route_ipv6 (struct route_ipv6 *r6, const struct tuntap *tt, unsigned int fla
1348 1348
 	       r6->netbits,
1349 1349
 	       device);
1350 1350
 
1351
+  /* next-hop depends on TUN or TAP mode:
1352
+   * - in TAP mode, we use the "real" next-hop
1353
+   * - in TUN mode we use a special-case link-local address that the tapdrvr
1354
+   *   knows about and will answer ND (neighbor discovery) packets for
1355
+   */
1356
+  if ( tt->type == DEV_TYPE_TUN )
1357
+	argv_printf_cat( &argv, " %s", "fe80::8" );
1358
+  else
1359
+	argv_printf_cat( &argv, " %s", gateway );
1360
+
1351 1361
 #if 0
1352 1362
   if (r->metric_defined)
1353
-    argv_printf_cat (&argv, "METRIC %d", r->metric);
1363
+    argv_printf_cat (&argv, " METRIC %d", r->metric);
1354 1364
 #endif
1355 1365
 
1356 1366
   argv_msg (D_ROUTE, &argv);