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:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user