X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fhttp_getter%2Fhttp_getter.ml;h=7c5fafa114a5cc5831dc83782f174d04cfa346d6;hb=89262281b6e83bd2321150f81f1a0583645eb0c8;hp=02877b012c55690222fb7c2a87763225706f82bd;hpb=21a69c0525553c5e197ca0499705afe904fd7260;p=helm.git diff --git a/helm/http_getter/http_getter.ml b/helm/http_getter/http_getter.ml index 02877b012..7c5fafa11 100644 --- a/helm/http_getter/http_getter.ml +++ b/helm/http_getter/http_getter.ml @@ -1,5 +1,7 @@ (* - * Copyright (C) 2003, HELM Team. + * 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 @@ -21,7 +23,7 @@ * MA 02111-1307, USA. * * For details, see the HELM World-Wide-Web page, - * http://cs.unibo.it/helm/. + * http://helm.cs.unibo.it/ *) open Http_getter_common;; @@ -48,7 +50,7 @@ let parse_enc (req: Http_types.request) = | s -> raise (Http_getter_bad_request ("Invalid format: " ^ s))) with Http_types.Param_not_found _ -> Enc_normal ;; -let parse_patch_dtd (req: Http_types.request) = +let parse_patch (req: Http_types.request) = match req#param "patch_dtd" with | s when String.lowercase s = "yes" -> true | s when String.lowercase s = "no" -> false @@ -312,48 +314,49 @@ let callback (req: Http_types.request) outchan = debug_print ("Connection from " ^ req#clientAddr); debug_print ("Received request: " ^ req#path); (match req#path with - | "/help" -> return_html_msg Http_getter_const.usage_string outchan + | "/help" -> return_html_raw Http_getter_const.usage_string outchan | "/getxml" | "/getxslt" | "/getdtd" | "/resolve" | "/register" -> (let uri = req#param "uri" in (* common parameter *) match req#path with | "/getxml" -> let enc = parse_enc req in - let patch_dtd = - try parse_patch_dtd req with Http_types.Param_not_found _ -> true + let patch = + try parse_patch req with Http_types.Param_not_found _ -> true in Http_getter_cache.respond_xml - ~url:(resolve uri) ~uri ~enc ~patch_dtd outchan + ~url:(resolve uri) ~uri ~enc ~patch outchan | "/getxslt" -> - let patch_dtd = - try parse_patch_dtd req with Http_types.Param_not_found _ -> true + let patch = + try parse_patch req with Http_types.Param_not_found _ -> true in - Http_getter_cache.respond_xsl ~url:(resolve uri) ~patch_dtd outchan + Http_getter_cache.respond_xsl ~url:(resolve uri) ~patch outchan | "/getdtd" -> - let patch_dtd = - try parse_patch_dtd req with Http_types.Param_not_found _ -> true + let patch = + try parse_patch req with Http_types.Param_not_found _ -> true in Http_getter_cache.respond_dtd - ~patch_dtd ~url:(Http_getter_env.dtd_dir ^ "/" ^ uri) outchan + ~patch ~url:(Http_getter_env.dtd_dir ^ "/" ^ uri) outchan | "/resolve" -> (try - return_xml_msg + return_xml_raw (sprintf "\n" (resolve uri)) outchan with Http_getter_unresolvable_URI uri -> - return_xml_msg "\n" outchan) + return_xml_raw "\n" outchan) | "/register" -> let url = req#param "url" in register uri url; return_html_msg "Register done" outchan | _ -> assert false) | "/update" -> - (xml_map#clear; rdf_map#clear; xsl_map#clear; + (Http_getter_env.reload (); (* reload servers list from servers file *) + xml_map#clear; rdf_map#clear; xsl_map#clear; let log = List.fold_left update_from_server "" (* initial logmsg: empty *) (* reverse order: 1st server is the most important one *) - (List.rev Http_getter_env.servers) + (List.rev !Http_getter_env.servers) in xml_map#sync; rdf_map#sync; xsl_map#sync; return_html_msg log outchan)