summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Network.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2008-04-07 18:29:38 +0200
committerBenoit Foucher <benoit@zeroc.com>2008-04-07 18:29:38 +0200
commitf6876a31c934d2ed09a3a69adeb62075ac136f99 (patch)
treeff90bd45a4573ffc6bb9ff8dcc8b3680a1d38230 /cpp/src/Ice/Network.cpp
parentCHANGES file used to refer to CHANGES.txt. (diff)
downloadice-f6876a31c934d2ed09a3a69adeb62075ac136f99.tar.bz2
ice-f6876a31c934d2ed09a3a69adeb62075ac136f99.tar.xz
ice-f6876a31c934d2ed09a3a69adeb62075ac136f99.zip
Fixed bug 2950
Diffstat (limited to 'cpp/src/Ice/Network.cpp')
-rw-r--r--cpp/src/Ice/Network.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/cpp/src/Ice/Network.cpp b/cpp/src/Ice/Network.cpp
index a0daca02526..705f32d301d 100644
--- a/cpp/src/Ice/Network.cpp
+++ b/cpp/src/Ice/Network.cpp
@@ -1717,6 +1717,19 @@ IceInternal::addrToString(const struct sockaddr_storage& addr)
return s.str();
}
+bool
+IceInternal::isMulticast(const struct sockaddr_storage& addr)
+{
+ if(addr.ss_family == AF_INET)
+ {
+ return IN_MULTICAST(ntohl(reinterpret_cast<const struct sockaddr_in*>(&addr)->sin_addr.s_addr));
+ }
+ else
+ {
+ return IN6_IS_ADDR_MULTICAST(&reinterpret_cast<const struct sockaddr_in6*>(&addr)->sin6_addr);
+ }
+}
+
int
IceInternal::getPort(const struct sockaddr_storage& addr)
{