Commit Graph

337 Commits (19b695e9f8372ed5ea7174dc8f8a669e345305b9)

Author SHA1 Message Date
Gernot Tenchio 3eec976558 Merge branch 'kanaka/websockets' into websockets
Conflicts:
	libvncserver/websockets.c
14 years ago
Gernot Tenchio 7d1c1033c5 rfbssl_gnutls: Merge rfbssl_peek/rfbssl_read into one function 14 years ago
Gernot Tenchio b1671e6de9 websockets: fix webSocketCheckDisconnect()
Do not consume the peeked data if no close frame was detected.
14 years ago
Gernot Tenchio 0f2ac00f6e websockets: use 32bit Xor in webSocketsDecodeHybi() 14 years ago
Gernot Tenchio fd73186769 websockets: nothing to worry about 14 years ago
Gernot Tenchio 7b80ff5b3a websockets: added gcrypt based sha1 digest funtion 14 years ago
Joel Martin d8b7f7a7d6 Add sha1.*. Remove UTF-8 encode. Protocol handling.
Add common/sha1.h and common/sha1.c so that we have the SHA routines
even if openssl is not available. From the IETF SHA RFC example code.

Remove the UTF-8 encoding hack. This was really just an experiment.

If the protocol passed in the handshake has "binary" then don't base64
encode for the HyBi protocol. This will allow noVNC to request the
binary data be passed raw and not base64 encoded. Unfortunately, the
client doesn't speak first in VNC protocol (bad original design). If
it did then we could determine whether to base64 encode or not based
on the first HyBi frame from the client and whether the binary bit is
set or not. Oh well.

Misc Cleanup:

- Always free response and buf in handshake routine.

- Remove some unused variables.
14 years ago
Gernot Tenchio e22b7acbc8 websockets: remove warning on 64bit platforms 14 years ago
Gernot Tenchio 099e5c8251 websockets: Removed debugging left over 14 years ago
Gernot Tenchio 72b18fdfb7 websockets: Use callback functions for encode/decode 14 years ago
Gernot Tenchio 55234a37fd websockets: Move Hixie disconnect hack to websockets.c
Move the hixie disconnect hack to websockets.c. Removed
the remaining websockets vars from rfbClientPtr, so all
websockets stuff is hidden behind an opaque pointer.
14 years ago
Gernot Tenchio 1408866c86 websockets: Initial HyBi support 14 years ago
Gernot Tenchio 297072a691 websockets: Add wspath member to rfbClientRec
Added wspath member to rfbClientRec which holds the
path component of the initial websocket request.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
14 years ago
Gernot Tenchio b543d48677 Move libvncserver/md5* to common
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
14 years ago
Joel Martin 9afe4e1faa websockets: Add SSL cert command line options.
- Add --sslcertfile and --sslkeyfile. These should really be combined
  with the existing x11vnc command line options for SSL support.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
14 years ago
Gernot Tenchio a2a6e25699 websockets: add GnuTLS and OpenSSL support
For now, only OpenSSL support is activated through configure, since GnuTLS
is only used in LibVNCClient.

[jes: separated this out from the commit adding encryption support, added
autoconf support.]

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
14 years ago
Gernot Tenchio 4aa3586367 websockets: Add encryption support
[jes: moved out GnuTLS and OpenSSL support, added a dummy support, to
separate changes better, and to keep things compiling]

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
14 years ago
Joel Martin 7a77cc32b2 websockets: Properly parse Hixie-76 handshake.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
14 years ago
Joel Martin 430b8f2449 websockets: Add UTF-8 encoding support.
This is not completely standard UTF-8 encoding. Only code points 0-255
are encoded and never encoded to more than two octets. Since '\x00' is
a WebSockets framing character, it's easier for all parties to encode
zero as '\xc4\x80', i.e. 194+128, i.e. UTF-8 256.

This means that a random stream will be slightly more than 50% larger
using this encoding scheme. But it's easy CPU-wise for client and
server to decode/encode. This is especially important for clients
written in languages that have weak bitops, like Javascript (i.e. the
noVNC client).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
14 years ago
Joel Martin 0860c4951f websockets: Better disconnect detection.
If the only thing we are waiting on is a WebSockets terminator, then
remove it from the stream early on in rfbProcessClientNormalMessage.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
14 years ago
Joel Martin 6fac22a74b websockets: Initial WebSockets support.
Has a bug: WebSocket client disconnects are not detected.
rfbSendFramebufferUpdate is doing a MSG_PEEK recv to determine if
enough data is available which prevents a disconnect from being
detected.

