summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp')
-rw-r--r--TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp48
1 files changed, 40 insertions, 8 deletions
diff --git a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp
index 9e04e168a8a..baa8bc86b66 100644
--- a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp
+++ b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp
@@ -285,6 +285,18 @@ TAO_SSLIOP_Transport::tear_listen_point_list (TAO_InputCDR &cdr)
// As we have received a bidirectional information, set the flag to
// 1
this->bidirectional_flag (1);
+
+ // Just make sure that the connection handler is sane before we go
+ // head and do anything with it.
+ ACE_GUARD_RETURN (ACE_Lock,
+ ace_mon,
+ *this->handler_lock_,
+ -1);
+
+ if (this->check_event_handler_i ("SSLIOP_Transport::tear_listen_point_list")
+ == -1)
+ return -1;
+
return this->connection_handler_->process_listen_point_list (listen_list);
}
@@ -311,8 +323,15 @@ TAO_SSLIOP_Transport::set_bidir_context_info (TAO_Operation_Details &opdetails)
// Check whether it is a IIOP acceptor
if ((*acceptor)->tag () == IOP::TAG_INTERNET_IOP)
{
- this->get_listen_point (listen_point_list,
- *acceptor);
+ if (this->get_listen_point (listen_point_list,
+ *acceptor) == -1)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "TAO (%P|%t) - SSLIOP_Transport::set_bidir_info, ",
+ "error getting listen_point \n"));
+
+ return;
+ }
}
}
@@ -359,16 +378,29 @@ TAO_SSLIOP_Transport::get_listen_point (
// Get the local address of the connection
ACE_INET_Addr local_addr;
+ {
+ // Just make sure that the connection handler is sane before we go
+ // head and do anything with it.
+ ACE_GUARD_RETURN (ACE_Lock,
+ ace_mon,
+ *this->handler_lock_,
+ -1);
+
+ if (this->check_event_handler_i ("SSLIOP_Transport::get_listen_point")
+ == -1)
+ return -1;
- if (this->connection_handler_->peer ().get_local_addr (local_addr)
- == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("(%P|%t) Could not resolve local host")
- ACE_TEXT (" address in get_listen_point()\n")),
+ if (this->connection_handler_->peer ().get_local_addr (local_addr)
+ == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) Could not resolve local host")
+ ACE_TEXT (" address in get_listen_point()\n")),
-1);
}
+ }
+
// Note: Looks like there is no point in sending the list of
// endpoints on interfaces on which this connection has not
// been established. If this is wrong, please correct me.