Commit 4f5dc807 authored by Oleksandr Shneyder's avatar Oleksandr Shneyder Committed by Mike Gabriel

Add -norootlessexit cmdline option to nxagent (203_nxagent_disable-rootless-exit.full.patch).

This change enables to launch an nxagent in rootless mode that waits forever for Xclients to appear. This feature got added when X2Go introduced Published Applications support.
parent d26930d5
Description: Add -norootlessexit cmdline option to nxagent
Author: Oleksandr Shneyder <o.schneyder@phoca-gmbh.de>
--- a/nx-X11/programs/Xserver/hw/nxagent/Args.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Args.c
@@ -672,6 +672,12 @@
return 1;
}
+ if (!strcmp(argv[i], "-norootlessexit")) {
+ nxagentChangeOption(NoRootlessExit, True);
+ return 1;
+ }
+
+
if (!strcmp(argv[i], "-noonce"))
{
nxagentOnce = False;
@@ -1855,6 +1861,7 @@
ErrorF("The NX system adds the following arguments:\n");
ErrorF("-forcenx force use of NX protocol messages assuming communication through nxproxy\n");
ErrorF("-timeout int auto-disconnect timeout in seconds (minimum allowed: 60)\n");
+ ErrorF("-norootlessexit don't exit if there are no clients in rootless mode\n");
#ifdef RENDER
ErrorF("-norender disable the use of the render extension\n");
ErrorF("-nocomposite disable the use of the composite extension\n");
--- a/nx-X11/programs/Xserver/hw/nxagent/Handlers.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Handlers.c
@@ -219,7 +219,7 @@
if (nxagentOption(Rootless) &&
nxagentLastWindowDestroyed && nxagentRootlessDialogPid == 0 &&
- now > nxagentLastWindowDestroyedTime + 30 * 1000)
+ now > nxagentLastWindowDestroyedTime + 30 * 1000 && !nxagentOption(NoRootlessExit))
{
#ifdef WARNING
fprintf(stderr, "nxagentBlockHandler: No application running. Closing the session.\n");
--- a/nx-X11/programs/Xserver/hw/nxagent/Options.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Options.c
@@ -56,6 +56,7 @@
nxagentOptions.Persistent = 1;
nxagentOptions.Rootless = UNDEFINED;
nxagentOptions.Fullscreen = UNDEFINED;
+ nxagentOptions.NoRootlessExit = False;
nxagentOptions.X = 0;
nxagentOptions.Y = 0;
--- a/nx-X11/programs/Xserver/hw/nxagent/Options.h
+++ b/nx-X11/programs/Xserver/hw/nxagent/Options.h
@@ -381,6 +381,13 @@
int ImageRateLimit;
+ /*
+ * True if agent should not exit if there are no
+ * clients in rootless mode
+ */
+
+ int NoRootlessExit;
+
} AgentOptionsRec;
typedef AgentOptionsRec *AgentOptionsPtr;
203_nxagent_disable-rootless-exit.full.patch
204_nxagent_repaint-solidpict.full.patch
205_nxagent_refresh-adsl.full.patch
206_nxagent_clipboard-as-nxoption.full.patch
......
......@@ -672,6 +672,12 @@ int ddxProcessArgument(int argc, char *argv[], int i)
return 1;
}
if (!strcmp(argv[i], "-norootlessexit")) {
nxagentChangeOption(NoRootlessExit, True);
return 1;
}
if (!strcmp(argv[i], "-noonce"))
{
nxagentOnce = False;
......@@ -1855,6 +1861,7 @@ void ddxUseMsg()
ErrorF("The NX system adds the following arguments:\n");
ErrorF("-forcenx force use of NX protocol messages assuming communication through nxproxy\n");
ErrorF("-timeout int auto-disconnect timeout in seconds (minimum allowed: 60)\n");
ErrorF("-norootlessexit don't exit if there are no clients in rootless mode\n");
#ifdef RENDER
ErrorF("-norender disable the use of the render extension\n");
ErrorF("-nocomposite disable the use of the composite extension\n");
......
......@@ -219,7 +219,7 @@ void nxagentBlockHandler(pointer data, struct timeval **timeout, pointer mask)
if (nxagentOption(Rootless) &&
nxagentLastWindowDestroyed && nxagentRootlessDialogPid == 0 &&
now > nxagentLastWindowDestroyedTime + 30 * 1000)
now > nxagentLastWindowDestroyedTime + 30 * 1000 && !nxagentOption(NoRootlessExit))
{
#ifdef WARNING
fprintf(stderr, "nxagentBlockHandler: No application running. Closing the session.\n");
......
......@@ -56,6 +56,7 @@ void nxagentInitOptions()
nxagentOptions.Persistent = 1;
nxagentOptions.Rootless = UNDEFINED;
nxagentOptions.Fullscreen = UNDEFINED;
nxagentOptions.NoRootlessExit = False;
nxagentOptions.X = 0;
nxagentOptions.Y = 0;
......
......@@ -381,6 +381,13 @@ typedef struct _AgentOptions
int ImageRateLimit;
/*
* True if agent should not exit if there are no
* clients in rootless mode
*/
int NoRootlessExit;
} AgentOptionsRec;
typedef AgentOptionsRec *AgentOptionsPtr;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment