Statistics
| Branch: | Revision:

root / ui / vnc.c @ ce3e1417

History | View | Annotate | Download (84.1 kB)

# Date Author Comment
ce3e1417 02/10/2012 10:58 am Gerd Hoffmann

Fix vnc memory corruption with width = 1400

vnc assumes that the screen width is a multiple of 16 in several places.
If this is not the case vnc will overrun buffers, corrupt memory, make
qemu crash.

This is the minimum fix for this bug. It makes sure we don't overrun the...

a6aa9d3e 01/18/2012 02:23 pm Luiz Capitulino

vnc: Simplify vnc_display_password()

Drop the qerror_report() call from it and let its callers set the error
themselves. This also allows for dropping the 'ret' variable.

Signed-off-by: Luiz Capitulino <>

cee8e6ad 01/13/2012 12:36 pm Stefan Hajnoczi

vnc: fix no-lock-key-sync strncmp() length

The no-lock-key-sync option is being parsed incorrectly because of an
outdated strcmp() length value. Use the correct length so that invalid
option names do not match.

Reported-by: Dr David Alan Gilbert <>...

3a93113a 12/06/2011 11:56 am Dong Xu Wang

fix typo: delete redundant semicolon

Double semicolons should be single.

Signed-off-by: Dong Xu Wang <>
Signed-off-by: Stefan Hajnoczi <>

e5bed759 12/02/2011 12:50 pm Dong Xu Wang

fix spelling in ui sub directory

Cc: Anthony Liguori <>
Signed-off-by: Dong Xu Wang <>
Signed-off-by: Stefan Hajnoczi <>

ae878b17 11/01/2011 11:52 pm Stefan Weil

ui/vnc: Fix use of free() instead of g_free()

Please note that mechlist still uses malloc / strdup / free.

Signed-off-by: Stefan Weil <>
Signed-off-by: Anthony Liguori <>

2b54aa87 10/27/2011 04:48 pm Luiz Capitulino

qapi: Convert query-vnc

There are three important remarks in relation to the non-qapi command:

1. This commit also fixes the behavior of the 'query-vnc' and 'info vnc'
commands to return an error when qemu is built without VNC support
(ie. --disable-vnc). The non-qapi command would return the OK...
7267c094 08/21/2011 07:01 am Anthony Liguori

Use glib memory allocation and free functions

qemu_malloc/qemu_free no longer exist after this commit.

Signed-off-by: Anthony Liguori <>

00aa0040 07/25/2011 05:38 pm Blue Swirl

Wrap recv to avoid warnings

Avoid warnings like these by wrapping recv():
CC slirp/ip_icmp.o
/src/qemu/slirp/ip_icmp.c: In function 'icmp_receive':
/src/qemu/slirp/ip_icmp.c:418:5: error: passing argument 2 of 'recv' from incompatible pointer type [-Werror]...

9e8dd451 07/23/2011 07:26 pm Jan Kiszka

notifier: Pass data argument to callback

This allows to pass additional information to the notifier callback
which is useful if sender and receiver do not share any other distinct
data structure.

Will be used first for the clock reset notifier.

Signed-off-by: Jan Kiszka <>...

7e7e2ebc 07/23/2011 07:19 pm Daniel P. Berrange

Store VNC auth scheme per-client as well as per-server

A future patch will introduce a situation where different
clients may have different authentication schemes set.
When a new client arrives, copy the 'auth' and 'subauth'
fields from VncDisplay into the client's VncState, and...

13661089 07/23/2011 07:19 pm Daniel P. Berrange

Introduce a 'client_add' monitor command accepting an open FD

Allow client connections for VNC and socket based character
devices to be passed in over the monitor using SCM_RIGHTS.

One intended usage scenario is to start QEMU with VNC on a
UNIX domain socket. An unprivileged user which cannot access...

a0843a68 03/22/2011 06:27 pm Anthony Liguori

vnc: fix build error from VNC_DIRTY_WORDS

Signed-off-by: Anthony Liguori <>

821601ea 03/22/2011 03:39 pm Jes Sorensen

