summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOssama Othman <ossama-othman@users.noreply.github.com>2001-12-07 18:45:28 +0000
committerOssama Othman <ossama-othman@users.noreply.github.com>2001-12-07 18:45:28 +0000
commit047bb0138af9bd642f6c6c4bae7df5239a620aa9 (patch)
tree2bbf42cca880c1b614c483cad0a24241b3290f15
parent2e69d1ff32812c348c560b1260bf2f8b90cd0e2f (diff)
downloadATCD-047bb0138af9bd642f6c6c4bae7df5239a620aa9.tar.gz
ChangeLogTag:Fri Dec 7 10:22:25 2001 Ossama Othman <ossama@uci.edu>
-rw-r--r--ChangeLog17
-rw-r--r--ChangeLogs/ChangeLog-02a17
-rw-r--r--ChangeLogs/ChangeLog-03a17
-rw-r--r--ace/SSL/SSL_SOCK_Stream.i7
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_;
}
-