Posted to tcl by aspect at Sun Oct 18 04:03:44 GMT 2015view pretty
puts "Tcl: [package require Tcl]" puts "tls: [package require tls]" puts "http: [package require http]" http::register https 443 tls::socket # makes no difference in my env ... # ::tls::init -tls1 0 -tls1.2 1 -tls1.1 0 -ssl3 0 -ssl2 0 proc pdict {d} { array set {} $d parray {} } proc fetch {url} { puts "Fetching $url ..." try { set t [::http::geturl $url] set l [string length [::http::data $t]] ::http::cleanup $t puts "OK! $l bytes" } on error {e o} { puts "ERROR: $e" pdict $o puts "CHANS: [chan names]" } } fetch https://google.com/ ;# this succeeds fetch https://1337x.to/ ;# this fails fetch https://google.com/ ;# then a (harmless?) error is emitted here if 0 { # annotated output: "-:" = stdout; "#!" = stderr -: Tcl: 8.6.4 -: tls: 1.6.7 -: http: 2.8.9 -: Fetching https://google.com/ ... -: OK! 261 bytes -: Fetching https://1337x.to/ ... -: ERROR: error flushing "sock1d18440": connection reset by peer -: (-code) = 1 -: (-errorcode) = NONE -: (-errorinfo) = error flushing "sock1d18440": connection reset by peer -: while executing -: "::http::geturl $url" -: (-errorline) = 4 -: (-errorstack) = INNER {invokeStk1 ::http::geturl https://1337x.to/} CALL {fetch https://1337x.to/} -: (-level) = 0 -: CHANS: stdin stdout stderr -: Fetching https://google.com/ ... #! SSL channel "socka20440": error: tlsv1 alert internal error -: OK! 261 bytes }