Make VNC support optional

Per default VNC is enabled.

Signed-off-by: Jes Sorensen <>
Signed-off-by: Anthony Liguori <>

6ed391bf 03/22/2011 03:39 pm Wen Congyang

fix vnc regression

This patch fix the following regression:
1. we should use bitmap_set() and bitmap_clear() to replace vnc_set_bits().

Signed-off-by: Wen Congyang <>
Signed-off-by: Anthony Liguori <>

7bd427d8 03/21/2011 10:23 am Paolo Bonzini

change all rt_clock references to use millisecond resolution accessors

This was done with:

sed -i '/get_clock\>.*rt_clock/s/get_clock\>/get_clock_ms/' \
$(git grep -l 'get_clock\>.*rt_clock' )
sed -i '/new_timer\>.*rt_clock/s/new_timer\>/new_timer_ms/' \...
ad620c29 03/15/2011 10:49 pm Blue Swirl

win32: implement missing timersub

Implement and wrap timersub() for Win32.

Acked-by: Stefan Weil <>
Signed-off-by: Blue Swirl <>

23bfe28f 03/11/2011 12:12 am Stefan Weil

vnc: Fix stack corruption and other bitmap related bugs

Commit bc2429b9174ac2d3c56b7fd35884b0d89ec7fb02 introduced
a severe bug (stack corruption).

bitmap_clear was called with a wrong argument
which caused out-of-bound writes to the local variable width_mask....

207f328a 02/24/2011 12:28 am Corentin Chary

vnc: fix lossy rect refreshing

The for loop in send_lossy_rect was totally wrong, and we can't
call vnc_set_bits() because it does not really do what it should.
Use vnc_set_bit() directly instead.

Signed-off-by: Corentin Chary <>
Signed-off-by: Anthony Liguori <>

bc2429b9 02/24/2011 12:28 am Corentin Chary

vnc: use the new generic bitmap functions

Switch to bitmap.h and bitops.h instead of redefining our own bitmap
helpers.

Signed-off-by: Corentin Chary <>
Signed-off-by: Anthony Liguori <>

6c71a539 02/24/2011 12:28 am Corentin Chary

vnc: don't try to send bigger updates that client height

Respect client size if it doesn't not support desktop resizing.

Signed-off-by: Corentin Chary <>
Signed-off-by: Anthony Liguori <>

80e0c8c3 02/24/2011 12:28 am Corentin Chary

vnc: add a non-adaptive option

This option allow to disable adaptive behaviors in some encodings.

Signed-off-by: Corentin Chary <>
Signed-off-by: Anthony Liguori <>

5db8378a 02/24/2011 12:28 am Stefan Weil

vnc: Fix fatal crash with vnc reverse mode

Reverse mode is unusable:

qemu -vnc localhost:5500,reverse

crashes in vnc_refresh_server_surface because some pointers are NULL.

Fix this by calling vnc_dpy_resize (which initializes these pointers)
before calling vnc_refresh....

b31f519e 02/24/2011 12:28 am Corentin Chary

vnc: don't set the quality if lossy encoding are disabled

This should not change the current behavior, but if any new
encoding try to use the tight quality, it will always be set
to -1 when lossy encodings are disabled.

Signed-off-by: Corentin Chary <>...

999342a0 02/24/2011 12:28 am Corentin Chary

vnc: add a way to get the update frequency for a given region

This patch compute the update frequency (in Hz) for each 64x64 rects.
Any adaptive encoding can get this value using vnc_update_freq(), and
switch to a lossy encoding if the value is too high....

7d964c9d 02/24/2011 12:28 am Corentin Chary

vnc: refresh lossy rect after a given timeout

If an adaptive encoding has choosen to send a lossy update
based on the result of vnc_update_freq(), then it should advertise
it with vnc_sent_lossy_rect(). This will allow to automatically refresh
this rect once it's static again....

148954fa 02/24/2011 12:28 am Corentin Chary

vnc: Add ZRLE and ZYWRLE encodings.

