Commit Graph

172 Commits (a2a6e256998c23af2d91a4475aa6d65893bf5bb5)

Author SHA1 Message Date
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>
15 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>
15 years ago
Joel Martin 7a77cc32b2 websockets: Properly parse Hixie-76 handshake.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
15 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>
15 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>
15 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>
15 years ago
Joel Martin 353b35e86a tightPng: check even for SendGradientRect.
Signed-off-by: Christian Beier <dontmind@freeshell.org>
15 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>
15 years ago
Christian Beier 17ce0c5628 Remove some unused variables. 15 years ago
George Kiagiadakis ddd9b5ac7b Fix rfbProcessNewConnection to return some value instead of void.
BUG: 256891

Signed-off-by: Christian Beier <dontmind@freeshell.org>
15 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>
15 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>
15 years ago
Christian Beier 984706076c Revert "Fix memory corruption bug."
This reverts commit c1363fa958.

The proper fix was already in 804335f9d2.
15 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>
15 years ago
George Kiagiadakis 35246edddd Fix compilation in c89 mode.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
15 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 ;-)
15 years ago
Christian Beier fe1ca16e9b Fix (most) MinGW32 compiler warnings. 15 years ago
Christian Beier 56234cd0b6 Fix remaining compiler warnings. 15 years ago
Christian Beier e832999a58 Set proper file permissions for source files. 15 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().
15 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>
15 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>
15 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>
15 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>
15 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>
15 years ago
runge 658bef5fde Remove never used protocol version name string. 15 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>
15 years ago
Christian Beier a5f8d3a310 libvncserver: fix endless loop when server closed client in threaded mode.
Signed-off-by: Christian Beier <dontmind@freeshell.org>
16 years ago
Christian Beier 079394ca5b libvncserver sockets: favor per-screen maxclientwait over global one when set.
Signed-off-by: Christian Beier <dontmind@freeshell.org>
16 years ago
Christian Beier 453645a6ea libvncserver cleanup: remove rfbKeyFrame remnants. 16 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.
16 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>
16 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>
16 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>
16 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>
16 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
16 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>
16 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>
16 years ago
runge 69cd710dd2 year++; 16 years ago
runge c15b6165ab tightvnc-filetransfer/rfbtightserver.c: enabled fix
for tight security type for RFB 3.8 (debian bug 517422.)
16 years ago
runge f40b011182 Add locks of updateMutex in rfbRedrawAfterHideCursor() and
rfbSetClientColourMap().  Up listen limit from 5 to 32.
16 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>
17 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>
17 years ago
Johannes Schindelin f49a292783 Merge branch 'VeNCrypt' 17 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>
17 years ago
runge 0142acdded Some broken build environments treat fprintf(fh, buf) as a fatal error... 17 years ago
runge 804335f9d2 Thread safety for zrle, zlib, tight.
Proposed tight security type fix for debian bug 517422.
17 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>
17 years ago
runge dbfa4ad1f7 We seem to need to guard against freeing iterator 'i' twice in rfbSendFramebufferUpdate() (italc reported bug) 18 years ago
runge eaecbf4bec Handle colormaps with more than 256 colors. 18 years ago