X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=udev.c;h=7854bc74d0a2f4a8e7f98c3881bf4946c13de409;hb=77313cd0d13ed3682f25c745f71f648292b28215;hp=5dbade3c6f6dffb7cfb91f385944552090c459d3;hpb=5ef42682053f57fc031d420f0a2ae3e204421b8d;p=elogind.git diff --git a/udev.c b/udev.c index 5dbade3c6..7854bc74d 100644 --- a/udev.c +++ b/udev.c @@ -152,18 +152,15 @@ int main(int argc, char *argv[], char *envp[]) /* older kernels passed the SUBSYSTEM only as argument */ if (!subsystem && argc == 2) subsystem = argv[1]; - udev_init_device(&udev, devpath, subsystem); if (!action) { dbg("no action"); goto hotplug; } - if (!subsystem) { dbg("no subsystem"); goto hotplug; } - if (!devpath) { dbg("no devpath"); goto hotplug; @@ -173,7 +170,9 @@ int main(int argc, char *argv[], char *envp[]) if (udev_log) setenv("UDEV_LOG", "1", 1); - if ((strncmp(devpath, "/block/", 7) == 0) || (strncmp(devpath, "/class/", 7) == 0)) { + udev_init_device(&udev, devpath, subsystem); + + if (udev.type == BLOCK || udev.type == CLASS || udev.type == NET) { if (strcmp(action, "add") == 0) { /* wait for sysfs and possibly add node */ dbg("udev add"); @@ -221,7 +220,7 @@ int main(int argc, char *argv[], char *envp[]) if (udev_dev_d) udev_multiplex_directory(&udev, DEVD_DIR, DEVD_SUFFIX); } - } else if ((strncmp(devpath, "/devices/", 9) == 0)) { + } else if (udev.type == PHYSDEV) { if (strcmp(action, "add") == 0) { /* wait for sysfs */ dbg("devices add");