Otherwise it's working pretty well.

[jes: moved added struct members to the end for binary compatibility with
previous LibVNCServer versions, removed an unused variable]

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
14 years ago
Joel Martin 353b35e86a tightPng: check even for SendGradientRect.
Signed-off-by: Christian Beier <dontmind@freeshell.org>
14 years ago
Joel Martin 896ca2036c tightPng: Add initial tightPng encoding support.
http://wiki.qemu.org/VNC_Tight_PNG

Signed-off-by: Joel Martin <github@martintribe.org>
Signed-off-by: Christian Beier <dontmind@freeshell.org>
14 years ago
Christian Beier 17ce0c5628 Remove some unused variables. 14 years ago
George Kiagiadakis ddd9b5ac7b Fix rfbProcessNewConnection to return some value instead of void.
BUG: 256891

Signed-off-by: Christian Beier <dontmind@freeshell.org>
14 years ago
George Kiagiadakis 9f8d8d4ef3 Split two event-loop related functions out of the rfbProcessEvents() mechanism.
This is required to be able to do proper event loop integration with Qt.
Idea was taken from vino's libvncserver fork.

Signed-off-by: Christian Beier <dontmind@freeshell.org>
14 years ago
Cristian Rodríguez c8b8938106 Fix buffer overflow
Signed-off-by: Cristian Rodríguez <crrodriguez@opensuse.org>
Signed-off-by: Christian Beier <dontmind@freeshell.org>
14 years ago
Christian Beier 984706076c Revert "Fix memory corruption bug."
This reverts commit c1363fa958.

The proper fix was already in 804335f9d2.
14 years ago
George Kiagiadakis c1363fa958 Fix memory corruption bug.
This bug occured when a second telepathy tubes client was connected after
the first one had disconnected and the channel (thus, the screen too)
had been destroyed.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
14 years ago
George Kiagiadakis 35246edddd Fix compilation in c89 mode.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
14 years ago
Christian Beier 62b7acf480 Fix regression in Ultra encoding introduced by commit fe1ca16e9b.
My bad. There we see what the encodings test is good for ;-)
14 years ago
Christian Beier fe1ca16e9b Fix (most) MinGW32 compiler warnings. 14 years ago
Christian Beier 56234cd0b6 Fix remaining compiler warnings. 14 years ago
Christian Beier e832999a58 Set proper file permissions for source files. 14 years ago
Christian Beier cf72a0f7c3 Call WSAGetLastError() everywhere errno is read after a Winsock call.
Winsock does NOT update errno for us, we have fetch the last error
manually using WSAGetLastError().
14 years ago
Christian Beier f5b96e57bf Update minilzo library used for Ultra encoding to ver 2.04.
According to the minilzo README, this brings a significant
speedup on 64-bit architechtures.

Changes compared to old version 1.08 can be found here:
http://www.oberhumer.com/opensource/lzo/lzonews.php

Signed-off-by: Christian Beier <dontmind@freeshell.org>
14 years ago
Christian Beier 9f49600787 libvncserver: Make RRE, CoRRE and Ultra encodings thread-safe.
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>
14 years ago
Christian Beier 558a58e039 Remove unneeded files concerning CVS.
We have a git repo nowadays and I guess we won't go back to CVS.

Signed-off-by: Christian Beier <dontmind@freeshell.org>
14 years ago
Christian Beier ffe30366d6 Put files used by both libs into a 'common' dir.
No functional changes. All files used by _both_ libvncserver and
libvncclient are put into a 'common' directory and references
from other files as well as Autotools and CMake build systems are
updated.

