1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-04-01 20:05:19 +00:00

qemu: add rdp state directory

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
This commit is contained in:
Marc-André Lureau 2025-03-16 12:18:26 +04:00 committed by Martin Kletzander
parent ebdcec7dc9
commit 12d7b9fe26
4 changed files with 17 additions and 0 deletions

View File

@ -226,6 +226,7 @@ virQEMUDriverConfig *virQEMUDriverConfigNew(bool privileged,
cfg->configDir = g_strdup_printf("%s/qemu", cfg->configBaseDir);
cfg->autostartDir = g_strdup_printf("%s/qemu/autostart", cfg->configBaseDir);
cfg->slirpStateDir = g_strdup_printf("%s/slirp", cfg->stateDir);
cfg->rdpStateDir = g_strdup_printf("%s/rdp", cfg->stateDir);
cfg->passtStateDir = g_strdup_printf("%s/passt", cfg->stateDir);
cfg->dbusStateDir = g_strdup_printf("%s/dbus", cfg->stateDir);
@ -327,6 +328,7 @@ static void virQEMUDriverConfigDispose(void *obj)
g_free(cfg->slirpStateDir);
g_free(cfg->passtStateDir);
g_free(cfg->dbusStateDir);
g_free(cfg->rdpStateDir);
g_free(cfg->libDir);
g_free(cfg->cacheDir);

View File

@ -99,6 +99,7 @@ struct _virQEMUDriverConfig {
char *slirpStateDir;
char *passtStateDir;
char *dbusStateDir;
char *rdpStateDir;
/* These two directories are ones QEMU processes use (so must match
* the QEMU user/group */
char *libDir;

View File

@ -648,6 +648,11 @@ qemuStateInitialize(bool privileged,
cfg->dbusStateDir);
goto error;
}
if (g_mkdir_with_parents(cfg->rdpStateDir, 0777) < 0) {
virReportSystemError(errno, _("Failed to create rdp state dir %1$s"),
cfg->rdpStateDir);
goto error;
}
qemu_driver->inhibitor = virInhibitorNew(
VIR_INHIBITOR_WHAT_SHUTDOWN,
@ -793,6 +798,13 @@ qemuStateInitialize(bool privileged,
(int)cfg->group);
goto error;
}
if (chown(cfg->rdpStateDir, cfg->user, cfg->group) < 0) {
virReportSystemError(errno,
_("unable to set ownership of '%1$s' to %2$d:%3$d"),
cfg->rdpStateDir, (int)cfg->user,
(int)cfg->group);
goto error;
}
run_uid = cfg->user;
run_gid = cfg->group;

View File

@ -330,6 +330,8 @@ int qemuTestDriverInit(virQEMUDriver *driver)
cfg->passtStateDir = g_strdup("/var/run/libvirt/qemu/passt");
VIR_FREE(cfg->dbusStateDir);
cfg->dbusStateDir = g_strdup("/var/run/libvirt/qemu/dbus");
VIR_FREE(cfg->rdpStateDir);
cfg->rdpStateDir = g_strdup("/var/run/libvirt/qemu/rdp");
if (!g_mkdtemp(statedir)) {
fprintf(stderr, "Cannot create fake stateDir");