summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Network.cpp
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2016-05-26 18:36:47 +0200
committerJose <jose@zeroc.com>2016-05-26 18:36:47 +0200
commit5a342be6df4370f047268db349c08a2521f484c8 (patch)
tree93997d7b368709a26b10a5355b101eb41e19865e /cpp/src/Ice/Network.cpp
parentJava build fixes to better support Debian packaging: (diff)
downloadice-5a342be6df4370f047268db349c08a2521f484c8.tar.bz2
ice-5a342be6df4370f047268db349c08a2521f484c8.tar.xz
ice-5a342be6df4370f047268db349c08a2521f484c8.zip
FreeBSD patches
Diffstat (limited to 'cpp/src/Ice/Network.cpp')
-rw-r--r--cpp/src/Ice/Network.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/cpp/src/Ice/Network.cpp b/cpp/src/Ice/Network.cpp
index 56d3f0314f0..74188d50f42 100644
--- a/cpp/src/Ice/Network.cpp
+++ b/cpp/src/Ice/Network.cpp
@@ -1238,7 +1238,17 @@ IceInternal::closeSocket(SOCKET fd)
WSASetLastError(error);
#else
int error = errno;
+
+# if defined(__FreeBSD__)
+ //
+ // FreeBSD returns ECONNRESET if the underlying object was
+ // a stream socket that was shut down by the peer before all
+ // pending data was delivered.
+ //
+ if(close(fd) == SOCKET_ERROR && getSocketErrno() != ECONNRESET)
+# else
if(close(fd) == SOCKET_ERROR)
+# endif
{
SocketException ex(__FILE__, __LINE__);
ex.error = getSocketErrno();