Add ZRLE [1] and ZYWRLE [2] encodings. The code is inspire^W stolen
from libvncserver (again), but have been rewriten to match QEMU coding
style.

[1] http://www.realvnc.com/docs/rfbproto.pdf
[2] http://micro-vnc.jp/research/remote_desktop_ng/ZYWRLE/publications/...

cfb41c82 02/01/2011 11:21 pm Anthony Liguori

Merge remote branch 'spice/usb.5' into staging

1cd20f8b 02/01/2011 11:16 pm Anthony Liguori

vnc: Fix password expiration through 'change vnc ""' (v2)

commit 52c18be9e99dabe295321153fda7fce9f76647ac introduced a regression in the
change vnc password command that changed the behavior of setting the VNC
password to an empty string from disabling login to disabling authentication....

9892088b 01/24/2011 06:21 pm Gerd Hoffmann

vnc: fix numlock+capslock tracking

This patch makes the numlock+capslock tracking logic only look at
keydown events. Without this patch the vnc server will insert
bogous capslock keypress in case it sees the following key sequence:

shift down --- 'A' down --- shift up  --- 'A' up...
6bffdf0f 12/09/2010 03:23 pm Gerd Hoffmann

vnc: auth reject cleanup

protocol_client_auth_vnc() has two places where the auth can fail,
with identical code sending the reject message to the client.
Move the common code to the end of the function and make both
error paths jump there. No functional change....

3c9405a0 12/09/2010 03:23 pm Gerd Hoffmann

vnc: support password expire

This patch adds support for expiring passwords to vnc. It adds a new
vnc_display_pw_expire() function which specifies the time when the
password will expire.

Signed-off-by: Gerd Hoffmann <>

2ded6ad7 10/13/2010 09:43 pm Blue Swirl

vnc: avoid write only variables

Compiling with GCC 4.6.0 20100925 produced warnings:
/src/qemu/ui/vnc.c: In function 'vnc_client_cache_auth':
/src/qemu/ui/vnc.c:217:12: error: variable 'qdict' set but not used [-Werror=unused-but-set-variable]
/src/qemu/ui/vnc.c: In function 'vnc_display_open':...

ac71103d 08/23/2010 12:48 am Yoshiaki Tamura

vnc: check fd before calling qemu_set_fd_handler2() in vnc_client_write()

Setting fd = -1 to qemu_set_fd_handler2() causes bus error at FD_SET
in main_loop_wait().

Signed-off-by: Yoshiaki Tamura <>
Signed-off-by: Anthony Liguori <>

efe556ad 07/27/2010 01:36 am Corentin Chary

vnc: tight add PNG encoding

Introduce a new encoding: VNC_ENCODING_TIGHT_PNG [1] (-269) with a new
tight filter VNC_TIGHT_PNG (0x0A). When the client tells it supports the Tight PNG
encoding, the server will use tight, but will always send encoding pixels using...

d1af0e05 07/27/2010 01:36 am Corentin Chary

vnc: encapsulate encoding members

This will allow to implement the threaded VNC server in a
more cleaner way.

Signed-off-by: Corentin Chary <>
Signed-off-by: Anthony Liguori <>

bd023f95 07/27/2010 01:36 am Corentin Chary

vnc: threaded VNC server

Implement a threaded VNC server using the producer-consumer model.
The main thread will push encoding jobs (a list a rectangles to update)
in a queue, and the VNC worker thread will consume that queue and send
framebuffer updates to the output buffer....

d01f9595 07/27/2010 01:36 am Corentin Chary

vnc: add missing lock for vnc_cursor_define()

All vnc_write() calls must be locked (except the ones present before
the protocol initialization).

Signed-off-by: Corentin Chary <>
Signed-off-by: Anthony Liguori <>

3e230dd2 07/27/2010 01:35 am Corentin Chary

ui: move all ui components in ui/

Move sdl, vnc, curses and cocoa UI into ui/ to cleanup
the root directory. Also remove some unnecessary explicit
targets from Makefile.

aliguori: fix build when srcdir != objdir

Signed-off-by: Corentin Chary <>...