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 --- |