mirror of
https://github.com/systemd/systemd.git
synced 2024-11-04 13:51:24 +03:00
login: assing /dev/console logins to seat0
This commit is contained in:
parent
337eebb936
commit
d1122ad5e3
@ -351,16 +351,25 @@ static int bus_manager_create_session(Manager *m, DBusMessage *message, DBusMess
|
|||||||
vtnr = (uint32_t) v;
|
vtnr = (uint32_t) v;
|
||||||
else if (vtnr != (uint32_t) v)
|
else if (vtnr != (uint32_t) v)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
} else if (tty_is_console(tty)) {
|
||||||
|
|
||||||
|
if (!s)
|
||||||
|
s = m->vtconsole;
|
||||||
|
else if (s != m->vtconsole)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
if (vtnr != 0)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
} else if (!isempty(tty) && s && seat_is_vtconsole(s))
|
} else if (!isempty(tty) && s && seat_is_vtconsole(s))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
if (s) {
|
if (s) {
|
||||||
if (seat_can_multi_session(s)) {
|
if (seat_can_multi_session(s)) {
|
||||||
if (vtnr <= 0 || vtnr > 63)
|
if (vtnr > 63)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
} else {
|
} else {
|
||||||
if (vtnr > 0)
|
if (vtnr != 0)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4287,6 +4287,15 @@ bool tty_is_vc(const char *tty) {
|
|||||||
return vtnr_from_tty(tty) >= 0;
|
return vtnr_from_tty(tty) >= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool tty_is_console(const char *tty) {
|
||||||
|
assert(tty);
|
||||||
|
|
||||||
|
if (startswith(tty, "/dev/"))
|
||||||
|
tty += 5;
|
||||||
|
|
||||||
|
return streq(tty, "console");
|
||||||
|
}
|
||||||
|
|
||||||
int vtnr_from_tty(const char *tty) {
|
int vtnr_from_tty(const char *tty) {
|
||||||
int i, r;
|
int i, r;
|
||||||
|
|
||||||
|
@ -415,6 +415,7 @@ char *fstab_node_to_udev_node(const char *p);
|
|||||||
|
|
||||||
bool tty_is_vc(const char *tty);
|
bool tty_is_vc(const char *tty);
|
||||||
bool tty_is_vc_resolve(const char *tty);
|
bool tty_is_vc_resolve(const char *tty);
|
||||||
|
bool tty_is_console(const char *tty);
|
||||||
int vtnr_from_tty(const char *tty);
|
int vtnr_from_tty(const char *tty);
|
||||||
const char *default_term_for_tty(const char *tty);
|
const char *default_term_for_tty(const char *tty);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user