summaryrefslogtreecommitdiff
path: root/qpid/cpp
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2010-04-14 14:32:26 +0000
committerGordon Sim <gsim@apache.org>2010-04-14 14:32:26 +0000
commit5dd7e676ee8f35b382338dc28e65fddf0b809c95 (patch)
tree681476f5b2dd9ad5004a11a82a6a590dd1407831 /qpid/cpp
parentd39020abcb8cacfcf3cf639a8310ab3075c0eef1 (diff)
downloadqpid-python-5dd7e676ee8f35b382338dc28e65fddf0b809c95.tar.gz
Fix url parsing to make hostname required
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@933970 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp')
-rw-r--r--qpid/cpp/src/qpid/Url.cpp2
-rw-r--r--qpid/cpp/src/tests/Url.cpp8
2 files changed, 6 insertions, 4 deletions
diff --git a/qpid/cpp/src/qpid/Url.cpp b/qpid/cpp/src/qpid/Url.cpp
index f831167dd8..3b4eb60ddd 100644
--- a/qpid/cpp/src/qpid/Url.cpp
+++ b/qpid/cpp/src/qpid/Url.cpp
@@ -116,7 +116,7 @@ class UrlParser {
const char* start=i;
while (unreserved() || pctEncoded())
;
- if (start == i) h = LOCALHOST; // Default
+ if (start == i) return false;//host is required
else h.assign(start, i);
return true;
}
diff --git a/qpid/cpp/src/tests/Url.cpp b/qpid/cpp/src/tests/Url.cpp
index 343186eb1f..cd5169a21d 100644
--- a/qpid/cpp/src/tests/Url.cpp
+++ b/qpid/cpp/src/tests/Url.cpp
@@ -41,9 +41,11 @@ QPID_AUTO_TEST_CASE(TestParseTcp) {
// Check defaults
BOOST_CHECK_EQUAL(Url("amqp:host:42").str(), "amqp:tcp:host:42");
BOOST_CHECK_EQUAL(Url("amqp:tcp:host").str(), "amqp:tcp:host:5672");
- BOOST_CHECK_EQUAL(Url("amqp:tcp:").str(), "amqp:tcp:127.0.0.1:5672");
- BOOST_CHECK_EQUAL(Url("amqp:").str(), "amqp:tcp:127.0.0.1:5672");
- BOOST_CHECK_EQUAL(Url("amqp::42").str(), "amqp:tcp:127.0.0.1:42");
+
+ //host is required:
+ URL_CHECK_INVALID("amqp:tcp:");
+ URL_CHECK_INVALID("amqp:");
+ URL_CHECK_INVALID("amqp::42");
URL_CHECK_INVALID("amqp::badHost!#$#");
URL_CHECK_INVALID("amqp::host:badPort");