diff options
author | Anthony Neal <aneal@zeroc.com> | 2002-05-14 00:23:01 +0000 |
---|---|---|
committer | Anthony Neal <aneal@zeroc.com> | 2002-05-14 00:23:01 +0000 |
commit | 6728a6037d0542da5886976c0498e64db98c0d71 (patch) | |
tree | 3f2d7baf96ee8d13201b22ddcee6aa0976134477 /cpp/src/IceSSL/SslConnectionOpenSSL.h | |
parent | catch unknown exceptions from entry point (diff) | |
download | ice-6728a6037d0542da5886976c0498e64db98c0d71.tar.bz2 ice-6728a6037d0542da5886976c0498e64db98c0d71.tar.xz ice-6728a6037d0542da5886976c0498e64db98c0d71.zip |
Updated to fix a problem with SSL server shutdown.
Diffstat (limited to 'cpp/src/IceSSL/SslConnectionOpenSSL.h')
-rw-r--r-- | cpp/src/IceSSL/SslConnectionOpenSSL.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/cpp/src/IceSSL/SslConnectionOpenSSL.h b/cpp/src/IceSSL/SslConnectionOpenSSL.h index c71b11e8a0b..0d08f83ccbc 100644 --- a/cpp/src/IceSSL/SslConnectionOpenSSL.h +++ b/cpp/src/IceSSL/SslConnectionOpenSSL.h @@ -116,6 +116,13 @@ private: // would always be a reference to them from the map. typedef std::map<SSL*, Connection*> SslConnectionMap; +typedef enum +{ + Handshake, // The connection is negotiating a connection with the peer. + Shutdown, // The connection is in the process of shutting down. + Connected // The connection is connected - communication may continue. +} ConnectPhase; + class Connection : public IceSSL::Connection { public: @@ -125,12 +132,12 @@ public: const IceSSL::PluginBaseIPtr&); virtual ~Connection(); - virtual void shutdown(); + virtual int shutdown(int timeout = 0); virtual int read(IceInternal::Buffer&, int); virtual int write(IceInternal::Buffer&, int) = 0; - virtual int init(int timeout = 0) = 0; + virtual int handshake(int timeout = 0) = 0; void setHandshakeReadTimeout(int timeout); @@ -188,6 +195,8 @@ protected: int _initWantWrite; int _handshakeReadTimeout; int _readTimeout; + + ConnectPhase _phase; }; } |