From 77b4a67cf67dcf6df949ad9ec5772ded14a37819 Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Fri, 3 Feb 2023 10:52:06 +0100 Subject: [PATCH] virt-ssh-helper: Accept ?socket= in connection URI 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 Reviewed-by: Peter Krempa --- 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.47.2