summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/client
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/client')
-rw-r--r--cpp/src/qpid/client/Connection.cpp23
-rw-r--r--cpp/src/qpid/client/ConnectionSettings.cpp2
-rw-r--r--cpp/src/qpid/client/Connector.cpp3
-rw-r--r--cpp/src/qpid/client/FailoverManager.cpp11
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);
}
}
}