aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nx-X11/programs/Xserver/include/opaque.h2
-rw-r--r--nx-X11/programs/Xserver/os/connection.c8
-rw-r--r--nx-X11/programs/Xserver/os/utils.c4
3 files changed, 9 insertions, 5 deletions
diff --git a/nx-X11/programs/Xserver/include/opaque.h b/nx-X11/programs/Xserver/include/opaque.h
index 8f98bf1be..1b84b9f5b 100644
--- a/nx-X11/programs/Xserver/include/opaque.h
+++ b/nx-X11/programs/Xserver/include/opaque.h
@@ -77,6 +77,6 @@ extern long maxBigRequestSize;
extern Bool blackRoot;
extern Bool CoreDump;
-
+extern Bool NoListenAll;
#endif /* OPAQUE_H */
diff --git a/nx-X11/programs/Xserver/os/connection.c b/nx-X11/programs/Xserver/os/connection.c
index 6dc0ff64d..8958c47b5 100644
--- a/nx-X11/programs/Xserver/os/connection.c
+++ b/nx-X11/programs/Xserver/os/connection.c
@@ -137,6 +137,7 @@ int MaxClients = 0;
int NumNotifyWriteFd; /* Number of NotifyFd members with write set */
Bool NewOutputPending; /* not yet attempted to write some new output */
Bool AnyWritesPending; /* true if some client blocked on write or NotifyFd with write */
+Bool NoListenAll; /* Don't establish any listening sockets */
Bool RunFromSmartParent; /* send SIGUSR1 to parent process */
static char dynamic_display[7]; /* display name */
Bool PartialNetwork; /* continue even if unable to bind all addrs */
@@ -411,7 +412,10 @@ CreateWellKnownSockets(void)
/* display is initialized to "0" by main(). It is then set to the display
* number if specified on the command line, or to NULL when the -displayfd
* option is used. */
- if (display) {
+ if (NoListenAll) {
+ ListenTransCount = 0;
+ }
+ else if (display) {
if (TryCreateSocket(atoi(display), &partial) &&
ListenTransCount >= 1)
if (!PartialNetwork && partial)
@@ -445,7 +449,7 @@ CreateWellKnownSockets(void)
DefineSelf (fd);
}
- if (!XFD_ANYSET (&WellKnownConnections))
+ if (!XFD_ANYSET (&WellKnownConnections) && !NoListenAll)
FatalError ("Cannot establish any listening sockets - Make sure an X server isn't already running");
#if !defined(WIN32)
OsSignal (SIGPIPE, SIG_IGN);
diff --git a/nx-X11/programs/Xserver/os/utils.c b/nx-X11/programs/Xserver/os/utils.c
index 929549168..74acb53ef 100644
--- a/nx-X11/programs/Xserver/os/utils.c
+++ b/nx-X11/programs/Xserver/os/utils.c
@@ -338,7 +338,7 @@ LockServer(void)
int len;
char port[20];
- if (nolock) return;
+ if (nolock || NoListenAll) return;
/*
* Path names
*/
@@ -464,7 +464,7 @@ LockServer(void)
void
UnlockServer(void)
{
- if (nolock) return;
+ if (nolock || NoListenAll) return;
if (!StillLocking){