[libvirt] [PATCH 1/8] qemu: remove dbus-vmstate code

marcandre.lureau at redhat.com marcandre.lureau at redhat.com
Tue Jan 14 13:46:39 UTC 2020


From: Marc-André Lureau <marcandre.lureau at redhat.com>

This code was based on a per-helper instance and peer-to-peer
connections. The code that landed in qemu master for v5.0 is relying
on a single instance and DBus bus.

Instead of trying to adapt the existing dbus-vmstate code, let's
remove it and resubmit. That should make reviewing easier.

Signed-off-by: Marc-André Lureau <marcandre.lureau at redhat.com>
---
 src/qemu/Makefile.inc.am  |   2 -
 src/qemu/qemu_alias.c     |  16 -----
 src/qemu/qemu_alias.h     |   3 -
 src/qemu/qemu_command.c   |  83 -------------------------
 src/qemu/qemu_command.h   |   3 -
 src/qemu/qemu_dbus.c      |  94 ----------------------------
 src/qemu/qemu_dbus.h      |  42 -------------
 src/qemu/qemu_domain.c    |  13 ----
 src/qemu/qemu_domain.h    |   1 -
 src/qemu/qemu_extdevice.c |   4 +-
 src/qemu/qemu_hotplug.c   |  83 +------------------------
 src/qemu/qemu_hotplug.h   |  11 ----
 src/qemu/qemu_migration.c |   8 ---
 src/qemu/qemu_slirp.c     | 125 +-------------------------------------
 src/qemu/qemu_slirp.h     |   4 +-
 15 files changed, 7 insertions(+), 485 deletions(-)
 delete mode 100644 src/qemu/qemu_dbus.c
 delete mode 100644 src/qemu/qemu_dbus.h

diff --git a/src/qemu/Makefile.inc.am b/src/qemu/Makefile.inc.am
index 967f6e75a2..028ab9043c 100644
--- a/src/qemu/Makefile.inc.am
+++ b/src/qemu/Makefile.inc.am
@@ -13,8 +13,6 @@ QEMU_DRIVER_SOURCES = \
 	qemu/qemu_capabilities.h \
 	qemu/qemu_command.c \
 	qemu/qemu_command.h \
-	qemu/qemu_dbus.c \
-	qemu/qemu_dbus.h \
 	qemu/qemu_domain.c \
 	qemu/qemu_domain.h \
 	qemu/qemu_domain_address.c \
diff --git a/src/qemu/qemu_alias.c b/src/qemu/qemu_alias.c
index 93bdcb7548..61f8ce05c9 100644
--- a/src/qemu/qemu_alias.c
+++ b/src/qemu/qemu_alias.c
@@ -840,19 +840,3 @@ qemuDomainGetUnmanagedPRAlias(const char *parentalias)
 
     return ret;
 }
-
-char *
-qemuAliasDBusVMStateFromId(const char *id)
-{
-    char *ret;
-    size_t i;
-
-    ret = g_strdup_printf("dbus-vms-%s", id);
-
-    for (i = 0; ret[i]; i++) {
-        if (ret[i] == ':')
-            ret[i] = '_';
-    }
-
-    return ret;
-}
diff --git a/src/qemu/qemu_alias.h b/src/qemu/qemu_alias.h
index ae2fce16bc..aaac09a1d1 100644
--- a/src/qemu/qemu_alias.h
+++ b/src/qemu/qemu_alias.h
@@ -95,6 +95,3 @@ char *qemuAliasChardevFromDevAlias(const char *devAlias)
 const char *qemuDomainGetManagedPRAlias(void);
 
 char *qemuDomainGetUnmanagedPRAlias(const char *parentalias);
-
-char *qemuAliasDBusVMStateFromId(const char *id)
-    ATTRIBUTE_NONNULL(1);
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 904d2beab5..7429a0b7f5 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -27,7 +27,6 @@
 #include "qemu_interface.h"
 #include "qemu_alias.h"
 #include "qemu_security.h"
-#include "qemu_dbus.h"
 #include "qemu_slirp.h"
 #include "qemu_block.h"
 #include "cpu/cpu.h"
@@ -9459,85 +9458,6 @@ qemuBuildPflashBlockdevCommandLine(virCommandPtr cmd,
 }
 
 
