X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=udev%2Fudevadm-info.c;h=f7e7e86b6a4a8f43cf9207b85f4176ab4874191c;hb=c2e63452dda721bb7f127adefdfe444153a9bdca;hp=87c1c32314b2d0784c9d9cf2e0745ad72dc166e4;hpb=cbfad6af1fdc73c6f3c6b001047ff4a86c8a6efd;p=elogind.git diff --git a/udev/udevadm-info.c b/udev/udevadm-info.c index 87c1c3231..f7e7e86b6 100644 --- a/udev/udevadm-info.c +++ b/udev/udevadm-info.c @@ -52,10 +52,10 @@ static bool skip_attribute(const char *name) static void print_all_attributes(struct udev_device *device, const char *key) { + struct udev *udev = udev_device_get_udev(device); struct udev_list_entry *sysattr; udev_list_entry_foreach(sysattr, udev_device_get_sysattr_list_entry(device)) { - struct udev *udev = udev_device_get_udev(device); const char *name; const char *value; size_t len; @@ -69,6 +69,10 @@ static void print_all_attributes(struct udev_device *device, const char *key) continue; dbg(udev, "attr '%s'='%s'\n", name, value); + /* skip any values that look like a path */ + if (value[0] == '/') + continue; + /* skip nonprintable attributes */ len = strlen(value); while (len > 0 && isprint(value[len-1])) @@ -275,7 +279,7 @@ static void cleanup_db(struct udev *udev) } } -int udevadm_info(struct udev *udev, int argc, char *argv[]) +static int uinfo(struct udev *udev, int argc, char *argv[]) { struct udev_device *device = NULL; bool root = 0; @@ -454,6 +458,7 @@ int udevadm_info(struct udev *udev, int argc, char *argv[]) " --help\n\n"); goto exit; default: + rc = 1; goto exit; } } @@ -555,3 +560,9 @@ exit: udev_device_unref(device); return rc; } + +const struct udevadm_cmd udevadm_info = { + .name = "info", + .cmd = uinfo, + .help = "query sysfs or the udev database", +};