diff options
Diffstat (limited to 'cpp/src/qpid/Url.cpp')
-rw-r--r-- | cpp/src/qpid/Url.cpp | 23 |
1 files changed, 3 insertions, 20 deletions
diff --git a/cpp/src/qpid/Url.cpp b/cpp/src/qpid/Url.cpp index f699b60c17..ab796f4642 100644 --- a/cpp/src/qpid/Url.cpp +++ b/cpp/src/qpid/Url.cpp @@ -156,12 +156,11 @@ class UrlParser { return false; } - // A liberal interpretation of http://www.ietf.org/rfc/rfc3986.txt. - // Works for DNS names and and ipv4 and ipv6 literals + // TODO aconway 2008-11-20: this does not fully implement + // http://www.ietf.org/rfc/rfc3986.txt. Works for DNS names and + // ipv4 literals but won't handle ipv6. // bool host(string& h) { - if (ip6literal(h)) return true; - const char* start=i; while (unreserved() || pctEncoded()) ; @@ -170,22 +169,6 @@ class UrlParser { return true; } - // This is a bit too liberal for IPv6 literal addresses, but probably good enough - bool ip6literal(string& h) { - if (literal("[")) { - const char* start = i; - while (hexDigit() || literal(":") || literal(".")) - ; - const char* end = i; - if ( end-start < 2 ) return false; // Smallest valid address is "::" - if (literal("]")) { - h.assign(start, end); - return true; - } - } - return false; - } - bool unreserved() { return (::isalnum(*i) || ::strchr("-._~", *i)) && advance(); } bool pctEncoded() { return literal("%") && hexDigit() && hexDigit(); } |