summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Network.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2014-11-13 14:37:13 +0100
committerBenoit Foucher <benoit@zeroc.com>2014-11-13 14:37:13 +0100
commit180e3f6b12c252cda2ced3ad95e99884c778111c (patch)
tree36096594477bbd97715300bcaeb272b8b5233831 /cpp/src/Ice/Network.cpp
parentICE-5875 confusing tracing when binding to 0.0.0.0 (diff)
downloadice-180e3f6b12c252cda2ced3ad95e99884c778111c.tar.bz2
ice-180e3f6b12c252cda2ced3ad95e99884c778111c.tar.xz
ice-180e3f6b12c252cda2ced3ad95e99884c778111c.zip
Fixed ICE-5877: disabled IPv6 by default is not supported on the system
Diffstat (limited to 'cpp/src/Ice/Network.cpp')
-rw-r--r--cpp/src/Ice/Network.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/cpp/src/Ice/Network.cpp b/cpp/src/Ice/Network.cpp
index cf8a77defbe..ce28c1bac3f 100644
--- a/cpp/src/Ice/Network.cpp
+++ b/cpp/src/Ice/Network.cpp
@@ -1097,6 +1097,29 @@ IceInternal::compareAddress(const Address& addr1, const Address& addr2)
}
#ifdef ICE_OS_WINRT
+bool
+IceInternal::isIPv6Supported()
+{
+ return true;
+}
+#else
+bool
+IceInternal::isIPv6Supported()
+{
+ SOCKET fd = socket(AF_INET6, SOCK_STREAM, IPPROTO_TCP);
+ if(fd == INVALID_SOCKET)
+ {
+ return false;
+ }
+ else
+ {
+ closeSocketNoThrow(fd);
+ return true;
+ }
+}
+#endif
+
+#ifdef ICE_OS_WINRT
SOCKET
IceInternal::createSocket(bool udp, const Address&)
{