vnc.c (a93c1bdf0bd4689287094ddb2aae3dc907da3535) vnc.c (33df7bf3bf43ffa3001cadfe5d5faef2774522d0)
1/*
2 * QEMU VNC display driver
3 *
4 * Copyright (C) 2006 Anthony Liguori <anthony@codemonkey.ws>
5 * Copyright (C) 2006 Fabrice Bellard
6 * Copyright (C) 2009 Red Hat, Inc
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining a copy

--- 3191 unchanged lines hidden (view full) ---

3200 if (!vs) {
3201 return -EINVAL;
3202 }
3203
3204 vs->expires = expires;
3205 return 0;
3206}
3207
1/*
2 * QEMU VNC display driver
3 *
4 * Copyright (C) 2006 Anthony Liguori <anthony@codemonkey.ws>
5 * Copyright (C) 2006 Fabrice Bellard
6 * Copyright (C) 2009 Red Hat, Inc
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining a copy

--- 3191 unchanged lines hidden (view full) ---

3200 if (!vs) {
3201 return -EINVAL;
3202 }
3203
3204 vs->expires = expires;
3205 return 0;
3206}
3207
3208char *vnc_display_local_addr(const char *id)
3208static void vnc_display_print_local_addr(VncDisplay *vs)
3209{
3209{
3210 VncDisplay *vs = vnc_display_find(id);
3211 SocketAddress *addr;
3210 SocketAddress *addr;
3212 char *ret;
3213 Error *err = NULL;
3214
3211 Error *err = NULL;
3212
3215 assert(vs);
3216
3217 addr = qio_channel_socket_get_local_address(vs->lsock, &err);
3218 if (!addr) {
3213 addr = qio_channel_socket_get_local_address(vs->lsock, &err);
3214 if (!addr) {
3219 return NULL;
3215 return;
3220 }
3221
3222 if (addr->type != SOCKET_ADDRESS_KIND_INET) {
3223 qapi_free_SocketAddress(addr);
3216 }
3217
3218 if (addr->type != SOCKET_ADDRESS_KIND_INET) {
3219 qapi_free_SocketAddress(addr);
3224 return NULL;
3220 return;
3225 }
3221 }
3226 ret = g_strdup_printf("%s:%s", addr->u.inet.data->host,
3227 addr->u.inet.data->port);
3222 error_printf_unless_qmp("VNC server running on %s:%s\n",
3223 addr->u.inet.data->host,
3224 addr->u.inet.data->port);
3228 qapi_free_SocketAddress(addr);
3225 qapi_free_SocketAddress(addr);
3229
3230 return ret;
3231}
3232
3233static QemuOptsList qemu_vnc_opts = {
3234 .name = "vnc",
3235 .head = QTAILQ_HEAD_INITIALIZER(qemu_vnc_opts.head),
3236 .implied_opt_name = "vnc",
3237 .desc = {
3238 {

--- 269 unchanged lines hidden (view full) ---

3508 SocketAddress *saddr = NULL, *wsaddr = NULL;
3509 const char *share, *device_id;
3510 QemuConsole *con;
3511 bool password = false;
3512 bool reverse = false;
3513 const char *vnc;
3514 char *h;
3515 const char *credid;
3226}
3227
3228static QemuOptsList qemu_vnc_opts = {
3229 .name = "vnc",
3230 .head = QTAILQ_HEAD_INITIALIZER(qemu_vnc_opts.head),
3231 .implied_opt_name = "vnc",
3232 .desc = {
3233 {

--- 269 unchanged lines hidden (view full) ---

3503 SocketAddress *saddr = NULL, *wsaddr = NULL;
3504 const char *share, *device_id;
3505 QemuConsole *con;
3506 bool password = false;
3507 bool reverse = false;
3508 const char *vnc;
3509 char *h;
3510 const char *credid;
3511 int show_vnc_port = 0;
3516 bool sasl = false;
3517#ifdef CONFIG_VNC_SASL
3518 int saslErr;
3519#endif
3520 int acl = 0;
3521 int lock_key_sync = 1;
3522 int key_delay_ms;
3523

--- 63 unchanged lines hidden (view full) ---

3587 goto fail;
3588 }
3589 inet->port = g_strdup_printf(
3590 "%d", (int)baseport + 5900);
3591
3592 if (to) {
3593 inet->has_to = true;
3594 inet->to = to + 5900;
3512 bool sasl = false;
3513#ifdef CONFIG_VNC_SASL
3514 int saslErr;
3515#endif
3516 int acl = 0;
3517 int lock_key_sync = 1;
3518 int key_delay_ms;
3519

--- 63 unchanged lines hidden (view full) ---

3583 goto fail;
3584 }
3585 inet->port = g_strdup_printf(
3586 "%d", (int)baseport + 5900);
3587
3588 if (to) {
3589 inet->has_to = true;
3590 inet->to = to + 5900;
3591 show_vnc_port = 1;
3595 }
3596 inet->ipv4 = ipv4;
3597 inet->has_ipv4 = has_ipv4;
3598 inet->ipv6 = ipv6;
3599 inet->has_ipv6 = has_ipv6;
3600
3601 if (vs->ws_enabled) {
3602 wsaddr->type = SOCKET_ADDRESS_KIND_INET;

--- 228 unchanged lines hidden (view full) ---

3831 G_IO_IN, vnc_listen_io, vs, NULL);
3832 if (vs->ws_enabled) {
3833 vs->lwebsock_tag = qio_channel_add_watch(
3834 QIO_CHANNEL(vs->lwebsock),
3835 G_IO_IN, vnc_listen_io, vs, NULL);
3836 }
3837 }
3838
3592 }
3593 inet->ipv4 = ipv4;
3594 inet->has_ipv4 = has_ipv4;
3595 inet->ipv6 = ipv6;
3596 inet->has_ipv6 = has_ipv6;
3597
3598 if (vs->ws_enabled) {
3599 wsaddr->type = SOCKET_ADDRESS_KIND_INET;

--- 228 unchanged lines hidden (view full) ---

3828 G_IO_IN, vnc_listen_io, vs, NULL);
3829 if (vs->ws_enabled) {
3830 vs->lwebsock_tag = qio_channel_add_watch(
3831 QIO_CHANNEL(vs->lwebsock),
3832 G_IO_IN, vnc_listen_io, vs, NULL);
3833 }
3834 }
3835
3836 if (show_vnc_port) {
3837 vnc_display_print_local_addr(vs);
3838 }
3839
3839 qapi_free_SocketAddress(saddr);
3840 qapi_free_SocketAddress(wsaddr);
3841 return;
3842
3843fail:
3844 qapi_free_SocketAddress(saddr);
3845 qapi_free_SocketAddress(wsaddr);
3846 vs->enabled = false;

--- 70 unchanged lines hidden ---
3840 qapi_free_SocketAddress(saddr);
3841 qapi_free_SocketAddress(wsaddr);
3842 return;
3843
3844fail:
3845 qapi_free_SocketAddress(saddr);
3846 qapi_free_SocketAddress(wsaddr);
3847 vs->enabled = false;

--- 70 unchanged lines hidden ---