chiark / gitweb /
manpage fix and todolist entries
[inn-innduct.git] / backends / innduct.c
index 0240e4ee81dc3920d965a924bfabb559645bfcb4..427792089e6ca7dab1c96e51941a6cfab9aa00d4 100644 (file)
@@ -1,17 +1,13 @@
 /*
- * warning if no inotify
- * inotify not working ?
- * some per-conn info thing for control
-
  * todo
- *  - actually do something with readable on control master
+ *  - inotify not working ?
+ *  - some per-conn info thing for control
  *  - option for realsockdir
  *  - option for filepoll
  *  - option for no inotify
  *  - manpage: document control master stuff
- *  - manpage: innconf is used for communicating with innd
- *  - debug this:
+ *
+ * debugging rune:
  *      build-lfs/backends/innduct --no-daemon -f `pwd`/fee sit dom
  */
 
@@ -2010,7 +2006,7 @@ static void filemon_method_startfile(InputFile *ipf, Filemon_Perfile *pf) {
 
   if (wd >= filemon_inotify_wdmax) {
     int newmax= wd+2;
-    filemon_inotify_wd= xrealloc(filemon_inotify_wd2ipf,
+    filemon_inotify_wd2ipf= xrealloc(filemon_inotify_wd2ipf,
                                 sizeof(*filemon_inotify_wd2ipf) * newmax);
     memset(filemon_inotify_wd2ipf + filemon_inotify_wdmax, 0,
           sizeof(*filemon_inotify_wd2ipf) * (newmax - filemon_inotify_wdmax));
@@ -2029,7 +2025,7 @@ static void filemon_method_startfile(InputFile *ipf, Filemon_Perfile *pf) {
 static void filemon_method_stopfile(InputFile *ipf, Filemon_Perfile *pf) {
   int wd= pf->wd;
   debug("filemon inotify stopfile %p wd=%d", ipf, wd);
-  int r= inotify_rm_watch(filemon_inotify_fd, filemon_inotify_wd);
+  int r= inotify_rm_watch(filemon_inotify_fd, wd);
   if (r) sysdie("inotify_rm_watch");
   filemon_inotify_wd2ipf[wd]= 0;
 }
@@ -2048,7 +2044,7 @@ static void *filemon_inotify_readable(oop_source *lp, int fd,
       die("inotify read %d bytes wanted struct of %d", r, (int)sizeof(iev));
     }
     InputFile *ipf= filemon_inotify_wd2ipf[iev.wd];
-    debug("filemon inotify readable read %p wd=%p", iev.wd, ipf);
+    debug("filemon inotify readable read %d wd=%p", iev.wd, ipf);
     filemon_callback(ipf);
   }
   return OOP_CONTINUE;
@@ -2060,8 +2056,8 @@ static int filemon_method_init(void) {
     syswarn("filemon/inotify: inotify_init failed");
     return 0;
   }
-  set nonblock;
-  loop->on_fd(loop, filemon_inotify_fd, OOP_READ, filemon_inotify_readable);
+  xsetnonblock(filemon_inotify_fd, 1);
+  loop->on_fd(loop, filemon_inotify_fd, OOP_READ, filemon_inotify_readable, 0);
 
   debug("filemon inotify init filemon_inotify_fd=%d", filemon_inotify_fd);
   return 1;