-static virJSONValuePtr
-qemuBuildDBusVMStateInfoPropsInternal(const char *alias,
-                                      const char *addr)
-{
-    virJSONValuePtr ret = NULL;
-
-    if (qemuMonitorCreateObjectProps(&ret,
-                                     "dbus-vmstate", alias,
-                                     "s:addr", addr, NULL) < 0)
-        return NULL;
-
-    return ret;
-}
-
-
-virJSONValuePtr
-qemuBuildDBusVMStateInfoProps(const char *id,
-                              const char *addr)
-{
-    g_autofree char *alias = qemuAliasDBusVMStateFromId(id);
-
-    if (!alias)
-        return NULL;
-
-    return qemuBuildDBusVMStateInfoPropsInternal(alias, addr);
-}
-
-
-typedef struct qemuBuildDBusVMStateCommandLineData {
-    virCommandPtr cmd;
-} qemuBuildDBusVMStateCommandLineData;
-
-
-static int
-qemuBuildDBusVMStateCommandLineEach(void *payload,
-                                    const void *id,
-                                    void *user_data)
-{
-    qemuBuildDBusVMStateCommandLineData *data = user_data;
-    qemuDBusVMStatePtr vms = payload;
-    g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
-    g_autoptr(virJSONValue) props = NULL;
-
-    if (!(props = qemuBuildDBusVMStateInfoProps(id, vms->addr)))
-        return -1;
-
-    if (virQEMUBuildObjectCommandlineFromJSON(&buf, props) < 0)
-        return -1;
-
-    virCommandAddArg(data->cmd, "-object");
-    virCommandAddArgBuffer(data->cmd, &buf);
-
-    return 0;
-}
-
-static int
-qemuBuildDBusVMStateCommandLine(virCommandPtr cmd,
-                                qemuDomainObjPrivatePtr priv)
-{
-    qemuBuildDBusVMStateCommandLineData data = {
-        .cmd = cmd,
-    };
-
-    if (virHashSize(priv->dbusVMStates) == 0)
-        return 0;
-
-    if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DBUS_VMSTATE)) {
-        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-                       _("dbus-vmstate object is not supported by this QEMU binary"));
-        return 0;
-    }
-
-    if (virHashForEach(priv->dbusVMStates, qemuBuildDBusVMStateCommandLineEach, &data) < 0)
-        return -1;
-
-    return 0;
-}
-
-
 /**
  * qemuBuildCommandLineValidate:
  *
@@ -9769,9 +9689,6 @@ qemuBuildCommandLine(virQEMUDriverPtr driver,
     if (qemuBuildMasterKeyCommandLine(cmd, priv) < 0)
         return NULL;
 
-    if (qemuBuildDBusVMStateCommandLine(cmd, priv) < 0)
-        return NULL;
-
     if (qemuBuildManagedPRCommandLine(cmd, def, priv) < 0)
         return NULL;
 
diff --git a/src/qemu/qemu_command.h b/src/qemu/qemu_command.h
index 786991fd3d..cb8c394fb6 100644
--- a/src/qemu/qemu_command.h
+++ b/src/qemu/qemu_command.h
@@ -63,9 +63,6 @@ virJSONValuePtr qemuBuildPRManagedManagerInfoProps(qemuDomainObjPrivatePtr priv)
 int qemuBuildSecretInfoProps(qemuDomainSecretInfoPtr secinfo,
                              virJSONValuePtr *propsret);
 
-virJSONValuePtr qemuBuildDBusVMStateInfoProps(const char *id,
-                                              const char *addr);
-
 /* Generate the object properties for a tls-creds-x509 */
 int qemuBuildTLSx509BackendProps(const char *tlspath,
                                  bool isListen,
diff --git a/src/qemu/qemu_dbus.c b/src/qemu/qemu_dbus.c
deleted file mode 100644
index faee122021..0000000000
--- a/src/qemu/qemu_dbus.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * qemu_dbus.c: QEMU DBus-related helpers
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library.  If not, see
- * <http://www.gnu.org/licenses/>.
- */
-
-#include <config.h>
-
-#include "qemu_extdevice.h"
-#include "qemu_dbus.h"
-#include "qemu_hotplug.h"
-#include "qemu_security.h"
-
-#include "viralloc.h"
-#include "virlog.h"
-#include "virstring.h"
-#include "virtime.h"
-#include "virpidfile.h"
-
-#define VIR_FROM_THIS VIR_FROM_QEMU
-
-VIR_LOG_INIT("qemu.dbus");
-
-
-qemuDBusVMStatePtr
-qemuDBusVMStateNew(const char *id, const char *addr)
-{
-    g_autoptr(qemuDBusVMState) self = NULL;
-
-    if (VIR_ALLOC(self) < 0)
-        return NULL;
-
-    self->id = g_strdup(id);
-    self->addr = g_strdup(addr);
-
-    return g_steal_pointer(&self);
-}
-
-
-void
-qemuDBusVMStateFree(qemuDBusVMStatePtr self)
-{
-    if (!self)
-        return;
-
-    VIR_FREE(self->id);
-    VIR_FREE(self->addr);
-    VIR_FREE(self);
-}
-
-
-int
-qemuDBusVMStateAdd(virQEMUDriverPtr driver, virDomainObjPtr vm,
-                   const char *id, const char *addr, bool hot)
-{
-    qemuDBusVMStatePtr d = qemuDBusVMStateNew(id, addr);
-    qemuDomainObjPrivatePtr priv = vm->privateData;
-
-    if (virHashAddEntry(priv->dbusVMStates, id, d) < 0) {
-        qemuDBusVMStateFree(d);
-        return -1;
-    }
-
-    if (hot && virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DBUS_VMSTATE) &&
-        qemuDomainAttachDBusVMState(driver, vm, id, addr, QEMU_ASYNC_JOB_NONE) < 0)
-        return -1;
-
-    return 0;
-}
-
-
-void
-qemuDBusVMStateRemove(virQEMUDriverPtr driver, virDomainObjPtr vm,
-                      const char *id, bool hot)
-{
-    qemuDomainObjPrivatePtr priv = vm->privateData;
-
-    if (virHashRemoveEntry(priv->dbusVMStates, id) < 0 ||
-        (hot && virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DBUS_VMSTATE) &&
-         qemuDomainDetachDBusVMState(driver, vm, id, QEMU_ASYNC_JOB_NONE) < 0))
-        VIR_ERROR(_("Failed to remove vmstate id '%s'"), vm->def->name);
-}
diff --git a/src/qemu/qemu_dbus.h b/src/qemu/qemu_dbus.h
deleted file mode 100644
index ccbeb83709..0000000000
--- a/src/qemu/qemu_dbus.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * qemu_dbus.h: QEMU DBus-related helpers
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library.  If not, see
- * <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "qemu_conf.h"
-#include "qemu_domain.h"
-
-typedef struct _qemuDBusVMState qemuDBusVMState;
-typedef qemuDBusVMState *qemuDBusVMStatePtr;
-struct _qemuDBusVMState {
-    char *id;
-    char *addr;
-};
-
-
-qemuDBusVMStatePtr qemuDBusVMStateNew(const char *id, const char *addr);
-
-void qemuDBusVMStateFree(qemuDBusVMStatePtr self);
-
-int qemuDBusVMStateAdd(virQEMUDriverPtr driver, virDomainObjPtr vm,
-                       const char *id, const char *addr, bool hot);
-
-void qemuDBusVMStateRemove(virQEMUDriverPtr driver, virDomainObjPtr vm,
-                           const char *id, bool hot);
-
-G_DEFINE_AUTOPTR_CLEANUP_FUNC(qemuDBusVMState, qemuDBusVMStateFree);
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index a6dde15bad..ecd087a5cb 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -26,7 +26,6 @@
 #include "qemu_block.h"
 #include "qemu_cgroup.h"
 #include "qemu_command.h"
