diff options
author | dkf <donal.k.fellows@manchester.ac.uk> | 2012-08-04 07:51:42 (GMT) |
---|---|---|
committer | dkf <donal.k.fellows@manchester.ac.uk> | 2012-08-04 07:51:42 (GMT) |
commit | 26ef4bacfbe3412a0343afe1cad4b94b321f1fc2 (patch) | |
tree | b1a9d657111f70235f3894fdedc5c3a5d86ce480 /library/http/http.tcl | |
parent | 9d27c20d496ebe21ef04f49dc7b9c100a2de340e (diff) | |
parent | 24ef33dc101a3e9114318b884c1e99d792f4739d (diff) | |
download | tcl-dkf_notifier_poll.zip tcl-dkf_notifier_poll.tar.gz tcl-dkf_notifier_poll.tar.bz2 |
merge trunkdkf_notifier_poll
Diffstat (limited to 'library/http/http.tcl')
-rw-r--r-- | library/http/http.tcl | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/library/http/http.tcl b/library/http/http.tcl index b5ce82b..2653c3e 100644 --- a/library/http/http.tcl +++ b/library/http/http.tcl @@ -419,7 +419,6 @@ proc http::geturl {url args} { # Note that the RE actually combines the user and password parts, as # recommended in RFC 3986. Indeed, that RFC states that putting passwords # in URLs is a Really Bad Idea, something with which I would agree utterly. - # Also note that we do not currently support IPv6 addresses. # # From a validation perspective, we need to ensure that the parts of the # URL that are going to the server are correctly encoded. This is only @@ -434,7 +433,10 @@ proc http::geturl {url args} { [^@/\#?]+ # <userinfo part of authority> ) @ )? - ( [^/:\#?]+ ) # <host part of authority> + ( # <host part of authority> + [^/:\#?]+ | # host name or IPv4 address + \[ [^/\#?]+ \] # IPv6 address in square brackets + ) (?: : (\d+) )? # <port part of authority> )? ( / [^\#]*)? # <path> (including query) @@ -448,6 +450,7 @@ proc http::geturl {url args} { return -code error "Unsupported URL: $url" } # Phase two: validate + set host [string trim $host {[]}]; # strip square brackets from IPv6 address if {$host eq ""} { # Caller has to provide a host name; we do not have a "default host" # that would enable us to handle relative URLs. |