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=113a2b73b6289f0a068f0cb17d0a1fd1d8194ef7;hpb=ae5e06bda24ebbb2ac00741738ad3a872fc577a5;p=elogind.git diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c index 113a2b73b..890c5c6b1 100644 --- a/src/login/logind-dbus.c +++ b/src/login/logind-dbus.c @@ -404,8 +404,8 @@ static int bus_manager_create_session(Manager *m, DBusMessage *message) { int v; if (!seat) - seat = m->vtconsole; - else if (seat != m->vtconsole) + seat = m->seat0; + else if (seat != m->seat0) return -EINVAL; v = vtnr_from_tty(tty); @@ -420,8 +420,8 @@ static int bus_manager_create_session(Manager *m, DBusMessage *message) { } else if (tty_is_console(tty)) { if (!seat) - seat = m->vtconsole; - else if (seat != m->vtconsole) + seat = m->seat0; + else if (seat != m->seat0) return -EINVAL; if (vtnr != 0) @@ -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;