diff options
-rw-r--r-- | TAO/ChangeLog | 9 | ||||
-rw-r--r-- | TAO/tao/IIOP_Connection_Handler.cpp | 2 |
2 files changed, 10 insertions, 1 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index fbfffbcb1a7..ef3b91b035b 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,12 @@ +Tue Aug 29 17:40:01 UTC 2006 Phil Mesnier <mesnier_p@ociweb.com> + + * tao/IIOP_Connection_Handler.cpp: + Explicitly call release_os_resources from the dtor. + Release_os_resources is a virtual method, but of course calling + that from the base class's destructor won't work. This fix + ensures that sockets are really closed when the connection + handler is destroyed. + Tue Aug 29 17:26:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl> * tests/Bug_2560_Regression/Bug_2560_Regression.mpc: diff --git a/TAO/tao/IIOP_Connection_Handler.cpp b/TAO/tao/IIOP_Connection_Handler.cpp index 1ed95ca6a6c..f8d724d6c12 100644 --- a/TAO/tao/IIOP_Connection_Handler.cpp +++ b/TAO/tao/IIOP_Connection_Handler.cpp @@ -60,6 +60,7 @@ TAO_IIOP_Connection_Handler::TAO_IIOP_Connection_Handler (TAO_ORB_Core *orb_core TAO_IIOP_Connection_Handler::~TAO_IIOP_Connection_Handler (void) { delete this->transport (); + this->release_os_resources(); } /* Copy hook that copies over the concrete methods from this class @@ -275,7 +276,6 @@ TAO_IIOP_Connection_Handler::close_connection (void) struct linger lval; lval.l_onoff = 1; lval.l_linger = (u_short)linger; - if (this->peer ().set_option(SOL_SOCKET, SO_LINGER, (void*) &lval, |