-#include "qemu_dbus.h"
 #include "qemu_process.h"
 #include "qemu_capabilities.h"
 #include "qemu_hostdev.h"
@@ -2164,13 +2163,6 @@ qemuDomainSetPrivatePaths(virQEMUDriverPtr driver,
 }
 
 
-static void
-dbusVMStateHashFree(void *opaque)
-{
-    qemuDBusVMStateFree(opaque);
-}
-
-
 static void *
 qemuDomainObjPrivateAlloc(void *opaque)
 {
@@ -2191,9 +2183,6 @@ qemuDomainObjPrivateAlloc(void *opaque)
     if (!(priv->blockjobs = virHashCreate(5, virObjectFreeHashData)))
         goto error;
 
-    if (!(priv->dbusVMStates = virHashCreate(5, dbusVMStateHashFree)))
-        goto error;
-
     /* agent commands block by default, user can choose different behavior */
     priv->agentTimeout = VIR_DOMAIN_AGENT_RESPONSE_TIMEOUT_BLOCK;
     priv->migMaxBandwidth = QEMU_DOMAIN_MIG_BANDWIDTH_MAX;
@@ -2264,7 +2253,6 @@ qemuDomainObjPrivateDataClear(qemuDomainObjPrivatePtr priv)
     priv->migrationCaps = NULL;
 
     virHashRemoveAll(priv->blockjobs);
-    virHashRemoveAll(priv->dbusVMStates);
 
     virObjectUnref(priv->pflash0);
     priv->pflash0 = NULL;
@@ -2308,7 +2296,6 @@ qemuDomainObjPrivateFree(void *data)
     qemuDomainMasterKeyFree(priv);
 
     virHashFree(priv->blockjobs);
-    virHashFree(priv->dbusVMStates);
 
     VIR_FREE(priv);
 }
diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
index c6afc484f6..b2041ccea7 100644
--- a/src/qemu/qemu_domain.h
+++ b/src/qemu/qemu_domain.h
@@ -407,7 +407,6 @@ struct _qemuDomainObjPrivate {
     /* running block jobs */
     virHashTablePtr blockjobs;
 
-    virHashTablePtr dbusVMStates;
     bool disableSlirp;
 
     /* Until we add full support for backing chains for pflash drives, these
diff --git a/src/qemu/qemu_extdevice.c b/src/qemu/qemu_extdevice.c
index 463f76c21a..beb7adfe0c 100644
--- a/src/qemu/qemu_extdevice.c
+++ b/src/qemu/qemu_extdevice.c
@@ -180,7 +180,7 @@ qemuExtDevicesStart(virQEMUDriverPtr driver,
         qemuSlirpPtr slirp = QEMU_DOMAIN_NETWORK_PRIVATE(net)->slirp;
 
         if (slirp &&
-            qemuSlirpStart(slirp, vm, driver, net, false, incomingMigration) < 0)
+            qemuSlirpStart(slirp, vm, driver, net, incomingMigration) < 0)
             return -1;
     }
 
@@ -213,7 +213,7 @@ qemuExtDevicesStop(virQEMUDriverPtr driver,
         qemuSlirpPtr slirp = QEMU_DOMAIN_NETWORK_PRIVATE(net)->slirp;
 
         if (slirp)
-            qemuSlirpStop(slirp, vm, driver, net, false);
+            qemuSlirpStop(slirp, vm, driver, net);
     }
 }
 
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 31d455505b..c5a4db3e79 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -403,83 +403,6 @@ qemuHotplugRemoveManagedPR(virQEMUDriverPtr driver,
 }
 
 
-/**
- * qemuDomainAttachDBusVMState:
- * @driver: QEMU driver object
- * @vm: domain object
- * @id
- * @addr
- * @asyncJob: asynchronous job identifier
- *
- * Add dbus-vmstate object.
- *
- * Returns: 0 on success, -1 on error.
- */
-int
-qemuDomainAttachDBusVMState(virQEMUDriverPtr driver,
-                            virDomainObjPtr vm,
-                            const char *id,
-                            const char *addr,
-                            qemuDomainAsyncJob asyncJob)
-{
-    qemuDomainObjPrivatePtr priv = vm->privateData;
-    g_autoptr(virJSONValue) props = NULL;
-    int ret;
-
-    if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DBUS_VMSTATE)) {
-        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-                       _("dbus-vmstate object is not supported by this QEMU binary"));
-        return -1;
-    }
-
-    if (!(props = qemuBuildDBusVMStateInfoProps(id, addr)))
-        return -1;
-
-    if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
-        return -1;
-
-    ret = qemuMonitorAddObject(priv->mon, &props, NULL);
-
-    if (qemuDomainObjExitMonitor(driver, vm) < 0)
-        return -1;
-
-    return ret;
-}
-
-
-/**
- * qemuDomainDetachDBusVMState:
- * @driver: QEMU driver object
- * @vm: domain object
- * @asyncJob: asynchronous job identifier
- *
- * Remove dbus-vmstate object from @vm.
- *
- * Returns: 0 on success, -1 on error.
- */
-int
-qemuDomainDetachDBusVMState(virQEMUDriverPtr driver,
-                            virDomainObjPtr vm,
-                            const char *id,
-                            qemuDomainAsyncJob asyncJob)
-{
-    qemuDomainObjPrivatePtr priv = vm->privateData;
-    g_autofree char *alias = qemuAliasDBusVMStateFromId(id);
-    int ret;
-
-    if (!alias ||
-        qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
-        return -1;
-
-    ret = qemuMonitorDelObject(priv->mon, alias);
-
-    if (qemuDomainObjExitMonitor(driver, vm) < 0)
-        return -1;
-
-    return ret;
-}
-
-
 /**
  * qemuDomainChangeMediaBlockdev:
  * @driver: qemu driver structure
@@ -1301,7 +1224,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
             QEMU_DOMAIN_NETWORK_PRIVATE(net)->slirp = slirp;
 
             if (qemuSlirpOpen(slirp, driver, vm->def) < 0 ||
-                qemuSlirpStart(slirp, vm, driver, net, true, NULL) < 0) {
+                qemuSlirpStart(slirp, vm, driver, net, NULL) < 0) {
                 virReportError(VIR_ERR_INTERNAL_ERROR,
                                "%s", _("Failed to start slirp"));
                 goto cleanup;
@@ -1508,7 +1431,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
     virErrorPreserveLast(&originalError);
     netdev_name = g_strdup_printf("host%s", net->info.alias);
     if (QEMU_DOMAIN_NETWORK_PRIVATE(net)->slirp)
-        qemuSlirpStop(QEMU_DOMAIN_NETWORK_PRIVATE(net)->slirp, vm, driver, net, true);
+        qemuSlirpStop(QEMU_DOMAIN_NETWORK_PRIVATE(net)->slirp, vm, driver, net);
     qemuDomainObjEnterMonitor(driver, vm);
     if (charDevPlugged &&
         qemuMonitorDetachCharDev(priv->mon, charDevAlias) < 0)
@@ -4575,7 +4498,7 @@ qemuDomainRemoveNetDevice(virQEMUDriverPtr driver,
         return -1;
 
     if (QEMU_DOMAIN_NETWORK_PRIVATE(net)->slirp)
-        qemuSlirpStop(QEMU_DOMAIN_NETWORK_PRIVATE(net)->slirp, vm, driver, net, true);
+        qemuSlirpStop(QEMU_DOMAIN_NETWORK_PRIVATE(net)->slirp, vm, driver, net);
 
     virDomainAuditNet(vm, net, NULL, "detach", true);
 
diff --git a/src/qemu/qemu_hotplug.h b/src/qemu/qemu_hotplug.h
index 1dfc601110..6605a6a3e0 100644
--- a/src/qemu/qemu_hotplug.h
+++ b/src/qemu/qemu_hotplug.h
@@ -151,15 +151,4 @@ int qemuDomainSetVcpuInternal(virQEMUDriverPtr driver,
                               virBitmapPtr vcpus,
                               bool state);
 
-int qemuDomainAttachDBusVMState(virQEMUDriverPtr driver,
-                                virDomainObjPtr vm,
-                                const char *id,
-                                const char *addr,
-                                qemuDomainAsyncJob asyncJob);
-
-int qemuDomainDetachDBusVMState(virQEMUDriverPtr driver,
-                                virDomainObjPtr vm,
-                                const char *id,
-                                qemuDomainAsyncJob asyncJob);
-
 unsigned long long qemuDomainGetUnplugTimeout(virDomainObjPtr vm);
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index 29d228a8d9..71d0bb0879 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -1125,7 +1125,6 @@ qemuMigrationSrcIsAllowed(virQEMUDriverPtr driver,
                           bool remote,
                           unsigned int flags)
 {
-    qemuDomainObjPrivatePtr priv = vm->privateData;
     int nsnapshots;
     int pauseReason;
     size_t i;
@@ -1154,13 +1153,6 @@ qemuMigrationSrcIsAllowed(virQEMUDriverPtr driver,
         }
     }
 
-    if (virHashSize(priv->dbusVMStates) > 0 &&
-        !virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DBUS_VMSTATE)) {
-        virReportError(VIR_ERR_OPERATION_INVALID, "%s",
-                       _("domain requires dbus-vmstate support"));
-        return false;
-    }
-
     for (i = 0; i < vm->def->nnets; i++) {
         virDomainNetDefPtr net = vm->def->nets[i];
         qemuSlirpPtr slirp = QEMU_DOMAIN_NETWORK_PRIVATE(net)->slirp;
diff --git a/src/qemu/qemu_slirp.c b/src/qemu/qemu_slirp.c
index 5266b36eaa..8e001f0d10 100644
--- a/src/qemu/qemu_slirp.c
+++ b/src/qemu/qemu_slirp.c
@@ -18,7 +18,6 @@
 
 #include <config.h>
 
-#include "qemu_dbus.h"
 #include "qemu_extdevice.h"
 #include "qemu_security.h"
 #include "qemu_slirp.h"
@@ -203,48 +202,14 @@ qemuSlirpGetFD(qemuSlirpPtr slirp)
 }
 
 
-static char *
-qemuSlirpGetDBusVMStateId(virDomainNetDefPtr net)
-{
-    char macstr[VIR_MAC_STRING_BUFLEN] = "";
-    char *id = NULL;
-
-    /* can't use alias, because it's not stable across restarts */
-    id = g_strdup_printf("slirp-%s", virMacAddrFormat(&net->mac, macstr));
-
-    return id;
-}
-
-
-static char *
-qemuSlirpGetDBusPath(virQEMUDriverConfigPtr cfg,
-                     const virDomainDef *def,
-                     const char *alias)
-{
-    g_autofree char *shortName = NULL;
-    char *path = NULL;
-
-    if (!(shortName = virDomainDefGetShortName(def)))
-        return NULL;
-
-    path = g_strdup_printf("%s/%s-%s-slirp",
-                           cfg->slirpStateDir, shortName, alias);
-
-    return path;
-}
-
-
 void
 qemuSlirpStop(qemuSlirpPtr slirp,
               virDomainObjPtr vm,
               virQEMUDriverPtr driver,
-              virDomainNetDefPtr net,
-              bool hot)
+              virDomainNetDefPtr net)
 {
     g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
     g_autofree char *pidfile = NULL;
-    g_autofree char *dbus_path = NULL;
-    g_autofree char *id = qemuSlirpGetDBusVMStateId(net);
     virErrorPtr orig_err;
     pid_t pid;
     int rc;
@@ -254,12 +219,6 @@ qemuSlirpStop(qemuSlirpPtr slirp,
         return;
     }
 
-    if (id) {
-        qemuDBusVMStateRemove(driver, vm, id, hot);
-    } else {
-        VIR_WARN("Unable to construct vmstate id");
-    }
-
     virErrorPreserveLast(&orig_err);
     rc = virPidFileReadPathIfAlive(pidfile, &pid, cfg->slirpHelperName);
     if (rc >= 0 && pid != (pid_t) -1)
@@ -273,18 +232,6 @@ qemuSlirpStop(qemuSlirpPtr slirp,
     }
     slirp->pid = 0;
 
-    dbus_path = qemuSlirpGetDBusPath(cfg, vm->def, net->info.alias);
-    if (dbus_path) {
-        if (unlink(dbus_path) < 0 &&
-            errno != ENOENT) {
-            virReportSystemError(errno,
-                                 _("Unable to remove stale dbus socket %s"),
-                                 dbus_path);
-        }
-    } else {
-        VIR_WARN("Unable to construct dbus socket path");
-    }
-
     virErrorRestore(&orig_err);
 }
 
