chiark / gitweb /
replace in-memory rules array with match/action token list
[elogind.git] / udev / udev-node.c
index 62786d417b6f6fff5d09000f481a132bdfa1416d..b39100dcee0a24f416cdeafb6d563e2c43bd9d85 100644 (file)
@@ -53,14 +53,14 @@ static int name_index(struct udev *udev, const char *devpath, const char *name,
 
        if (add) {
                info(udev, "creating index: '%s'\n", filename);
-               create_path(udev, filename);
+               util_create_path(udev, filename);
                fd = open(filename, O_WRONLY|O_TRUNC|O_CREAT, 0644);
                if (fd > 0)
                        close(fd);
        } else {
                info(udev, "removing index: '%s'\n", filename);
                unlink(filename);
-               delete_path(udev, filename);
+               util_delete_path(udev, filename);
        }
        return 0;
 }
@@ -288,7 +288,7 @@ static int update_link(struct udev_device *dev, const char *slink, int test)
                info(udev, "no reference left, remove '%s'\n", slink);
                if (!test) {
                        unlink(slink);
-                       delete_path(udev, slink);
+                       util_delete_path(udev, slink);
                }
                goto out;
        }
@@ -338,7 +338,7 @@ static int update_link(struct udev_device *dev, const char *slink, int test)
                }
                udev_device_unref(dev_db);
        }
-       udev_list_cleanup(udev, &dev_list);
+       udev_list_cleanup_entries(udev, &dev_list);
 
        if (target[0] == '\0') {
                info(udev, "no current target for '%s' found\n", slink);
@@ -349,7 +349,7 @@ static int update_link(struct udev_device *dev, const char *slink, int test)
        /* create symlink to the target with the highest priority */
        info(udev, "'%s' with target '%s' has the highest priority %i, create it\n", slink, target, priority);
        if (!test) {
-               create_path(udev, slink);
+               util_create_path(udev, slink);
                node_symlink(udev, target, slink);
        }
 out:
@@ -390,49 +390,20 @@ void udev_node_update_old_links(struct udev_device *dev, struct udev_device *dev
        }
 }
 
-int udev_node_add(struct udev_device *dev, mode_t mode, const char *owner, const char *group, int test)
+int udev_node_add(struct udev_device *dev, mode_t mode, uid_t uid, gid_t gid, int test)
 {
        struct udev *udev = udev_device_get_udev(dev);
-       uid_t uid;
-       gid_t gid;
        int i;
        int num;
        struct udev_list_entry *list_entry;
        int err = 0;
 
-       create_path(udev, udev_device_get_devnode(dev));
-
-       if (strcmp(owner, "root") == 0)
-               uid = 0;
-       else {
-               char *endptr;
-               unsigned long id;
-
-               id = strtoul(owner, &endptr, 10);
-               if (endptr[0] == '\0')
-                       uid = (uid_t) id;
-               else
-                       uid = lookup_user(udev, owner);
-       }
-
-       if (strcmp(group, "root") == 0)
-               gid = 0;
-       else {
-               char *endptr;
-               unsigned long id;
-
-               id = strtoul(group, &endptr, 10);
-               if (endptr[0] == '\0')
-                       gid = (gid_t) id;
-               else
-                       gid = lookup_group(udev, group);
-       }
-
        info(udev, "creating device node '%s', devnum=%d:%d, mode=%#o, uid=%d, gid=%d\n",
             udev_device_get_devnode(dev),
             major(udev_device_get_devnum(dev)), minor(udev_device_get_devnum(dev)),
             mode, uid, gid);
 
+       util_create_path(udev, udev_device_get_devnode(dev));
        if (!test)
                if (udev_node_mknod(dev, NULL, makedev(0,0), mode, uid, gid) != 0) {
                        err = -1;
@@ -503,7 +474,7 @@ extern int udev_node_remove(struct udev_device *dev, int test)
 
        info(udev, "removing device node '%s'\n", devnode);
        if (!test)
-               err = unlink_secure(udev, devnode);
+               err = util_unlink_secure(udev, devnode);
        if (err)
                return err;
 
@@ -518,9 +489,9 @@ extern int udev_node_remove(struct udev_device *dev, int test)
                        snprintf(partitionname, sizeof(partitionname), "%s%d", devnode, i);
                        partitionname[sizeof(partitionname)-1] = '\0';
                        if (!test)
-                               unlink_secure(udev, partitionname);
+                               util_unlink_secure(udev, partitionname);
                }
        }
-       delete_path(udev, devnode);
+       util_delete_path(udev, devnode);
        return err;
 }