[Pkg-libvirt-commits] [SCM] Libvirt Debian packaging branch, experimental, updated. debian/0.9.2-4-2-gedaf33a
Guido Günther
agx at sigxcpu.org
Thu Jun 30 17:34:30 UTC 2011
The following commit has been merged in the experimental branch:
commit 368375afda74e5512ca268c5643d7e8281817e5c
Author: Guido Günther <agx at sigxcpu.org>
Date: Wed Jun 8 15:03:33 2011 +0200
Update netcat detectionto new code
diff --git a/debian/patches/Autodetect-if-the-remote-nc-command-supports-the-q-o.patch b/debian/patches/Autodetect-if-the-remote-nc-command-supports-the-q-o.patch
index 1d7effe..8e856e2 100644
--- a/debian/patches/Autodetect-if-the-remote-nc-command-supports-the-q-o.patch
+++ b/debian/patches/Autodetect-if-the-remote-nc-command-supports-the-q-o.patch
@@ -12,72 +12,52 @@ Ubuntu-Bug: https://bugs.launchpad.net/ubuntu/+source/virt-manager/+bug/605172
Bug: https://bugzilla.redhat.com/show_bug.cgi?id=562176
Bug: https://bugzilla.redhat.com/show_bug.cgi?id=614420
---
- src/remote/remote_driver.c | 47 +++++++++++++++++++++++++++++++++++++------
- 1 files changed, 40 insertions(+), 7 deletions(-)
+ src/remote/remote_driver.c | 35 +++++++++++++++++++++++++++++------
+ 1 files changed, 29 insertions(+), 6 deletions(-)
diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
-index e30780c..e5a2f15 100644
+index 8335a1a..b85707b 100644
--- a/src/remote/remote_driver.c
+++ b/src/remote/remote_driver.c
-@@ -746,7 +746,8 @@ doRemoteOpen (virConnectPtr conn,
- }
+@@ -774,12 +774,36 @@ doRemoteOpen (virConnectPtr conn,
+ virCommandAddArgList(cmd, "-T", "-o", "BatchMode=yes", "-e",
+ "none", NULL);
+ }
+- virCommandAddArgList(cmd, priv->hostname, netcat ? netcat : "nc",
+- "-U", (sockname ? sockname :
+- (flags & VIR_CONNECT_RO
+- ? LIBVIRTD_PRIV_UNIX_SOCKET_RO
+- : LIBVIRTD_PRIV_UNIX_SOCKET)), NULL);
- case trans_ssh: {
-- int j, nr_args = 6;
-+ int j, nr_args = 5;
-+ virBuffer cmd_netcat = VIR_BUFFER_INITIALIZER;
++ virCommandAddArgList(cmd, priv->hostname, "sh -c", NULL);
++ /*
++ * This ugly thing is a shell script to detect availability of
++ * the -q option for 'nc': debian and suse based distros need this
++ * flag to ensure the remote nc will exit on EOF, so it will go away
++ * when we close the VNC tunnel. If it doesn't go away, subsequent
++ * VNC connection attempts will hang.
++ *
++ * Fedora's 'nc' doesn't have this option, and apparently defaults
++ * to the desired behavior.
++ */
++ virCommandAddArgFormat(cmd, "'%s -q 2>&1 | grep -q \"requires an argument\";"
++ "if [ $? -eq 0 ] ; then"
++ " CMD=\"%s -q 0 -U %s\";"
++ "else"
++ " CMD=\"%s -U %s\";"
++ "fi;"
++ "eval \"$CMD\";'",
++ netcat ? netcat : "nc",
++ netcat ? netcat : "nc",
++ sockname ? sockname :
++ (flags & VIR_CONNECT_RO
++ ? LIBVIRTD_PRIV_UNIX_SOCKET_RO
++ : LIBVIRTD_PRIV_UNIX_SOCKET),
++ netcat ? netcat : "nc",
++ sockname ? sockname :
++ (flags & VIR_CONNECT_RO
++ ? LIBVIRTD_PRIV_UNIX_SOCKET_RO
++ : LIBVIRTD_PRIV_UNIX_SOCKET));
+ priv->is_secure = 1;
+ }
- if (username) nr_args += 2; /* For -l username */
- if (no_tty) nr_args += 5; /* For -T -o BatchMode=yes -e none */
-@@ -779,12 +780,44 @@ doRemoteOpen (virConnectPtr conn,
- cmd_argv[j++] = strdup ("none");
- }
- cmd_argv[j++] = strdup (priv->hostname);
-- cmd_argv[j++] = strdup (netcat ? netcat : "nc");
-- cmd_argv[j++] = strdup ("-U");
-- cmd_argv[j++] = strdup (sockname ? sockname :
-- (flags & VIR_CONNECT_RO
-- ? LIBVIRTD_PRIV_UNIX_SOCKET_RO
-- : LIBVIRTD_PRIV_UNIX_SOCKET));
-+ cmd_argv[j++] = strdup ("sh -c");
-+
-+ /*
-+ * This ugly thing is a shell script to detect availability of
-+ * the -q option for 'nc': debian and suse based distros need this
-+ * flag to ensure the remote nc will exit on EOF, so it will go away
-+ * when we close the VNC tunnel. If it doesn't go away, subsequent
-+ * VNC connection attempts will hang.
-+ *
-+ * Fedora's 'nc' doesn't have this option, and apparently defaults
-+ * to the desired behavior.
-+ */
-+
-+ virBufferVSprintf(&cmd_netcat, "'%s -q 2>&1 | grep -q \"requires an argument\";"
-+ "if [ $? -eq 0 ] ; then"
-+ " CMD=\"%s -q 0 -U %s\";"
-+ "else"
-+ " CMD=\"%s -U %s\";"
-+ "fi;"
-+ "eval \"$CMD\";'",
-+ netcat ? netcat : "nc",
-+ netcat ? netcat : "nc",
-+ sockname ? sockname :
-+ (flags & VIR_CONNECT_RO
-+ ? LIBVIRTD_PRIV_UNIX_SOCKET_RO
-+ : LIBVIRTD_PRIV_UNIX_SOCKET),
-+ netcat ? netcat : "nc",
-+ sockname ? sockname :
-+ (flags & VIR_CONNECT_RO
-+ ? LIBVIRTD_PRIV_UNIX_SOCKET_RO
-+ : LIBVIRTD_PRIV_UNIX_SOCKET));
-+
-+ if (virBufferError(&cmd_netcat)) {
-+ virBufferFreeAndReset(&cmd_netcat);
-+ goto out_of_memory;
-+ }
-+
-+ cmd_argv[j++] = virBufferContentAndReset(&cmd_netcat);
- cmd_argv[j++] = 0;
- assert (j == nr_args);
- for (j = 0; j < (nr_args-1); j++)
---
--
Libvirt Debian packaging
More information about the Pkg-libvirt-commits
mailing list