@@ -294,17 +241,12 @@ qemuSlirpStart(qemuSlirpPtr slirp,
                virDomainObjPtr vm,
                virQEMUDriverPtr driver,
                virDomainNetDefPtr net,
-               bool hotplug,
                bool incoming)
 {
     g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
     g_autoptr(virCommand) cmd = NULL;
     g_autofree char *pidfile = NULL;
-    g_autofree char *dbus_path = NULL;
-    g_autofree char *dbus_addr = NULL;
-    g_autofree char *id = NULL;
     size_t i;
-    const unsigned long long timeout = 5 * 1000; /* ms */
     pid_t pid = (pid_t) -1;
     int rc;
     int exitstatus = 0;
@@ -368,29 +310,6 @@ qemuSlirpStart(qemuSlirpPtr slirp,
         }
     }
 
-    if (qemuSlirpHasFeature(slirp, QEMU_SLIRP_FEATURE_DBUS_P2P)) {
-        if (!(id = qemuSlirpGetDBusVMStateId(net)))
-            return -1;
-
-        if (!(dbus_path = qemuSlirpGetDBusPath(cfg, vm->def, net->info.alias)))
-            return -1;
-
-        if (unlink(dbus_path) < 0 && errno != ENOENT) {
-            virReportSystemError(errno, _("Unable to unlink %s"), dbus_path);
-            return -1;
-        }
-
-        dbus_addr = g_strdup_printf("unix:path=%s", dbus_path);
-
-        virCommandAddArgFormat(cmd, "--dbus-id=%s", id);
-
-        virCommandAddArgFormat(cmd, "--dbus-p2p=%s", dbus_addr);
-
-        if (incoming &&
-            qemuSlirpHasFeature(slirp, QEMU_SLIRP_FEATURE_MIGRATE))
-            virCommandAddArg(cmd, "--dbus-incoming");
-    }
-
     if (qemuSlirpHasFeature(slirp, QEMU_SLIRP_FEATURE_EXIT_WITH_PARENT))
         virCommandAddArg(cmd, "--exit-with-parent");
 
