X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flogin%2Flogind-dbus.c;h=890c5c6b1d1d78c46a1e380906f5fd1a871ef706;hb=872c8faaf2009422a91d227ae0b5c6f04c9d2c69;hp=4a23c93bd9c01b8dec6681f6be02a188d341a05d;hpb=92432fcc7f3a0320c07e99c5d395568a3aa216b6;p=elogind.git diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c index 4a23c93bd..890c5c6b1 100644 --- a/src/login/logind-dbus.c +++ b/src/login/logind-dbus.c @@ -429,7 +429,7 @@ static int bus_manager_create_session(Manager *m, DBusMessage *message) { } if (seat) { - if (seat_can_multi_session(seat)) { + if (seat_has_vts(seat)) { if (vtnr > 63) return -EINVAL; } else { @@ -484,7 +484,7 @@ static int bus_manager_create_session(Manager *m, DBusMessage *message) { return -EINVAL; } - r = manager_get_session_by_pid(m, leader, &session); + manager_get_session_by_pid(m, leader, &session); if (session) { _cleanup_dbus_message_unref_ DBusMessage *reply = NULL; _cleanup_free_ char *path = NULL; @@ -957,6 +957,7 @@ static int have_multiple_sessions( * count, and non-login sessions do not count either. */ HASHMAP_FOREACH(session, m->sessions, i) if (session->class == SESSION_USER && + !session->closing && session->user->uid != uid) return true; @@ -2256,7 +2257,7 @@ static DBusHandlerResult manager_message_handler( } HASHMAP_FOREACH(user, m->users, i) - fprintf(f, "", (unsigned long long) user->uid); + fprintf(f, "", (unsigned long long) user->uid); HASHMAP_FOREACH(session, m->sessions, i) { p = bus_path_escape(session->id); @@ -2395,7 +2396,6 @@ DBusHandlerResult bus_message_filter( } else if (dbus_message_is_signal(message, "org.freedesktop.DBus.Properties", "PropertiesChanged")) { - _cleanup_dbus_message_unref_ DBusMessage *reply = NULL; _cleanup_free_ char *unit = NULL; const char *path;