fix: greetd-Session nach Auth-Fehler sauber canceln

Nach fehlgeschlagenem Login (falsches Passwort) wurde die greetd-Session
nicht gecancelt — beim nächsten Versuch kam "a session is already being
configured". Jetzt wird cancel_session gesendet nach Auth-Fehler, und
bei create_session-Fehler wird einmal cancel + retry versucht.

Außerdem: GTK-Theme-Name und PKGBUILD-pkgver aktualisiert.
This commit is contained in:
2026-03-26 15:26:12 +01:00
parent 357d2459cf
commit 3dfa596f9a
4 changed files with 66 additions and 7 deletions
+7 -3
View File
@@ -444,12 +444,15 @@ class GreeterWindow(Gtk.ApplicationWindow):
with self._greetd_sock_lock:
self._greetd_sock = sock
# Step 1: Create session
# Step 1: Create session — if a stale session exists, cancel it and retry
response = create_session(sock, user.username)
if response.get("type") == "error":
GLib.idle_add(self._on_login_error, response, self._strings.auth_failed)
return
cancel_session(sock)
response = create_session(sock, user.username)
if response.get("type") == "error":
GLib.idle_add(self._on_login_error, response, self._strings.auth_failed)
return
# Step 2: Send password if auth message received
if response.get("type") == "auth_message":
@@ -458,6 +461,7 @@ class GreeterWindow(Gtk.ApplicationWindow):
if response.get("type") == "error":
self._failed_attempts[user.username] = self._failed_attempts.get(user.username, 0) + 1
warning = faillock_warning(self._failed_attempts[user.username], self._strings)
cancel_session(sock)
GLib.idle_add(self._on_login_auth_error, response, warning)
return