@@ -414,46 +333,6 @@ qemuSlirpStart(qemuSlirpPtr slirp,
         goto error;
     }
 
-    if (dbus_path) {
-        virTimeBackOffVar timebackoff;
-
-        if (virTimeBackOffStart(&timebackoff, 1, timeout) < 0)
-            goto error;
-
-        while (virTimeBackOffWait(&timebackoff)) {
-            char errbuf[1024] = { 0 };
-
-            if (virFileExists(dbus_path))
-                break;
-
-            if (virProcessKill(pid, 0) == 0)
-                continue;
-
-            if (saferead(errfd, errbuf, sizeof(errbuf) - 1) < 0) {
-                virReportSystemError(errno,
-                                     _("slirp helper %s died unexpectedly"),
-                                     cfg->prHelperName);
-            } else {
-                virReportError(VIR_ERR_OPERATION_FAILED,
-                               _("slirp helper died and reported: %s"), errbuf);
-            }
-            goto error;
-        }
-
-        if (!virFileExists(dbus_path)) {
-            virReportError(VIR_ERR_OPERATION_TIMEOUT, "%s",
-                           _("slirp dbus socket did not show up"));
-            goto error;
-        }
-    }
-
-    if (qemuSlirpHasFeature(slirp, QEMU_SLIRP_FEATURE_MIGRATE) &&
-        qemuDBusVMStateAdd(driver, vm, id, dbus_addr, hotplug) < 0) {
-        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                       _("Failed to register slirp migration"));
-        goto error;
-    }
-
     slirp->pid = pid;
     return 0;
 
@@ -462,7 +341,5 @@ qemuSlirpStart(qemuSlirpPtr slirp,
         virProcessKillPainfully(pid, true);
     if (pidfile)
         unlink(pidfile);
-    if (dbus_path)
-        unlink(dbus_path);
     return -1;
 }
diff --git a/src/qemu/qemu_slirp.h b/src/qemu/qemu_slirp.h
index 5e80e79b15..5bf9596053 100644
--- a/src/qemu/qemu_slirp.h
+++ b/src/qemu/qemu_slirp.h
@@ -66,14 +66,12 @@ int qemuSlirpStart(qemuSlirpPtr slirp,
                    virDomainObjPtr vm,
                    virQEMUDriverPtr driver,
                    virDomainNetDefPtr net,
-                   bool hot,
                    bool incoming);
 
 void qemuSlirpStop(qemuSlirpPtr slirp,
                    virDomainObjPtr vm,
                    virQEMUDriverPtr driver,
-                   virDomainNetDefPtr net,
-                   bool hot);
+                   virDomainNetDefPtr net);
 
 int qemuSlirpGetFD(qemuSlirpPtr slirp);
 
-- 
2.25.0.rc2.1.g09a9a1a997




More information about the libvir-list mailing list