From c24099b460c4b2e83124d0aa8e51ba9bdd899a05 Mon Sep 17 00:00:00 2001 From: Benoit Foucher Date: Wed, 20 Feb 2013 18:49:30 +0100 Subject: Fixed ICE-5263 - IPv6 support for Windows XP --- cpp/src/Ice/Network.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'cpp/src/Ice/Network.cpp') diff --git a/cpp/src/Ice/Network.cpp b/cpp/src/Ice/Network.cpp index 9754769479a..e60712ab51a 100644 --- a/cpp/src/Ice/Network.cpp +++ b/cpp/src/Ice/Network.cpp @@ -868,6 +868,12 @@ IceInternal::createServerSocket(bool udp, const Address& addr, ProtocolSupport p int flag = protocol == EnableIPv6 ? 1 : 0; if(setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, (char*)&flag, int(sizeof(int))) == SOCKET_ERROR) { +#ifdef _WIN32 + if(getSocketErrno() == WSAENOPROTOOPT) + { + return fd; // Windows XP doesn't support IPV6_V6ONLY + } +#endif closeSocketNoThrow(fd); SocketException ex(__FILE__, __LINE__); ex.error = getSocketErrno(); -- cgit v1.2.3