Signed-off-by: Christian Beier <dontmind@freeshell.org>
14 years ago
ebola_rulez 5e1488beb3 Fix two errors found by cppcheck
Signed-off-by: Vic Lee <llyzs@163.com>
Signed-off-by: Christian Beier <dontmind@freeshell.org>
14 years ago
runge 658bef5fde Remove never used protocol version name string. 14 years ago
Tobias Doerffel d4fabc217e libvncserver sockets: check cl->screen before accessing it
In commit 079394ca5b new code with
insufficient checks was introduced causing a segfault when doing a
HTTP server connection. Such connections have no screen set in the
client data structure.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
14 years ago
Christian Beier a5f8d3a310 libvncserver: fix endless loop when server closed client in threaded mode.
Signed-off-by: Christian Beier <dontmind@freeshell.org>
14 years ago
Christian Beier 079394ca5b libvncserver sockets: favor per-screen maxclientwait over global one when set.
Signed-off-by: Christian Beier <dontmind@freeshell.org>
14 years ago
Christian Beier 453645a6ea libvncserver cleanup: remove rfbKeyFrame remnants. 14 years ago
Christian Beier e5523350a8 libvnc[server|client]: implement xvp VNC extension.
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.
15 years ago
Tobias Doerffel 5da7c7a71a Added missing initialization of extension mutex
When not calling rfbRegisterProtocolExtension() the extension mutex
is uninitialized but used upon calling rfbGetExtensionIterator() and
rfbReleaseExtensionIterator() in rfbNewTCPOrUDPClient(). This causes
libvncserver to crash on Win32 when building with thread support.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
Signed-off-by: Christian Beier <dontmind@freeshell.org>
15 years ago
Tobias Doerffel 71ad3229f6 In rfbSendDirContent() we have to make sure to call closedir() before
returning. This did not happen if rfbSendFileTransferMessage() failed.

Signed-off-by: Christian Beier <dontmind@freeshell.org>
15 years ago
Christian Beier c0373e9cd4 Non-blocking sockets for Windows.
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>
15 years ago
Christian Beier 0df84e5c27 Cleanup: remove CORBA stuff.
The header file and most of the functions referred to
do not exist in libvncserver.

Signed-off-by: Christian Beier <dontmind@freeshell.org>
15 years ago
Christian Beier ad25446978 Fix MinGW32 compilation with libjpeg.
MinGW32 (or more exactly, a rpcndr.h file included by
winsock2.h) typedefs a 'boolean' type that jmorecfg.h
included by jpeglib.h also tries to typedef.
So, tell the jpeg headers.

Closes: 3007302
15 years ago
Christian Beier 09f7c684a2 Implement a DisplayFinishedHook for libvncserver.
If set, this hook gets called just before
rfbSendFrameBufferUpdate() returns.

Signed-off-by: Christian Beier <dontmind@freeshell.org>
15 years ago
Christian Beier 07008deea2 libvncserver/font.c: add some checks to rfbDrawChar().
In some cases (bad font data) the coordinates evaluate to <0,
causing a segfault in the following memcpy().

[jes: keep the offset, but do not try to segfault]

Signed-off-by: Christian Beier <dontmind@freeshell.org>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
15 years ago
runge 69cd710dd2 year++; 15 years ago
runge c15b6165ab tightvnc-filetransfer/rfbtightserver.c: enabled fix
for tight security type for RFB 3.8 (debian bug 517422.)
15 years ago
runge f40b011182 Add locks of updateMutex in rfbRedrawAfterHideCursor() and
rfbSetClientColourMap().  Up listen limit from 5 to 32.
15 years ago
Christian Beier 9ed410668c Fix checks for socket values, 0 is a legal value.
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>
15 years ago
Vic Lee a4cc897222 Fix various compilation warnings
Signed-off-by: Vic Lee <llyzs@163.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
15 years ago
Johannes Schindelin f49a292783 Merge branch 'VeNCrypt' 16 years ago
Vic Lee 29990f0090 Add MSLogon security type
Signed-off-by: Vic Lee <llyzs@163.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
16 years ago
runge 0142acdded Some broken build environments treat fprintf(fh, buf) as a fatal error... 16 years ago
runge 804335f9d2 Thread safety for zrle, zlib, tight.
Proposed tight security type fix for debian bug 517422.
16 years ago
dscho 3d2eab575e clean up build flags
The flag handling (both compiler options and include paths) are a mess at
the moment.  There is no point in forcing "-O2 -g" when these are already
the defaults, and if someone changes the defaults, chances are good they
don't want you clobbering their choices.

The -Wall flag should be handled in configure and thrown into CFLAGS once
rather than every Makefile.am.  Plus, this way we can control which
compilers the flag actually gets used with.

