From 1cb8aece1ca2143dc2dbc1c998175274a3fb2095 Mon Sep 17 00:00:00 2001 From: Sapan Bhatia Date: Thu, 19 Mar 2009 20:05:51 +0000 Subject: [PATCH] Starting commits for fd passing support --- frontend.ml | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/frontend.ml b/frontend.ml index ad36172..9341633 100644 --- a/frontend.ml +++ b/frontend.ml @@ -10,8 +10,12 @@ open Directfifowatcher @param slice_name actual slice name - set with care, since the acl functionality refers to these names *) class frontendHandler (root_dir,slice_name) = object(this) - method get_slice_name () = slice_name + (** regex indicating that the script passes fds around *) + val fd_regex = Str.regexp "^fd_" + + method is_fd_passer fname = Str.string_match fd_regex fname 0 + method get_slice_name () = slice_name (** A new script was copied into the backend, make a corresponding entry in the frontend. @param rp Relative path of the entry in the backend @@ -22,10 +26,25 @@ object(this) match rp with Relpath(rel) -> let fqp = String.concat "/" [root_dir;rel] in let res = Directfifowatcher.mkentry fqp abspath realperm slice_name in - match res with - | Success -> - Directfifowatcher.openentry root_dir fqp (abspath,slice_name) - | _ -> () + begin + match res with + | Success -> + Directfifowatcher.openentry root_dir fqp (abspath,slice_name) + | _ -> + logprint "Could not create entry %s" abspath + end; + if (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 + + + (** A new directory was created at the backend, make a corresponding directory at the frontend. Refer to mkentry for parameters *) -- 2.43.0