[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