Finally, the INCLUDES variable is for -I paths, not AM_CFLAGS.  Nor should
it contain -I. as this is already in the default includes setup.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
16 years ago
runge dbfa4ad1f7 We seem to need to guard against freeing iterator 'i' twice in rfbSendFramebufferUpdate() (italc reported bug) 17 years ago
runge eaecbf4bec Handle colormaps with more than 256 colors. 17 years ago
dscho c04a28f306 Please MS Visual C++ a bit (Christian Ehrlicher)
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
17 years ago
dscho befcb6fc14 Fix ZYWRLE en/decoding for width != scanline (thanks Noriaki Yamazaki)
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
17 years ago
runge 8bb8271615 Add ZYWRLE to server printout. 17 years ago
runge fe63ea1365 Need to include zywrletemplate.c in Makefile.am 17 years ago
dscho c17aef31ac Fix rfbSendSupportedEncodings
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>
17 years ago
dscho c5173f364f Fix Swap16IfLE() on bytes
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>
17 years ago
dscho 3d9a563983 Move tightQualityLevel out of the JPEG specific part
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>
17 years ago
dscho ce8d6c2409 Make ZYWRLE thread-safe for multiple clients
ZYWRLE used a static buffer, which does not work too well if you have
more than one client in a threaded server.  Instead, we have the data
in the client structure now.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
17 years ago
dscho 5b9b454361 ZYWRLE brown paper bag fix
While adjusting the coding style, three stupid mistakes happened.  The
quality is _not_ just 1, 2, 3, but really 1, 3, 2.  And the macros
ZYWRLE_PACK_COEFF() and ZYWRLE_UNPACK_COEFF() expand to more than one
statement, which means that we need curly brackets around them when they
are in an if clause.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
17 years ago
dscho 87fa3452c1 Add missing #include <time.h> (thanks Christian Ehrlicher)
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
17 years ago
dscho 059afcdf81 Add ZYWRLE server-side support (thanks Noriaki Yamazaki, Hitachi)
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
17 years ago
dscho 1df143d1a1 Avoid misaligned access on 64-bit machines
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>
18 years ago
runge e9353e8d29 More fixes to ultra java viewer, ultrafilexfer debugging output, fix -loop in .x11vncrc case. 18 years ago
runge 13ad9f4940 Pre-C99 declaration error. 18 years ago
runge a549c3aaff In rfbSendFileTransferChunk() check permitFileTransfer 1st to avoid false alarms. 18 years ago
runge f7d48515fd Add logging output to know when inside tightvnc-filetransfer functions. 18 years ago
runge 8b2bb65274 Drop client if UltraVNC filetransfer is not enabled. 18 years ago
dscho ca805667e6 Build shared libraries per default
Thanks to Guillaume Rousse, we now use libtool to build shared libraries.
18 years ago
runge ca56c41c9c Fix short vs. char problem with X cursors. Have fg == bg == 0 imply interpolation to B&W. 18 years ago
runge f57eb8742f Add "Connection: close" to HTTP replies. 18 years ago
dscho 61cd498fb2 Fix a locking problem in libvncserver
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>
18 years ago
dscho b66c944fe3 compile fix for MinGW 18 years ago
runge 11a5ea9ff9 fix typo. 18 years ago
runge 938ae66217 Remove stray ""-permitfiletransfer permit file transfer support" output. 18 years ago
runge a255783ee0 N_ENC_CAPS check does not work if libz is not present. 19 years ago
runge 3d00472a9c x11vnc: improve ultravnc filexfer rate by calling rfbCheckFD more often 19 years ago
runge be2b77f2f2 x11vnc: clear DISPLAY for -unixpw su_verify, user supplied sig ignore. 19 years ago
steven_carr a60ee2ee9f RFB 3.8 clients are well informed 19 years ago
steven_carr 6bd995ec77 Better support for RFB >= 3.8 protocols 19 years ago
steven_carr a75a576e13 All security types for RFB >= 3.7 *have* to respond with a Security Result (Even rfbSecTypeNone) 19 years ago
runge 8417618289 move all types into handler loop. 19 years ago
steven_carr aa54531107 Security Type memory leak plugged. Leaks when rfb >= 3.7 clients connects.
The security list would grow 1 entry when clients connect.
19 years ago
steven_carr 1955526d45 Plugged some memory leakage 19 years ago
steven_carr 2fa31ba4ea Permit auth.c to test major version 19 years ago
steven_carr 52fb63d51b Specifically test for Major Version 3 added 19 years ago
steven_carr b5ab72d65f Statistics now fit into 80-column output 19 years ago
steven_carr 7039f24f61 Statistics output now fits in 80-column output 19 years ago
steven_carr 0a21bf330c Corrected Cursor Statistics reporting as messages 19 years ago
dscho bd12b13c91 remove unneeded file 19 years ago
steven_carr 7218843ac0 Support sending TextChat messages back to the client 19 years ago
steven_carr 1c3af68549 Default to RFB 3.8, add command line option to specify the RFB version. 19 years ago
steven_carr ccdbe8f325 The great UltraVNC Compatibility Commit 19 years ago
runge 347c4a9847 fix some build issues WRT ultravnc code. 19 years ago
steven_carr 0d734ad896 Server Capability Encodings
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)"
19 years ago
steven_carr 2670641432 Client Independent Server Side Scaling is now supported
Both PalmVNC and UltraVNC SetScale messages are supported
19 years ago
steven_carr afa9fae024 Ultra Encoding added. Tested against UltraVNC V1.01 19 years ago
runge 3c80351a1c Make VPATH building work with -I $(top_srcdir) for rfb/rfb.h 19 years ago
dscho 1602b345f3 add KeyboardLedState extension 19 years ago
runge 5920dc18d7 SSL patch for Java viewer. https support for x11vnc. 19 years ago
dscho 10c61b53c2 ignore maxRectsPerUpdate when encoding is Zlib (thanks scarr) 19 years ago
dscho 4130598960 do not timeout on idle client input (with pthreads) 19 years ago
dscho 0d40904d9f rfbCheckFds now returns the number of processed events 19 years ago
dscho f52cfa651b add handleEventsEagerly flag (Thanks, Donald) 19 years ago
rohit_99129 b7773ea6e6 Added method to get extension specific client data 19 years ago
rohit_99129 eb08d83d62 Added method to get extension specific client data 19 years ago
dscho d3599be1b8 add functions to unregister extensions/security types 19 years ago
runge 603b5667b6 fix some non-gcc compiler warnings and signals in x11vnc 19 years ago
runge 9b3163c00b logMutex needs to be initialized too; in rfbDefaultLog. 19 years ago
dscho 0b7a0030ac rfbProcessEvents() has to iterate also over clients with sock < 0 to close them 19 years ago
runge def3012663 fix client non-jpeg/libz builds 19 years ago
runge e781eea698 rfbRegisterProtocolExtension extMutex was never initialized. 19 years ago
dscho e673a125df make compile again with pthreads; fix off-by-one error 19 years ago
dscho 1c26789eff introduce -deferptrupdate (thanks Dave) 19 years ago
dscho 1b81e342cb assorted fixes for MinGW32 19 years ago
dscho 3a8d4bdbe6 work around write() returning ENOENT on Solaris 2.7 19 years ago
runge 8eb18f6cd8 fix deadlock from rfbReleaseExtensionIterator(), fix no libz/libjpeg 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. 20 years ago
dscho 951ec26b7c The PseudoEncoding extension code was getting silly:
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.
20 years ago
dscho d15e35586b kill BackChannel and CustomClientMessage: the new extension technique makes these hooks obsolete 20 years ago
dscho 60f1770e10 provide a list of the pseudo encodings understood by the extension 20 years ago
dscho 808b6a0b23 do it right: it is not DEFINES, but AM_CFLAGS 20 years ago
dscho 8490de3ff0 add enablePseudoEncoding() to rfbProtocolExtension 20 years ago
dscho 0a909fde7a This monster commit contains support for TightVNC's file transfer protocol.
Thank you very much, Rohit!
20 years ago
dscho 93be927b1c Introduce generic protocol extension method. Deprecate
the processCustomClientMessage() method.
20 years ago
dscho 94fcd86cc2 Security is global. This was a misguided attempt to evade a global list.
I eventually saw the light and went with Rohits original approach.
20 years ago
dscho da7b3e714f support VNC protocol version 3.7 20 years ago
runge c59929365c x11vnc: -gui tray mode, httpd.c: check httpListenSock >= 0. 20 years ago
runge 9d43e8af78 main.c: fix screen->deferUpdateTime default. 20 years ago
runge 543e64d3c6 main.c: XReadScreen check, fix 64bit use of cursors, x11vnc: first round of beta-testing fixes, RFE's. 20 years ago
runge 89148d774f main.c: no sraRgnSubstract for copyRect, scrolls for x11vnc -scale; add -fixscreen 20 years ago
runge 4effb62e99 main.c: fix copyRect for non-cursor-shape-aware clients. 20 years ago
dscho 6fb77fb0c1 fix off by one bug 20 years ago
dscho 2b3f56d361 fix off by one bug 20 years ago
dscho ee52441372 hide strict ansi stuff if not explicitely turned on; actually use the socklen_t test from configure.ac 20 years ago
dscho 8d116dfac7 also distribute private.h... 20 years ago
dscho c42529c3f8 fix SIGSEGV when client has incompatible protocol; release mutex before freeing it 20 years ago
dscho 8bee4eb990 ANSIfy, fix some warnings from Linus' sparse 20 years ago
runge be5b1296e4 libvncserver/{main.c,rfbserver.c}: fix a couple more CopyRect memory leaks 20 years ago
dscho 446a6fabac fix memory leaks detected using valgrind 20 years ago
dscho 34f714bcdc socketInitDone -> socketState 20 years ago
runge 1bb36df34e libvncserver/main.c: fix memory leak in rfbDoCopyRect/rfbScheduleCopyRect; configure.ac tweaks. 20 years ago
dscho 6602a22f2b clear requested region after handling it 20 years ago
runge 4301cdf1df autoconf: rpm -> rpmbuild and echo -n -> printf 20 years ago
runge b8b96689bf add '-listen ipaddr' option 20 years ago
dscho 914f7b71c5 10l: really fix preferredEncoding set from outside 20 years ago
dscho 6273f2065a implemented Floyd-Steinberg dither in order to rfbMakeMaskFromAlphaSource 20 years ago
dscho cafeb40fed disappearing cursor fixed & debug message purged 20 years ago
dscho 155f4c1053 fix disappearing cursor 20 years ago
dscho 47646a200f redraw region under old cursor even if the old cursor doesn't have to be freed. 20 years ago
dscho 81ac5600be oops, a debug message slipped through 20 years ago
dscho a84b3d072a pointerClient was still static.
do not make requestedRegion empty without reason.

