diff options
-rw-r--r-- | qemu-config.c | 9 | ||||
-rw-r--r-- | qemu-options.hx | 7 | ||||
-rw-r--r-- | ui/spice-core.c | 13 |
3 files changed, 27 insertions, 2 deletions
diff --git a/qemu-config.c b/qemu-config.c index f52e50c..5a62ae1 100644 --- a/qemu-config.c +++ b/qemu-config.c @@ -365,6 +365,15 @@ QemuOptsList qemu_spice_opts = { .name = "tls-port", .type = QEMU_OPT_NUMBER, },{ + .name = "addr", + .type = QEMU_OPT_STRING, + },{ + .name = "ipv4", + .type = QEMU_OPT_BOOL, + },{ + .name = "ipv6", + .type = QEMU_OPT_BOOL, + },{ .name = "password", .type = QEMU_OPT_STRING, },{ diff --git a/qemu-options.hx b/qemu-options.hx index 5a0d26b..0410b90 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -682,6 +682,13 @@ Enable the spice remote desktop protocol. Valid options are @item port=<nr> Set the TCP port spice is listening on for plaintext channels. +@item addr=<addr> +Set the IP address spice is listening on. Default is any address. + +@item ipv4 +@item ipv6 +Force using the specified IP version. + @item password=<secret> Set the password you need to authenticate. diff --git a/ui/spice-core.c b/ui/spice-core.c index 7664ef7..6f613c63 100644 --- a/ui/spice-core.c +++ b/ui/spice-core.c @@ -221,14 +221,14 @@ static int add_channel(const char *name, const char *value, void *opaque) void qemu_spice_init(void) { QemuOpts *opts = QTAILQ_FIRST(&qemu_spice_opts.head); - const char *password, *str, *x509_dir, + const char *password, *str, *x509_dir, *addr, *x509_key_password = NULL, *x509_dh_file = NULL, *tls_ciphers = NULL; char *x509_key_file = NULL, *x509_cert_file = NULL, *x509_cacert_file = NULL; - int port, tls_port, len; + int port, tls_port, len, addr_flags; spice_image_compression_t compression; spice_wan_compression_t wan_compr; @@ -278,7 +278,16 @@ void qemu_spice_init(void) tls_ciphers = qemu_opt_get(opts, "tls-ciphers"); } + addr = qemu_opt_get(opts, "addr"); + addr_flags = 0; + if (qemu_opt_get_bool(opts, "ipv4", 0)) { + addr_flags |= SPICE_ADDR_FLAG_IPV4_ONLY; + } else if (qemu_opt_get_bool(opts, "ipv6", 0)) { + addr_flags |= SPICE_ADDR_FLAG_IPV6_ONLY; + } + spice_server = spice_server_new(); + spice_server_set_addr(spice_server, addr ? addr : "", addr_flags); if (port) { spice_server_set_port(spice_server, port); } |