X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=conffile.ml;h=6279d16ea93756b4418f359f6a903a2065aeebb0;hb=39542eae9900f198e7f265630a1da837e193d774;hp=d9fe12941ca83d50ba5e025f1d7619fe11cd399f;hpb=46e48c60e9d524bf71631561e193c443613a2bb5;p=vsys.git diff --git a/conffile.ml b/conffile.ml index d9fe129..6279d16 100644 --- a/conffile.ml +++ b/conffile.ml @@ -5,6 +5,15 @@ open Scanf let split_conf_line s = sscanf s "%s %s" (fun s1 s2->(s1,s2)) +let check_dir fe = + let (vsysdir,slice) = fe in + let verdict = try Some(Unix.stat vsysdir) with + _ -> fprintf logfd "vsys directory not setup for slice %s\n" slice;flush logfd;None + in + match verdict with + | None->false + | Some(_) -> true + let rec in_list elt lst = match lst with | car::cdr -> @@ -12,6 +21,7 @@ let rec in_list elt lst = | [] -> false let read_frontends f = + let setup_ok = if (!Globals.failsafe) then check_dir else fun _ -> true in let f_file = try open_in f with e -> fprintf logfd "Could not open config file\n";flush logfd;raise e in let rec read_conf_file cur_list = @@ -19,7 +29,7 @@ let read_frontends f = match next_line with | Some(inp_line) -> let fe = split_conf_line inp_line in - let new_list = if (not (in_list fe cur_list)) then (fe::cur_list) else cur_list + let new_list = if (not (in_list fe cur_list) && (setup_ok(fe))) then (fe::cur_list) else cur_list in read_conf_file new_list | None -> cur_list