pndnotifyd: ignore IN_CREATE
[pandora-libraries.git] / lib / pnd_notify.c
index 9c377c7..6f0e634 100644 (file)
@@ -3,6 +3,7 @@
 #include <stdio.h>          // for stdio, NULL
 #include <stdlib.h>         // for malloc, etc
 #include <unistd.h>         // for close
+#include <errno.h>          // for errno
 #include <time.h>           // for time()
 
 #define _XOPEN_SOURCE 500
@@ -22,9 +23,9 @@ static int notify_handle;
 //static void pnd_notify_hookup ( int fd );
 
 #if 1
-#define PND_INOTIFY_MASK     IN_CREATE | IN_DELETE | IN_UNMOUNT \
+#define PND_INOTIFY_MASK     IN_DELETE | IN_UNMOUNT \
                              | IN_DELETE_SELF | IN_MOVE_SELF    \
-                             | IN_MOVED_FROM | IN_MOVED_TO | IN_MODIFY
+                             | IN_MOVED_FROM | IN_MOVED_TO | IN_CLOSE_WRITE
 #else
 #define PND_INOTIFY_MASK     IN_ALL_EVENTS
 #endif
@@ -136,6 +137,7 @@ unsigned char pnd_notify_rediscover_p ( pnd_notify_handle h ) {
   retcode = select ( (p->fd) + 1, &rfds, NULL, NULL, &t );
 
   if ( retcode < 0 ) {
+    pnd_log ( 3, "ERROR: notify: select failed: %d\n", errno );
     return ( 0 ); // hmm.. need a better error code handler
   } else if ( retcode == 0 ) {
     return ( 0 ); // timeout
@@ -153,6 +155,7 @@ unsigned char pnd_notify_rediscover_p ( pnd_notify_handle h ) {
   actuallen = read ( (p->fd), binbuf, BINBUFLEN );
 
   if ( actuallen < 0 ) {
+    pnd_log ( 3, "ERROR: notify: read failed: %d\n", errno );
     return ( 0 ); // error
   } else if ( actuallen == 0 ) {
     return ( 0 ); // nothing, or overflow, or .. whatever.
@@ -251,3 +254,13 @@ unsigned char pnd_notify_wait_until_ready ( unsigned int secs_timeout ) {
 
   return ( 0 ); // fail
 }
+
+int pnd_notify_fd ( pnd_notify_handle h ) {
+  pnd_notify_t *p = (pnd_notify_t*) h;
+  int r = -1;
+
+  if ( p )
+    r = p->fd;
+
+  return r;
+}