[libvirt PATCH 07/10] rpc: remove "spawnDaemon" parameter

Daniel P. Berrangé berrange at redhat.com
Wed May 26 13:20:14 UTC 2021


The "spawnDaemon" and "binary" parameters are co-dependant, with the
latter non-NULL, if-and-only-if the former is true. Getting rid of the
"spawnDaemon" parameter simplifies life for the callers and eliminates
an error checking scenario.

Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
---
 src/admin/admin_remote.c        |  2 +-
 src/locking/lock_driver_lockd.c |  1 -
 src/logging/log_manager.c       |  1 -
 src/lxc/lxc_monitor.c           |  2 +-
 src/qemu/qemu_migration.c       |  3 +--
 src/remote/remote_driver.c      |  1 -
 src/remote/remote_ssh_helper.c  |  3 +--
 src/rpc/virnetclient.c          |  5 ++---
 src/rpc/virnetclient.h          |  3 +--
 src/rpc/virnetsocket.c          | 26 +++++++-------------------
 src/rpc/virnetsocket.h          |  3 +--
 tests/virnetsockettest.c        |  4 ++--
 12 files changed, 17 insertions(+), 37 deletions(-)

diff --git a/src/admin/admin_remote.c b/src/admin/admin_remote.c
index 55ac81c5de..83a6be2b97 100644
--- a/src/admin/admin_remote.c
+++ b/src/admin/admin_remote.c
@@ -222,7 +222,7 @@ remoteAdminPrivNew(const char *sock_path)
     if (!(priv = virObjectLockableNew(remoteAdminPrivClass)))
         goto error;
 
