diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2005-09-09 12:30:22 +0000 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2005-09-09 12:30:22 +0000 |
commit | d1b4f7da2f52a64249e5c296acbf8a0ba39315dc (patch) | |
tree | 8fc8de570eb673cdc7ebb59cf4c1655a67d347cb /cpp/src/Ice/ThreadPool.cpp | |
parent | Support for new proxy methods w/ VC71 (diff) | |
download | ice-d1b4f7da2f52a64249e5c296acbf8a0ba39315dc.tar.bz2 ice-d1b4f7da2f52a64249e5c296acbf8a0ba39315dc.tar.xz ice-d1b4f7da2f52a64249e5c296acbf8a0ba39315dc.zip |
Bug 430: udp close on transient exceptions
Diffstat (limited to 'cpp/src/Ice/ThreadPool.cpp')
-rw-r--r-- | cpp/src/Ice/ThreadPool.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/cpp/src/Ice/ThreadPool.cpp b/cpp/src/Ice/ThreadPool.cpp index 0e4c59a3b2a..670411f142e 100644 --- a/cpp/src/Ice/ThreadPool.cpp +++ b/cpp/src/Ice/ThreadPool.cpp @@ -600,11 +600,27 @@ IceInternal::ThreadPool::run() { continue; } - catch(const LocalException& ex) + catch(const SocketException& ex) { handler->exception(ex); continue; } + catch(const LocalException& ex) + { + if(handler->datagram()) + { + if(_instance->properties()->getPropertyAsInt("Ice.Warn.Connections") > 0) + { + Warning out(_instance->logger()); + out << "datagram connection exception:\n" << ex << '\n' << handler->toString(); + } + } + else + { + handler->exception(ex); + } + continue; + } stream.swap(handler->_stream); assert(stream.i == stream.b.end()); |