summaryrefslogtreecommitdiffstats
path: root/libvncclient/vncviewer.c
Commit message (Collapse)AuthorAgeFilesLines
* LibVNCClient: free buffers in rfbClientCleanup()Tobias Junghans2018-11-051-0/+6
| | | | Buffers allocated by encoding handlers have to be freed as well.
* Include Tight decoding optimizations from TurboVNCDRC2018-01-221-4/+0
| | | | | | | | | | | | | | | | | | - As with the encoder, the decoder now uses the TurboJPEG wrapper, which allows it to decode JPEG images directly into the framebuffer. This eliminates a buffer copy (CopyRectangle()) as well as the expensive RGB pixel conversion in DecompressJpegRectBPP(). The TurboJPEG wrapper performs RGB pixel conversion more optimally, and only when necessary (it uses the libjpeg-turbo colorspace extensions when available, in order to avoid RGB conversion.) - The other Tight subencoding types are also now decoded directly into the framebuffer, which eliminates buffer copies. - The Tight decoder now supports the rfbTightNoZlib extension, which allows the server to bypass zlib compression when Compression Level 0 is selected. The encoder already supports this extension. Passing the data stream through zlib when Compression Level 0 is selected needlessly wastes CPU time, since all zlib is doing is copying the data internally into its own structures.
* Added SASL authentication supportsimon2017-06-251-0/+13
| | | | Added SASL support to OpenSSL
* Set trueColour flag to 1 instead of 255dborth2017-04-041-1/+1
| | | | | | | | | | | It turns out some server implementations (namely VMware ESXi 6.5) expect 1 as the only non-zero value for the SetPixelFormat message whereas the protocol states every non-zero value is valid (https://github.com/rfbproto/rfbproto/blob/master/rfbproto.rst#setpixelformat). Anyway, setting this to 1 shouldn't hurt. Fixes #141
* Fix a compiler warningChristian Beier2017-03-261-1/+1
|
* Merge branch 'circle' of https://github.com/ldmnyblzs/libvncserver into ↵Christian Beier2017-03-261-0/+122
|\ | | | | | | | | | | | | ldmnyblzs-circle Conflicts: libvncclient/rfbproto.c
| * Add function pointers for every type of rectangleBalazs Ludmany2016-06-291-0/+98
|/
* libvncclient/tls_gnutls.c: Add hooks to WriteToTLS() for optional protection ↵gbdj2016-04-231-0/+2
| | | | | | | | by mutex. Fix upstream issue #100 Squashed commit of the pull request #101 : commit 1c7e01e81862bc46508e675e83c74cc6d63224b0 commit 1e749b094d6696380d3f0540a00138d7e3427874
* Re-add the useful bits of 9aa9ac59b4cb10bfca93456a3098e348de172d7f.Christian Beier2015-04-171-0/+3
|
* Revert "LibVNCClient: Add H.264 encoding for framebuffer updates"Christian Beier2015-04-171-7/+0
| | | | | | | | This reverts commit d891478ec985660c03f95cffda0e6a1ad4ba350c. Conflicts: configure.ac libvncclient/h264.c
* `strings.h` and `resolv.h` are not available on MSVC, and some POSIX ↵Daniel Cohen Gindi2014-09-201-0/+4
| | | | | | functions are renamed or deprecated For all of those missing/deprecated POSIX functions, we just add a macro mapping to the _underscored version of MSVC.
* Use WIN32 for Windows-specific #ifdef guardsDaniel Cohen Gindi2014-09-021-3/+3
| | | | | | | | | | | | To support Microsoft Visual C++, we must not guard Windows-specific code in MinGW-specific #ifdef guards. Happily, even 64-bit MSVC defines the WIN32 constant, therefore we can use that instead. [JES: fixed commit message, reordered commit, split out unrelated changes] Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* Include Winsock2 header before windows.h includeDaniel Cohen Gindi2014-09-021-2/+5
| | | | | | | | | | | | That's because there are duplicate #defines, and when Winsock2 is defined before windows.h then windows.h detects that and prevent redefinition. See http://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/4a90b143-1fb8-43e9-a54c-956127e0c579/windowsh-and-winsock2h?forum=windowssdk [JES: fixed commit message] Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* Fix indentationJohannes Schindelin2014-08-161-1/+1
| | | | Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* Check for MallocFrameBuffer() return valuenewsoft2014-08-151-1/+2
| | | | | | If MallocFrameBuffer() returns FALSE, frame buffer pointer is left to NULL. Subsequent writes into that buffer could lead to memory corruption, or even arbitrary code execution.
* Fix integer overflow in MallocFrameBuffer()newsoft2014-08-151-1/+19
| | | | | Promote integers to uint64_t to avoid integer overflow issue during frame buffer allocation for very large screen sizes
* Address #12 ClientData does not get freedRobbert Klarenbeek2014-03-301-0/+6
| | | | | | | rfbClientSetClientData() allocates a new rfbClientData, but never gets cleaned up, which causes memory leaks. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* LibVNCClient: Add H.264 encoding for framebuffer updatesDavid Verbeiren2013-01-251-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch implements support in LibVNCClient for framebuffer updates encoded as H.264 frames. Hardware accelerated decoding is performed using VA API. This is experimental support to let the community explore the possibilities offered by the potential bandwidth and latency reductions that H.264 encoding allows. This may be particularly useful for use cases such as online gaming, hosted desktops, hosted set top boxes... This patch only provides the client side support and is meant to be used with corresponding server-side support, as provided by an upcoming patch for qemu ui/vnc module (to view the display of a virtual machine executing under QEMU). With this H.264-based encoding, if multiple framebuffer update messages are generated for a single server framebuffer modification, the H.264 frame data is sent only with the first update message. Subsequent update framebuffer messages will contain only the coordinates and size of the additional updated regions. Instructions/Requirements: * The patch should be applied on top of the previous patch I submitted with minor enhancements to the gtkvncviewer application: http://sourceforge.net/mailarchive/message.php?msg_id=30323804 * Currently only works with libva 1.0: use branch "v1.0-branch" for libva and intel-driver. Those can be built as follows: cd libva git checkout v1.0-branch ./autogen.sh make sudo make install cd .. git clone git://anongit.freedesktop.org/vaapi/intel-driver cd intel-driver git checkout v1.0-branch ./autogen.sh make sudo make install Signed-off-by: David Verbeiren <david.verbeiren@intel.com>
* LibVNCClient: Remove all those WITH_CLIENT_TLS #ifdefs and move GnuTLS ↵Christian Beier2012-04-151-4/+1
| | | | specific functionality into tls_gnutls.c.
* IPv6 support for LibVNCServer, part three: make reverse connections ↵Christian Beier2012-03-101-0/+2
| | | | | | | | IPv6-capable. Besided making libvncserver reverseVNC IPv6-aware, this introduces some changes on the client side as well to make clients listen on IPv6 sockets, too. Like the server side, this also uses a separate-socket approach.
* Add an optional parameter to specify the ip address for reverse connectionsLuca Stauble2012-02-031-0/+1
| | | | | | | | | | | | | | | | For security reasons, it can be important to limit which IP addresses a LibVNCClient-based client should listen for reverse connections. This commit adds that option. To preserve binary backwards-compatibility, the field was added to the end of the rfbclient struct, and the function ListenAtTcpPort retains its signature (but calls the new ListenAtTcpPortAndAddress). [jes: shortened the commit subject, added a longer explanation in the commit body and adjusted style] Signed-off-by: Luca Stauble <gnekoz@gmail.com> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* IP QoS support in libvncclient.Christian Beier2010-09-291-0/+4
| | | | | | | | | | This enables setting the DSCP/Traffic Class field of IP/IPv6 packets sent by a client. For example starting a client with -qosdscp 184 marks all outgoing traffic for expedited forwarding. Implementation for Win32 is still a TODO, though. See http://betelco.blogspot.com/2009/03/dscp-marking-under-windows-at.html for an overview of the Win32 QoS API mess...
* Call MallocFrameBuffer before SetFormatAndEncodingsWouter Van Meir2010-06-041-3/+3
| | | | | | | | | | | | The hook is still called after InitialiseRFBConnection() so we can choose the color settings depending on the vnc server (or settings) in that hook. This way one can use the "VNC server default format" pixelformat if the client supports it, or perform a workaround (Intel AMT KVM "classic vnc" server only works using 8bit colors in RFB3.8) Signed-off-by: Wouter Van Meir <wouter.vanmeir@pandora.be> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* Fix compilation without TLSJohannes Schindelin2010-03-131-0/+2
| | | | Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* libvncclient/vncviewer.c: don't set serverPort in rfbInitClient().Christian Beier2010-01-251-1/+0
| | | | | | | | | The serverPort member is already set in rfbGetClient(), if we set it again in rfbInitClient(), this breaks playing of vncrec files (this relies on serverPort set to -1). Signed-off-by: Christian Beier <dontmind@freeshell.org> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* LibVNCClient: make sure that the port is initialized correctly.Johannes Schindelin2010-01-161-6/+7
| | | | | | While at it, adjust coding style. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* Add UltraVNC Repeater support in libvncclientVic Lee2010-01-161-1/+26
| | | | | | | [jes: adjusted coding style, made sure port is initialized correctly] Signed-off-by: Vic Lee <llyzs@163.com> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* Add support for viewers to select security types on demandVic Lee2010-01-011-0/+3
| | | | | Signed-off-by: Vic Lee <llyzs@163.com> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* Fix checks for socket values, 0 is a legal value.Christian Beier2009-11-111-2/+5
| | | | | | | | | | To make this work, we also have to initialize sockets to a default value of -1. Also close a client listen socket if it's open. Signed-off-by: Christian Beier <dontmind@freeshell.org> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* libvncclient: include winsock2.h in vncviewer.c.Christian Beier2009-11-101-0/+2
| | | | | | | fixes warning about closesocket being implicitly declared. Signed-off-by: Christian Beier <dontmind@freeshell.org> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* Merge branch 'VeNCrypt'Johannes Schindelin2009-11-021-0/+9
|\
| * Add anonymous TLS support in libvncclientVic Lee2009-10-021-0/+9
| | | | | | | | Signed-off-by: Vic Lee <llyzs@163.com>
* | libvncclient: add a non-forking listen function.Christian Beier2009-10-301-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Forking the whole process from deep within a library call does not really work at all with apps that use multiple threads, i.e. every reasonably modern GUI app. So, provide a non-forking listen function so that the caller can decide if to fork, start a thread, etc. This implementation adds a timeout parameter to be able to call the listen function multiple times so that it's possible to do sth. else in between, e.g. abort listening. Signed-off-by: Christian Beier <dontmind@freeshell.org> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* | libvncclient: Add FinishedFrameBufferUpdate callbackAlexander Dorokhine2009-10-301-0/+1
|/ | | | | | When working on a program which searches the display for some image, one does not want to search again without getting an FB update. Add a callback to make this possible.
* Fix two issues in rfbGetClient()Johannes Schindelin2009-06-161-2/+4
| | | | | | | | | There was an unnecessary assignment, and an assignment of a string that was to be free()ed later, so it has to be strdup()ed. Both issues spotted by Roman Held. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* Add close() to rfbClientCleanup()Stefan Becker2009-05-221-0/+2
| | | | Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* argv > 0 doesn't make sense for a pointer; assuming argv != NULL.runge2007-08-041-1/+1
|
* LibVNCClient: some users do not want to get whole-screen updates; introduce ↵dscho2007-02-011-6/+19
| | | | client->updateRect for that
* libvncclient: add GotCursorShape() and GotCopyRect(); x11vnc dep on libvncclientrunge2007-01-311-1/+1
|
* Client side support for PalmVNC/UltraVNC 'Server Side Scaling'steven_carr2006-05-041-3/+20
|
* Ultra Encoding added. Tested against UltraVNC V1.01steven_carr2006-05-021-1/+1
|
* Eliminate incompatible pointer assignment warning (gcc 4.0.1)steven_carr2006-05-021-2/+2
|
* add KeyboardLedState extensiondscho2006-03-281-1/+6
|
* libvncclient: take -compress <level> and -quality <level> command line argumentsdscho2006-03-271-0/+6
|
* fix client non-jpeg/libz buildsrunge2006-01-081-1/+3
|
* assorted fixes for MinGW32dscho2005-12-191-1/+1
|
* one more memory leakdscho2005-12-071-0/+5
|
* plug memory leaksdscho2005-12-071-2/+17
|
* fix deadlock from rfbReleaseExtensionIterator(), fix no libz/libjpeg ↵runge2005-11-251-0/+2
| | | | builds, disable tightvnc-filetransfer if no libpthread, add --without-pthread option, rm // comments, set NAME_MAX if not defined, x11vnc: throttle load if fb update requests not taking place.
* implement ZRLE decodingdscho2005-05-241-1/+1
|