summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Connection.cpp
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2002-07-01 18:03:44 +0000
committerMarc Laukien <marc@zeroc.com>2002-07-01 18:03:44 +0000
commit35486b505c44e937115759d29ecf12ca470951d5 (patch)
tree0cec36d62b0d08465598b79e5c207568daf6602e /cpp/src/Ice/Connection.cpp
parentAdded additional check to make sure that no exception is mentioned more (diff)
downloadice-35486b505c44e937115759d29ecf12ca470951d5.tar.bz2
ice-35486b505c44e937115759d29ecf12ca470951d5.tar.xz
ice-35486b505c44e937115759d29ecf12ca470951d5.zip
validation fixes
Diffstat (limited to 'cpp/src/Ice/Connection.cpp')
-rw-r--r--cpp/src/Ice/Connection.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/cpp/src/Ice/Connection.cpp b/cpp/src/Ice/Connection.cpp
index f30bd36759c..5b39e960feb 100644
--- a/cpp/src/Ice/Connection.cpp
+++ b/cpp/src/Ice/Connection.cpp
@@ -833,10 +833,25 @@ IceInternal::Connection::Connection(const InstancePtr& instance,
{
//
// Incoming connections play the active role with respect
- // to connection validation.
+ // to connection validation, and are implicitly validated.
//
+ try
+ {
+ validateConnection();
+ }
+ catch(const LocalException& ex)
+ {
+ if(_warn)
+ {
+ Warning out(_logger);
+ out << "connection exception:\n" << ex << '\n' << _transceiver->toString();
+ }
+ _transceiver->close();
+ _state = StateClosed;
+ ex.ice_throw();
+ }
+
_connectionValidated = true;
- validateConnection();
}
else
{