diff options
| author | Gordon Sim <gsim@apache.org> | 2010-04-19 08:32:52 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2010-04-19 08:32:52 +0000 |
| commit | 813c4140d6549d85a61ae17c4b397967e0dd18df (patch) | |
| tree | 76d41d6c3f0224b20f20ac39489c1b2930c14a82 /qpid/cpp | |
| parent | 1d5bd4f191a2ed51b0b183e9c35b0153746729d3 (diff) | |
| download | qpid-python-813c4140d6549d85a61ae17c4b397967e0dd18df.tar.gz | |
Ensure that ConnectionImpl is notified of shutdown even in the case of disconnect (which needs different handling than eof)
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@935473 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp')
| -rw-r--r-- | qpid/cpp/src/qpid/client/SslConnector.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/qpid/cpp/src/qpid/client/SslConnector.cpp b/qpid/cpp/src/qpid/client/SslConnector.cpp index 990ca90de7..4be8fcaa04 100644 --- a/qpid/cpp/src/qpid/client/SslConnector.cpp +++ b/qpid/cpp/src/qpid/client/SslConnector.cpp @@ -110,6 +110,7 @@ class SslConnector : public Connector void writebuff(qpid::sys::ssl::SslIO&); void writeDataBlock(const framing::AMQDataBlock& data); void eof(qpid::sys::ssl::SslIO&); + void disconnected(qpid::sys::ssl::SslIO&); std::string identifier; @@ -201,7 +202,7 @@ void SslConnector::connect(const std::string& host, int port){ aio = new SslIO(socket, boost::bind(&SslConnector::readbuff, this, _1, _2), boost::bind(&SslConnector::eof, this, _1), - boost::bind(&SslConnector::eof, this, _1), + boost::bind(&SslConnector::disconnected, this, _1), boost::bind(&SslConnector::socketClosed, this, _1, _2), 0, // nobuffs boost::bind(&SslConnector::writebuff, this, _1)); @@ -362,6 +363,11 @@ void SslConnector::eof(SslIO&) { close(); } +void SslConnector::disconnected(SslIO&) { + close(); + socketClosed(*aio, socket); +} + const SecuritySettings* SslConnector::getSecuritySettings() { securitySettings.ssf = socket.getKeyLen(); |
