diff options
Diffstat (limited to 'cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp')
| -rw-r--r-- | cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp b/cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp index 3a735b5698..1698f96caf 100644 --- a/cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp +++ b/cpp/src/qpid/client/amqp0_10/ConnectionImpl.cpp @@ -136,7 +136,9 @@ void ConnectionImpl::connect(const AbsTime& started) bool ConnectionImpl::tryConnect() { - if (tryConnect(url) || tryConnect(connection.getKnownBrokers())) { + if (tryConnect(url) || + (failoverListener.get() && tryConnect(failoverListener->getKnownBrokers()))) + { return resetSessions(); } else { return false; @@ -148,6 +150,7 @@ bool ConnectionImpl::tryConnect(const Url& u) try { QPID_LOG(info, "Trying to connect to " << url << "..."); connection.open(u, settings); + failoverListener.reset(new FailoverListener(connection)); return true; } catch (const Exception& e) { //TODO: need to fix timeout on open so that it throws TransportFailure |
