mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-28 16:45:26 +00:00
dfad1b551d
When accessing libvirtd over a SSH tunnel, the remote driver needs a way to proxy the SSH input/output stream to a suitable libvirt daemon. This is currently done by spawning netcat, pointing it to the libvirtd socket path. This is problematic for a number of reasons: - The socket path varies according to the --prefix chosen at build time. The remote client is seeing the local prefix, but what we need is the remote prefix - The socket path varies according to remote env variables, such as the XDG_RUNTIME_DIR location. Again we see the local XDG_RUNTIME_DIR value, but what we need is the remote value (if any) - The remote driver doesn't know whether it must connect to the legacy libvirtd or the modular daemons, so must always assume legacy libvirtd for back-compat. This means we'll always end up using the virtproxyd daemon adding an extra hop in the RPC layer. - We can not able to autospawn the libvirtd daemon for session mode access To address these problems this patch introduces the 'virtd-ssh-helper' program which takes the URI for the remote driver as a CLI parameter. It then figures out which daemon to connect to and its socket path, using the same code that the remote driver client would on the remote host's build of libvirt. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> |
||
---|---|---|
.. | ||
libvirtd-admin.socket.in | ||
libvirtd-ro.socket.in | ||
libvirtd-tcp.socket.in | ||
libvirtd-tls.socket.in | ||
libvirtd.aug.in | ||
libvirtd.conf.in | ||
libvirtd.confd | ||
libvirtd.init.in | ||
libvirtd.libxl.logrotate.in | ||
libvirtd.logrotate.in | ||
libvirtd.lxc.logrotate.in | ||
libvirtd.policy | ||
libvirtd.qemu.logrotate.in | ||
libvirtd.rules | ||
libvirtd.sasl | ||
libvirtd.service.in | ||
libvirtd.socket.in | ||
libvirtd.sysconf | ||
libvirtd.sysctl | ||
lxc_protocol.x | ||
meson.build | ||
qemu_protocol.x | ||
remote_daemon_config.c | ||
remote_daemon_config.h | ||
remote_daemon_dispatch.c | ||
remote_daemon_dispatch.h | ||
remote_daemon_stream.c | ||
remote_daemon_stream.h | ||
remote_daemon.c | ||
remote_daemon.h | ||
remote_driver.c | ||
remote_driver.h | ||
remote_protocol.x | ||
remote_sockets.c | ||
remote_sockets.h | ||
remote_ssh_helper.c | ||
test_libvirtd.aug.in | ||
virt-guest-shutdown.target | ||
virtproxyd.confd | ||
virtproxyd.init.in | ||
virtproxyd.service.in | ||
virtproxyd.sysconf |