Error out when tls-channel option is used without TLS

It's currently possible to setup spice channels using TLS when
no TLS port has been specified (ie TLS is disabled). This cannot
work, so better to error out in such a situation.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
Christophe Fergeau 2012-02-24 18:28:32 +01:00 committed by Gerd Hoffmann
parent 339a475f50
commit 35c6332914

View File

@ -511,6 +511,12 @@ static int add_channel(const char *name, const char *value, void *opaque)
int rc; int rc;
if (strcmp(name, "tls-channel") == 0) { if (strcmp(name, "tls-channel") == 0) {
int *tls_port = opaque;
if (!*tls_port) {
error_report("spice: tried to setup tls-channel"
" without specifying a TLS port");
exit(1);
}
security = SPICE_CHANNEL_SECURITY_SSL; security = SPICE_CHANNEL_SECURITY_SSL;
} }
if (strcmp(name, "plaintext-channel") == 0) { if (strcmp(name, "plaintext-channel") == 0) {
@ -680,7 +686,7 @@ void qemu_spice_init(void)
spice_server_set_playback_compression spice_server_set_playback_compression
(spice_server, qemu_opt_get_bool(opts, "playback-compression", 1)); (spice_server, qemu_opt_get_bool(opts, "playback-compression", 1));
qemu_opt_foreach(opts, add_channel, NULL, 0); qemu_opt_foreach(opts, add_channel, &tls_port, 0);
if (0 != spice_server_init(spice_server, &core_interface)) { if (0 != spice_server_init(spice_server, &core_interface)) {
error_report("failed to initialize spice server"); error_report("failed to initialize spice server");