summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Network.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/Network.cpp')
-rw-r--r--cpp/src/Ice/Network.cpp23
1 files changed, 19 insertions, 4 deletions
diff --git a/cpp/src/Ice/Network.cpp b/cpp/src/Ice/Network.cpp
index c723fa1ab01..c6fbf1bc6ee 100644
--- a/cpp/src/Ice/Network.cpp
+++ b/cpp/src/Ice/Network.cpp
@@ -77,7 +77,7 @@ getLocalAddresses(ProtocolSupport protocol)
vector<unsigned char> buffer;
buffer.resize(1024);
unsigned long len = 0;
- DWORD rs = WSAIoctl(fd, SIO_ADDRESS_LIST_QUERY, 0, 0,
+ int rs = WSAIoctl(fd, SIO_ADDRESS_LIST_QUERY, 0, 0,
&buffer[0], static_cast<DWORD>(buffer.size()),
&len, 0, 0);
if(rs == SOCKET_ERROR)
@@ -885,7 +885,8 @@ IceInternal::getSendBufferSize(SOCKET fd)
{
int sz;
socklen_t len = sizeof(sz);
- if(getsockopt(fd, SOL_SOCKET, SO_SNDBUF, (char*)&sz, &len) == SOCKET_ERROR || len != sizeof(sz))
+ if(getsockopt(fd, SOL_SOCKET, SO_SNDBUF, (char*)&sz, &len) == SOCKET_ERROR ||
+ static_cast<unsigned int>(len) != sizeof(sz))
{
closeSocketNoThrow(fd);
SocketException ex(__FILE__, __LINE__);
@@ -912,7 +913,8 @@ IceInternal::getRecvBufferSize(SOCKET fd)
{
int sz;
socklen_t len = sizeof(sz);
- if(getsockopt(fd, SOL_SOCKET, SO_RCVBUF, (char*)&sz, &len) == SOCKET_ERROR || len != sizeof(sz))
+ if(getsockopt(fd, SOL_SOCKET, SO_RCVBUF, (char*)&sz, &len) == SOCKET_ERROR ||
+ static_cast<unsigned int>(len) != sizeof(sz))
{
closeSocketNoThrow(fd);
SocketException ex(__FILE__, __LINE__);
@@ -1244,7 +1246,7 @@ IceInternal::doFinishConnect(SOCKET fd)
struct sockaddr_storage localAddr;
fdToLocalAddress(fd, localAddr);
struct sockaddr_storage remoteAddr;
- if(!fdToRemoteAddress(fd, remoteAddr) && compareAddress(remoteAddr, localAddr) == 0)
+ if(fdToRemoteAddress(fd, remoteAddr) && compareAddress(remoteAddr, localAddr) == 0)
{
ConnectionRefusedException ex(__FILE__, __LINE__);
ex.error = 0; // No appropriate errno
@@ -1752,6 +1754,19 @@ IceInternal::getPort(const struct sockaddr_storage& addr)
}
}
+void
+IceInternal::setPort(struct sockaddr_storage& addr, int port)
+{
+ if(addr.ss_family == AF_INET)
+ {
+ reinterpret_cast<sockaddr_in*>(&addr)->sin_port = htons(port);
+ }
+ else
+ {
+ reinterpret_cast<sockaddr_in6*>(&addr)->sin6_port = htons(port);
+ }
+}
+
vector<string>
IceInternal::getHostsForEndpointExpand(const string& host, ProtocolSupport protocolSupport)
{