Skip to content

Add support to nxproxy for reading from stdin #98

@sunweaver

Description

@sunweaver

Add patch for nxproxy to read from stdin, allows nxcl to use standard ssh instead of nxssh
(Portage version: 2.2_rc8/cvs/Linux 2.6.26-gentoo x86_64).

From:
https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/net-misc/nx/files/nx-3.2.0-nxproxy_read_from_stdin.patch?diff_format=s&view=markup

--- Main.c.old  2007-07-18 17:39:13.000000000 +0200
+++ 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.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions