diff options
author | mk1 <mk1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2001-02-14 22:32:59 +0000 |
---|---|---|
committer | mk1 <mk1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2001-02-14 22:32:59 +0000 |
commit | 396714e5cc8b267dd50eb08e6880a36e28e58b20 (patch) | |
tree | 4a4ac93df385a9822211ae00c8901b50616acdd4 /TAO/tao/IIOP_Transport.cpp | |
parent | c80452713bea73a098ede0f8ac31d3a264743cf7 (diff) | |
download | ATCD-396714e5cc8b267dd50eb08e6880a36e28e58b20.tar.gz |
ChangeLogTag: Wed Feb 14 16:30:23 2001 Michael Kircher <Michael.Kircher@mchp.siemens.de>
Diffstat (limited to 'TAO/tao/IIOP_Transport.cpp')
-rw-r--r-- | TAO/tao/IIOP_Transport.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/TAO/tao/IIOP_Transport.cpp b/TAO/tao/IIOP_Transport.cpp index fea6cdfdb40..1370f1dfb65 100644 --- a/TAO/tao/IIOP_Transport.cpp +++ b/TAO/tao/IIOP_Transport.cpp @@ -401,13 +401,18 @@ TAO_IIOP_Transport::process_message (void) // is going to take a look please contact bala@cs.wustl.edu // for details on this-- Bala + + if (result == -1) { + // Something really critical happened, we will forget about + // every reply on this connection. if (TAO_debug_level > 0) ACE_ERROR ((LM_ERROR, ACE_TEXT ("TAO (%P|%t) : IIOP_Client_Transport::") ACE_TEXT ("handle_client_input - ") ACE_TEXT ("dispatch reply failed\n"))); + this->messaging_object_->reset (); this->tms_->connection_closed (); return -1; @@ -416,7 +421,16 @@ TAO_IIOP_Transport::process_message (void) if (result == 0) { this->messaging_object_->reset (); - return 0; + + // The reply dispatcher was no longer registered. + // This can happened when the request/reply + // times out. + // To throw away all registered reply handlers is + // not the right thing, as there might be just one + // old reply coming in and several valid new ones + // pending. If we would invoke <connection_closed> + // we would throw away also the valid ones. + //return 0; } |