From 047bb0138af9bd642f6c6c4bae7df5239a620aa9 Mon Sep 17 00:00:00 2001 From: Ossama Othman Date: Fri, 7 Dec 2001 18:45:28 +0000 Subject: ChangeLogTag:Fri Dec 7 10:22:25 2001 Ossama Othman --- ChangeLog | 17 +++++++++++++++++ ChangeLogs/ChangeLog-02a | 17 +++++++++++++++++ ChangeLogs/ChangeLog-03a | 17 +++++++++++++++++ ace/SSL/SSL_SOCK_Stream.i | 7 ------- 4 files changed, 51 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 669f6c62da1..dcdf43cc7a0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +Fri Dec 7 10:22:25 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Stream.i (close): + + Do not invalidate the handle when closing the + ACE_SSL_SOCK_Stream. Doing so causes subtle side-effects when a + reactor invokes an event handler that uses a shutdown + ACE_SSL_SOCK_Stream. For example, if an SSL handshake fails + then the stream andle will be invalidated. This prevents the + ACE_SSL_Accept_Handler from being removed from the reactor. + Later when handle_events() is called the reactor will attempt + to call the ACE_SSL_Accept_Handler with the shutdown + ACE_SSL_SOCK_Stream, which appears to cause an access violation + on Windows, and a "hand" on Unix platforms. Thanks to Vladimir + Chovanec for tracking down this + problem. + Thu Dec 06 20:28:02 2001 Nanbor Wang * ace/SString.cpp (ACE_NS_WString): Char string constructor only diff --git a/ChangeLogs/ChangeLog-02a b/ChangeLogs/ChangeLog-02a index 669f6c62da1..dcdf43cc7a0 100644 --- a/ChangeLogs/ChangeLog-02a +++ b/ChangeLogs/ChangeLog-02a @@ -1,3 +1,20 @@ +Fri Dec 7 10:22:25 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Stream.i (close): + + Do not invalidate the handle when closing the + ACE_SSL_SOCK_Stream. Doing so causes subtle side-effects when a + reactor invokes an event handler that uses a shutdown + ACE_SSL_SOCK_Stream. For example, if an SSL handshake fails + then the stream andle will be invalidated. This prevents the + ACE_SSL_Accept_Handler from being removed from the reactor. + Later when handle_events() is called the reactor will attempt + to call the ACE_SSL_Accept_Handler with the shutdown + ACE_SSL_SOCK_Stream, which appears to cause an access violation + on Windows, and a "hand" on Unix platforms. Thanks to Vladimir + Chovanec for tracking down this + problem. + Thu Dec 06 20:28:02 2001 Nanbor Wang * ace/SString.cpp (ACE_NS_WString): Char string constructor only diff --git a/ChangeLogs/ChangeLog-03a b/ChangeLogs/ChangeLog-03a index 669f6c62da1..dcdf43cc7a0 100644 --- a/ChangeLogs/ChangeLog-03a +++ b/ChangeLogs/ChangeLog-03a @@ -1,3 +1,20 @@ +Fri Dec 7 10:22:25 2001 Ossama Othman + + * ace/SSL/SSL_SOCK_Stream.i (close): + + Do not invalidate the handle when closing the + ACE_SSL_SOCK_Stream. Doing so causes subtle side-effects when a + reactor invokes an event handler that uses a shutdown + ACE_SSL_SOCK_Stream. For example, if an SSL handshake fails + then the stream andle will be invalidated. This prevents the + ACE_SSL_Accept_Handler from being removed from the reactor. + Later when handle_events() is called the reactor will attempt + to call the ACE_SSL_Accept_Handler with the shutdown + ACE_SSL_SOCK_Stream, which appears to cause an access violation + on Windows, and a "hand" on Unix platforms. Thanks to Vladimir + Chovanec for tracking down this + problem. + Thu Dec 06 20:28:02 2001 Nanbor Wang * ace/SString.cpp (ACE_NS_WString): Char string constructor only diff --git a/ace/SSL/SSL_SOCK_Stream.i b/ace/SSL/SSL_SOCK_Stream.i index 4c74c4f6937..a95b068fe2c 100644 --- a/ace/SSL/SSL_SOCK_Stream.i +++ b/ace/SSL/SSL_SOCK_Stream.i @@ -278,12 +278,6 @@ ACE_SSL_SOCK_Stream::close (void) case SSL_ERROR_NONE: case SSL_ERROR_SYSCALL: // Ignore this error condition. - // Don't set the handle in OpenSSL; only in the SSL_SOCK_Stream. - // We do this to avoid any potential side effects. Invoking - // ACE_SSL_SOCK::set_handle() bypasses the OpenSSL SSL_set_fd() - // call ACE_SSL_SOCK_Stream::set_handle() does. - this->ACE_SSL_SOCK::set_handle (ACE_INVALID_HANDLE); - // Reset the SSL object to allow another connection to be made // using this ACE_SSL_SOCK_Stream instance. This prevents the // previous SSL session state from being associated with the new @@ -321,4 +315,3 @@ ACE_SSL_SOCK_Stream::ssl (void) const { return this->ssl_; } - -- cgit v1.2.1