summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Network.cpp
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2016-07-01 22:06:44 +0200
committerJose <jose@zeroc.com>2016-07-01 22:06:44 +0200
commitf46cc14601a5ac724bed901f03bc547bdb41cb60 (patch)
treef6048cf559b4124ce34bf6650b93144791f94d32 /cpp/src/Ice/Network.cpp
parentFixed ICE-7210 - Added IceSSL dependency when building tests (diff)
parentOpenSSL-1.1.0-pre5 support (diff)
downloadice-f46cc14601a5ac724bed901f03bc547bdb41cb60.tar.bz2
ice-f46cc14601a5ac724bed901f03bc547bdb41cb60.tar.xz
ice-f46cc14601a5ac724bed901f03bc547bdb41cb60.zip
Merge remote-tracking branch 'origin/3.6'
Conflicts: config/Make.common.rules cpp/Makefile cpp/config/Make.rules cpp/config/Make.rules.Linux cpp/src/Ice/InstrumentationI.cpp cpp/src/Ice/PropertyNames.cpp cpp/src/Ice/PropertyNames.h cpp/src/IceSSL/Makefile cpp/src/IceUtil/Makefile cpp/test/Glacier2/attack/Makefile cpp/test/Glacier2/attack/Makefile.mak cpp/test/Glacier2/router/Makefile cpp/test/Glacier2/sessionHelper/Makefile cpp/test/Glacier2/staticFiltering/Makefile cpp/test/Ice/objects/Makefile cpp/test/IceSSL/configuration/AllTests.cpp cpp/test/IceUtil/stacktrace/StackTrace.debug.Linux cpp/test/IceUtil/stacktrace/StackTrace.release.Linux csharp/src/Ice/PropertyNames.cs java/Makefile java/gradle.properties java/gradle/ice.gradle java/src/Ice/src/main/java/IceInternal/PropertyNames.java java/test/build.gradle js/src/Ice/PropertyNames.js man/man1/icegridadmin.1 man/man1/transformdb.1 php/BuildInstructionsWindows.md php/Makefile php/config/Make.rules.Darwin php/config/Make.rules.mak.php php/config/Make.rules.php php/src/IcePHP/Makefile php/src/Makefile php/src/Makefile.mak php/src/php5/.depend.mak php/src/php5/Communicator.cpp php/src/php5/Config.h php/src/php5/Connection.cpp php/src/php5/Endpoint.cpp php/src/php5/IcePHP.rc php/src/php5/Makefile php/src/php5/Makefile.mak php/src/php5/Operation.cpp php/src/php5/Types.cpp php/src/php5/Types.h php/src/php5/Util.cpp php/src/php7/Communicator.cpp php/src/php7/Communicator.h php/src/php7/Config.h php/src/php7/Connection.cpp php/src/php7/Endpoint.cpp php/src/php7/IcePHP.rc php/src/php7/Makefile php/src/php7/Operation.cpp php/src/php7/Types.cpp php/src/php7/Types.h php/src/php7/Util.cpp scripts/TestUtil.py
Diffstat (limited to 'cpp/src/Ice/Network.cpp')
-rwxr-xr-xcpp/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 5cccc3c6e61..09688766350 100755
--- a/cpp/src/Ice/Network.cpp
+++ b/cpp/src/Ice/Network.cpp
@@ -1371,7 +1371,17 @@ IceInternal::closeSocket(SOCKET fd)
WSASetLastError(error);
#else
int error = errno;
+
+# if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+ //
+ // 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();