Hi, This works perfectly on win8.1, win7 sp1 and winXP sp3 :)
Thank you Cédric * Gert Doering <g...@greenie.muc.de> [2014-04-13 19:06 +0200]: > Hi, > > On Sun, Apr 13, 2014 at 03:39:20PM +0200, Cedric Tabary wrote: > > Bug is still there in this build, > > I think you patched the route removal but not the ipv6 address removal > > on the interface itself. > > Next try. Thanks for your patience :-) - this patch + installer do the > "store=active" both on the "address delete" and on the "route delete", > so it would be good to know that it works on both ends of the spectrum, > Win XP and Win 8.1 > > http://www.greenie.net/ipv6/openvpn-install-2.3.3-win8fix-I100-i686.exe > http://www.greenie.net/ipv6/openvpn-install-2.3.3-win8fix-I100-x86_64.exe > > gert > -- > USENET is *not* the non-clickable part of WWW! > //www.muc.de/~gert/ > Gert Doering - Munich, Germany g...@greenie.muc.de > fax: +49-89-35655025 g...@net.informatik.tu-muenchen.de > From ee4a33029d1aafd1aa3c85f0317a93612c03ea1a Mon Sep 17 00:00:00 2001 > From: Gert Doering <g...@greenie.muc.de> > Date: Sun, 13 Apr 2014 13:12:02 +0200 > Subject: [PATCH] IPv6 address/route delete fix for Win8 > > Use "store=active" for IPv6 address and route deletion - seems to be > required on Windows 8 and up, and not doing it will break OpenVPN > reconnection (old addresses are not properly deleted, thus address can > not be configured on connect). > > Reported-by: Cedric <cedric+open...@bgtn.net> > Signed-off-by: Gert Doering <g...@greenie.muc.de> > --- > src/openvpn/route.c | 8 +++++++- > src/openvpn/tun.c | 6 +++++- > 2 files changed, 12 insertions(+), 2 deletions(-) > > diff --git a/src/openvpn/route.c b/src/openvpn/route.c > index 6333ee7..f470f7e 100644 > --- a/src/openvpn/route.c > +++ b/src/openvpn/route.c > @@ -1974,10 +1974,16 @@ delete_route_ipv6 (const struct route_ipv6 *r6, const > struct tuntap *tt, unsigne > argv_printf_cat (&argv, "METRIC %d", r->metric); > #endif > > + /* Windows XP to 7 "just delete" routes, wherever they came from, but > + * in Windows 8(.1?), if you create them with "store=active", this is > + * how you should delete them as well (pointed out by Cedric Tabary) > + */ > + argv_printf_cat( &argv, " store=active" ); > + > argv_msg (D_ROUTE, &argv); > > netcmd_semaphore_lock (); > - openvpn_execve_check (&argv, es, 0, "ERROR: Windows route add ipv6 command > failed"); > + openvpn_execve_check (&argv, es, 0, "ERROR: Windows route delete ipv6 > command failed"); > netcmd_semaphore_release (); > > #elif defined (TARGET_SOLARIS) > diff --git a/src/openvpn/tun.c b/src/openvpn/tun.c > index 976cc52..ba4b15e 100644 > --- a/src/openvpn/tun.c > +++ b/src/openvpn/tun.c > @@ -5196,10 +5196,14 @@ close_tun (struct tuntap *tt) > /* remove route pointing to interface */ > delete_route_connected_v6_net(tt, NULL); > > + /* "store=active" is needed in Windows 8(.1) to delete the > + * address we added (pointed out by Cedric Tabary). > + */ > + > /* netsh interface ipv6 delete address \"%s\" %s */ > ifconfig_ipv6_local = print_in6_addr (tt->local_ipv6, 0, &gc); > argv_printf (&argv, > - "%s%sc interface ipv6 delete address %s %s", > + "%s%sc interface ipv6 delete address %s %s store=active", > get_win_sys_path(), > NETSH_PATH_SUFFIX, > tt->actual_name, > -- > 1.8.3.2 >