X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fgetter%2Fhttp_getter_misc.ml;h=897442e63206e90fcc0f9d25f7f7844836e31af2;hb=7668522147126e620258e6d22c16a2b0fa56feb4;hp=c983c298813e0a83f5fc8e8be3cc2aa40a38af87;hpb=384c369d4cbf5dd6cf1013902d3a218260400e73;p=helm.git diff --git a/helm/ocaml/getter/http_getter_misc.ml b/helm/ocaml/getter/http_getter_misc.ml index c983c2988..897442e63 100644 --- a/helm/ocaml/getter/http_getter_misc.ml +++ b/helm/ocaml/getter/http_getter_misc.ml @@ -28,8 +28,6 @@ open Printf -open Http_getter_debugger - let trailing_dot_gz_RE = Pcre.regexp "\\.gz$" (* for g{,un}zip *) let url_RE = Pcre.regexp "^([\\w.-]+)(:(\\d+))?(/.*)?$" let http_scheme_RE = Pcre.regexp ~flags:[`CASELESS] "^http://" @@ -77,48 +75,8 @@ let cp src dst = with End_of_file -> ()); close_in ic; close_out oc -let parse_url url = - try - let subs = - Pcre.extract ~rex:url_RE (Pcre.replace ~rex:http_scheme_RE url) - in - (subs.(1), - (if subs.(2) = "" then 80 else int_of_string subs.(3)), - (if subs.(4) = "" then "/" else subs.(4))) - with exc -> - failwith - (sprintf "Can't parse url: %s (exception: %s)" - url (Printexc.to_string exc)) -let init_socket addr port = - let inet_addr = (Unix.gethostbyname addr).Unix.h_addr_list.(0) in - let sockaddr = Unix.ADDR_INET (inet_addr, port) in - let suck = Unix.socket Unix.PF_INET Unix.SOCK_STREAM 0 in - Unix.connect suck sockaddr; - let outchan = Unix.out_channel_of_descr suck in - let inchan = Unix.in_channel_of_descr suck in - (inchan, outchan) -let http_get_iter_buf ~callback url = - let (address, port, path) = parse_url url in - let buf = String.create tcp_bufsiz in - let (inchan, outchan) = init_socket address port in - output_string outchan (sprintf "GET %s\r\n" path); - flush outchan; - (try - while true do - match input inchan buf 0 tcp_bufsiz with - | 0 -> raise End_of_file - | bytes when bytes = tcp_bufsiz -> (* buffer full, no need to slice it *) - callback buf - | bytes when bytes < tcp_bufsiz -> (* buffer not full, slice it *) - callback (String.sub buf 0 bytes) - | _ -> (* ( bytes < 0 ) || ( bytes > tcp_bufsiz ) *) - assert false - done - with End_of_file -> ()); - close_in inchan (* close also outchan, same fd *) - let wget ?output url = - debug_print + Http_getter_logger.log (sprintf "wgetting %s (output: %s)" url (match output with None -> "default" | Some f -> f)); match url with @@ -136,14 +94,15 @@ let wget ?output url = (let oc = open_out (match output with Some f -> f | None -> Filename.basename url) in - http_get_iter_buf ~callback:(fun data -> output_string oc data) url; + Http_client.http_get_iter (fun data -> output_string oc data) url; close_out oc) | scheme -> (* unsupported scheme *) failwith ("Http_getter_misc.wget: unsupported scheme: " ^ scheme) let gzip ?(keep = false) ?output fname = let output = match output with None -> fname ^ ".gz" | Some fname -> fname in - debug_print (sprintf "gzipping %s (keep: %b, output: %s)" fname keep output); + Http_getter_logger.log ~level:3 + (sprintf "gzipping %s (keep: %b, output: %s)" fname keep output); let (ic, oc) = (open_in fname, Gzip.open_out output) in let buf = String.create bufsiz in (try @@ -168,8 +127,8 @@ let gunzip ?(keep = false) ?output fname = "Http_getter_misc.gunzip: unable to determine output file name" | Some fname -> fname in - debug_print (sprintf "gunzipping %s (keep: %b, output: %s)" - fname keep output); + Http_getter_logger.log ~level:3 + (sprintf "gunzipping %s (keep: %b, output: %s)" fname keep output); let (ic, oc) = (Gzip.open_in fname, open_out output) in let buf = String.create bufsiz in (try @@ -238,7 +197,7 @@ let http_get url = try Some (Http_client.http_get url) with e -> - prerr_endline (sprintf + Http_getter_logger.log (sprintf "Warning: Http_client failed on url %s with exception: %s" url (Printexc.to_string e)); None