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.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/cpp/src/Ice/Network.cpp b/cpp/src/Ice/Network.cpp
index 7ba4106cc2a..73c14933493 100644
--- a/cpp/src/Ice/Network.cpp
+++ b/cpp/src/Ice/Network.cpp
@@ -331,6 +331,18 @@ IceInternal::setSendBufferSize(SOCKET fd, int sz)
}
void
+IceInternal::setRecvBufferSize(SOCKET fd, int sz)
+{
+ if(setsockopt(fd, SOL_SOCKET, SO_RCVBUF, (char*)&sz, sizeof(int)) == SOCKET_ERROR)
+ {
+ closeSocket(fd);
+ SocketException ex(__FILE__, __LINE__);
+ ex.error = getSocketErrno();
+ throw ex;
+ }
+}
+
+void
IceInternal::doBind(SOCKET fd, struct sockaddr_in& addr)
{
#ifndef _WIN32
@@ -385,7 +397,7 @@ IceInternal::doConnect(SOCKET fd, struct sockaddr_in& addr, int timeout)
#ifdef _WIN32
//
// Set larger send buffer size to avoid performance problems on
- // WIN32
+ // WIN32.
//
setSendBufferSize(fd, 64 * 1024);
#endif
@@ -573,7 +585,7 @@ repeatAccept:
#ifdef _WIN32
//
// Set larger send buffer size to avoid performance problems on
- // WIN32
+ // WIN32.
//
setSendBufferSize(ret, 64 * 1024);
#endif