mirror of
https://github.com/systemd/systemd
synced 2024-10-06 16:21:34 +00:00
acl: libudev currently doesn't handle properly enumerator matches with multiple tags, so avoid using them for now
This commit is contained in:
parent
f5f32cd7ad
commit
539072153c
3
TODO
3
TODO
|
@ -22,6 +22,9 @@ F15 External:
|
|||
* fix broken Sockets=syslog-ng.socket packaging
|
||||
|
||||
Features:
|
||||
|
||||
* understand https://bugzilla.redhat.com/show_bug.cgi?id=672194
|
||||
|
||||
* possibly set timezone offset from systemd at init instead
|
||||
of calling hwclock
|
||||
|
||||
|
|
|
@ -222,7 +222,7 @@ int devnode_acl_all(struct udev *udev,
|
|||
|
||||
assert(udev);
|
||||
|
||||
if (!seat)
|
||||
if (isempty(seat))
|
||||
seat = "seat0";
|
||||
|
||||
e = udev_enumerate_new(udev);
|
||||
|
@ -233,11 +233,13 @@ int devnode_acl_all(struct udev *udev,
|
|||
if (r < 0)
|
||||
goto finish;
|
||||
|
||||
if (!streq(seat, "seat0")) {
|
||||
r = udev_enumerate_add_match_tag(e, seat);
|
||||
if (r < 0)
|
||||
goto finish;
|
||||
}
|
||||
/* FIXME: when libudev is able to handle multiple match tags
|
||||
* properly, optimize the search here a bit */
|
||||
/* if (!streq(seat, "seat0")) { */
|
||||
/* r = udev_enumerate_add_match_tag(e, seat); */
|
||||
/* if (r < 0) */
|
||||
/* goto finish; */
|
||||
/* } */
|
||||
|
||||
r = udev_enumerate_scan_devices(e);
|
||||
if (r < 0)
|
||||
|
@ -254,8 +256,8 @@ int devnode_acl_all(struct udev *udev,
|
|||
goto finish;
|
||||
}
|
||||
|
||||
sn = udev_device_get_property_value(d, "SEAT");
|
||||
if (!sn)
|
||||
sn = udev_device_get_property_value(d, "ID_SEAT");
|
||||
if (isempty(sn))
|
||||
sn = "seat0";
|
||||
|
||||
if (!streq(seat, sn)) {
|
||||
|
@ -270,6 +272,8 @@ int devnode_acl_all(struct udev *udev,
|
|||
goto finish;
|
||||
}
|
||||
|
||||
log_debug("Fixing up %s for seat %s...", node, sn);
|
||||
|
||||
r = devnode_acl(node, flush, del, old_uid, add, new_uid);
|
||||
udev_device_unref(d);
|
||||
|
||||
|
|
|
@ -286,7 +286,7 @@ int manager_process_seat_device(Manager *m, struct udev_device *d) {
|
|||
Seat *seat;
|
||||
|
||||
sn = udev_device_get_property_value(d, "ID_SEAT");
|
||||
if (!sn)
|
||||
if (isempty(sn))
|
||||
sn = "seat0";
|
||||
|
||||
if (!seat_name_is_valid(sn)) {
|
||||
|
|
|
@ -45,6 +45,7 @@
|
|||
* trigger based on libudev if available
|
||||
* enumerate recursively with libudev when triggering
|
||||
* use sysfs in device hash table, not sysname, when fb driver is fixed
|
||||
* fix ACL enumeration as soon as libudev can properly handle two match tags when enumerating
|
||||
*
|
||||
* non-local X11 server
|
||||
* reboot/shutdown halt management
|
||||
|
|
|
@ -44,7 +44,7 @@ int main(int argc, char *argv[]) {
|
|||
}
|
||||
|
||||
path = argv[1];
|
||||
seat = argc >= 3 ? argv[2] : "seat0";
|
||||
seat = argc < 3 || isempty(argv[2]) ? "seat0" : argv[2];
|
||||
|
||||
p = strappend("/run/systemd/seats/", seat);
|
||||
if (!p) {
|
||||
|
|
Loading…
Reference in a new issue