]> matita.cs.unibo.it Git - helm.git/commitdiff
- added support for 'reload' method which is supposed to be invoked on
authorStefano Zacchiroli <zack@upsilon.cc>
Tue, 7 Jan 2003 18:22:59 +0000 (18:22 +0000)
committerStefano Zacchiroli <zack@upsilon.cc>
Tue, 7 Jan 2003 18:22:59 +0000 (18:22 +0000)
  SIGHUP, actually it only reloads servers list from servers.txt
- changed servers type from string list to string list ref to permit
  changes on reload

helm/http_getter/http_getter_env.ml
helm/http_getter/http_getter_env.mli

index 70696c5965f33dee94ced3c6a6a40721f0fee3e2..e97c89cbfb1b36be4fe3b678da31cc88234f77ef 100644 (file)
@@ -73,9 +73,11 @@ let safe_getenv ?(from = Both) var =
       | v -> return_value var v)))
 
 let servers_file = safe_getenv "HTTP_GETTER_SERVERS_FILE"
-let servers =
-  let cons hd tl = hd @ [ tl ] in
-  Http_getter_misc.fold_file cons [] servers_file
+let parse_servers () =
+  (let cons hd tl = hd @ [ tl ] in
+  Http_getter_misc.fold_file cons [] servers_file)
+let servers = ref (parse_servers ())
+let reload_servers () = servers := parse_servers ()
 
 let xml_dbm = safe_getenv "HTTP_GETTER_XML_DBM"
 let rdf_dbm = safe_getenv "HTTP_GETTER_RDF_DBM"
@@ -110,6 +112,9 @@ let cache_mode =
   | "gz" -> Enc_gzipped
   | mode -> failwith ("Invalid cache mode: " ^ mode)
 
+let reload () =
+  reload_servers ()
+
 let dump_env () =
   printf
 "xml_dbm:\t%s
@@ -136,6 +141,6 @@ servers:
     xml_dir rdf_dir dtd_dir servers_file host port
     my_own_url dtd_base_url
     (match cache_mode with Enc_normal -> "Normal" | Enc_gzipped -> "GZipped")
-    conf_file conf_dir (String.concat "\n\t" servers);
+    conf_file conf_dir (String.concat "\n\t" !servers);
   flush stdout
 
index 7ce96f70220d929bb87953344a4adf475df49963..95378a3c7ead32b057ece202d0a1ef4fa51cddee 100644 (file)
 
   (* derived data *)
 
-  val host          : string        (* host on which getter listens *)
-  val my_own_url    : string        (* URL at which contact getter *)
-  val servers       : string list   (* servers list (i.e. servers_file lines) *)
+  val host          : string          (* host on which getter listens *)
+  val my_own_url    : string          (* URL at which contact getter *)
+  val servers       : string list ref (* servers list *)
   val cache_mode    : http_getter_encoding  (* cached files encoding *)
-  val conf_file     : string        (* configuration file's full path *)
-  val conf_dir      : string        (* directory where conf_file resides *)
+  val conf_file     : string          (* configuration file's full path *)
+  val conf_dir      : string          (* directory where conf_file resides *)
 
   (* misc *)
 
+val reload: unit -> unit          (* reload servers list *)
 val dump_env : unit -> unit       (* dump a textual representation of the
                                   current http_getter settings *)