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

check for cfg->spiceTLS earlier in qemuProcessSPICEAllocatePorts

This saves a few lines of code and catches the error when:
<spice autoport ='yes' defaultMode='any' ..>
  <channel name='main' mode='secure'/>
</spice>
is specified with spice_tls = 0 in qemu.conf.

Instead of this error in qemuBuildGraphicsSPICECommandLine:
error: unsupported configuration: spice secure channels set in XML
configuration, but TLS port is not provided

an error is reported in qemuProcessSPICEAllocatePorts:
error: unsupported configuration: Auto allocation of spice TLS port
requested but spice TLS is disabled in qemu.conf

Inspired by:
https://www.redhat.com/archives/libvir-list/2014-June/msg01408.html
This commit is contained in:
Ján Tomko 2014-07-09 10:57:33 +02:00
parent ddf6b139cf
commit b02fca79e8

View File

@ -3534,7 +3534,8 @@ qemuProcessSPICEAllocatePorts(virQEMUDriverPtr driver,
break;
case VIR_DOMAIN_GRAPHICS_SPICE_CHANNEL_MODE_ANY:
needTLSPort = true;
if (cfg->spiceTLS)
needTLSPort = true;
needPort = true;
break;
}
@ -3552,28 +3553,16 @@ qemuProcessSPICEAllocatePorts(virQEMUDriverPtr driver,
if (needTLSPort || graphics->data.spice.tlsPort == -1) {
if (!cfg->spiceTLS) {
/* log an error and fail if tls was specifically
* requested, or simply ignore (don't allocate a port)
* if we're here due to "defaultMode='any'"
* (aka unspecified).
*/
if ((graphics->data.spice.tlsPort == -1) ||
(graphics->data.spice.defaultMode
== VIR_DOMAIN_GRAPHICS_SPICE_CHANNEL_MODE_SECURE)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("Auto allocation of spice TLS port requested "
"but spice TLS is disabled in qemu.conf"));
goto error;
}
} else {
/* cfg->spiceTLS *is* in place, so it makes sense to
* allocate a port.
*/
if (virPortAllocatorAcquire(driver->remotePorts, &tlsPort) < 0)
goto error;
graphics->data.spice.tlsPort = tlsPort;
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("Auto allocation of spice TLS port requested "
"but spice TLS is disabled in qemu.conf"));
goto error;
}
if (virPortAllocatorAcquire(driver->remotePorts, &tlsPort) < 0)
goto error;
graphics->data.spice.tlsPort = tlsPort;
}
return 0;