summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2020-09-30 15:59:51 (GMT)
committerdgp <dgp@users.sourceforge.net>2020-09-30 15:59:51 (GMT)
commitcd8531d2930e5f6b0363494960ec70745709e3a0 (patch)
treef5142d6a92daef42c95d53c04f4d2d3bff26335f
parent4d4d50dc93778fa2443c61b728ae30620ccc73be (diff)
parent1f4f47ccf50b4d6518c3dbfd9fd09c7bbb785929 (diff)
downloadtcl-cd8531d2930e5f6b0363494960ec70745709e3a0.zip
tcl-cd8531d2930e5f6b0363494960ec70745709e3a0.tar.gz
tcl-cd8531d2930e5f6b0363494960ec70745709e3a0.tar.bz2
merge 8.6
-rw-r--r--library/http/http.tcl8
-rw-r--r--tests/http.test2
2 files changed, 4 insertions, 6 deletions
diff --git a/library/http/http.tcl b/library/http/http.tcl
index abef596..b0f87de 100644
--- a/library/http/http.tcl
+++ b/library/http/http.tcl
@@ -733,7 +733,7 @@ proc http::geturl {url args} {
-strict boolean
-timeout integer
-validate boolean
- -headers list
+ -headers dict
}
set state(charset) $defaultCharset
set options {
@@ -747,10 +747,8 @@ proc http::geturl {url args} {
foreach {flag value} $args {
if {[regexp -- $pat $flag]} {
# Validate numbers
- if {
- ([info exists type($flag)] &&
- ![string is $type($flag) -strict $value]) ||
- $flag eq "-headers" && [llength $value] %2 != 0
+ if {($flag eq "-headers") ? [catch {dict size $value}] :
+ ([info exists type($flag)] && ![string is $type($flag) -strict $value])
} {
unset $token
return -code error \
diff --git a/tests/http.test b/tests/http.test
index 15bc37f..97e6cfa 100644
--- a/tests/http.test
+++ b/tests/http.test
@@ -450,7 +450,7 @@ test http-3.33 {http::geturl application/xml is text} -body {
} -result {test 4660 /test}
test http-3.34 {http::geturl -headers not a dict} -returnCodes error -body {
http::geturl http://test/t -headers NoDict
-} -result {Bad value for -headers (NoDict), must be list}
+} -result {Bad value for -headers (NoDict), must be dict}
test http-4.1 {http::Event} -body {
set token [http::geturl $url -keepalive 0]