ui/dbus: add p2p=on/off option

Add an option to use direct connections instead of via the bus. Clients
are accepted with QMP add_client.

This allows to provide the D-Bus display without a bus. It also
simplifies the testing setup (some CI have issues to setup a D-Bus bus
in a container).

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
Marc-André Lureau
2021-10-10 00:16:57 +04:00
parent 142ca628a7
commit 99997823bb
13 changed files with 203 additions and 12 deletions

17
include/ui/dbus-display.h Normal file
View File

@@ -0,0 +1,17 @@
#ifndef DBUS_DISPLAY_H_
#define DBUS_DISPLAY_H_
#include "qapi/error.h"
#include "ui/dbus-module.h"
static inline bool qemu_using_dbus_display(Error **errp)
{
if (!using_dbus_display) {
error_set(errp, ERROR_CLASS_DEVICE_NOT_ACTIVE,
"D-Bus display is not in use");
return false;
}
return true;
}
#endif /* DBUS_DISPLAY_H_ */

11
include/ui/dbus-module.h Normal file
View File

@@ -0,0 +1,11 @@
#ifndef DBUS_MODULE_H_
#define DBUS_MODULE_H_
struct QemuDBusDisplayOps {
bool (*add_client)(int csock, Error **errp);
};
extern int using_dbus_display;
extern struct QemuDBusDisplayOps qemu_dbus_display;
#endif /* DBUS_MODULE_H_*/