History | View | Annotate | Download (69.1 kB)
vnc: improve numpad support for qemu console.
Reorganize qemu console emulation code. Make it look at the numlockstate and interpret numpad keys as arrow+friends (numlock off) ordigits (numlock on). While being at it also wind up the other numpadkeys....
vnc: rework VncState release workflow.
Split socket closing and releasing of VncState into two steps. Firstclose the socket and set the variable to -1 to indicate shutdown inprogress. Do the actual release in a few places where we can be sure itdoesn't cause trouble in form of use-after-free. Add some checks for a...
Win32: Don't remove const attribute in type casts.
Type casts removing the const attribute are bad becausethey hide the fact that the argument remains const.
They also result in a compiler warning (at least with MS-C).
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Fix mingw32 build warnings
Work around buffer and ioctlsocket argument type signedness problemsSuppress a prototype which is unused on mingw32Expand a macro to avoid warnings from some GCC versions
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Fix spelling in comment.
VNC: Fix memory allocation (wrong structure size).
Pointer vs addresses a VncDisplay structure,so it is sufficient to allocate sizeof(VncDisplay)or sizeof(*vs) bytes instead of the much largersizeof(VncState).
Maybe the misleading name should be fixed, too:...
Eliminate --disable-gfx-check and make VNC default when SDL not available
--disable-gfx-check predates VNC server support. It made sense back thenbecause the only thing you could do without SDL was use -nographic mode orsimilar tricks. Since this is a very advanced mode of operation, gfx-check...
Remove any pretense that there can be more than one AudioState
vnc: kill leftover debug statement.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
vnc: windup keypad keys for qemu console emulation
vnc: fix segfault
Move down cmp_bytes initialization. Must be after vga_hw_update()call, because that one might change the screen depth.
vnc: fix server surface pixel format.
Format must be identical to the guest surface, we can't work withthe 32 bpp used by the default surface allocator.
Without this patch vnc doesn't get the conversions right when sendingpixel data to the client. The bug triggers if...
vnc: no need to set force_update for incremental update requests.
vnc: Fix incorrect attempt to clear a flag
In vnc.c in pixel_format_message, the code tries to clear theQEMU_ALLOCATED_FLAG from the client display surface, howeverit uses the wrong operator and ends up enabling all otherflags. Most notably this enables the big endian flag and...
vnc: throttle screen updates. (Gerd Hoffmann)
This patch makes the vnc server code skip screen refreshes in casethere is data in the output buffer. This reduces the refresh rate tothrottle the bandwidth needed in case the network link is saturated.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>...
vnc: fix printf warnings showing up with VNC_DEBUG enabled. (Gerd Hoffmann)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6861 c046a42c-6fe2-441c-8c8c-71466251a162
vnc: cleanup surface handling, fix screen corruption bug. (Gerd Hoffmann)
This patch killes the old_data hack in the qemu server and replacesit with a clean separation of the guest-visible display surface andthe vnc server display surface. Both guest and server surface have...
Delete some unused macros detected with -Wp,-Wunused-macros use
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6856 c046a42c-6fe2-441c-8c8c-71466251a162
Replace asprintf() with snprintf() in vnc.c ("Daniel P. Berrange")
As previously discussed, this patch removes the non-portable use ofasprintf(), replacing it with malloc+snprintf instead
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>...
Remove tabs introduced from VNC ACL series
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6727 c046a42c-6fe2-441c-8c8c-71466251a162
Support ACLs for controlling VNC access ("Daniel P. Berrange")
This patch introduces a generic internal API for access control liststo be used by network servers in QEMU. It adds support for checkingthese ACL in the VNC server, in two places. The first ACL is for the...
Include auth credentials in 'info vnc' ("Daniel P. Berrange")
This patch extends the 'info vnc' monitor output to include informationabout the VNC client authentication credentials.
For clients authenticated using SASL, this will output the username.
For clients authenticated using x509 certificates, this will output...
Add SASL authentication support ("Daniel P. Berrange")
This patch adds the new SASL authentication protocol to the VNC server.
It is enabled by setting the 'sasl' flag when launching VNC. SASL canoptionally provide encryption via its SSF layer, if a suitable mechanism...
Move TLS auth into separate file ("Daniel P. Berrange")
This patch refactors the existing TLS code to make the main VNC codemore managable. The code moves to two new files
- vnc-tls.c: generic helpers for TLS handshake & credential setup - vnc-auth-vencrypt.c: the actual VNC TLS authentication mechanism....
Move VNC structs into header file ("Daniel P. Berrange")
This patch moves the definitions of VncState and VncDisplay structsout into a vnc.h header file. This is to allow the code for TLSand SASL auth mechanisms to be moved out of the main vnc.c file....
Refactor keymap code to avoid duplication ("Daniel P. Berrange")
Each of the graphical frontends #include a .c file, for keymap coderesulting in duplicated definitions & duplicated compiled code. Acouple of small changes allowed this to be sanitized, so instead of...
Enhance 'info vnc' monitor output ("Daniel P. Berrange")
The current 'info vnc' monitor output just displays the VNC server addressas provided by the -vnc command line flag. This isn't particularly usefulsince it doesn't tell you what VNC is actually listening on. eg, if you...
Fix bug in TLS authentication ("Daniel P. Berrange")
This patch was previously posted here:
http://lists.gnu.org/archive/html/qemu-devel/2009-02/msg00820.html
In the case where the TLS handshake does not block on I/O, QEMUsends the next 'start sub-auth' message twice. This seriously confuses...
monitor: Rework API (Jan Kiszka)
Refactor the monitor API and prepare it for decoupled terminals:term_print functions are renamed to monitor_* and all monitor servicesgain a new parameter (mon) that will once refer to the monitor instancethe output is supposed to appear on. However, the argument remains...
Support multiple VNC clients (Brian Kress)
Change structure associated with a display from VncState to a new structureVncDisplay. Remove client specific fields from VncDisplay. Remove displayspecific fields from VncState. Maintain a linked list of VncStates per...
monitor: Don't change VNC server when disabled (Jan Kiszka)
[ As requested, broken out of the monitor rework series. ]
Avoid a segfault when the user issues 'change vnc' without having vncenabled on startup.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>...
toplevel: remove error handling from qemu_malloc() callers (Avi Kivity)
Signed-off-by: Avi Kivity <avi@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6531 c046a42c-6fe2-441c-8c8c-71466251a162
Add zlib encoding support (Alexander Graf)
This patch adds zlib encoding support for VNC. It basically runsthe raw traffic through zlib, providing a pretty good compressionratio.
Signed-off-by: Alexander Graf <agraf@suse.de>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>...
Move the framebuffer update package out (Alexander Graf)
Currently the send_framebuffer_update_raw and send_framebuffer_update_hextilerespectively send a send_framebuffer_update packet themselves. We need to reusesend_framebuffer_update_raw for zlib encoding though, so let's move it out....
Move buffer functions up (Alexander Graf)
We will need to use buffer functions in code that will end up beingbelow the current buffer functions. In order to not introduce anyfunction stub defines, let's just move them up.
Signed-off-by: Alexander Graf <agraf@suse.de>...
Add some tight awareness to vnc.c (Alexander Graf)
This patch enables the vnc server to understand fundamental tight extensions.It changes from a "Hextile or not" scheme when sending framebuffer updates toa "preferred encoding", namely the last one set....
Fix invalid #if in vnc.c when debugging is enabled (Alexander Graf)
While running with debugging enabled, I found an #if testing foran undefined value, not defined(value). This patch fixes that.
Use VNC protocol defines (Alexander Graf)
Now that we have nice defines for all sorts of constants, let'suse them!
This patch also takes the "feature variables", currently called has_*into a single feature int. This way adding new features is a loteasier and doesn't clutter the VncState struct....
Split VNC defines to vnc.h (Alexander Graf)
The VNC protocol contains quite some constants, some of which arecurrently hardcoded in the vnc.c code. This is not exactly pretty.
Let's move all those constants out to vnc.h, so they are clearlyseparated. While at it, I also included other defines that will be...
vnc fixes and improvements (Stefano Stabellini)
this patch fixes a bug and improves the generic pixel conversionfunction in vnc.c.The bug is that when a new vnc client connects we need to reset the flaghas_WMVi but currently we don't.The generic pixel conversion function is vnc_convert_pixel and currently...
exploiting the new interface in vnc.c (Stefano Stabellini)
This patch exploits the new DisplaySurface and PixelFormat structures invnc, making the code easier to read allowing further improvements.
Compared to the last version I fixed a bug that prevented the hextile...
DisplayState interface change (Stefano Stabellini)
This patch changes the DisplayState interface adding support formultiple frontends at the same time (sdl and vnc) and implements mostof the benefit of the shared_buf patch without the added complexity....
Fix some more warnings
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6300 c046a42c-6fe2-441c-8c8c-71466251a162
Properly handle the case of SetPixelEncodings with a length of zero.
This commit addresses CORE-2008-1210/CVE-2008-2382.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6121 c046a42c-6fe2-441c-8c8c-71466251a162
vnc: Fix crash on 'info vnc' after 'change vnc none'
vnc_state->display is set to NULL after "change vnc none" but vnc_state itselfis still valid.
(James Ko)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6010 c046a42c-6fe2-441c-8c8c-71466251a162
Make audio violate POSIX less
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5864 c046a42c-6fe2-441c-8c8c-71466251a162
Exclude unix: from vnc call to unix_listen() (Ryan Harper)
When using an existing unix socket like:
-vnc unix:/tmp/file1Y2nY2
qemu fails to bind a unix socket because the vnc call to unix_listen includesthe unix: prefix and stores that in the unix.sun_path. The fix is to not pass...
Reset the key modifiers upon client connect
VNC should not maintain modifer state upon reconnects With some windowmanagers/vnc clients it will only see a key down event for a modifierfollowed by immediate disconnect(think Alt-F4), with a net effect ofsubsequently connected clients operating as if the modifier was never...
Add basic audio functionality to vnc.c
This allows among other things to capturing A/V of runningguests. Ad-hoc client that does this (via script that invokes ffmpeg)can be found at:http://repo.or.cz/w/qemu/malc.git?a=tree;f=vcap;hb=capture3
Thanks to Anthony Liguori for comments and review....
Don't try to select on an invalid VNC socket when init fails.
Otherwise we get a segfault.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5840 c046a42c-6fe2-441c-8c8c-71466251a162
Introduce accessors for DisplayState (Stefano Stabellini)
Introducing some accessors:
ds_get_linesizeds_get_bits_per_pixelds_get_widthds_get_heightds_get_data
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>...
r5531 made x509 certs not loadable (original patch from Henrik Holst).
The patch in r5531 which replaced a bunch of strncpy with pstrcpy causesthe x509 credentials from the -vnc parameter to be one character shorterthan entered meaning that there is currently no way to enter x509...
sockets: switch vnc to new code, support vnc port auto-allocation (Gerd Hoffman)
This patch switches the vnc code ofer to the new socket helperfunctions.
It adds support IPv6 support and for automatically allocating an unusedvnc display port. The latter is handled ising a to= option, specifying...
Replace uses of strncpy (a GNU extension) with Qemu pstrcpy
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5531 c046a42c-6fe2-441c-8c8c-71466251a162
Fix compiler warning when _VNC_DEBUG isn't defined.
Signed-off-by: Thiemo Seufer <ths@networkno.de>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5312 c046a42c-6fe2-441c-8c8c-71466251a162
WMVi extension support (Stefano Stabellini)
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5230 c046a42c-6fe2-441c-8c8c-71466251a162
vnc dynamic resolution (Stefano Stabellini)
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5229 c046a42c-6fe2-441c-8c8c-71466251a162
Fix most warnings that would be caused by gcc flag -Wundef
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5173 c046a42c-6fe2-441c-8c8c-71466251a162
Some little fixes on QEMU
- some vectors can be declared as "const" - test on CONFIG_VNC_TLS is done for two times while just one is enough.
(Carlo Bramini)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5172 c046a42c-6fe2-441c-8c8c-71466251a162
VNC: Support for ExtendedKeyEvent client message
This patch adds support for the ExtendedKeyEvent client message. This messageallows a client to send raw scan codes directly to the server. If the clientand server are using the same keymap, then it's unnecessary to use the '-k'...
add DisplayState->idle (Samuel Thibault)
Add idle field to DisplayState struct, so drivers can figurethe display is idle and take advantage of that.
The xen framebuffer driver will use this to communicate theidle state to the guest, so it knows it can stop doing updates...
Add qemu_realloc(), by Gerd Hoffmann.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4986 c046a42c-6fe2-441c-8c8c-71466251a162
Don't forget to save VNC FB dimensions after resize (Brad Campbell).
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4644 c046a42c-6fe2-441c-8c8c-71466251a162
Fix VNC update regoin height.
'h' actually is the coordinate of bottom of the rectangle and not height.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4571 c046a42c-6fe2-441c-8c8c-71466251a162
Invalidate VNC framebuffer on every resize.
On a resize, vncviewer keeps the image in the upper-left part of the screenunmodified and fills the right end of the lines with black colour. vnc.c keeps the first n bytes of the framebuffer unmodified instead - meaning that...
Prevent SEGV in VNC server for old clients (Anthony Liguori).
If the client does not support the DesktopResize pseudo-encoding, thenvs->{width,height} may be smaller than ds->{width,height}. dirty_row issized according to vs->{width,height}, not ds->{width,height}....
Fix spurious VNC disconnects on Win32 (Hervé Poussineau).
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4251 c046a42c-6fe2-441c-8c8c-71466251a162
Let the USB tablet reach the far bottom and right pixels
(Samuel Thibault)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4036 c046a42c-6fe2-441c-8c8c-71466251a162
Add an ncurses UI.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3976 c046a42c-6fe2-441c-8c8c-71466251a162
Add VNC reverse connections, by Eddie Kohler.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3951 c046a42c-6fe2-441c-8c8c-71466251a162
Add a missing vga_hw_update() when accepting a connection (Anders Melchiorsen).
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3919 c046a42c-6fe2-441c-8c8c-71466251a162
Reduce redundant timer ticks in VNC, by Anders Melchiorsen.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3904 c046a42c-6fe2-441c-8c8c-71466251a162
Fix wrong signedness, by Andre Przywara.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3815 c046a42c-6fe2-441c-8c8c-71466251a162
Fix fragments due to incomplete dirty tracking in CGA mode (Anthony Liguori).
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3809 c046a42c-6fe2-441c-8c8c-71466251a162
Add statics and missing #includes for prototypes.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3683 c046a42c-6fe2-441c-8c8c-71466251a162
Break up vl.h.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3674 c046a42c-6fe2-441c-8c8c-71466251a162
Handle 3.7 VNC clients authentication correctly (Dan Kenigsberg).
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3498 c046a42c-6fe2-441c-8c8c-71466251a162
Miscellaneous VNC related fixes from Xen forwarded by Matthew Kent.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3489 c046a42c-6fe2-441c-8c8c-71466251a162
Support UltraVNC clients, by Eduardo Felipe.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3288 c046a42c-6fe2-441c-8c8c-71466251a162
find -type f | xargs sed -i 's/[\t ]*$//g' # Yes, again. Note the star in the regex.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3177 c046a42c-6fe2-441c-8c8c-71466251a162
find -type f | xargs sed -i 's/[\t ]$//g' # on most files
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3173 c046a42c-6fe2-441c-8c8c-71466251a162
Fix infinite loop in VNC support, by Marc Bevand.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3169 c046a42c-6fe2-441c-8c8c-71466251a162
Custom location for x509 cert paths, by Daniel P. Berrange.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3139 c046a42c-6fe2-441c-8c8c-71466251a162
x509 client certificate verification, by Daniel P. Berrange.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3138 c046a42c-6fe2-441c-8c8c-71466251a162
x509 certificate for server, by Daniel P. Berrange.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3137 c046a42c-6fe2-441c-8c8c-71466251a162
VeNCrypt basic TLS support, by Daniel P. Berrange.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3136 c046a42c-6fe2-441c-8c8c-71466251a162
VNC password authentication, by Daniel P. Berrange.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3135 c046a42c-6fe2-441c-8c8c-71466251a162
Extend monitor 'change' command for VNC, by Daniel P. Berrange.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3134 c046a42c-6fe2-441c-8c8c-71466251a162
Refactor VNC server setup API, by Daniel P. Berrange.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3133 c046a42c-6fe2-441c-8c8c-71466251a162
Crop VNC update requests to avoid segfaults, by Thomas Tuttle.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2741 c046a42c-6fe2-441c-8c8c-71466251a162
Add -name option, by Anthony Liguori.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2505 c046a42c-6fe2-441c-8c8c-71466251a162
info vnc command (Anthony Liguori)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2391 c046a42c-6fe2-441c-8c8c-71466251a162
Mouse relative offset VNC extension (Anthony Liguori)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2390 c046a42c-6fe2-441c-8c8c-71466251a162
Unix domain socket support for VNC, by Anthony Liguori.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2260 c046a42c-6fe2-441c-8c8c-71466251a162
Reduce VNC resize traffic, thanks Eduardo Felipe.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2245 c046a42c-6fe2-441c-8c8c-71466251a162
signed fixes - VNC console switch (initial patch by Andrzej Zaborowski)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2137 c046a42c-6fe2-441c-8c8c-71466251a162
support for higher resolutions
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1956 c046a42c-6fe2-441c-8c8c-71466251a162
support for all VNC pixel formats
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1923 c046a42c-6fe2-441c-8c8c-71466251a162
removed ssize_t for win32 compatibility
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1900 c046a42c-6fe2-441c-8c8c-71466251a162
uppercase fix (Anthony Liguori)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1889 c046a42c-6fe2-441c-8c8c-71466251a162