diff options
author | Chengwei Yang <chengwei.yang@intel.com> | 2013-06-28 09:36:32 +0800 |
---|---|---|
committer | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2013-06-28 11:53:29 +0100 |
commit | 1f9e5d70c7cb6bba6c440d9552711859fdadfea9 (patch) | |
tree | 8a168e1693c86f2614239b72bc3cbd8250a6f2f9 /bus | |
parent | 2dfb5ff69bb87f17ed98219f354c545fe31300d3 (diff) | |
download | dbus-1f9e5d70c7cb6bba6c440d9552711859fdadfea9.tar.gz |
dir-watch: remove dnotify backend
dnotify as a dir watch backend is broken since Jan 2010 (almost 3.5
years). According to fd.o: #33001, it's no harm to remove dnotify from
this project.
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=33001
Signed-off-by: Chengwei Yang <chengwei.yang@intel.com>
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Diffstat (limited to 'bus')
-rw-r--r-- | bus/Makefile.am | 4 | ||||
-rw-r--r-- | bus/dir-watch-dnotify.c | 93 | ||||
-rw-r--r-- | bus/main.c | 7 |
3 files changed, 0 insertions, 104 deletions
diff --git a/bus/Makefile.am b/bus/Makefile.am index 74c62e74..526f1101 100644 --- a/bus/Makefile.am +++ b/bus/Makefile.am @@ -50,13 +50,9 @@ else if DBUS_BUS_ENABLE_INOTIFY DIR_WATCH_SOURCE=dir-watch-inotify.c else -if DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX -DIR_WATCH_SOURCE=dir-watch-dnotify.c -else DIR_WATCH_SOURCE=dir-watch-default.c endif endif -endif BUS_SOURCES= \ activation.c \ diff --git a/bus/dir-watch-dnotify.c b/bus/dir-watch-dnotify.c deleted file mode 100644 index b38d7d19..00000000 --- a/bus/dir-watch-dnotify.c +++ /dev/null @@ -1,93 +0,0 @@ -/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ -/* dir-watch-dnotify.c OS specific directory change notification for message bus - * - * Copyright (C) 2003 Red Hat, Inc. - * - * Licensed under the Academic Free License version 2.1 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - */ - -#include <config.h> - -#define _GNU_SOURCE -#include <stdlib.h> -#include <unistd.h> -#include <fcntl.h> -#ifdef HAVE_ERRNO_H -#include <errno.h> -#endif - -#include <dbus/dbus-internals.h> -#include "dir-watch.h" - -#define MAX_DIRS_TO_WATCH 128 - -/* use a static array to avoid handling OOM */ -static int fds[MAX_DIRS_TO_WATCH]; -static int num_fds = 0; - -void -bus_watch_directory (const char *dir, BusContext *context) -{ - int fd; - - _dbus_assert (dir != NULL); - - if (num_fds >= MAX_DIRS_TO_WATCH ) - { - _dbus_warn ("Cannot watch config directory '%s'. Already watching %d directories\n", dir, MAX_DIRS_TO_WATCH); - goto out; - } - - fd = open (dir, O_RDONLY); - if (fd < 0) - { - _dbus_warn ("Cannot open directory '%s'; error '%s'\n", dir, _dbus_strerror (errno)); - goto out; - } - - if (fcntl (fd, F_NOTIFY, DN_CREATE|DN_DELETE|DN_RENAME|DN_MODIFY) == -1) - { - _dbus_warn ("Cannot setup D_NOTIFY for '%s' error '%s'\n", dir, _dbus_strerror (errno)); - close (fd); - goto out; - } - - fds[num_fds++] = fd; - _dbus_verbose ("Added watch on config directory '%s'\n", dir); - - out: - ; -} - -void -bus_drop_all_directory_watches (void) -{ - int i; - - _dbus_verbose ("Dropping all watches on config directories\n"); - - for (i = 0; i < num_fds; i++) - { - if (close (fds[i]) != 0) - { - _dbus_verbose ("Error closing fd %d for config directory watch\n", fds[i]); - } - } - - num_fds = 0; -} @@ -61,10 +61,6 @@ signal_handler (int sig) { switch (sig) { -#ifdef DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX - case SIGIO: - /* explicit fall-through */ -#endif /* DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX */ #ifdef SIGHUP case SIGHUP: { @@ -649,9 +645,6 @@ main (int argc, char **argv) #ifdef SIGHUP _dbus_set_signal_handler (SIGHUP, signal_handler); #endif -#ifdef DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX - _dbus_set_signal_handler (SIGIO, signal_handler); -#endif /* DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX */ #endif /* DBUS_UNIX */ _dbus_verbose ("We are on D-Bus...\n"); |