-    if (!(priv->client = virNetClientNewUNIX(sock_path, false, NULL)))
+    if (!(priv->client = virNetClientNewUNIX(sock_path, NULL)))
         goto error;
 
     if (!(priv->program = virNetClientProgramNew(ADMIN_PROGRAM,
diff --git a/src/locking/lock_driver_lockd.c b/src/locking/lock_driver_lockd.c
index 823b918db3..3a7386af30 100644
--- a/src/locking/lock_driver_lockd.c
+++ b/src/locking/lock_driver_lockd.c
@@ -208,7 +208,6 @@ static virNetClient *virLockManagerLockDaemonConnectionNew(bool privileged,
         goto error;
 
     if (!(client = virNetClientNewUNIX(lockdpath,
-                                       daemonPath != NULL,
                                        daemonPath)))
         goto error;
 
diff --git a/src/logging/log_manager.c b/src/logging/log_manager.c
index f66ebda495..e605ed9930 100644
--- a/src/logging/log_manager.c
+++ b/src/logging/log_manager.c
@@ -79,7 +79,6 @@ virLogManagerConnect(bool privileged,
         goto error;
 
     if (!(client = virNetClientNewUNIX(logdpath,
-                                       daemonPath != NULL,
                                        daemonPath)))
         goto error;
 
diff --git a/src/lxc/lxc_monitor.c b/src/lxc/lxc_monitor.c
index 445bea281d..d8ef489a01 100644
--- a/src/lxc/lxc_monitor.c
+++ b/src/lxc/lxc_monitor.c
@@ -151,7 +151,7 @@ virLXCMonitor *virLXCMonitorNew(virDomainObj *vm,
 
     sockpath = g_strdup_printf("%s/%s.sock", socketdir, vm->def->name);
 
-    if (!(mon->client = virNetClientNewUNIX(sockpath, false, NULL)))
+    if (!(mon->client = virNetClientNewUNIX(sockpath, NULL)))
         goto error;
 
     if (virNetClientRegisterAsyncIO(mon->client) < 0)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index 3b0026a28e..a199758feb 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -3761,8 +3761,7 @@ qemuMigrationSrcConnect(virQEMUDriver *driver,
         break;
     case MIGRATION_DEST_CONNECT_SOCKET:
         if (virNetSocketNewConnectUNIX(spec->dest.socket.path,
-                                       false, NULL,
-                                       &sock) == 0) {
+                                       NULL, &sock) == 0) {
             fd_qemu = virNetSocketDupFD(sock, true);
             virObjectUnref(sock);
         }
diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
index e4e412dd01..9ca4348f6f 100644
--- a/src/remote/remote_driver.c
+++ b/src/remote/remote_driver.c
@@ -997,7 +997,6 @@ doRemoteOpen(virConnectPtr conn,
 #ifndef WIN32
     case REMOTE_DRIVER_TRANSPORT_UNIX:
         if (!(priv->client = virNetClientNewUNIX(sockname,
-                                                 flags & REMOTE_DRIVER_OPEN_AUTOSTART,
                                                  daemon_path)))
             goto failed;
 
diff --git a/src/remote/remote_ssh_helper.c b/src/remote/remote_ssh_helper.c
index 2a24f2df96..0945b90331 100644
--- a/src/remote/remote_ssh_helper.c
+++ b/src/remote/remote_ssh_helper.c
@@ -431,8 +431,7 @@ int main(int argc, char **argv)
                                     flags,
                                     &daemon_path);
 
-    if (virNetSocketNewConnectUNIX(sock_path, flags & REMOTE_DRIVER_OPEN_AUTOSTART,
-                                   daemon_path, &sock) < 0) {
+    if (virNetSocketNewConnectUNIX(sock_path, daemon_path, &sock) < 0) {
         g_printerr(_("%s: cannot connect to '%s': %s\n"),
                    argv[0], sock_path, virGetLastErrorMessage());
         exit(EXIT_FAILURE);
diff --git a/src/rpc/virnetclient.c b/src/rpc/virnetclient.c
index 3797a6097b..ffe2f343f9 100644
--- a/src/rpc/virnetclient.c
+++ b/src/rpc/virnetclient.c
@@ -366,12 +366,11 @@ virNetClientFindDefaultSshKey(const char *homedir, char **retPath)
 
 
 virNetClient *virNetClientNewUNIX(const char *path,
-                                    bool spawnDaemon,
-                                    const char *binary)
+                                  const char *spawnDaemonPath)
 {
     virNetSocket *sock;
 
-    if (virNetSocketNewConnectUNIX(path, spawnDaemon, binary, &sock) < 0)
+    if (virNetSocketNewConnectUNIX(path, spawnDaemonPath, &sock) < 0)
         return NULL;
 
     return virNetClientNew(sock, NULL);
diff --git a/src/rpc/virnetclient.h b/src/rpc/virnetclient.h
index c6ad59cf0d..5048033325 100644
--- a/src/rpc/virnetclient.h
+++ b/src/rpc/virnetclient.h
@@ -48,8 +48,7 @@ virNetClientSSHHelperCommand(virNetClientProxy proxy,
                              bool readonly);
 
 virNetClient *virNetClientNewUNIX(const char *path,
-                                    bool spawnDaemon,
-                                    const char *binary);
+                                  const char *spawnDaemonPath);
 
 virNetClient *virNetClientNewTCP(const char *nodename,
                                    const char *service,
diff --git a/src/rpc/virnetsocket.c b/src/rpc/virnetsocket.c
index c762b605a5..c3fae8b626 100644
--- a/src/rpc/virnetsocket.c
+++ b/src/rpc/virnetsocket.c
@@ -664,8 +664,7 @@ int virNetSocketNewConnectTCP(const char *nodename,
 
 #ifndef WIN32
 int virNetSocketNewConnectUNIX(const char *path,
-                               bool spawnDaemon,
-                               const char *binary,
+                               const char *spawnDaemonPath,
                                virNetSocket **retsock)
 {
     char *lockpath = NULL;
@@ -678,25 +677,15 @@ int virNetSocketNewConnectUNIX(const char *path,
     int ret = -1;
     bool daemonLaunched = false;
 
-    VIR_DEBUG("path=%s spawnDaemon=%d binary=%s", path, spawnDaemon,
-        NULLSTR(binary));
+    VIR_DEBUG("path=%s spawnDaemonPath=%s", path, NULLSTR(spawnDaemonPath));
 
     memset(&localAddr, 0, sizeof(localAddr));
     memset(&remoteAddr, 0, sizeof(remoteAddr));
 
     remoteAddr.len = sizeof(remoteAddr.data.un);
 
-    if (spawnDaemon) {
-        g_autofree char *binname = NULL;
-
-        if (!binary) {
-            virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                           _("Auto-spawn of daemon requested, "
-                             "but no binary specified"));
-            goto cleanup;
-        }
-
-        binname = g_path_get_basename(binary);
+    if (spawnDaemonPath) {
+        g_autofree char *binname = g_path_get_basename(spawnDaemonPath);
         rundir = virGetUserRuntimeDirectory();
 
         if (g_mkdir_with_parents(rundir, 0700) < 0) {
@@ -741,7 +730,7 @@ int virNetSocketNewConnectUNIX(const char *path,
         VIR_DEBUG("connect() failed: retries=%d errno=%d", retries, errno);
 
         retries--;
-        if (!spawnDaemon ||
+        if (!spawnDaemonPath ||
             retries == 0 ||
             (errno != ENOENT && errno != ECONNREFUSED)) {
             virReportSystemError(errno, _("Failed to connect socket to '%s'"),
@@ -750,7 +739,7 @@ int virNetSocketNewConnectUNIX(const char *path,
         }
 
         if (!daemonLaunched) {
-            if (virNetSocketForkDaemon(binary) < 0)
+            if (virNetSocketForkDaemon(spawnDaemonPath) < 0)
                 goto cleanup;
 
             daemonLaunched = true;
@@ -785,8 +774,7 @@ int virNetSocketNewConnectUNIX(const char *path,
 }
 #else
 int virNetSocketNewConnectUNIX(const char *path G_GNUC_UNUSED,
-                               bool spawnDaemon G_GNUC_UNUSED,
-                               const char *binary G_GNUC_UNUSED,
+                               const char *spawnDaemonPath,
                                virNetSocket **retsock G_GNUC_UNUSED)
 {
     virReportSystemError(ENOSYS, "%s",
diff --git a/src/rpc/virnetsocket.h b/src/rpc/virnetsocket.h
index 2dc4d06f42..6fef8d30b3 100644
--- a/src/rpc/virnetsocket.h
+++ b/src/rpc/virnetsocket.h
@@ -65,8 +65,7 @@ int virNetSocketNewConnectTCP(const char *nodename,
                               virNetSocket **addr);
 
 int virNetSocketNewConnectUNIX(const char *path,
-                               bool spawnDaemon,
-                               const char *binary,
+                               const char *spawnDaemonPath,
                                virNetSocket **addr);
 
 int virNetSocketNewConnectCommand(virCommand *cmd,
diff --git a/tests/virnetsockettest.c b/tests/virnetsockettest.c
index 6afdcbdbc7..8059c6cbb0 100644
--- a/tests/virnetsockettest.c
+++ b/tests/virnetsockettest.c
@@ -131,7 +131,7 @@ testSocketClient(void *opaque)
     virNetSocket *csock = NULL;
 
     if (data->path) {
-        if (virNetSocketNewConnectUNIX(data->path, false,
+        if (virNetSocketNewConnectUNIX(data->path,
                                        NULL, &csock) < 0)
             return;
     } else {
@@ -339,7 +339,7 @@ static int testSocketUNIXAddrs(const void *data G_GNUC_UNUSED)
     if (virNetSocketListen(lsock, 0) < 0)
         goto cleanup;
 
-    if (virNetSocketNewConnectUNIX(path, false, NULL, &csock) < 0)
+    if (virNetSocketNewConnectUNIX(path, NULL, &csock) < 0)
         goto cleanup;
 
     if (STRNEQ(virNetSocketLocalAddrStringSASL(csock), "127.0.0.1;0")) {
-- 
2.31.1




More information about the libvir-list mailing list