DisplayState isn't used anywhere, drop it. Add the vnc server ID as parameter instead, so it is possible to specify the server instance.
Signed-off-by: Gerd Hoffmann <kra...@redhat.com> Reviewed-by: Gonglei <arei.gong...@huawei.com> --- include/ui/console.h | 16 ++++++++-------- ui/vnc.c | 29 ++++++++++++++--------------- vl.c | 7 ++++--- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/include/ui/console.h b/include/ui/console.h index 22ef8ca..5ff2e27 100644 --- a/include/ui/console.h +++ b/include/ui/console.h @@ -327,19 +327,19 @@ void sdl_display_init(DisplayState *ds, int full_screen, int no_frame); void cocoa_display_init(DisplayState *ds, int full_screen); /* vnc.c */ -void vnc_display_init(DisplayState *ds); -void vnc_display_open(DisplayState *ds, const char *display, Error **errp); -void vnc_display_add_client(DisplayState *ds, int csock, bool skipauth); -char *vnc_display_local_addr(DisplayState *ds); +void vnc_display_init(const char *id); +void vnc_display_open(const char *id, const char *display, Error **errp); +void vnc_display_add_client(const char *id, int csock, bool skipauth); +char *vnc_display_local_addr(const char *id); #ifdef CONFIG_VNC -int vnc_display_password(DisplayState *ds, const char *password); -int vnc_display_pw_expire(DisplayState *ds, time_t expires); +int vnc_display_password(const char *id, const char *password); +int vnc_display_pw_expire(const char *id, time_t expires); #else -static inline int vnc_display_password(DisplayState *ds, const char *password) +static inline int vnc_display_password(const char *id, const char *password) { return -ENODEV; } -static inline int vnc_display_pw_expire(DisplayState *ds, time_t expires) +static inline int vnc_display_pw_expire(const char *id, time_t expires) { return -ENODEV; }; diff --git a/ui/vnc.c b/ui/vnc.c index a6549c8..fce4861 100644 --- a/ui/vnc.c +++ b/ui/vnc.c @@ -2967,10 +2967,11 @@ static const DisplayChangeListenerOps dcl_ops = { .dpy_cursor_define = vnc_dpy_cursor_define, }; -void vnc_display_init(DisplayState *ds) +void vnc_display_init(const char *id) { VncDisplay *vs = g_malloc0(sizeof(*vs)); + vs->id = strdup(id); QTAILQ_INSERT_TAIL(&vnc_displays, vs, next); vs->lsock = -1; @@ -2999,10 +3000,8 @@ void vnc_display_init(DisplayState *ds) } -static void vnc_display_close(DisplayState *ds) +static void vnc_display_close(VncDisplay *vs) { - VncDisplay *vs = vnc_display_find(NULL); - if (!vs) return; g_free(vs->display); @@ -3028,9 +3027,9 @@ static void vnc_display_close(DisplayState *ds) #endif } -int vnc_display_password(DisplayState *ds, const char *password) +int vnc_display_password(const char *id, const char *password) { - VncDisplay *vs = vnc_display_find(NULL); + VncDisplay *vs = vnc_display_find(id); if (!vs) { return -EINVAL; @@ -3047,9 +3046,9 @@ int vnc_display_password(DisplayState *ds, const char *password) return 0; } -int vnc_display_pw_expire(DisplayState *ds, time_t expires) +int vnc_display_pw_expire(const char *id, time_t expires) { - VncDisplay *vs = vnc_display_find(NULL); + VncDisplay *vs = vnc_display_find(id); if (!vs) { return -EINVAL; @@ -3059,16 +3058,16 @@ int vnc_display_pw_expire(DisplayState *ds, time_t expires) return 0; } -char *vnc_display_local_addr(DisplayState *ds) +char *vnc_display_local_addr(const char *id) { - VncDisplay *vs = vnc_display_find(NULL); + VncDisplay *vs = vnc_display_find(id); return vnc_socket_local_addr("%s:%s", vs->lsock); } -void vnc_display_open(DisplayState *ds, const char *display, Error **errp) +void vnc_display_open(const char *id, const char *display, Error **errp) { - VncDisplay *vs = vnc_display_find(NULL); + VncDisplay *vs = vnc_display_find(id); const char *options; int password = 0; int reverse = 0; @@ -3088,7 +3087,7 @@ void vnc_display_open(DisplayState *ds, const char *display, Error **errp) error_setg(errp, "VNC display not active"); return; } - vnc_display_close(ds); + vnc_display_close(vs); if (strcmp(display, "none") == 0) return; @@ -3381,9 +3380,9 @@ fail: #endif /* CONFIG_VNC_WS */ } -void vnc_display_add_client(DisplayState *ds, int csock, bool skipauth) +void vnc_display_add_client(const char *id, int csock, bool skipauth) { - VncDisplay *vs = vnc_display_find(NULL); + VncDisplay *vs = vnc_display_find(id); if (!vs) { return; diff --git a/vl.c b/vl.c index 113e98e..afb6212 100644 --- a/vl.c +++ b/vl.c @@ -4376,8 +4376,9 @@ int main(int argc, char **argv, char **envp) /* init remote displays */ if (vnc_display) { Error *local_err = NULL; - vnc_display_init(ds); - vnc_display_open(ds, vnc_display, &local_err); + const char *id = "default"; + vnc_display_init(id); + vnc_display_open(id, vnc_display, &local_err); if (local_err != NULL) { error_report("Failed to start VNC server on `%s': %s", vnc_display, error_get_pretty(local_err)); @@ -4386,7 +4387,7 @@ int main(int argc, char **argv, char **envp) } if (show_vnc_port) { - printf("VNC server running on `%s'\n", vnc_display_local_addr(ds)); + printf("VNC server running on `%s'\n", vnc_display_local_addr(id)); } } #endif -- 1.8.3.1