chiark / gitweb /
udev: set default rules permissions only at "add" events
[elogind.git] / src / udev / udevadm-trigger.c
index 36a2864fa7430a1b0536e786be4f727e1b4d2a91..4d96a786c3950b92517b12b8724274928dc06535 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008-2009 Kay Sievers <kay.sievers@vrfy.org>
+ * Copyright (C) 2008-2009 Kay Sievers <kay@vrfy.org>
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -38,7 +38,6 @@ static int dry_run;
 
 static void exec_list(struct udev_enumerate *udev_enumerate, const char *action)
 {
-        struct udev *udev = udev_enumerate_get_udev(udev_enumerate);
         struct udev_list_entry *entry;
 
         udev_list_entry_foreach(entry, udev_enumerate_get_list_entry(udev_enumerate)) {
@@ -49,7 +48,7 @@ static void exec_list(struct udev_enumerate *udev_enumerate, const char *action)
                         printf("%s\n", udev_list_entry_get_name(entry));
                 if (dry_run)
                         continue;
-                util_strscpyl(filename, sizeof(filename), udev_list_entry_get_name(entry), "/uevent", NULL);
+                strscpyl(filename, sizeof(filename), udev_list_entry_get_name(entry), "/uevent", NULL);
                 fd = open(filename, O_WRONLY);
                 if (fd < 0)
                         continue;
@@ -63,7 +62,7 @@ static const char *keyval(const char *str, const char **val, char *buf, size_t s
 {
         char *pos;
 
-        util_strscpy(buf, size,str);
+        strscpy(buf, size,str);
         pos = strchr(buf, '=');
         if (pos != NULL) {
                 pos[0] = 0;
@@ -165,10 +164,10 @@ static int adm_trigger(struct udev *udev, int argc, char *argv[])
                         struct udev_device *dev;
 
                         /* add sys dir if needed */
-                        if (strncmp(optarg, udev_get_sys_path(udev), strlen(udev_get_sys_path(udev))) != 0)
-                                util_strscpyl(path, sizeof(path), udev_get_sys_path(udev), optarg, NULL);
+                        if (!startswith(optarg, "/sys"))
+                                strscpyl(path, sizeof(path), "/sys", optarg, NULL);
                         else
-                                util_strscpy(path, sizeof(path), optarg);
+                                strscpy(path, sizeof(path), optarg);
                         util_remove_trailing_chars(path, '/');
                         dev = udev_device_new_from_syspath(udev, path);
                         if (dev == NULL) {