chiark / gitweb /
[PATCH] add ACTION to udev object to expose it to the whole process
[elogind.git] / udev.c
diff --git a/udev.c b/udev.c
index d8cb4365fdeda58d65f174857edb256d76854dcd..480a1cdca224e595ff171898affaf9e2858bb54f 100644 (file)
--- a/udev.c
+++ b/udev.c
@@ -91,12 +91,12 @@ int main(int argc, char *argv[], char *envp[])
 
        udev_init_config();
 
-       if (strstr(argv[0], "udevstart")) {
+       if (strstr(argv[0], "udevstart") || (argv[1] != NULL && strstr(argv[1], "udevstart"))) {
                act_type = UDEVSTART;
        } else {
-               const char *action = get_action();
-               const char *devpath = get_devpath();
-               const char *subsystem = get_subsystem(main_argv[1]);
+               const char *action = getenv("ACTION");
+               const char *devpath = getenv("DEVPATH");
+               const char *subsystem = argv[1];
 
                if (!action) {
                        dbg("no action?");
@@ -128,7 +128,7 @@ int main(int argc, char *argv[], char *envp[])
                        goto exit;
                }
 
-               udev_set_values(&udev, devpath, subsystem);
+               udev_set_values(&udev, devpath, subsystem, action);
 
                /* skip blacklisted subsystems */
                if (udev.type != 'n' && subsystem_expect_no_dev(subsystem)) {