[PATCH v2 5/8] virt-ssh-helper: Accept ?socket= in connection URI

Michal Privoznik mprivozn at redhat.com
Wed Feb 8 15:19:11 UTC 2023


Similarly to the previous commit, let's accept "socket" parameter
in the connection URI. This change will allow us to use
virt-ssh-helper instead of 'nc' in all cases (done in one of
future commits).

Please note, when the parameter is used it effectively disables
automatic daemon spawning and an error is reported. But this is
intentional - so that the helper behaves just like regular
virConnectOpen() with different transport than ssh, e.g. unix.

But this 'change' is acceptable - there's no way for users to
make our remote code pass the argument to virt-ssh-helper, yet.

Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
---
 src/remote/remote_ssh_helper.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/remote/remote_ssh_helper.c b/src/remote/remote_ssh_helper.c
index 8adc62acf2..29f5889533 100644
--- a/src/remote/remote_ssh_helper.c
+++ b/src/remote/remote_ssh_helper.c
@@ -438,6 +438,9 @@ int main(int argc, char **argv)
         if (STRCASEEQ(var->name, "mode")) {
             mode_str = var->value;
             continue;
+        } else if (STRCASEEQ(var->name, "socket")) {
+            sock_path = g_strdup(var->value);
+            continue;
         }
     }
 
@@ -447,11 +450,12 @@ int main(int argc, char **argv)
         exit(EXIT_FAILURE);
     }
 
-    sock_path = remoteGetUNIXSocket(transport,
-                                    mode,
-                                    driver,
-                                    flags,
-                                    &daemon_path);
+    if (!sock_path &&
+        !(sock_path = remoteGetUNIXSocket(transport, mode,
+                                          driver, flags, &daemon_path))) {
+        g_printerr(_("%s: failed to generate UNIX socket path"), argv[0]);
+        exit(EXIT_FAILURE);
+    }
 
     if (virNetSocketNewConnectUNIX(sock_path, daemon_path, &sock) < 0) {
         g_printerr(_("%s: cannot connect to '%s': %s\n"),
-- 
2.39.1



More information about the libvir-list mailing list