the cursor handling for clients which don't handle CursorShape updates was
completely broken. It originally was very complicated for performance
reasons, however, in most cases it made performance even worse, because at
idle times there was way too much checking going on, and furthermore,
sometimes unnecessary updates were inevitable.

The code now is much more elegant: the ClientRec structure knows exactly
where it last painted the cursor, and the ScreenInfo structure knows where
the cursor shall be.

As a consequence there is no more rfbDrawCursor()/rfbUndrawCursor(), no more
dontSendFramebufferUpdate, and no more isCursorDrawn.  It is now possible to
have clients which understand CursorShape updates and clients which don't at
the same time.

rfbSetCursor no longer has the option freeOld; this is obsolete, as the cursor
structure knows what to free and what not.
20 years ago
dscho dd923e8660 add convenience function to clip using x2,y2 instead of w,h 20 years ago
runge b58e460fac add cursor alphablending to rfb.h cursor.c, x11vnc -alphablend -snapfb etc.. 20 years ago
dscho 8d2ae4ea51 add comment "if col=bcol, assume background is transparent" 20 years ago
dscho 135767a93e fix comment 20 years ago
dscho a87e288f09 close socket in ClientConnectionGone 20 years ago
dscho 2cd3c824c6 return value of rfbProcessEvents tells if an update was pending 20 years ago
dscho b9a8f19bb4 fix segfault when trying to write outside of frameBuffer 20 years ago
dscho e78a41c69c add hook to allow for custom client messages 20 years ago
runge 2cc1b1d3e7 x11vnc: synchronous mode for -remote, string cleanup 20 years ago
dscho f28038b28a don't mix up width & height! 20 years ago
dscho 658b65ad0c support MinGW32! 21 years ago
dscho 28d09a73ce release client list mutex earlier 21 years ago
dscho 3060d5fa15 output only via rfbErr 21 years ago
dscho 97299606da global structures/functions should have "rfb", "sra" or "zrle" as prefix,
while structure members should not
21 years ago
dscho 2a4a0f487e convert c++ comments to c comments 21 years ago
dscho 1589d04d50 debug 21 years ago
dscho 6bda09f03c fix CoRRE with maxRectsPerUpdate bug 21 years ago
dscho 35236477c4 all this moving and renaming needs changes in the cvsignores, too! 21 years ago
dscho fefcb9188a fix cursor trails (when not using cursor encoding and moving the cursor,
the redrawn part of the screen didn't get updated, and so left cursor trails).
21 years ago
dscho 2b8c2a5c3a add client_examples/, add SDLvncviewer, libvncclient API changes, suppress automake CFLAGS nagging 21 years ago
runge e3c8cddef9 x11vnc: view-only plain passwd: -viewpasswd and 2nd line of -passwdfile 21 years ago
dscho 876868553d move the library into libvncserver/, x11vnc into x11vnc/ 21 years ago