diff options
Diffstat (limited to 'packages/nxproxy/files/stdin.patch')
-rw-r--r-- | packages/nxproxy/files/stdin.patch | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/packages/nxproxy/files/stdin.patch b/packages/nxproxy/files/stdin.patch new file mode 100644 index 0000000000..20c71dbf76 --- /dev/null +++ b/packages/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. |