summaryrefslogtreecommitdiff
path: root/bus/dir-watch-inotify.c
diff options
context:
space:
mode:
authorFrederic Crozat <fcrozat@mandriva.com>2008-04-01 18:09:46 +0200
committerTimo Hoenig <thoenig@zimtstern.suse.de>2008-04-01 18:09:46 +0200
commit68f69d38182ed5974984b0434086e6a288b477cb (patch)
tree007aa778e21fd29e607a2e4e699d533faea322d1 /bus/dir-watch-inotify.c
parent0bfc5e8d23a5ae56eee5ef2073911cddcbd0c4b0 (diff)
downloaddbus-68f69d38182ed5974984b0434086e6a288b477cb.tar.gz
dbus-68f69d38182ed5974984b0434086e6a288b477cb.tar.bz2
dbus-68f69d38182ed5974984b0434086e6a288b477cb.zip
Fixes for the inotify configuration file monitor backend.
2008-04-01 Timo Hoenig <thoenig@suse.de> Patch from Frederic Crozat <fcrozat@mandriva.com> * bus/dir-watch-inotify.c (bus_watch_directory): Only monitor IN_CLOSE_WRITE, IN_DELETE, IN_MOVE_TO and IN_MOVE_FROM events. This way, only atomic changes to configuration file are monitored. * bus/dir-watch-inotify.c (_handle_inotify_watch): Fix typo in _dbus_verbose function call * bus/dir-watch-inotify.c (bus_drop_all_directory_watches): Use _dbus_strerror instead of perror
Diffstat (limited to 'bus/dir-watch-inotify.c')
-rw-r--r--bus/dir-watch-inotify.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/bus/dir-watch-inotify.c b/bus/dir-watch-inotify.c
index 1622cde2..e15faadc 100644
--- a/bus/dir-watch-inotify.c
+++ b/bus/dir-watch-inotify.c
@@ -64,7 +64,7 @@ _handle_inotify_watch (DBusWatch *watch, unsigned int flags, void *data)
ret = read (inotify_fd, buffer, INOTIFY_BUF_LEN);
if (ret < 0)
- _dbus_verbose ("Error reading inotify event: '%s'\n, _dbus_strerror(errno)");
+ _dbus_verbose ("Error reading inotify event: '%s'\n", _dbus_strerror(errno));
else if (!ret)
_dbus_verbose ("Error reading inotify event: buffer too small\n");
@@ -134,7 +134,7 @@ bus_watch_directory (const char *dir, BusContext *context)
goto out;
}
- wd = inotify_add_watch (inotify_fd, dir, IN_MODIFY | IN_CREATE | IN_DELETE);
+ wd = inotify_add_watch (inotify_fd, dir, IN_CLOSE_WRITE | IN_DELETE | IN_MOVED_TO | IN_MOVED_FROM);
if (wd < 0)
{
_dbus_warn ("Cannot setup inotify for '%s'; error '%s'\n", dir, _dbus_strerror (errno));
@@ -156,7 +156,7 @@ bus_drop_all_directory_watches (void)
_dbus_verbose ("Dropping all watches on config directories\n");
ret = close (inotify_fd);
if (ret)
- _dbus_verbose ("Error dropping watches: '%s'\n", perror(ret));
+ _dbus_verbose ("Error dropping watches: '%s'\n", _dbus_strerror(errno));
num_wds = 0;
inotify_fd = -1;