loginctl: show seat master and uaccess devices in seat-status output

This commit is contained in:
Lennart Poettering 2013-01-24 05:47:37 +01:00
parent bfb7ec0eba
commit d239d84aa3
1 changed files with 7 additions and 2 deletions

View File

@ -45,6 +45,7 @@ static int show_sysfs_one(
struct udev_device *d;
const char *sn, *name, *sysfs, *subsystem, *sysname;
char *l, *k;
bool is_master, uaccess;
sysfs = udev_list_entry_get_name(*item);
if (!path_startswith(sysfs, sub))
@ -60,13 +61,16 @@ static int show_sysfs_one(
if (isempty(sn))
sn = "seat0";
/* fixme, also check for tag 'seat' here */
/* Explicitly also check for tag 'seat' here */
if (!streq(seat, sn) || !udev_device_has_tag(d, "seat")) {
udev_device_unref(d);
*item = udev_list_entry_get_next(*item);
continue;
}
is_master = udev_device_has_tag(d, "seat-master");
uaccess = udev_device_has_tag(d, "uaccess");
name = udev_device_get_sysattr_value(d, "name");
if (!name)
name = udev_device_get_sysattr_value(d, "id");
@ -110,7 +114,8 @@ static int show_sysfs_one(
free(k);
if (asprintf(&l,
"(%s:%s)%s%s%s",
"%s%s%s:%s%s%s%s",
is_master ? "[MASTER] " : "", uaccess ? "[ACL] " : "",
subsystem, sysname,
name ? " \"" : "", name ? name : "", name ? "\"" : "") < 0) {
udev_device_unref(d);