summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/client/SslConnector.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/client/SslConnector.cpp')
-rw-r--r--cpp/src/qpid/client/SslConnector.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/cpp/src/qpid/client/SslConnector.cpp b/cpp/src/qpid/client/SslConnector.cpp
index 635de1f62d..8194371b8a 100644
--- a/cpp/src/qpid/client/SslConnector.cpp
+++ b/cpp/src/qpid/client/SslConnector.cpp
@@ -89,6 +89,7 @@ class SslConnector : public Connector
sys::Mutex closedLock;
bool closed;
+ bool joined;
sys::ShutdownHandler* shutdownHandler;
framing::InputHandler* input;
@@ -114,6 +115,8 @@ class SslConnector : public Connector
std::string identifier;
+ ConnectionImpl* impl;
+
void connect(const std::string& host, int port);
void init();
void close();
@@ -171,10 +174,12 @@ SslConnector::SslConnector(Poller::shared_ptr p,
version(ver),
initiated(false),
closed(true),
+ joined(true),
shutdownHandler(0),
writer(maxFrameSize, cimpl),
aio(0),
- poller(p)
+ poller(p),
+ impl(cimpl)
{
QPID_LOG(debug, "SslConnector created for " << version.toString());
//TODO: how do we want to handle socket configuration with ssl?
@@ -209,8 +214,10 @@ void SslConnector::connect(const std::string& host, int port){
void SslConnector::init(){
Mutex::ScopedLock l(closedLock);
+ assert(joined);
ProtocolInitiation init(version);
writeDataBlock(init);
+ joined = false;
for (int i = 0; i < 32; i++) {
aio->queueReadBuffer(new Buff(maxFrameSize));
}