Commit graph

6 commits

Author SHA1 Message Date
Andrei Alexeyev
c24abd2b92
filewatch_inotify: handle misaligned inotify_event entries
This shouldn't be needed, as according to the Linux inotify(7) man page,
the entries are supposed to be aligned. It looks like libinotify-kqueue
doesn't respect this and doesn't properly zero-pad the name field.
2022-07-12 01:58:41 +03:00
Andrei Alexeyev
287c77cc8b
filewatch_inotify: fix compilation with libinotify-kqueue 2022-07-12 01:58:41 +03:00
Andrei Alexeyev
b9fb06843d
filewatch: rewrite inotify backend
It's now based on directory monitoring, which is more complicated, but
also much more reliable, especially when dealing with move events and
hard links. It is also closer to the semantics we actually want
(monitoring fs paths for changes, not inodes). It will still get
confused if the directory itself gets moved (directly or indirectly),
though, but handling that correctly is absurdly difficult and not
important for our use-case.

Importantly, FileWatch no longer becomes useless after reporting a
FILEWATCH_FILE_DELETED event: if another file is placed onto the same
path later, the FileWatch will report FILEWATCH_FILE_UPDATED. Some
client logic can be simplified because of that.
2022-07-07 05:52:53 +03:00
Andrei Alexeyev
7495b1073e
filewatch_inotify: ignore IN_ATTRIB events 2022-02-16 04:26:55 +02:00
Andrei Alexeyev
0f8975d4be
filewatch_inotify: remove debug spam 2022-01-02 09:00:43 +02:00
Andrei Alexeyev
e629d927ba
filewatch: add filewatch module for basic file monitoring
Currently only an inotify-based backend is implemented.
2022-01-02 08:28:11 +02:00