diff options
Diffstat (limited to 'TAO/tao/IIOP_Connection_Handler.cpp')
-rw-r--r-- | TAO/tao/IIOP_Connection_Handler.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/TAO/tao/IIOP_Connection_Handler.cpp b/TAO/tao/IIOP_Connection_Handler.cpp index 5186e705a1a..5c4d950c15f 100644 --- a/TAO/tao/IIOP_Connection_Handler.cpp +++ b/TAO/tao/IIOP_Connection_Handler.cpp @@ -265,12 +265,13 @@ TAO_IIOP_Connection_Handler::process_listen_point_list ( // Get the size of the list CORBA::ULong len = listen_list.length (); - for (CORBA::ULong i = 0; i <= len; ++ i) + for (CORBA::ULong i = 0; i < len; ++ i) { IIOP::ListenPoint listen_point = listen_list[i]; ACE_INET_Addr addr (listen_point.port, listen_point.host.in ()); + // Construct an IIOP_Endpoint object TAO_IIOP_Endpoint endpoint (addr, 0); @@ -281,11 +282,14 @@ TAO_IIOP_Connection_Handler::process_listen_point_list ( // Mark the connection as bidirectional prop.set_bidir_flag (1); - // Add the handler to Cache - int retval = this->orb_core ()->connection_cache ().cache_handler (&prop, - this); + // The property for this handler has changed. Recache the + // handler with this property + int retval = this->recache_handler (&prop); if (retval == -1) return retval; + + // Make the handler idle and ready for use + this->make_idle (); } return 0; |