1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-07 17:28:15 +00:00

qemu.conf: fill out TLS verify attributes after parsing

Introduce a set of bool variables with the 'present' suffix
to track whether the value was actually specified.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
Ján Tomko 2019-01-14 22:51:00 +01:00
parent 10ee1270ff
commit 5ce02870c4
3 changed files with 35 additions and 4 deletions

View File

@ -535,8 +535,8 @@ int virQEMUDriverConfigLoadFile(virQEMUDriverConfigPtr cfg,
goto cleanup;
if ((rv = virConfGetValueBool(conf, "vnc_tls_x509_verify", &cfg->vncTLSx509verify)) < 0)
goto cleanup;
if (rv == 0)
cfg->vncTLSx509verify = cfg->defaultTLSx509verify;
if (rv == 1)
cfg->vncTLSx509verifyPresent = true;
if (virConfGetValueString(conf, "vnc_tls_x509_cert_dir", &cfg->vncTLSx509certdir) < 0)
goto cleanup;
if (virConfGetValueString(conf, "vnc_listen", &cfg->vncListen) < 0)
@ -601,8 +601,8 @@ int virQEMUDriverConfigLoadFile(virQEMUDriverConfigPtr cfg,
if ((rv = virConfGetValueBool(conf, #val "_tls_x509_verify", \
&cfg->val## TLSx509verify)) < 0) \
goto cleanup; \
if (rv == 0) \
cfg->val## TLSx509verify = cfg->defaultTLSx509verify; \
if (rv == 1) \
cfg->val## TLSx509verifyPresent = true; \
if ((rv = virConfGetValueString(conf, #val "_tls_x509_cert_dir", \
&cfg->val## TLSx509certdir)) < 0) \
goto cleanup; \
@ -1056,6 +1056,28 @@ virQEMUDriverConfigValidate(virQEMUDriverConfigPtr cfg)
}
int
virQEMUDriverConfigSetDefaults(virQEMUDriverConfigPtr cfg)
{
int ret = -1;
#define SET_TLS_VERIFY_DEFAULT(val) \
do { \
if (!cfg->val## TLSx509verifyPresent) \
cfg->val## TLSx509verify = cfg->defaultTLSx509verify; \
} while (0)
SET_TLS_VERIFY_DEFAULT(vnc);
SET_TLS_VERIFY_DEFAULT(chardev);
SET_TLS_VERIFY_DEFAULT(migrate);
#undef SET_TLS_VERIFY_DEFAULT
ret = 0;
return ret;
}
virQEMUDriverConfigPtr virQEMUDriverGetConfig(virQEMUDriverPtr driver)
{
virQEMUDriverConfigPtr conf;

View File

@ -122,6 +122,7 @@ struct _virQEMUDriverConfig {
bool vncAutoUnixSocket;
bool vncTLS;
bool vncTLSx509verify;
bool vncTLSx509verifyPresent;
bool vncSASL;
char *vncTLSx509certdir;
char *vncListen;
@ -139,10 +140,12 @@ struct _virQEMUDriverConfig {
bool chardevTLS;
char *chardevTLSx509certdir;
bool chardevTLSx509verify;
bool chardevTLSx509verifyPresent;
char *chardevTLSx509secretUUID;
char *migrateTLSx509certdir;
bool migrateTLSx509verify;
bool migrateTLSx509verifyPresent;
char *migrateTLSx509secretUUID;
unsigned int remotePortMin;
@ -317,6 +320,9 @@ int virQEMUDriverConfigLoadFile(virQEMUDriverConfigPtr cfg,
int
virQEMUDriverConfigValidate(virQEMUDriverConfigPtr cfg);
int
virQEMUDriverConfigSetDefaults(virQEMUDriverConfigPtr cfg);
virQEMUDriverConfigPtr virQEMUDriverGetConfig(virQEMUDriverPtr driver);
bool virQEMUDriverIsPrivileged(virQEMUDriverPtr driver);

View File

@ -628,6 +628,9 @@ qemuStateInitialize(bool privileged,
if (virQEMUDriverConfigValidate(cfg) < 0)
goto error;
if (virQEMUDriverConfigSetDefaults(cfg) < 0)
goto error;
if (virFileMakePath(cfg->stateDir) < 0) {
virReportSystemError(errno, _("Failed to create state dir %s"),
cfg->stateDir);