X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=frontend.ml;h=1c46b2cdb751e6501f8caf6faba5c9a714db896a;hb=acbdd1601fcfb161089d326e7e32b74b76f441e3;hp=43c2ffa1861383840c49bca8f4a66cea9824c0cf;hpb=16c8bb31dd971b7fab00dbb17a75bb08cee463c6;p=vsys.git diff --git a/frontend.ml b/frontend.ml index 43c2ffa..1c46b2c 100644 --- a/frontend.ml +++ b/frontend.ml @@ -24,7 +24,9 @@ object(this) let res = Directfifowatcher.mkentry fqp abspath realperm slice_name in match res with | Success -> - Directfifowatcher.openentry root_dir fqp (abspath,slice_name) + (* We don't want to get triggered when the .in descriptor is + * opened *) + Directfifowatcher.openentry rp root_dir fqp (abspath,slice_name); | _ -> () (** A new directory was created at the backend, make a corresponding directory @@ -46,11 +48,7 @@ object(this) end; with Unix.Unix_error(_,_,_) -> Unix.mkdir fqp perm; - Directfifowatcher.add_dir_watch fqp - - - - + Directfifowatcher.add_dir_watch fqp (** Functions corresponding to file deletion/directory removal *) @@ -77,21 +75,24 @@ object(this) fprintf logfd "Hm. %s disappeared or not empty. Looks like slice %s shot itself in the foot\n" fqp (this#get_slice_name ());flush logfd initializer - try - let s = Unix.stat root_dir in - if (s.st_kind<>S_DIR) then - begin - Unix.unlink root_dir; - Unix.mkdir root_dir 0o700 - end - else if (s.st_perm <> 0o700) then - begin - Unix.rmdir root_dir; - Unix.mkdir root_dir 0o700 - end; - with Unix.Unix_error(_,_,_) -> + ( + try + let s = Unix.stat root_dir in + if (s.st_kind<>S_DIR) then + begin + Unix.unlink root_dir; + Unix.mkdir root_dir 0o700 + end + else if (s.st_perm <> 0o700) then + begin + Unix.rmdir root_dir; + Unix.mkdir root_dir 0o700 + end; + with Unix.Unix_error(_,_,_) -> + begin try - Unix.mkdir root_dir 0o700; + Unix.mkdir root_dir 0o700; with _ -> (); - Directfifowatcher.add_dir_watch root_dir + end); + Directfifowatcher.add_dir_watch root_dir end