From 6f0f31787fb03ea4956227e8fcdbc12abd366931 Mon Sep 17 00:00:00 2001 From: Claudio Sacerdoti Coen Date: Wed, 11 Feb 2004 17:51:45 +0000 Subject: [PATCH] Ported to Http_registry and to HelmLogger. --- helm/proofChecker/Makefile | 2 +- helm/proofChecker/proofChecker.ml | 53 +++++++++++++++++-------------- 2 files changed, 31 insertions(+), 24 deletions(-) diff --git a/helm/proofChecker/Makefile b/helm/proofChecker/Makefile index aada8a030..af48d0a5d 100644 --- a/helm/proofChecker/Makefile +++ b/helm/proofChecker/Makefile @@ -1,7 +1,7 @@ BIN_DIR = /usr/local/bin REQUIRES = helm-cic_proof_checking http PREDICATES = -OCAMLOPTIONS = -package "$(REQUIRES)" -predicates "$(PREDICATES)" +OCAMLOPTIONS = -package "$(REQUIRES)" -predicates "$(PREDICATES)" -thread OCAMLC = ocamlfind ocamlc $(OCAMLOPTIONS) -g OCAMLOPT = ocamlfind ocamlopt $(OCAMLOPTIONS) OCAMLDEP = ocamldep diff --git a/helm/proofChecker/proofChecker.ml b/helm/proofChecker/proofChecker.ml index 5529baa71..137043660 100644 --- a/helm/proofChecker/proofChecker.ml +++ b/helm/proofChecker/proofChecker.ml @@ -25,16 +25,13 @@ open Printf;; -let default_port = 48084;; +let _ = Helm_registry.load_from "proofChecker.conf.xml";; let port = - try - int_of_string (Sys.getenv "PROOF_CHECKER_PORT") - with - | Not_found -> default_port - | Failure "int_of_string" -> - prerr_endline "Warning: invalid port, reverting to default"; - default_port + try + Helm_registry.get_int "proofchecker.port" + with + Helm_registry.Key_not_found _ -> 48084 ;; let (html_preamble, html_postamble) = @@ -90,39 +87,49 @@ let usage_string = " ;; -let callback (req : Http_types.request) outchan = +let outchan = ref stderr;; + +let _ = + HelmLogger.register_log_callback + (fun ?append_NL msg -> + output_string !outchan (HelmLogger.html_of_html_msg msg) ; + flush !outchan) +;; + +let callback (req : Http_types.request) outchan' = match req#path with | "/proofCheck" -> begin - CicLogger.log_callback := - (CicLogger.log_to_html - ~print_and_flush:(fun s -> fprintf outchan "%s" s; flush outchan)); + outchan := outchan' ; try let uri = req#param "uri" in + Http_daemon.send_basic_headers ~code:200 outchan' ; + Http_daemon.send_header "Content-type" "text/html" outchan' ; + Http_daemon.send_CRLF outchan' ; printf "Request to proof-check \"%s\"..." uri; flush stdout; - fprintf outchan "%s" (html_preamble uri); - flush outchan; + fprintf outchan' "%s" (html_preamble uri); + flush outchan'; (try CicTypeChecker.typecheck (UriManager.uri_of_string uri); with e -> - fprintf outchan "%s\n" (Printexc.to_string e); - flush outchan); - fprintf outchan "%s" html_postamble; - flush outchan; + fprintf outchan' "%s\n" (Printexc.to_string e); + flush outchan'); + fprintf outchan' "%s" html_postamble; + flush outchan'; printf " done\n\n"; flush stdout - with Not_found -> (* 'uri' argument not found *) - bad_request outchan + with Http_types.Param_not_found _ -> (* 'uri' argument not found *) + bad_request outchan' end | "/help" -> Http_daemon.respond ~body:usage_string - ~headers:["Content-Type", "text/html"] outchan - | req -> bad_request outchan + ~headers:["Content-Type", "text/html"] outchan' + | req -> bad_request outchan' in printf "Proof Checker started and listening on port %d\n" port; flush stdout; -Http_daemon.start' ~port callback; +Http_daemon.start' ~port ~mode:`Fork callback ; printf "Proof Checker is terminating, bye!\n" -- 2.39.2