plugins: pidfile: simplify, use constructs from src/conf.c

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
Joachim Wiberg
2021-02-25 14:27:28 +01:00
parent 8790fcabf3
commit ea278a6370
+7 -19
View File
@@ -149,36 +149,26 @@ static void pidfile_handle_dir(struct iwatch *iw, char *dir, char *name, int mas
static void pidfile_callback(void *arg, int fd, int events)
{
static char ev_buf[8 *(sizeof(struct inotify_event) + NAME_MAX + 1) + 1];
struct inotify_event *ev;
ssize_t sz, off;
size_t buflen = 8 *(sizeof(struct inotify_event) + NAME_MAX + 1) + 1;
char *buf;
buf= malloc(buflen);
if (!buf) {
_pe("Failed allocating buffer for inotify events");
return;
}
_d("Entering ... reading %zu bytes into ev_buf[]", buflen - 1);
sz = read(fd, buf, buflen - 1);
sz = read(fd, ev_buf, sizeof(ev_buf) - 1);
if (sz <= 0) {
_pe("invalid inotify event");
goto done;
return;
}
buf[sz] = 0;
_d("Read %zd bytes, processing ...", sz);
ev_buf[sz] = 0;
off = 0;
for (off = 0; off < sz; off += sizeof(*ev) + ev->len) {
struct iwatch_path *iwp;
ev = (struct inotify_event *)&buf[off];
_d("path %s, event: 0x%08x", ev->name, ev->mask);
ev = (struct inotify_event *)&ev_buf[off];
if (!ev->mask)
continue;
_d("name %s, event: 0x%08x", ev->name, ev->mask);
/* Find base path for this event */
iwp = iwatch_find_by_wd(&iw_pidfile, ev->wd);
if (!iwp)
@@ -197,8 +187,6 @@ static void pidfile_callback(void *arg, int fd, int events)
if (ev->mask & (IN_CREATE | IN_ATTRIB | IN_MODIFY | IN_MOVED_TO))
pidfile_update_conds(iwp->path, ev->name, ev->mask);
}
done:
free(buf);
}
/*