Http_common.debug := true;;
(* Http_common.debug := true;; *)
-let mqi_flags = [] (* default MathQL interpreter options *)
-
open Printf;;
let daemon_name = "Search Engine";;
(* HTTP DAEMON CALLBACK *)
-let callback (req: Http_types.request) outchan =
+let callback mqi_handle (req: Http_types.request) outchan =
try
debug_print (sprintf "Received request: %s" req#path);
(match req#path with
| "/execute" ->
- let mqi_handle = C.init mqi_flags debug_print in
let query_string = req#param "query" in
let lexbuf = Lexing.from_string query_string in
let query = MQueryUtil.query_of_text lexbuf in
let result = MQueryInterpreter.execute mqi_handle query in
let result_string = pp_result result in
- C.close mqi_handle;
Http_daemon.respond ~body:result_string ~headers:[contype] outchan
| "/locate" ->
- let mqi_handle = C.init mqi_flags debug_print in
let id = req#param "id" in
let query = G.locate id in
let result = MQueryInterpreter.execute mqi_handle query in
- C.close mqi_handle;
Http_daemon.respond ~headers:[contype] ~body:(pp_result result) outchan
| "/unreferred" ->
- let mqi_handle = C.init mqi_flags debug_print in
let target = req#param "target" in
let source = req#param "source" in
let query = G.unreferred target source in
let result = MQueryInterpreter.execute mqi_handle query in
- C.close mqi_handle;
Http_daemon.respond ~headers:[contype] ~body:(pp_result result) outchan
| "/getpage" ->
(* TODO implement "is_permitted" *)
| "/searchPattern"
| "/matchConclusion"
| "/locateInductivePrinciple" ->
- let mqi_handle = C.init mqi_flags debug_print in
let term_string = req#param "term" in
let (context, metasenv) = ([], []) in
let id_to_uris_raw = req#param "aliases" in
Http_daemon.respond
~headers:[contype]
~body:"some implicit variables are still unistantiated :-("
- outchan);
- C.close mqi_handle
+ outchan)
| invalid_request ->
Http_daemon.respond_error ~status:(`Client_error `Bad_request) outchan);
debug_print (sprintf "%s done!" req#path)
printf "HTML directory is %s\n" pages_dir;
flush stdout;
Unix.putenv "http_proxy" "";
-Http_daemon.start' ~port callback;
+let mqi_handle = C.init debug_print in
+Http_daemon.start' ~port (callback mqi_handle);
+C.close mqi_handle;
printf "%s is terminating, bye!\n" daemon_name
-