summaryrefslogtreecommitdiffstats
path: root/libvncserver/rfbserver.c
Commit message (Collapse)AuthorAgeFilesLines
...
* Call WSAGetLastError() everywhere errno is read after a Winsock call.Christian Beier2011-03-031-0/+6
| | | | | Winsock does NOT update errno for us, we have fetch the last error manually using WSAGetLastError().
* libvncserver: Make RRE, CoRRE and Ultra encodings thread-safe.Christian Beier2011-02-071-0/+4
| | | | | | | This adds generic before/after encoding buffers to the rfbClient struct, so there is no need for thread local storage. Signed-off-by: Christian Beier <dontmind@freeshell.org>
* Remove never used protocol version name string.runge2011-01-011-8/+3
|
* libvncserver cleanup: remove rfbKeyFrame remnants.Christian Beier2010-11-111-2/+0
|
* libvnc[server|client]: implement xvp VNC extension.Christian Beier2010-11-021-2/+61
| | | | | | | This implements the xvp VNC extension, which is described in the community version of the RFB protocol: http://tigervnc.sourceforge.net/cgi-bin/rfbproto It is also mentioned in the official RFB protocol.
* In rfbSendDirContent() we have to make sure to call closedir() beforeTobias Doerffel2010-10-201-1/+5
| | | | | | returning. This did not happen if rfbSendFileTransferMessage() failed. Signed-off-by: Christian Beier <dontmind@freeshell.org>
* Non-blocking sockets for Windows.Christian Beier2010-09-131-4/+1
| | | | | | | | | | | Expands the SetNonBlocking() function in libvncclient/sockets.c to also work under Windows and also changes it to honour maybe already present socket flags. A similar function was introduced for libvncserver as well and all the #ifdef'ed fnctl calls replaced with calls to that one. Signed-off-by: Christian Beier <dontmind@freeshell.org>
* Cleanup: remove CORBA stuff.Christian Beier2010-09-131-13/+1
| | | | | | | The header file and most of the functions referred to do not exist in libvncserver. Signed-off-by: Christian Beier <dontmind@freeshell.org>
* Implement a DisplayFinishedHook for libvncserver.Christian Beier2010-05-191-1/+11
| | | | | | | If set, this hook gets called just before rfbSendFrameBufferUpdate() returns. Signed-off-by: Christian Beier <dontmind@freeshell.org>
* Fix checks for socket values, 0 is a legal value.Christian Beier2009-11-111-1/+1
| | | | | | | | | | 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>
* Thread safety for zrle, zlib, tight.runge2009-05-211-0/+21
| | | | Proposed tight security type fix for debian bug 517422.
* We seem to need to guard against freeing iterator 'i' twice in ↵runge2008-06-241-4/+8
| | | | rfbSendFramebufferUpdate() (italc reported bug)
* Handle colormaps with more than 256 colors.runge2008-05-231-4/+14
|
* Fix rfbSendSupportedEncodingsdscho2008-01-311-43/+32
| | | | | | | | | There was a long standing TODO to make the counting of the supported encodings dynamic. It never triggered, until ZYWRLE was added. Noticed by Christian Ehrlicher. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* Fix Swap16IfLE() on bytesdscho2008-01-311-3/+3
| | | | | | | | | | When swapping the values for the colour table to little-endian (because they are 16-bit values), we need to cast "unsigned char" to "unsigned short"; otherwise, Microsoft's compiler would keep complaining. Noticed by Christian Ehrlicher. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* Move tightQualityLevel out of the JPEG specific partdscho2008-01-311-2/+2
| | | | | | | | The variable tightQualityLevel is used for ZYWRLE compression, too, so if libjpeg is not present, but libz is, we still need to have that struct member. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* Add missing #include <time.h> (thanks Christian Ehrlicher)dscho2008-01-291-0/+2
| | | | Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* Add ZYWRLE server-side support (thanks Noriaki Yamazaki, Hitachi)dscho2008-01-291-0/+3
| | | | Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* Avoid misaligned access on 64-bit machinesdscho2007-09-171-13/+15
| | | | | | | | | We used to assume that a char[256] is properly aligned to be cast to an rfbServerInitMsg, but that was not the case. So use a union instead. Noticed by Flavio Leitner. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* More fixes to ultra java viewer, ultrafilexfer debugging output, fix -loop ↵runge2007-05-191-7/+10
| | | | in .x11vncrc case.
* In rfbSendFileTransferChunk() check permitFileTransfer 1st to avoid false ↵runge2007-05-171-3/+4
| | | | alarms.
* Drop client if UltraVNC filetransfer is not enabled.runge2007-05-161-3/+33
|
* Fix a locking problem in libvncserverdscho2007-03-171-1/+1
| | | | | | | | | | | | | | | | | | | There seems to be a locking problem in libvncserver, with respect to how condition variables are used. On certain machines in our lab, when using a vncviewer to view a display that has a very high rate of updates, we will occasionally see the VNC server process crash. In one stack trace that was obtained, an assertion had tripped in glibc's pthread_cond_wait, which was called from clientOutput. Inspection of clientOutput suggests that WAIT is being called incorrectly. The mutex that protects a condition variable should always be locked when calling wait, and on return from the wait will still be locked. The attached patch fixes the locking around this condition variable, and one other that I found by grepping the source for similar occurrences. Signed-off-by: Charles Coffing <ccoffing@novell.com>
* compile fix for MinGWdscho2007-01-251-19/+27
|
* x11vnc: improve ultravnc filexfer rate by calling rfbCheckFD more oftenrunge2006-09-181-1/+2
|
* x11vnc: clear DISPLAY for -unixpw su_verify, user supplied sig ignore.runge2006-09-151-2/+2
|
* RFB 3.8 clients are well informedsteven_carr2006-06-051-7/+24
|
* Plugged some memory leakagesteven_carr2006-05-281-0/+2
|
* Permit auth.c to test major versionsteven_carr2006-05-161-0/+1
|
* Support sending TextChat messages back to the clientsteven_carr2006-05-151-0/+41
|
* Default to RFB 3.8, add command line option to specify the RFB version.steven_carr2006-05-151-2/+14
|
* The great UltraVNC Compatibility Commitsteven_carr2006-05-151-103/+910
|
* fix some build issues WRT ultravnc code.runge2006-05-131-3/+5
|
* Server Capability Encodingssteven_carr2006-05-041-3/+277
| | | | | | | rfbEncodingSupportedEncodings - What encodings are supported? rfbEncodingSupportedMessages - What message types are supported? rfbEncodingServerIdentity - What is the servers version string? ie: "x11vnc: 0.8.1 lastmod: 2006-04-25 (LibVNCServer 0.9pre)"
* Client Independent Server Side Scaling is now supportedsteven_carr2006-05-031-23/+93
| | | | Both PalmVNC and UltraVNC SetScale messages are supported
* Ultra Encoding added. Tested against UltraVNC V1.01steven_carr2006-05-021-4/+28
|
* add KeyboardLedState extensiondscho2006-03-281-2/+67
|
* ignore maxRectsPerUpdate when encoding is Zlib (thanks scarr)dscho2006-03-271-0/+2
|
* rfbProcessEvents() has to iterate also over clients with sock < 0 to close themdscho2006-01-101-2/+16
|
* make compile again with pthreads; fix off-by-one errordscho2005-12-221-2/+4
|
* introduce -deferptrupdate (thanks Dave)dscho2005-12-191-4/+14
|
* assorted fixes for MinGW32dscho2005-12-191-0/+2
|
* fix deadlock from rfbReleaseExtensionIterator(), fix no libz/libjpeg ↵runge2005-11-251-6/+10
| | | | 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.
* The PseudoEncoding extension code was getting silly:dscho2005-10-071-4/+2
| | | | | | | | | | | | | | | | | | | | If the client asked for an encoding, and no enabled extension handled it, LibVNCServer would walk through all extensions, and if they promised to handle the encoding, execute the extension's newClient() if it was not NULL. However, if newClient is not NULL, it will be called when a client connects, and if it returns TRUE, the extension will be enabled. Since all the state of the extension should be in the client data, there is no good reason why newClient should return FALSE the first time (thus not enabling the extension), but TRUE when called just before calling enablePseudoEncoding(). So in effect, the extension got enabled all the time, even if that was not necessary. The resolution is to pass a void** to enablePseudoEncoding. This has the further advantage that enablePseudoEncoding can remalloc() or free() the data without problems. Though keep in mind that if enablePseudoEncoding() is called on a not-yet-enabled extension, the passed data points to NULL.
* kill BackChannel and CustomClientMessage: the new extension technique makes ↵dscho2005-10-061-42/+0
| | | | these hooks obsolete
* provide a list of the pseudo encodings understood by the extensiondscho2005-10-061-4/+37
|
* add enablePseudoEncoding() to rfbProtocolExtensiondscho2005-10-031-7/+24
|
* This monster commit contains support for TightVNC's file transfer protocol.dscho2005-09-281-14/+21
| | | | Thank you very much, Rohit!
* Introduce generic protocol extension method. Deprecatedscho2005-09-271-7/+36
| | | | the processCustomClientMessage() method.
* support VNC protocol version 3.7dscho2005-09-261-3/+14
|