From 0ad8395ae67d4cbd32b7974246ab6c91bb217b0c Mon Sep 17 00:00:00 2001 From: liupeng Date: Wed, 17 Dec 2025 20:47:33 +0800 Subject: [PATCH] backend/session: respond to event hangup or error Signed-off-by: liupeng --- backend/session/session.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/backend/session/session.c b/backend/session/session.c index 32522fb42..57b13b4ca 100644 --- a/backend/session/session.c +++ b/backend/session/session.c @@ -36,6 +36,15 @@ static void handle_disable_seat(struct libseat *seat, void *data) { static int libseat_event(int fd, uint32_t mask, void *data) { struct wlr_session *session = data; + if (mask & (WL_EVENT_HANGUP | WL_EVENT_ERROR)) { + if (mask & WL_EVENT_ERROR) { + wlr_log(WLR_ERROR, "Failed to wait for libseat event"); + } else { + wlr_log(WLR_INFO, "Failed to wait for libseat event"); + } + wlr_session_destroy(session); + return 0; + } if (libseat_dispatch(session->seat_handle, 0) == -1) { wlr_log_errno(WLR_ERROR, "Failed to dispatch libseat"); wlr_session_destroy(session);