diff options
Diffstat (limited to 'cpp/src/Ice/Network.cpp')
-rw-r--r-- | cpp/src/Ice/Network.cpp | 23 |
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) { |