[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

[PATCH] IPv6 with no problems on Win2k and earlier

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: 2007-11-23 19:59:03 CET


A while ago I sent a patch to make Subversion compile with IPv6 support.
Now there's a small problem which appears when using the latest Vista
SDK instead of an earlier one:

With the Vista SDK, it is required to define _WIN32_WINNT to >= 0x0501
if IPv6 is needed. If the define is set to a lower Windows version, IPv6
won't work (and with VS2008 it won't even compile properly).
But setting that define to XP or later (>= 0x0501) breaks the
application when run on OS versions < XP (e.g., Win2k).

To make the application work on < XP and still have IPv6 support on >=
XP systems (or Win2k with the IPv6 preview pack - but I won't recommend
anyone installing it, believe me...), it's required to include the
Wspiapi.h header file, and the ws2tcpip.h header file from the SDK. This
will compile a stub function in for the IPv6 functions which call the
original functions on >= XP, but fall back to the old functions on < XP.

The attached patch fixes this problem.

Sorry about this: I haven't noticed this problem before because I didn't
use the Vista SDK but still the one which came with VS2005, and I
usually don't test things on Win2k anymore.


   oo  // \\      "De Chelonian Mobile"
  (_,\/ \_/ \     TortoiseSVN
    \ \_/_\_/>    The coolest Interface to (Sub)Version Control
    /_/   \_\     http://tortoisesvn.net

When compiling with IPv6 support, include the helper header file to allow
the applications still run on Win2k.

* subversion/libsvn_subr/win32_xlate.c,
  subversion/libsvn_subr/win32_crashrpt.c : include ws2tcpip and wspiapi.
Index: ext/Subversion/subversion/libsvn_subr/win32_xlate.c
--- subversion/libsvn_subr/win32_xlate.c (revision 27993)
+++ subversion/libsvn_subr/win32_xlate.c (working copy)
@@ -23,6 +23,8 @@
 #ifdef APR_HAVE_IPV6
 #include <winsock2.h>
+#include <Ws2tcpip.h>
+#include <Wspiapi.h>
 #include <windows.h>
 #include <mlang.h>
Index: ext/Subversion/subversion/libsvn_subr/win32_crashrpt.c
--- subversion/libsvn_subr/win32_crashrpt.c (revision 27993)
+++ subversion/libsvn_subr/win32_crashrpt.c (working copy)
@@ -22,6 +22,8 @@
 /*** Includes. ***/
 #ifdef APR_HAVE_IPV6
 #include <winsock2.h>
+#include <Ws2tcpip.h>
+#include <Wspiapi.h>
 #include <windows.h>
 #include <dbghelp.h>
Index: ext/Subversion/subversion/libsvn_subr/config_win.c
--- subversion/libsvn_subr/config_win.c (revision 27993)
+++ subversion/libsvn_subr/config_win.c (working copy)
@@ -24,6 +24,8 @@
 #define WIN32_LEAN_AND_MEAN
 #ifdef APR_HAVE_IPV6
 #include <winsock2.h>
+#include <Ws2tcpip.h>
+#include <Wspiapi.h>
 #include <windows.h>
 #include <shlobj.h>

To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Nov 23 19:59:20 2007

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.