[PATCH 3/6] launcher-logind: only get a VT on seat0, as only seat0 supports VTs

nerdopolis bluescreen_avenger at verizon.net
Wed Sep 6 01:20:00 UTC 2017


---
 libweston/launcher-logind.c | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/libweston/launcher-logind.c b/libweston/launcher-logind.c
index a069bd4f..11627590 100644
--- a/libweston/launcher-logind.c
+++ b/libweston/launcher-logind.c
@@ -762,18 +762,20 @@ launcher_logind_connect(struct weston_launcher **out, struct weston_compositor *
 		free(t);
 		goto err_session;
 	}
-	free(t);
 
-	r = weston_sd_session_get_vt(wl->sid, &wl->vtnr);
-	if (r < 0) {
-		weston_log("logind: session not running on a VT\n");
-		goto err_session;
-	} else if (tty > 0 && wl->vtnr != (unsigned int )tty) {
-		weston_log("logind: requested VT --tty=%d differs from real session VT %u\n",
-			   tty, wl->vtnr);
-		r = -EINVAL;
-		goto err_session;
+        if (!strcmp(t, "seat0")) {
+		r = weston_sd_session_get_vt(wl->sid, &wl->vtnr);
+		if (r < 0) {
+			weston_log("logind: session not running on a VT\n");
+			goto err_session;
+		} else if (tty > 0 && wl->vtnr != (unsigned int )tty) {
+			weston_log("logind: requested VT --tty=%d differs from real session VT %u\n",
+				   tty, wl->vtnr);
+			r = -EINVAL;
+			goto err_session;
+		}
 	}
+	free(t);
 
 	loop = wl_display_get_event_loop(compositor->wl_display);
 	r = weston_dbus_open(loop, DBUS_BUS_SYSTEM, &wl->dbus, &wl->dbus_ctx);
-- 
2.14.1



More information about the wayland-devel mailing list