diff options
author | Kay Sievers <kay.sievers@suse.de> | 2005-06-05 04:38:10 +0200 |
---|---|---|
committer | Kay Sievers <kay.sievers@suse.de> | 2005-06-05 04:38:10 +0200 |
commit | 88f4b6485e2a551de55fd9d39aeef89debf3121c (patch) | |
tree | af4ad7d85ea983d4e4f19d4bdfc2e0073e2a4b80 /udev.c | |
parent | 5e65ab9a191268fec7cddf6b7d8c0fefd2a6b920 (diff) |
udevd: listen for netlink events
After the first valid netlink-event all event with a serial number
received on the udevsend socket will be ignored.
Signed-off-by: Kay Sievers <kay.sievers@suse.de>
Diffstat (limited to 'udev.c')
-rw-r--r-- | udev.c | 10 |
1 files changed, 7 insertions, 3 deletions
@@ -54,8 +54,10 @@ void log_message(int priority, const char *format, ...) } #endif -/* decide if we should manage the whole hotplug event - * for now look if the kernel calls udevsend instead of /sbin/hotplug +/* Decide if we should manage the whole uevent, including multiplexing + * of the hotplug directories. + * For now look if the kernel calls udevsend instead of /sbin/hotplug, + * or the uevent-helper in /proc/sys/kernel/hotplug is empty. */ static int manage_hotplug_event(void) { char helper[256]; @@ -70,13 +72,15 @@ static int manage_hotplug_event(void) { if (fd < 0) return 0; - len = read(fd, helper, 256); + len = read(fd, helper, sizeof(helper)-1); close(fd); if (len < 0) return 0; helper[len] = '\0'; + if (helper[0] == '\0' || helper[0] == '\n') + return 1; if (strstr(helper, "udevsend")) return 1; |