summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp')
-rw-r--r--cpp/src/IceSSL/TransceiverI.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/cpp/src/IceSSL/TransceiverI.cpp b/cpp/src/IceSSL/TransceiverI.cpp
index 7265708a17c..52833fdea98 100644
--- a/cpp/src/IceSSL/TransceiverI.cpp
+++ b/cpp/src/IceSSL/TransceiverI.cpp
@@ -116,6 +116,9 @@ IceSSL::TransceiverI::initialize()
if(!_ssl)
{
BIO_free(bio);
+#ifdef ICE_USE_IOCP
+ BIO_free(_iocpBio);
+#endif
SecurityException ex(__FILE__, __LINE__);
ex.reason = "openssl failure";
throw ex;
@@ -300,6 +303,14 @@ IceSSL::TransceiverI::close()
_ssl = 0;
}
+#ifdef ICE_USE_IOCP
+ if(_iocpBio)
+ {
+ BIO_free(_iocpBio);
+ _iocpBio = 0;
+ }
+#endif
+
assert(_fd != INVALID_SOCKET);
try
{