[libvirt PATCH 3/4] remote: remove probing logic from virtproxyd dispatcher

Daniel P. Berrangé berrange at redhat.com
Thu Jun 10 13:43:16 UTC 2021


Now that the remote driver itself can probe for listening sockets /
running daemons, virtproxyd doesn't need to probe URIs itself. Instead
it can just delegate to the remote driver.

Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
---
 src/remote/remote_daemon_dispatch.c | 74 -----------------------------
 1 file changed, 74 deletions(-)

diff --git a/src/remote/remote_daemon_dispatch.c b/src/remote/remote_daemon_dispatch.c
index 36d4d00b79..8cec0a2a01 100644
--- a/src/remote/remote_daemon_dispatch.c
+++ b/src/remote/remote_daemon_dispatch.c
@@ -1948,73 +1948,6 @@ void *remoteClientNew(virNetServerClient *client,
 
 /*----- Functions. -----*/
 
-#ifdef VIRTPROXYD
-/*
- * When running in virtproxyd regular auto-probing of drivers
- * does not work as we don't have any drivers present (except
- * stateless ones inside libvirt.so). All the interesting
- * drivers are in separate daemons. Thus when we get a NULL
- * URI we need to simulate probing that virConnectOpen would
- * previously do. We use the existence of the UNIX domain
- * socket as our hook for probing.
- *
- * This assumes no stale sockets left over from a now dead
- * daemon, but that's reasonable since libvirtd unlinks
- * sockets it creates on shutdown, or uses systemd activation
- *
- * We only try to probe for primary hypervisor drivers,
- * not the secondary drivers.
- */
-static int
-remoteDispatchProbeURI(bool readonly,
-                       char **probeduri)
-{
-    g_autofree char *driver = NULL;
-    const char *suffix;
-    *probeduri = NULL;
-    VIR_DEBUG("Probing for driver daemon sockets");
-
-    /*
-     * If running root, either the daemon is running and the socket
-     * exists, or we're using socket activation so the socket exists
-     * too.
-     *
-     * If running non-root, the daemon may or may not already be
-     * running, and socket activation probably isn't relevant.
-     * So if no viable socket exists, we need to check which daemons
-     * are actually installed. This is not a big deal as only QEMU &
-     * VBox run as non-root, anyway.
-     */
-    if (geteuid() != 0) {
-        if (remoteProbeSessionDriverFromSocket(false, &driver) < 0)
-            return -1;
-
-        if (driver == NULL &&
-            remoteProbeSessionDriverFromBinary(&driver) < 0)
-            return -1;
-
-        suffix = "session";
-    } else {
-        if (remoteProbeSystemDriverFromSocket(readonly, &driver) < 0)
-            return -1;
-
-        suffix = "system";
-    }
-
-    /* Even if we didn't probe any socket, we won't
-     * return error. Just let virConnectOpen's normal
-     * logic run which will likely return an error anyway
-     */
-    if (!driver)
-        return 0;
-
-    *probeduri = g_strdup_printf("%s:///%s", driver, suffix);
-    VIR_DEBUG("Probed URI %s for driver %s", *probeduri, driver);
-    return 0;
-}
-#endif /* VIRTPROXYD */
-
-
 static int
 remoteDispatchConnectOpen(virNetServer *server G_GNUC_UNUSED,
                           virNetServerClient *client,
@@ -2054,13 +1987,6 @@ remoteDispatchConnectOpen(virNetServer *server G_GNUC_UNUSED,
     priv->readonly = flags & VIR_CONNECT_RO;
 
 #ifdef VIRTPROXYD
-    if (!name || STREQ(name, "")) {
-        if (remoteDispatchProbeURI(priv->readonly, &probeduri) < 0)
-            goto cleanup;
-
-        name = probeduri;
-    }
-
     preserveIdentity = true;
 #endif /* VIRTPROXYD */
 
-- 
2.31.1




More information about the libvir-list mailing list