chiark / gitweb /
libudev: udev_device_get_devname -> udev_device_get_devnode
[elogind.git] / udev / udevadm-info.c
index a2858e5..dbcaaff 100644 (file)
@@ -15,8 +15,6 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "config.h"
-
 #include <stdlib.h>
 #include <string.h>
 #include <stdio.h>
@@ -150,7 +148,7 @@ static void print_record(struct udev_device *device)
 
        printf("P: %s\n", udev_device_get_devpath(device));
        len = strlen(udev_get_dev_path(udev_device_get_udev(device)));
-       printf("N: %s\n", &udev_device_get_devname(device)[len+1]);
+       printf("N: %s\n", &udev_device_get_devnode(device)[len+1]);
        i = device_get_devlink_priority(device);
        if (i != 0)
                printf("L: %i\n", i);
@@ -165,18 +163,10 @@ static void print_record(struct udev_device *device)
        printf("\n");
 }
 
-static int export_all_cb(struct udev *udev,
-                        const char *devpath, const char *subsystem, const char *name,
-                        void *data)
+static int export_all_cb(struct udev_device *device, void *data)
 {
-       struct udev_device *device;
-
-       device = udev_device_new_from_devpath(udev, devpath);
-       if (device == NULL)
-               return 0;
-       if (udev_device_get_devname(device) != NULL)
+       if (udev_device_get_devnode(device) != NULL)
                print_record(device);
-       udev_device_unref(device);
        return 0;
 }
 
@@ -215,7 +205,9 @@ static struct udev_device *lookup_device_by_name(struct udev *udev, const char *
                        info(udev, "skip '%s', dev_t doesn't match\n", udevice_loop->name);
                        goto next;
                }
-               udev_device = udev_device_new_from_devpath(udev, udevice_loop->dev->devpath);
+               util_strlcpy(filename, udev_get_sys_path(udev), sizeof(filename));
+               util_strlcat(filename,  udevice_loop->dev->devpath, sizeof(filename));
+               udev_device = udev_device_new_from_syspath(udev, filename);
                udev_device_cleanup(udevice_loop);
                break;
 next:
@@ -348,13 +340,15 @@ int udevadm_info(struct udev *udev, int argc, char *argv[])
                                rc = 2;
                                goto exit;
                        }
-                       /* remove /sys if given */
-                       if (strncmp(optarg, udev_get_sys_path(udev), strlen(udev_get_sys_path(udev))) == 0)
-                               util_strlcpy(path, &optarg[strlen(udev_get_sys_path(udev))], sizeof(path));
-                       else
+                       /* add /sys if needed */
+                       if (strncmp(optarg, udev_get_sys_path(udev), strlen(udev_get_sys_path(udev))) != 0) {
+                               util_strlcpy(path, udev_get_sys_path(udev), sizeof(path));
+                               util_strlcat(path, optarg, sizeof(path));
+                       } else {
                                util_strlcpy(path, optarg, sizeof(path));
+                       }
                        util_remove_trailing_chars(path, '/');
-                       device = udev_device_new_from_devpath(udev, path);
+                       device = udev_device_new_from_syspath(udev, path);
                        break;
                case 'q':
                        action = ACTION_QUERY;
@@ -442,12 +436,12 @@ int udevadm_info(struct udev *udev, int argc, char *argv[])
                switch(query) {
                case QUERY_NAME:
                        if (root) {
-                               printf("%s\n", udev_device_get_devname(device));
+                               printf("%s\n", udev_device_get_devnode(device));
                        } else {
                                size_t len;
 
                                len = strlen(udev_get_dev_path(udev));
-                               printf("%s\n", &udev_device_get_devname(device)[len+1]);
+                               printf("%s\n", &udev_device_get_devnode(device)[len+1]);
                        }
                        break;
                case QUERY_SYMLINK: