+(** Watches directories for events. Agnostic to vsys semantics of backends and
+frontends *)
open Inotify
open Fdwatcher
open Printf
let handle_dir_event dirname evlist str =
let fname = String.concat "/" [dirname;str] in
- printf "File: %s. " fname;List.iter
+ fprintf logfd "File: %s. " fname;List.iter
(fun e ->
- printf "Event: %s\n" (string_of_event e))
+ fprintf logfd "Event: %s\n" (string_of_event e))
evlist;
- flush Pervasives.stdout
+ flush logfd
let add_watch dir events handler =
- printf "Adding watch for %s\n" dir;flush Pervasives.stdout;
+ fprintf logfd "Adding watch for %s\n" dir;flush logfd;
let wd = Inotify.add_watch fd dir events in
Hashtbl.add wdmap wd (dir,handler)
let nulterm = findfirstnul s 0 (String.length s) in
String.sub s 0 nulterm
-let receive_event (eventdescriptor:fd_and_fname) (bla:fd_and_fname) =
+let receive_event (eventdescriptor:fname_and_fd) (bla:fname_and_fd) =
let (_,fd) = eventdescriptor in
let evs = Inotify.read fd in
List.iter (fun x->
| (wd,evlist,_,Some(str)) ->
let purestr = asciiz(str) in
let (dirname,handler) =
- try Hashtbl.find wdmap wd with Not_found->printf "Unknown watch descriptor\n";raise Not_found
+ try Hashtbl.find wdmap wd with Not_found->fprintf logfd "Unknown watch descriptor\n";raise Not_found
in
(
match handler with