summaryrefslogtreecommitdiff
path: root/daemon/gdm-server.c
diff options
context:
space:
mode:
authorAlan Coopersmith <alan.coopersmith@oracle.com>2021-10-07 18:22:11 -0700
committerRay Strode <halfline@gmail.com>2021-12-22 21:22:27 +0000
commitbc16c9898012e463bc6b79c3faa8f81ed54527f7 (patch)
treeede12e3631c3936ef714a3cfdab96349ee4b270e /daemon/gdm-server.c
parent800eb651350bf19eec416ceedfe5744317fed502 (diff)
downloadgdm-bc16c9898012e463bc6b79c3faa8f81ed54527f7.tar.gz
daemon: Support X servers built with -Dlisten_tcp=true
Xorg since version 1.17 doesn't listen to tcp sockets by default unless it's explicitly built with -Dlisten_tcp=true. GDM currently assumes X servers 1.17 and later are always built without specifying -Dlisten_tcp=true and doesn't work properly otherwise. This commit enhances GDM to better handle these non-standard builds by always passing '-nolisten tcp' on the command line when tcp should be disabled, and likewise always passing '-listen tcp' on the command line, assuming the X server is new enough to support it, when tcp should be enabled. Related #704
Diffstat (limited to 'daemon/gdm-server.c')
-rw-r--r--daemon/gdm-server.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/daemon/gdm-server.c b/daemon/gdm-server.c
index 1ba00d45..e5d23521 100644
--- a/daemon/gdm-server.c
+++ b/daemon/gdm-server.c
@@ -317,18 +317,19 @@ gdm_server_resolve_command_line (GdmServer *server,
* by default anymore. In older versions we need to pass
* -nolisten tcp to disable listening on tcp sockets.
*/
-#ifdef HAVE_XSERVER_THAT_DEFAULTS_TO_LOCAL_ONLY
- if (!server->disable_tcp && ! query_in_arglist) {
- argv[len++] = g_strdup ("-listen");
- argv[len++] = g_strdup ("tcp");
- }
-#else
- if (server->disable_tcp && ! query_in_arglist) {
- argv[len++] = g_strdup ("-nolisten");
- argv[len++] = g_strdup ("tcp");
- }
+ if (!query_in_arglist) {
+ if (server->disable_tcp) {
+ argv[len++] = g_strdup ("-nolisten");
+ argv[len++] = g_strdup ("tcp");
+ }
+#ifdef HAVE_XSERVER_WITH_LISTEN
+ if (!server->disable_tcp) {
+ argv[len++] = g_strdup ("-listen");
+ argv[len++] = g_strdup ("tcp");
+ }
#endif
+ }
if (vtarg != NULL && ! gotvtarg) {
argv[len++] = g_strdup (vtarg);