Posted to tcl by aspect at Sun Oct 18 06:42:42 GMT 2015view raw
- # Tcl: 8.6.4
- # http: 2.8.9
- # tls: 1.6.7 (OpenSSL 1.0.2d 9 Jul 2015)
- # Fetching https://google.com/ ...
- # OK! 261 bytes
- # Fetching https://1337x.to/ ...
- # ERROR: error flushing "sock24ad900": connection reset by peer
- # Fetching https://google.com/ ...
- # OK! 261 bytes
- puts "Tcl: [package require Tcl]"
- puts "http: [package require http]"
- puts "tls: [package require tls] ([tls::version])"
- http::register https 443 tls::socket
- # if this is omitted, the message appears on stderr during the next request *after* 1337x.to:
- # SSL channel "sock1829830": error: tlsv1 alert internal error
- ::tls::init -command ::tls_cb
- proc tls_cb {what args} {
- #puts "TLS: $what $args"
- return 1 ;# cert OK, for "verify"
- }
- # wrapper with error handling
- proc fetch {url} {
- puts "Fetching $url ..."
- try {
- set t [::http::geturl $url]
- set d [::http::data $t]
- ::http::cleanup $t
- puts "OK! [string length $d] bytes"
- } on error {e o} {
- puts "ERROR: $e"
- }
- }
- fetch https://google.com/ ;# this succeeds
- fetch https://1337x.to/ ;# this fails
- fetch https://google.com/ ;# then a (harmless?) error is emitted here