diff options
Diffstat (limited to 'qpid/cpp/src')
| -rw-r--r-- | qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp | 5 | ||||
| -rw-r--r-- | qpid/cpp/src/qpid/sys/urlAdd.h | 9 |
2 files changed, 9 insertions, 5 deletions
diff --git a/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp b/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp index abf7e58bfe..b6a72fd204 100644 --- a/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp +++ b/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp @@ -78,7 +78,7 @@ void ConnectionContext::trace(const char* message) const ConnectionContext::ConnectionContext(const std::string& url, const qpid::types::Variant::Map& o) : qpid::messaging::ConnectionOptions(o), - fullUrl(url), + fullUrl(url, protocol.empty() ? qpid::Address::TCP : protocol), engine(pn_transport()), connection(pn_connection()), //note: disabled read/write of header as now handled by engine @@ -89,7 +89,8 @@ ConnectionContext::ConnectionContext(const std::string& url, const qpid::types:: codecAdapter(*this) { // Concatenate all known URLs into a single URL, get rid of duplicate addresses. - sys::urlAddStrings(fullUrl, urls.begin(), urls.end()); + sys::urlAddStrings(fullUrl, urls.begin(), urls.end(), protocol.empty() ? + qpid::Address::TCP : protocol); if (pn_transport_bind(engine, connection)) { //error } diff --git a/qpid/cpp/src/qpid/sys/urlAdd.h b/qpid/cpp/src/qpid/sys/urlAdd.h index aecb3115cf..e78c5d586c 100644 --- a/qpid/cpp/src/qpid/sys/urlAdd.h +++ b/qpid/cpp/src/qpid/sys/urlAdd.h @@ -40,7 +40,9 @@ inline void urlAddUrl(Url& url, const Url& more) { } /** Convert str to a Url and do urlAddUrl. */ -inline void urlAddString(Url& url, const std::string& str) { urlAddUrl(url, Url(str)); } +inline void urlAddString(Url& url, const std::string& str, const std::string& defaultProtocol) { + urlAddUrl(url, Url(str, defaultProtocol)); +} /** For each URL in a range, do urlAddUrl */ template <class UrlIterator> @@ -50,8 +52,9 @@ void urlAddUrls(Url& url, UrlIterator i, UrlIterator j) { /** For each string in a range, do urlAddUrl(Url(string)) */ template <class StringIterator> -void urlAddStrings(Url& url, StringIterator i, StringIterator j) { - for_each(i, j, boost::bind(&urlAddString, boost::ref(url), _1)); +void urlAddStrings(Url& url, StringIterator i, StringIterator j, + const std::string& defaultProtocol) { + for_each(i, j, boost::bind(&urlAddString, boost::ref(url), _1, defaultProtocol)); } }} // namespace qpid::sys |
