X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=frontend.ml;h=cff3c6427db56f4467a11c12fec091779707a951;hb=26326ab885a36f7e0661703b735109df36520b30;hp=56d1d9f61aa616b5136fdab430fed37a1daf4889;hpb=b4aba2cbd39523a33d07c46a6b1b701cfd481922;p=vsys.git diff --git a/frontend.ml b/frontend.ml index 56d1d9f..cff3c64 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,7 +26,7 @@ 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 @@ -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) ->