diff options
author | Kay Sievers <kay.sievers@vrfy.org> | 2009-04-23 04:07:51 +0200 |
---|---|---|
committer | Kay Sievers <kay.sievers@vrfy.org> | 2009-04-23 04:07:51 +0200 |
commit | 08a7a795f61eaf42f31b26e435067a664f0a4d4d (patch) | |
tree | 67c7c464411d0b1662c09899e9408fb3ddd90614 | |
parent | bb7045a0a372abc3638e027e9d8c4b05b79c9f67 (diff) |
libudev: monitor - add udev_monitor_filter_remove
-rw-r--r-- | udev/lib/exported_symbols | 1 | ||||
-rw-r--r-- | udev/lib/libudev-monitor.c | 8 | ||||
-rw-r--r-- | udev/lib/libudev.h | 1 |
3 files changed, 10 insertions, 0 deletions
diff --git a/udev/lib/exported_symbols b/udev/lib/exported_symbols index a700f98ac8..5b0d8fd011 100644 --- a/udev/lib/exported_symbols +++ b/udev/lib/exported_symbols @@ -57,6 +57,7 @@ udev_monitor_get_udev udev_monitor_get_fd udev_monitor_receive_device udev_monitor_filter_add_match_subsystem_devtype +udev_monitor_filter_remove udev_queue_new udev_queue_ref udev_queue_unref diff --git a/udev/lib/libudev-monitor.c b/udev/lib/libudev-monitor.c index 211aa12f62..bf95657da2 100644 --- a/udev/lib/libudev-monitor.c +++ b/udev/lib/libudev-monitor.c @@ -707,3 +707,11 @@ int udev_monitor_filter_add_match_subsystem_devtype(struct udev_monitor *udev_mo return -ENOMEM; return 0; } + +int udev_monitor_filter_remove(struct udev_monitor *udev_monitor) +{ + static struct sock_fprog filter = { 0, NULL }; + + udev_list_cleanup_entries(udev_monitor->udev, &udev_monitor->filter_subsystem_list); + return setsockopt(udev_monitor->sock, SOL_SOCKET, SO_ATTACH_FILTER, &filter, sizeof(filter)); +} diff --git a/udev/lib/libudev.h b/udev/lib/libudev.h index e366d76877..0b52e6e775 100644 --- a/udev/lib/libudev.h +++ b/udev/lib/libudev.h @@ -85,6 +85,7 @@ extern struct udev *udev_monitor_get_udev(struct udev_monitor *udev_monitor); extern int udev_monitor_get_fd(struct udev_monitor *udev_monitor); extern struct udev_device *udev_monitor_receive_device(struct udev_monitor *udev_monitor); extern int udev_monitor_filter_add_match_subsystem_devtype(struct udev_monitor *udev_monitor, const char *subsystem, const char *devtype); +extern int udev_monitor_filter_remove(struct udev_monitor *udev_monitor); /* sys enumeration */ struct udev_enumerate; |