diff options
author | Frederic Crozat <fcrozat@mandriva.com> | 2008-04-01 18:09:46 +0200 |
---|---|---|
committer | Timo Hoenig <thoenig@zimtstern.suse.de> | 2008-04-01 18:09:46 +0200 |
commit | 68f69d38182ed5974984b0434086e6a288b477cb (patch) | |
tree | 007aa778e21fd29e607a2e4e699d533faea322d1 | |
parent | 0bfc5e8d23a5ae56eee5ef2073911cddcbd0c4b0 (diff) |
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
-rw-r--r-- | ChangeLog | 12 | ||||
-rw-r--r-- | bus/dir-watch-inotify.c | 6 |
2 files changed, 15 insertions, 3 deletions
@@ -1,3 +1,15 @@ +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 + 2008-03-31 Colin Walters <walters@verbum.org> Patch from Owen Taylor <otaylor@redhat.com> 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; |