Continuation...
[vsys.git] / dirwatcher.ml
index 3122642..e06b6fb 100644 (file)
@@ -20,32 +20,32 @@ let rec list_check lst elt =
 
 let handle_dir_event dirname evlist str = 
   let fname = String.concat "/" [dirname;str] in
-    fprintf logfd "File: %s. " fname;List.iter 
-                                       (fun e -> 
-                                          fprintf logfd "Event: %s\n" (string_of_event e)) 
-                                       evlist;
-    flush logfd
+    logprint "File: %s. " fname;
+    List.iter 
+      (fun e -> 
+         logprint "Event: %s\n" (string_of_event e)) 
+      evlist
 
 let add_watch dir events handler =
-  let evcheck = list_check events in
   let wd = Inotify.add_watch fd dir events in
     Hashtbl.add wdmap wd (dir,Some(handler))
       (* Ignore the possibility that the whole directory can disappear and come
        * back while it is masked *)
 
-let mask_watch dir file =
+let mask_watch fqp =
   try 
-    Hashtbl.replace masks (dir,file) true
+    print "Masking %s %d\n" fqp (String.length fqp);
+    Hashtbl.replace masks fqp true
   with _ ->
     ()
 
-let unmask_watch dir file =
-  if (Hashtbl.mem masks (dir,file)) then
+let unmask_watch fqp =
+  if (Hashtbl.mem masks fqp) then
     begin
-      Hashtbl.remove masks (dir,file)
+      Hashtbl.remove masks fqp
     end
   else
-    fprintf logfd "WARNING: %s,%s -- Unpaired unmask\n" dir file;flush logfd
+    logprint "WARNING: %s -- Unpaired unmask\n" fqp
   
 let asciiz s =
   let rec findfirstnul str idx len =
@@ -69,11 +69,18 @@ let receive_event (eventdescriptor:fname_and_fd) (bla:fname_and_fd) =
                                  try Hashtbl.find wdmap wd with Not_found->("",None)
                                in
                                    match handler with
-                                     | None->fprintf logfd "Unhandled watch descriptor\n";flush logfd
+                                     | None->logprint "Unhandled watch descriptor\n"
                                      | Some(handler)->
-                                         let mask_filter = Hashtbl.mem masks (dirname,purestr) in
-                                           if (not mask_filter) then
+                                         let fqp = String.concat "/" [dirname;purestr] in
+                                         let mask_filter = Hashtbl.mem masks fqp in
+                                           begin
+                                           (*print "Received event for - %s\n"
+                                            * fqp;*)
+                                           if ((not mask_filter) && false) then
                                                 handler wd dirname evlist purestr
+                                           else
+                                             print "%s is masked\n" fqp
+                                           end
                        end
                    | _ -> ()) 
       evs