summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorMatthew Newhook <matthew@zeroc.com>2002-04-08 16:32:08 +0000
committerMatthew Newhook <matthew@zeroc.com>2002-04-08 16:32:08 +0000
commit85b71a6f717748c55f0055c19136b3fdaad484f3 (patch)
tree15f3630195b57e67390d31395739079ecd6f4798 /cpp/src
parentremove orphaned files (diff)
downloadice-85b71a6f717748c55f0055c19136b3fdaad484f3.tar.bz2
ice-85b71a6f717748c55f0055c19136b3fdaad484f3.tar.xz
ice-85b71a6f717748c55f0055c19136b3fdaad484f3.zip
Fix network error.
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Ice/Endpoint.cpp15
-rw-r--r--cpp/src/Ice/Network.cpp8
-rw-r--r--cpp/src/Ice/Network.h1
-rw-r--r--cpp/src/Ice/SslAcceptor.cpp2
-rw-r--r--cpp/src/Ice/TcpAcceptor.cpp2
-rw-r--r--cpp/src/Ice/UdpTransceiver.cpp2
6 files changed, 15 insertions, 15 deletions
diff --git a/cpp/src/Ice/Endpoint.cpp b/cpp/src/Ice/Endpoint.cpp
index 5af0812e83c..cc56e7e73ed 100644
--- a/cpp/src/Ice/Endpoint.cpp
+++ b/cpp/src/Ice/Endpoint.cpp
@@ -522,10 +522,7 @@ IceInternal::TcpEndpoint::operator==(const Endpoint& r) const
struct sockaddr_in raddr;
getAddress(_host.c_str(), _port, laddr);
getAddress(p->_host.c_str(), p->_port, raddr);
- if (memcmp(&laddr, &raddr, sizeof(struct sockaddr_in)) != 0)
- {
- return false;
- }
+ return compareAddress(laddr, raddr);
}
return true;
@@ -857,10 +854,7 @@ IceInternal::SslEndpoint::operator==(const Endpoint& r) const
struct sockaddr_in raddr;
getAddress(_host.c_str(), _port, laddr);
getAddress(p->_host.c_str(), p->_port, raddr);
- if (memcmp(&laddr, &raddr, sizeof(struct sockaddr_in)) != 0)
- {
- return false;
- }
+ return compareAddress(laddr, raddr);
}
return true;
@@ -1187,10 +1181,7 @@ IceInternal::UdpEndpoint::operator==(const Endpoint& r) const
struct sockaddr_in raddr;
getAddress(_host.c_str(), _port, laddr);
getAddress(p->_host.c_str(), p->_port, raddr);
- if (memcmp(&laddr, &raddr, sizeof(struct sockaddr_in)) != 0)
- {
- return false;
- }
+ return compareAddress(laddr, raddr);
}
return true;
diff --git a/cpp/src/Ice/Network.cpp b/cpp/src/Ice/Network.cpp
index 1da5802c174..dbb2fe871cb 100644
--- a/cpp/src/Ice/Network.cpp
+++ b/cpp/src/Ice/Network.cpp
@@ -610,6 +610,14 @@ IceInternal::getAddress(const string& host, int port, struct sockaddr_in& addr)
}
}
+bool
+IceInternal::compareAddress(const struct sockaddr_in& addr1, const struct sockaddr_in& addr2)
+{
+ return (addr1.sin_family == addr2.sin_family) &&
+ (addr1.sin_port == addr2.sin_port) &&
+ (addr1.sin_addr.s_addr == addr2.sin_addr.s_addr);
+}
+
void
IceInternal::createPipe(SOCKET fds[2])
{
diff --git a/cpp/src/Ice/Network.h b/cpp/src/Ice/Network.h
index cd5a1a648fa..84b63a9f4bd 100644
--- a/cpp/src/Ice/Network.h
+++ b/cpp/src/Ice/Network.h
@@ -82,6 +82,7 @@ void doConnect(SOCKET, struct sockaddr_in&, int);
SOCKET doAccept(SOCKET, int);
void getAddress(const std::string&, int, struct sockaddr_in&);
+bool compareAddress(const struct sockaddr_in&, const struct sockaddr_in&);
void createPipe(SOCKET fds[2]);
diff --git a/cpp/src/Ice/SslAcceptor.cpp b/cpp/src/Ice/SslAcceptor.cpp
index 2982d770036..cf346576354 100644
--- a/cpp/src/Ice/SslAcceptor.cpp
+++ b/cpp/src/Ice/SslAcceptor.cpp
@@ -113,7 +113,7 @@ IceInternal::SslAcceptor::equivalent(const string& host, int port) const
{
struct sockaddr_in addr;
getAddress(host, port, addr);
- return memcmp(&addr, &_addr, sizeof(struct sockaddr_in)) == 0;
+ return compareAddress(addr, _addr);
}
int
diff --git a/cpp/src/Ice/TcpAcceptor.cpp b/cpp/src/Ice/TcpAcceptor.cpp
index 413ea73d69a..84691e16e2e 100644
--- a/cpp/src/Ice/TcpAcceptor.cpp
+++ b/cpp/src/Ice/TcpAcceptor.cpp
@@ -85,7 +85,7 @@ IceInternal::TcpAcceptor::equivalent(const string& host, int port) const
{
struct sockaddr_in addr;
getAddress(host, port, addr);
- return memcmp(&addr, &_addr, sizeof(struct sockaddr_in)) == 0;
+ return compareAddress(addr, _addr);
}
int
diff --git a/cpp/src/Ice/UdpTransceiver.cpp b/cpp/src/Ice/UdpTransceiver.cpp
index 88770e74a19..2a0d90c645a 100644
--- a/cpp/src/Ice/UdpTransceiver.cpp
+++ b/cpp/src/Ice/UdpTransceiver.cpp
@@ -150,7 +150,7 @@ IceInternal::UdpTransceiver::equivalent(const string& host, int port) const
{
struct sockaddr_in addr;
getAddress(host, port, addr);
- return memcmp(&addr, &_addr, sizeof(struct sockaddr_in)) == 0;
+ return compareAddress(addr, _addr);
}
int