Mercurial > hg > egg-tcls
changeset 659:eddf0ff17fbd
urllog: Use new HTTP helpers from utillib.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 19 Feb 2021 21:03:26 +0200 |
parents | 33580ee2579e |
children | ab2ba0b82407 |
files | urllog.tcl |
diffstat | 1 files changed, 7 insertions(+), 42 deletions(-) [+] |
line wrap: on
line diff
--- a/urllog.tcl Fri Feb 19 21:02:53 2021 +0200 +++ b/urllog.tcl Fri Feb 19 21:03:26 2021 +0200 @@ -211,24 +211,6 @@ #------------------------------------------------------------------------- -proc urllog_clear_request { urlStatus urlSCode urlCode urlData urlMeta } { - - ### Clear the request data - upvar $urlStatus ustatus - upvar $urlSCode uscode - upvar $urlCode ucode - upvar $urlData udata - upvar $urlMeta umeta - - unset ustatus - unset uscode - unset ucode - unset udata - array unset umeta -} - - -#------------------------------------------------------------------------- proc urllog_do_request { urlNick urlChan urlStr urlStatus urlSCode urlCode urlData urlMeta } { upvar $urlStatus ustatus @@ -241,35 +223,17 @@ lappend urlHeaders "Accept-Encoding" "identity" #lappend urlHeaders "Connection" "keep-alive" - ### Perform request - if {[catch {set utoken [::http::geturl $urlStr -timeout 6000 -binary 1 -headers $urlHeaders]} uerrmsg]} { - urllog_verb_msg 1 $urlNick $urlChan "err_http_get" [list $urlStr $uerrmsg] - urllog_log "HTTP request failed: $uerrmsg" + set uresult [utl_http_do_request $urlHeaders $urlStr ustatus uscode ucode udata umeta] + if {$uresult == -1} { + urllog_verb_msg 1 $urlNick $urlChan "err_http_get" [list $urlStr $uscode] + urllog_log "HTTP request failed: $uscode" return 0 - } - - ### Check status - set ustatus [::http::status $utoken] - set uscode [::http::code $utoken] - set ucode [::http::ncode $utoken] - - if {$ustatus != "ok"} { + } elseif {$uresult < 0} { urllog_verb_msg 1 $urlNick $urlChan "err_http_status" [list $urlStr $ustatus $uscode $ucode] urllog_log "Error in HTTP request: $ustatus / $uscode ($urlStr)" return 0 } - ### Get data - set udata [::http::data $utoken] - array set umeta [::http::meta $utoken] - ::http::cleanup $utoken - - ### Sanitize the metadata KEYS - foreach {ukey uvalue} [array get umeta] { - set ukey [string tolower $ukey] - set umeta($ukey) $uvalue - } - return 1 } @@ -399,7 +363,8 @@ } ### Attempt to fetch redirection target - urllog_clear_request ustatus uscode ucode udata umeta + utl_http_clear_request ustatus uscode ucode udata umeta + if {![urllog_do_request $urlNick $urlChan $ustr ustatus uscode ucode udata umeta]} { urllog_verb_msg 1 $urlNick $urlChan "err_redirect_fail" [list $ustr $ustatus $uscode $ucode $urlRedirLevel] urllog_log "Error fetching redirect: status=$ustatus, code=$ucode, scode=$uscode, url=$ustr, redirLevel=$urlRedirLevel"