X-Git-Url: http://matita.cs.unibo.it/gitweb/?p=helm.git;a=blobdiff_plain;f=helm%2Fhbugs%2Fcommon%2Fhbugs_misc.ml;fp=helm%2Fhbugs%2Fcommon%2Fhbugs_misc.ml;h=0000000000000000000000000000000000000000;hp=85f926fc7dbe8dfc29fe9345ab0d0de2b4deebc4;hb=869549224eef6278a48c16ae27dd786376082b38;hpb=89262281b6e83bd2321150f81f1a0583645eb0c8 diff --git a/helm/hbugs/common/hbugs_misc.ml b/helm/hbugs/common/hbugs_misc.ml deleted file mode 100644 index 85f926fc7..000000000 --- a/helm/hbugs/common/hbugs_misc.ml +++ /dev/null @@ -1,97 +0,0 @@ -(* - * Copyright (C) 2003: - * Stefano Zacchiroli - * for the HELM Team http://helm.cs.unibo.it/ - * - * This file is part of HELM, an Hypertextual, Electronic - * Library of Mathematics, developed at the Computer Science - * Department, University of Bologna, Italy. - * - * HELM is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * HELM is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HELM; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA. - * - * For details, see the HELM World-Wide-Web page, - * http://helm.cs.unibo.it/ - *) - -open Printf;; - -let body_sep_RE = Pcre.regexp "\r\n\r\n";; -let url_scheme_RE = Pcre.regexp ~flags:[`CASELESS] "http://";; -let url_RE = Pcre.regexp "^([\\w.]+)(:(\\d+))?(/.*)?$";; -let parse_url url = - try - let subs = Pcre.extract ~rex:url_RE (Pcre.replace ~rex:url_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 get_body answer = - match Pcre.split ~rex:body_sep_RE answer with - | [_; body] -> body - | _ -> failwith "Invalid response received: can't parse response's body" -;; - -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 rec retrieve inchan buf = - Buffer.add_string buf (input_line inchan ^ "\n"); - retrieve inchan buf -;; - -let http_get url = - let (address, port, path) = parse_url url in - let (inchan, outchan) = init_socket address port in - output_string outchan (sprintf "GET %s HTTP/1.0\r\n\r\n" path); - flush outchan; - let buf = Buffer.create 1023 in - try - retrieve inchan buf - with End_of_file -> get_body (Buffer.contents buf) -;; - -let http_post ?(body = "") url = - let (address, port, path) = parse_url url in - let (inchan, outchan) = init_socket address port in - output_string outchan (sprintf "POST %s HTTP/1.0\r\n" path); - output_string outchan (sprintf "Content-Length: %d\r\n" (String.length body)); - output_string outchan "\r\n"; - output_string outchan body; - flush outchan; - let buf = Buffer.create 1023 in - try - retrieve inchan buf - with End_of_file -> get_body (Buffer.contents buf) -;; - -let rec hashtbl_remove_all tbl key = - if Hashtbl.mem tbl key then begin - Hashtbl.remove tbl key; - hashtbl_remove_all tbl key - end else - () -;; -