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"