xserver: Branch 'master' - 2 commits

Keith Packard keithp at kemper.freedesktop.org
Mon Sep 22 14:00:57 PDT 2014


 configure.ac            |   22 +++++++++++++++++++++-
 include/dix-config.h.in |    9 +++++++++
 man/Xserver.man         |    7 +++++++
 os/utils.c              |   29 +++++++++++++++++++++++++++++
 4 files changed, 66 insertions(+), 1 deletion(-)

New commits:
commit cc59be38b7eff52a1d003b390f2994c73ee0b3e9
Author: Keith Packard <keithp at keithp.com>
Date:   Fri Sep 12 11:33:48 2014 -0700

    os: Don't listen to 'tcp' by default. Add '-listen' option. [v2]
    
    This disables the tcp listen socket by default. Then, it
    uses a new xtrans interface, TRANS(Listen), to provide a command line
    option to re-enable those if desired.
    
    v2: Leave unix socket enabled by default. Add configure options.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>
    Reviewed-by: Hans de Goede <hdegoede at redhat.com>

diff --git a/configure.ac b/configure.ac
index 9066a6f..51e0f1f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -461,6 +461,16 @@ AC_ARG_WITH(os-vendor,       AS_HELP_STRING([--with-os-vendor=OSVENDOR], [Name o
 AC_ARG_WITH(builderstring,   AS_HELP_STRING([--with-builderstring=BUILDERSTRING], [Additional builder string]),
 				[ BUILDERSTRING="$withval" ]
 				[ ])
+AC_ARG_ENABLE(listen-tcp,    AS_HELP_STRING([--enable-listen-tcp],
+                                            [Listen on TCP by default (default:disabled)]),
+                                [LISTEN_TCP=$enableval], [LISTEN_TCP=no])
+AC_ARG_ENABLE(listen-unix,   AS_HELP_STRING([--disable-listen-unix],
+                                            [Listen on Unix by default (default:enabled)]),
+                                [LISTEN_UNIX=$enableval], [LISTEN_UNIX=yes])
+
+AC_ARG_ENABLE(listen-local,  AS_HELP_STRING([--disable-listen-local],
+                                            [Listen on local by default (default:enabled)]),
+                                [LISTEN_LOCAL=$enableval], [LISTEN_LOCAL=yes])
 
 dnl Determine font path
 XORG_FONTROOTDIR
@@ -1053,6 +1063,16 @@ if test "x$RES" = xyes; then
 	SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES $RESOURCEPROTO"
 fi
 
+if test "x$LISTEN_TCP" = xyes; then
+	AC_DEFINE(LISTEN_TCP, 1, [Listen on TCP socket])
+fi
+if test "x$LISTEN_UNIX" = xyes; then
+	AC_DEFINE(LISTEN_UNIX, 1, [Listen on Unix socket])
+fi
+if test "x$LISTEN_LOCAL" = xyes; then
+	AC_DEFINE(LISTEN_LOCAL, 1, [Listen on local socket])
+fi
+
 # The XRes extension may support client ID tracking only if it has
 # been specifically enabled. Client ID tracking is implicitly not
 # supported if XRes extension is disabled.
diff --git a/include/dix-config.h.in b/include/dix-config.h.in
index 4268b8f..f170c1c 100644
--- a/include/dix-config.h.in
+++ b/include/dix-config.h.in
@@ -493,4 +493,13 @@
 /* byte order */
 #undef X_BYTE_ORDER
 
+/* Listen on TCP socket */
+#undef LISTEN_TCP
+
+/* Listen on Unix socket */
+#undef LISTEN_UNIX
+
+/* Listen on local socket */
+#undef LISTEN_LOCAL
+
 #endif /* _DIX_CONFIG_H_ */
diff --git a/man/Xserver.man b/man/Xserver.man
index 7a74e85..c03830c 100644
--- a/man/Xserver.man
+++ b/man/Xserver.man
@@ -196,6 +196,13 @@ with
 This option may be issued multiple times to disable listening to different
 transport types.
 .TP 8
+.B \-listen \fItrans-type\fP
+enables a transport type.  For example, TCP/IP connections can be enabled
+with
+.BR "\-listen tcp" .
+This option may be issued multiple times to enable listening to different
+transport types.
+.TP 8
 .B \-noreset
 prevents a server reset when the last client connection is closed.  This
 overrides a previous
diff --git a/os/utils.c b/os/utils.c
index 2d02f92..80415c4 100644
--- a/os/utils.c
+++ b/os/utils.c
@@ -557,6 +557,7 @@ UseMsg(void)
     ErrorF("-nolock                disable the locking mechanism\n");
 #endif
     ErrorF("-nolisten string       don't listen on protocol\n");
+    ErrorF("-listen string         listen on protocol\n");
     ErrorF("-noreset               don't reset after last client exists\n");
     ErrorF("-background [none]     create root window with no background\n");
     ErrorF("-reset                 reset after last client exists\n");
@@ -646,6 +647,19 @@ VerifyDisplayName(const char *d)
     return 1;
 }
 
+static const char *defaultNoListenList[] = {
+#ifndef LISTEN_TCP
+    "tcp",
+#endif
+#ifndef LISTEN_UNIX
+    "unix",
+#endif
+#ifndef LISTEN_LOCAL
+    "local",
+#endif
+    NULL
+};
+
 /*
  * This function parses the command line. Handles device-independent fields
  * and allows ddx to handle additional fields.  It is not allowed to modify
@@ -664,6 +678,12 @@ ProcessCommandLine(int argc, char *argv[])
     PartialNetwork = TRUE;
 #endif
 
+    for (i = 0; defaultNoListenList[i] != NULL; i++) {
+        if (_XSERVTransNoListen(defaultNoListenList[i]))
+                    ErrorF("Failed to disable listen for %s transport",
+                           defaultNoListenList[i]);
+    }
+
     for (i = 1; i < argc; i++) {
         /* call ddx first, so it can peek/override if it wants */
         if ((skip = ddxProcessArgument(argc, argv, i))) {
@@ -849,6 +869,15 @@ ProcessCommandLine(int argc, char *argv[])
             else
                 UseMsg();
         }
+        else if (strcmp(argv[i], "-listen") == 0) {
+            if (++i < argc) {
+                if (_XSERVTransListen(argv[i]))
+                    ErrorF("Failed to enable listen for %s transport",
+                           argv[i]);
+            }
+            else
+                UseMsg();
+        }
         else if (strcmp(argv[i], "-noreset") == 0) {
             dispatchExceptionAtReset = 0;
         }
commit 8ada3fb32cd7dd8948eb55620de18ba03df6131d
Author: Keith Packard <keithp at keithp.com>
Date:   Sat Sep 20 10:04:11 2014 -0700

    Require xtrans 1.3.5 or newer
    
    This version of xtrans offers the TRANS(Listen) function.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/configure.ac b/configure.ac
index be8bff6..9066a6f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -779,7 +779,7 @@ FIXESPROTO="fixesproto >= 5.0"
 DAMAGEPROTO="damageproto >= 1.1"
 XCMISCPROTO="xcmiscproto >= 1.2.0"
 BIGREQSPROTO="bigreqsproto >= 1.1.0"
-XTRANS="xtrans >= 1.3.3"
+XTRANS="xtrans >= 1.3.5"
 PRESENTPROTO="presentproto >= 1.0"
 
 dnl List of libraries that require a specific version


More information about the xorg-commit mailing list