[X2Go-Commits] [libx2goclient] 03/04: src/x2goclient-network-ssh.c: rework master connection spawn code to ignore stderr if the bug shim is set.

git-admin at x2go.org git-admin at x2go.org
Mon Jun 29 15:31:28 CEST 2020


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch master
in repository libx2goclient.

commit 0efb0ef318856cd10e59843d4d0610573f80afa9
Author: Mihai Moldovan <ionic at ionic.de>
Date:   Mon Jun 29 14:33:26 2020 +0200

    src/x2goclient-network-ssh.c: rework master connection spawn code to ignore stderr if the bug shim is set.
---
 src/x2goclient-network-ssh.c | 32 ++++++++++++++++++++++++++++----
 1 file changed, 28 insertions(+), 4 deletions(-)

diff --git a/src/x2goclient-network-ssh.c b/src/x2goclient-network-ssh.c
index 96ec797..e873c7e 100644
--- a/src/x2goclient-network-ssh.c
+++ b/src/x2goclient-network-ssh.c
@@ -953,7 +953,16 @@ static gboolean x2goclient_network_ssh_parent_connect (X2GoClientNetwork *parent
 
     g_printf ("Launching!\n");
     GError *ssh_err = NULL;
-    self->master_conn = g_subprocess_newv ((const gchar* const*)(ssh_cmd->pdata), (G_SUBPROCESS_FLAGS_STDOUT_PIPE | G_SUBPROCESS_FLAGS_STDERR_PIPE), &ssh_err);
+    GSubprocessFlags flags = G_SUBPROCESS_FLAGS_STDOUT_PIPE;
+
+    if (self->openssh_bugs->backgrounding_keeps_stderr) {
+      flags |= G_SUBPROCESS_FLAGS_STDERR_SILENCE;
+    }
+    else {
+      flags |= G_SUBPROCESS_FLAGS_STDERR_PIPE;
+    }
+
+    self->master_conn = g_subprocess_newv ((const gchar* const*)(ssh_cmd->pdata), flags, &ssh_err);
 
     ret = (self->master_conn != NULL);
 
@@ -972,9 +981,24 @@ static gboolean x2goclient_network_ssh_parent_connect (X2GoClientNetwork *parent
       }
       else {
         gsize ssh_stdout_size = 0, ssh_stderr_size = 0;
-        const gchar *ssh_stdout_str = g_bytes_get_data (ssh_stdout, &ssh_stdout_size),
-                    *ssh_stderr_str = g_bytes_get_data (ssh_stderr, &ssh_stderr_size);
-        g_printf ("Stdout:\n>>>%.*s<<<\nStderr:\n>>>%.*s<<<\n", ssh_stdout_size, ssh_stdout_str, ssh_stderr_size, ssh_stderr_str);
+
+        const gchar *ssh_stdout_str = NULL, *ssh_stderr_str = NULL;
+        if (ssh_stdout) {
+          ssh_stdout_str = g_bytes_get_data (ssh_stdout, &ssh_stdout_size);
+        }
+        else {
+          g_log (NULL, G_LOG_LEVEL_WARNING, "Master connection does not have stdout pipe attached, but we expect it to be available. Ignoring output on stdout.");
+        }
+
+        if (ssh_stderr) {
+          ssh_stderr_str = g_bytes_get_data (ssh_stderr, &ssh_stderr_size);
+        }
+        else if (!(self->openssh_bugs->backgrounding_keeps_stderr)) {
+          g_log (NULL, G_LOG_LEVEL_WARNING, "Master connection does not have stderr pipe attached, but we expect it to be available. Ignoring output on stderr.");
+        }
+
+        x2goclient_network_ssh_log_std_str (ssh_stdout_str, ssh_stdout_size, 0);
+        x2goclient_network_ssh_log_std_str (ssh_stderr_str, ssh_stderr_size, 1);
 
         g_bytes_unref (ssh_stdout);
         g_bytes_unref (ssh_stderr);

--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/libx2goclient.git


More information about the x2go-commits mailing list