Browse code

when deleting a route on win32, also add gateway address (otherwise netsh.exe will succeed, but silently ignore request)

Gert Doering authored on 2010/03/08 03:30:56
Showing 1 changed files
... ...
@@ -1621,6 +1621,17 @@ delete_route_ipv6 (const struct route_ipv6 *r6, const struct tuntap *tt, unsigne
1621 1621
 	       r6->netbits,
1622 1622
 	       device);
1623 1623
 
1624
+  /* next-hop depends on TUN or TAP mode:
1625
+   * - in TAP mode, we use the "real" next-hop
1626
+   * - in TUN mode we use a special-case link-local address that the tapdrvr
1627
+   *   knows about and will answer ND (neighbor discovery) packets for
1628
+   * (and "route deletion without specifying next-hop" does not work...)
1629
+   */
1630
+  if ( tt->type == DEV_TYPE_TUN )
1631
+	argv_printf_cat( &argv, " %s", "fe80::8" );
1632
+  else
1633
+	argv_printf_cat( &argv, " %s", gateway );
1634
+
1624 1635
 #if 0
1625 1636
   if (r->metric_defined)
1626 1637
     argv_printf_cat (&argv, "METRIC %d", r->metric);