X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=frontend.ml;h=59e1a4ce85255dae1fe44c402cf64485bc82ce45;hb=7798e1ecdcb15ee767fcbed9c6f59a2ddaf1613d;hp=56d1d9f61aa616b5136fdab430fed37a1daf4889;hpb=b4aba2cbd39523a33d07c46a6b1b701cfd481922;p=vsys.git diff --git a/frontend.ml b/frontend.ml index 56d1d9f..59e1a4c 100644 --- a/frontend.ml +++ b/frontend.ml @@ -4,6 +4,7 @@ open Printf open Unix open Globals open Directfifowatcher +open Unixsocketwatcher (** frontendhandler class: Methods to create and unlink pipes and directories @param root_dir vsys directory inside a slice @@ -25,12 +26,12 @@ object(this) let realperm = perm land (lnot 0o111) in match rp with Relpath(rel) -> let fqp = String.concat "/" [root_dir;rel] in - if (is_fd_passer rel) then + if (this#is_fd_passer rel) then let res = Unixsocketwatcher.mkentry fqp abspath realperm slice_name in begin match res with | Success -> - Unixsocketwatcher.openentry root_dir fqp (abspath, slice_name) + () | _ -> logprint "Could not create entry %s" abspath end @@ -76,12 +77,25 @@ object(this) let fqp = String.concat "/" [root_dir;rel] in let fqp_in = String.concat "." [fqp;"in"] in let fqp_out = String.concat "." [fqp;"out"] in - Directfifowatcher.closeentry fqp; - try - Unix.unlink fqp_in; - Unix.unlink fqp_out - with _ -> - logprint "Hm. %s disappeared. Looks like slice %s shot itself in the foot\n" fqp (this#get_slice_name ()) + let fqp_control = String.concat "." [fqp;"out"] in + + if (this#is_fd_passer rel) then + begin + Unixsocketwatcher.closeentry fqp; + try + Unix.unlink fqp_control + with _ -> + logprint "Hm. %s disappeared. Looks like slice %s shot itself in the foot\n" fqp (this#get_slice_name ()) + end + else + begin + Directfifowatcher.closeentry fqp; + try + Unix.unlink fqp_in; + Unix.unlink fqp_out + with _ -> + logprint "Hm. %s disappeared. Looks like slice %s shot itself in the foot\n" fqp (this#get_slice_name ()) + end method rmdir rp = match rp with Relpath(rel) ->