diff options
Diffstat (limited to 'cpp/src/Ice/ConnectionFactory.cpp')
-rw-r--r-- | cpp/src/Ice/ConnectionFactory.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/cpp/src/Ice/ConnectionFactory.cpp b/cpp/src/Ice/ConnectionFactory.cpp index 9ee0e53b924..ce807c91269 100644 --- a/cpp/src/Ice/ConnectionFactory.cpp +++ b/cpp/src/Ice/ConnectionFactory.cpp @@ -1276,8 +1276,15 @@ IceInternal::IncomingConnectionFactory::message(BasicStream&, const ThreadPoolPt { transceiver = _acceptor->accept(); } - catch(const SocketException&) + catch(const SocketException& ex) { + if(noMoreFds(ex.error)) + { + Error out(_instance->initializationData().logger); + out << "fatal error: can't accept more connections:\n" << ex << '\n' << _acceptor->toString(); + abort(); + } + // Ignore socket exceptions. return; } |