diff options
Diffstat (limited to 'cpp/src/qpid/client')
| -rw-r--r-- | cpp/src/qpid/client/Connection.cpp | 23 | ||||
| -rw-r--r-- | cpp/src/qpid/client/ConnectionSettings.cpp | 2 | ||||
| -rw-r--r-- | cpp/src/qpid/client/Connector.cpp | 3 | ||||
| -rw-r--r-- | cpp/src/qpid/client/FailoverManager.cpp | 11 |
4 files changed, 19 insertions, 20 deletions
diff --git a/cpp/src/qpid/client/Connection.cpp b/cpp/src/qpid/client/Connection.cpp index 6d2fd1d760..2882ef5d42 100644 --- a/cpp/src/qpid/client/Connection.cpp +++ b/cpp/src/qpid/client/Connection.cpp @@ -71,19 +71,18 @@ void Connection::open(const Url& url, const ConnectionSettings& settings) { throw Exception(QPID_MSG("Attempt to open URL with no addresses.")); Url::const_iterator i = url.begin(); do { - const TcpAddress* tcp = i->get<TcpAddress>(); + const Address& addr = *i; i++; - if (tcp) { - try { - ConnectionSettings cs(settings); - cs.host = tcp->host; - cs.port = tcp->port; - open(cs); - break; - } - catch (const Exception& /*e*/) { - if (i == url.end()) throw; - } + try { + ConnectionSettings cs(settings); + cs.protocol = addr.protocol; + cs.host = addr.host; + cs.port = addr.port; + open(cs); + break; + } + catch (const Exception& /*e*/) { + if (i == url.end()) throw; } } while (i != url.end()); } diff --git a/cpp/src/qpid/client/ConnectionSettings.cpp b/cpp/src/qpid/client/ConnectionSettings.cpp index b0c9477223..60b2eac2e8 100644 --- a/cpp/src/qpid/client/ConnectionSettings.cpp +++ b/cpp/src/qpid/client/ConnectionSettings.cpp @@ -31,7 +31,7 @@ namespace client { ConnectionSettings::ConnectionSettings() : protocol("tcp"), host("localhost"), - port(TcpAddress::DEFAULT_PORT), + port(5672), locale("en_US"), heartbeat(0), maxChannels(32767), diff --git a/cpp/src/qpid/client/Connector.cpp b/cpp/src/qpid/client/Connector.cpp index a06184fa27..c71dd9ecb6 100644 --- a/cpp/src/qpid/client/Connector.cpp +++ b/cpp/src/qpid/client/Connector.cpp @@ -20,7 +20,7 @@ */ #include "qpid/client/Connector.h" - +#include "qpid/Url.h" #include "qpid/Exception.h" #include "qpid/log/Statement.h" #include "qpid/sys/SecurityLayer.h" @@ -61,6 +61,7 @@ void Connector::registerFactory(const std::string& proto, Factory* connectorFact QPID_LOG(error, "Tried to register protocol: " << proto << " more than once"); } theProtocolRegistry()[proto] = connectorFactory; + Url::addProtocol(proto); } void Connector::activateSecurityLayer(std::auto_ptr<qpid::sys::SecurityLayer>) diff --git a/cpp/src/qpid/client/FailoverManager.cpp b/cpp/src/qpid/client/FailoverManager.cpp index 81f71eb7df..9405765b47 100644 --- a/cpp/src/qpid/client/FailoverManager.cpp +++ b/cpp/src/qpid/client/FailoverManager.cpp @@ -104,12 +104,11 @@ void FailoverManager::attempt(Connection& c, ConnectionSettings s, std::vector<U } else { for (std::vector<Url>::const_iterator i = urls.begin(); i != urls.end() && !c.isOpen(); ++i) { for (Url::const_iterator j = i->begin(); j != i->end() && !c.isOpen(); ++j) { - const TcpAddress* tcp = j->get<TcpAddress>(); - if (tcp) { - s.host = tcp->host; - s.port = tcp->port; - attempt(c, s); - } + const Address& addr = *j; + s.protocol = addr.protocol; + s.host = addr.host; + s.port = addr.port; + attempt(c, s); } } } |
