diff options
author | Ossama Othman <ossama-othman@users.noreply.github.com> | 2001-12-07 18:45:28 +0000 |
---|---|---|
committer | Ossama Othman <ossama-othman@users.noreply.github.com> | 2001-12-07 18:45:28 +0000 |
commit | 047bb0138af9bd642f6c6c4bae7df5239a620aa9 (patch) | |
tree | 2bbf42cca880c1b614c483cad0a24241b3290f15 | |
parent | 2e69d1ff32812c348c560b1260bf2f8b90cd0e2f (diff) | |
download | ATCD-047bb0138af9bd642f6c6c4bae7df5239a620aa9.tar.gz |
ChangeLogTag:Fri Dec 7 10:22:25 2001 Ossama Othman <ossama@uci.edu>
-rw-r--r-- | ChangeLog | 17 | ||||
-rw-r--r-- | ChangeLogs/ChangeLog-02a | 17 | ||||
-rw-r--r-- | ChangeLogs/ChangeLog-03a | 17 | ||||
-rw-r--r-- | 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 <ossama@uci.edu> + + * 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 <Vladimir.CHOVANEC@asset.sk> for tracking down this + problem. + Thu Dec 06 20:28:02 2001 Nanbor Wang <nanbor@cs.wustl.edu> * 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 <ossama@uci.edu> + + * 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 <Vladimir.CHOVANEC@asset.sk> for tracking down this + problem. + Thu Dec 06 20:28:02 2001 Nanbor Wang <nanbor@cs.wustl.edu> * 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 <ossama@uci.edu> + + * 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 <Vladimir.CHOVANEC@asset.sk> for tracking down this + problem. + Thu Dec 06 20:28:02 2001 Nanbor Wang <nanbor@cs.wustl.edu> * 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_; } - |