X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FsearchEngine%2FsearchEngine.ml;h=999d858aaedede548ab5fe18917146590f2ea541;hb=d738fe14f480a254a11993dc3f3289580b985468;hp=7fa835d8cc098927946104a35e2166a60b6928fd;hpb=43d1e9478371783035bbd76dde9c27b44f0be928;p=helm.git diff --git a/helm/searchEngine/searchEngine.ml b/helm/searchEngine/searchEngine.ml index 7fa835d8c..999d858aa 100644 --- a/helm/searchEngine/searchEngine.ml +++ b/helm/searchEngine/searchEngine.ml @@ -25,7 +25,7 @@ let debug = true;; let debug_print s = if debug then prerr_endline s;; -Http_common.debug := true;; +(* Http_common.debug := true;; *) open Printf;; @@ -40,7 +40,11 @@ let daemon_name = "Search Engine";; let default_port = 58085;; let port_env_var = "SEARCH_ENGINE_PORT";; -let pages_dir = "html";; (* relative to searchEngine's document root *) +let pages_dir = + try + Sys.getenv "SEARCH_ENGINE_HTML_DIR" + with Not_found -> "html" (* relative to searchEngine's document root *) +;; let interactive_user_uri_choice_TPL = pages_dir ^ "/templateambigpdq1.html";; let interactive_interpretation_choice_TPL = pages_dir ^ "/templateambigpdq2.html";; let final_results_TPL = pages_dir ^ "/templateambigpdq3.html";; @@ -111,6 +115,8 @@ let refine_constraints (x, y, z) = (x, y, z), (Some x, Some y, Some z) in let callback (req: Http_types.request) outchan = try debug_print (sprintf "Received request: %s" req#path); + if req#path <> "/getpage" then + Mqint.init postgresConnectionString; (match req#path with | "/execute" -> let query_string = req#param "query" in @@ -133,8 +139,11 @@ let callback (req: Http_types.request) outchan = let page = remove_fragment (req#param "url") in match page with | page when is_permitted page -> - Http_daemon.respond_file - ~fname:(sprintf "%s/%s" pages_dir (remove_fragment page)) outchan + let fname = sprintf "%s/%s" pages_dir (remove_fragment page) in + debug_print (sprintf "Returning file: %s" fname); + Http_daemon.send_basic_headers ~code:200 outchan; + Http_daemon.send_CRLF outchan; + Http_daemon.send_file ~name:fname outchan | page -> Http_daemon.respond_forbidden ~url:page outchan) | "/searchPattern" -> let term_string = req#param "term" in @@ -319,6 +328,8 @@ let callback (req: Http_types.request) outchan = | invalid_request -> Http_daemon.respond_error ~status:(`Client_error `Bad_request) outchan); + if req#path <> "/getpage" then + Mqint.close (); debug_print (sprintf "%s done!" req#path) with | Chat_unfinished -> prerr_endline "Chat unfinished, Try again!" @@ -330,12 +341,11 @@ let callback (req: Http_types.request) outchan = outchan in printf "%s started and listening on port %d\n" daemon_name port; -printf "current directory is %s\n" (Sys.getcwd ()); +printf "Current directory is %s\n" (Sys.getcwd ()); +printf "HTML directory is %s\n" pages_dir; flush stdout; Unix.putenv "http_proxy" ""; Mqint.set_database Mqint.postgres_db; -Mqint.init postgresConnectionString; Http_daemon.start' ~port callback; -Mqint.close (); printf "%s is terminating, bye!\n" daemon_name