+/* 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];
+ int fd;
+ int len;
+
+ /* don't handle hotplug.d if we are called directly */
+ if (!getenv("UDEVD_EVENT"))
+ return 0;
+
+ fd = open("/proc/sys/kernel/hotplug", O_RDONLY);
+ if (fd < 0)
+ return 0;
+
+ 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;
+
+ return 0;
+}
+