vnc: support "-vnc help"

Use qemu_opts_parse_noisily now that HMP does not call
vnc_parse anymore.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Message-Id: <20210120144235.345983-4-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Paolo Bonzini 2021-01-20 15:42:35 +01:00
parent 0afec75734
commit 653c974735
4 changed files with 11 additions and 12 deletions

View File

@ -439,7 +439,7 @@ void vnc_display_open(const char *id, Error **errp);
void vnc_display_add_client(const char *id, int csock, bool skipauth);
int vnc_display_password(const char *id, const char *password);
int vnc_display_pw_expire(const char *id, time_t expires);
QemuOpts *vnc_parse(const char *str, Error **errp);
void vnc_parse(const char *str);
int vnc_init_func(void *opaque, QemuOpts *opts, Error **errp);
/* input.c */

View File

@ -1113,7 +1113,7 @@ static void parse_display(const char *p)
* display access.
*/
if (*opts == '=') {
vnc_parse(opts + 1, &error_fatal);
vnc_parse(opts + 1);
} else {
error_report("VNC requires a display argument vnc=<display>");
exit(1);
@ -1402,7 +1402,7 @@ static void qemu_create_default_devices(void)
if (!qemu_display_find_default(&dpy)) {
dpy.type = DISPLAY_TYPE_NONE;
#if defined(CONFIG_VNC)
vnc_parse("localhost:0,to=99,id=default", &error_abort);
vnc_parse("localhost:0,to=99,id=default");
#endif
}
}
@ -3186,7 +3186,7 @@ void qemu_init(int argc, char **argv, char **envp)
}
break;
case QEMU_OPTION_vnc:
vnc_parse(optarg, &error_fatal);
vnc_parse(optarg);
break;
case QEMU_OPTION_no_acpi:
olist = qemu_find_opts("machine");

View File

@ -10,13 +10,12 @@ int vnc_display_pw_expire(const char *id, time_t expires)
{
return -ENODEV;
};
QemuOpts *vnc_parse(const char *str, Error **errp)
void vnc_parse(const char *str)
{
if (strcmp(str, "none") == 0) {
return NULL;
return;
}
error_setg(errp, "VNC support is disabled");
return NULL;
error_setg(&error_fatal, "VNC support is disabled");
}
int vnc_init_func(void *opaque, QemuOpts *opts, Error **errp)
{

View File

@ -50,6 +50,7 @@
#include "crypto/random.h"
#include "qom/object_interfaces.h"
#include "qemu/cutils.h"
#include "qemu/help_option.h"
#include "io/dns-resolver.h"
#define VNC_REFRESH_INTERVAL_BASE GUI_REFRESH_INTERVAL_DEFAULT
@ -4211,14 +4212,14 @@ static void vnc_auto_assign_id(QemuOptsList *olist, QemuOpts *opts)
qemu_opts_set_id(opts, id);
}
QemuOpts *vnc_parse(const char *str, Error **errp)
void vnc_parse(const char *str)
{
QemuOptsList *olist = qemu_find_opts("vnc");
QemuOpts *opts = qemu_opts_parse(olist, str, true, errp);
QemuOpts *opts = qemu_opts_parse_noisily(olist, str, !is_help_option(str));
const char *id;
if (!opts) {
return NULL;
exit(1);
}
id = qemu_opts_id(opts);
@ -4226,7 +4227,6 @@ QemuOpts *vnc_parse(const char *str, Error **errp)
/* auto-assign id if not present */
vnc_auto_assign_id(olist, opts);
}
return opts;
}
int vnc_init_func(void *opaque, QemuOpts *opts, Error **errp)