aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/nxproxy/files/stdin.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/nxproxy/files/stdin.patch')
-rw-r--r--recipes/nxproxy/files/stdin.patch73
1 files changed, 73 insertions, 0 deletions
diff --git a/recipes/nxproxy/files/stdin.patch b/recipes/nxproxy/files/stdin.patch
new file mode 100644
index 0000000000..20c71dbf76
--- /dev/null
+++ b/recipes/nxproxy/files/stdin.patch
@@ -0,0 +1,73 @@
+Patch taken from the debian unstable package
+original posted by Fabian Franz on the freenx mailinglist
+
+
+Index: nxproxy/Main.c
+--- nxproxy/Main.c.old 2007-07-18 17:39:13.000000000 +0200
++++ nxproxy/Main.c 2008-03-12 04:40:30.000000000 +0100
+@@ -36,28 +36,48 @@
+ int result = -1;
+
+ char *options = NULL;
+-
++
++ char *nx_commfd_str = NULL;
++
+ options = getenv("NX_DISPLAY");
+-
+- if (NXTransParseCommandLine(argc, argv) < 0)
++
++ if ((nx_commfd_str = getenv("NX_COMMFD")) != NULL)
+ {
+- NXTransCleanup();
+- }
++ int nx_commfd = atoi(nx_commfd_str);
+
+- if (NXTransParseEnvironment(options, 0) < 0)
+- {
+- NXTransCleanup();
++ if (result)
++ result = NXTransCreate(nx_commfd, NX_MODE_SERVER, options);
++
++ // go into endless loop
++
++ if (result)
++ {
++ while (NXTransRunning(NX_FD_ANY))
++ result = NXTransContinue(NULL);
++ }
+ }
++ else
++ {
++ if (NXTransParseCommandLine(argc, argv) < 0)
++ {
++ NXTransCleanup();
++ }
++
++ if (NXTransParseEnvironment(options, 0) < 0)
++ {
++ NXTransCleanup();
++ }
++
++ /*
++ * This should not return...
++ */
++
++ #ifdef TEST
++ fprintf(stderr, "Main: Yielding control to NX entry point.\n");
++ #endif
+
+- /*
+- * This should not return...
+- */
+-
+- #ifdef TEST
+- fprintf(stderr, "Main: Yielding control to NX entry point.\n");
+- #endif
+-
+- result = NXTransProxy(NX_FD_ANY, NX_MODE_ANY, NX_DISPLAY_ANY);
++ result = NXTransProxy(NX_FD_ANY, NX_MODE_ANY, NX_DISPLAY_ANY);
++ }
+
+ /*
+ * ...So these should not be called.