Commit Graph

1153 Commits (e2beac6d939ac6c07114b42a4708d2ea78c35295)
 

Author SHA1 Message Date
Christian Beier e2beac6d93 LibVNCClient: Fix build with no SSL/TLS library available. 13 years ago
Christian Beier f606179c9c LibVNCClient: properly free the openssl session stuff on shutdown. 13 years ago
Christian Beier 77286f0831 LibVNCClient: Remove all those WITH_CLIENT_TLS #ifdefs and move GnuTLS specific functionality into tls_gnutls.c. 13 years ago
Christian Beier 7bf369a04b Unify GnuTLS vs OpenSSL build systems stuff between libvncclient and libvncserver. 13 years ago
Christian Beier 5e9da5a2f8 Add the OpenSSL libvncclient TLS version to the build system. 13 years ago
Christian Beier 98f4037785 Update our copy of noVNC.
Bugfixes and support for tight encoding with zlib.
13 years ago
Christian Beier efcdab50cc Merge branch 'server-ipv6' 13 years ago
Christian Beier 2d50fc84f7 IPv6 support for LibVNCServer, part four: add copyright notices to files with non-trivial changes. 13 years ago
Johannes Schindelin ee4593425f SDLvncviewer: map Apple/Windows keys correctly
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
13 years ago
Johannes Schindelin 2d85009868 gitignore the compiled gtkvncclient
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
13 years ago
Johannes Schindelin f11e49b4e7 SDLvncviewer: fix the SDL_KEYUP issue
Keys got stuck because unicode is 0 upon SDL_KEYUP events, even if the
same key event sets unicode correctly in SDL_KEYDOWN events.

Work around that for the common case (ASCII) using the fact that both SDL
and X11 keysyms were created with ASCII compatibility in mind. So as long
as we type ASCII symbols, we can map things trivially.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
13 years ago
Christian Beier 75bfb1f5d3 IPv6 support for LibVNCServer, part three: make reverse connections 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.
13 years ago
Christian Beier edc75fa4f4 IPv6 support for LibVNCServer, part onepointseven: Plug a memleak.
We have to properly free the addrinfo struct when jumping out of the
function.
13 years ago
Christian Beier b7e043abad IPv6 support for LibVNCServer, part twopointone: properly surround IPv6 addresses with [] for noVNC URL.
Some browsers omit the square brackets in document.location.hostname, so add them if missing.
13 years ago
Christian Beier e7dfd0a9d6 IPv6 support for LibVNCServer, part two: Let the http server listen on IPv6, too.
As done with the RFB sockets, this uses a separate-socket approach as well.
13 years ago
Christian Beier 0e74b5db9a IPv6 support for LibVNCServer, part onepointsix: fix a small logic error.
Without this, we would have gotten a stale IPv4 socket in a race
condition.
13 years ago
Christian Beier 23413bf120 IPv6 support for LibVNCServer, part onepointfive: Fix compilation with IPv6 missing.
There was an oversight that crept in...
13 years ago
Christian Beier 83a7c713a9 IPv6 support for LibVNCServer, part one: accept IPv4 and IPv6 connections.
This uses a separate-socket approach since there are systems that do not
support dual binding sockets under *any* circumstances, for instance
OpenBSD. Using separate sockets for IPv4 and IPv6 is thus more portable
than having a v6 socket handle v4 connections as well.

Signed-off-by: Christian Beier <dontmind@freeshell.org>
13 years ago
Mateus Cesar Groess 1078e8a8b0 Here is a port of SDLvncviewer to GTK+2.
I think it may encourage people to implement more features for the viewer,
because a GTK GUI seems to be easier to implement than a SDL one
(and it is more integrated with the major Linux Desktops out there).

Signed-off-by: Christian Beier <dontmind@freeshell.org>
13 years ago
Christian Beier 4ed29e0a36 Update AUTHORS. 13 years ago
Kyle J. McKay 5c57575c35 Support Mac OS X vnc client with no password
Support connections from the Mac OS X built-in VNC client to
LibVNCServers running with no password and advertising a server
version of 3.7 or greater.
13 years ago
Johannes Schindelin 8121e8445d Add Luca to the AUTHORS
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
13 years ago
Luca Stauble fe2e2e4b59 Add an optional parameter to specify the ip address for reverse connections
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>
13 years ago
Christian Beier 5ea7e51e6b Merge branch 'websockets' of https://github.com/kanaka/libvncserver 13 years ago
Gernot Tenchio f597599d2a websockets: removed debug message 13 years ago
Gernot Tenchio 4d9178dcf2 websockets: restore errno after logging an error 13 years ago
Gernot Tenchio 9e09040699 cmake: adapted to latest websocket crypto changes 13 years ago
Christian Beier 66b0603b5a Small changes to LibNVCClient doxygen documentation. 13 years ago
Christian Beier abf6fad894 Merge branch 'master' of https://github.com/watkipet/libvncserver 13 years ago
Christian Beier 50d8a33782 Fix build error when libpng is available, but libjpeg is not.
The png stuff in tight.c depends on code in tight.c that uses libjpeg
features. We could probably seperate that, but for now the dependency
for 'tight' goes:

PNG depends on JPEG depends on ZLIB.

This is reflected in Makefile.am now.

NB: Building tight.c with JPEG but without PNG is still possible,
    but nor the other way around.
13 years ago
Christian Beier c42ea2fa7c Use AM_SILENT_RULES only when it's actually available.
Otherwise building breaks with older make versions. Happens on OS X
10.6 for instance.
13 years ago
Christian Beier 49e59435e3 Merge branch 'included-novnc' 13 years ago
Christian Beier bdd7e25d2d Move the java stuff into webclients/java-applet. 13 years ago
Christian Beier faadd48448 Rename 'classes' dir to 'webclients'. 13 years ago
Christian Beier 7cb0e4a9a9 novnc client: use the client's notion about the server hostname instead of what the server thinks. 13 years ago
Christian Beier 4d3464236b Fix tiny typo. 13 years ago
Christian Beier efdb2f06d4 Add 0.9.8.2 NEWS entry. 13 years ago
Christian Beier 27b4372c94 When GetCredential() callback is not set, don't use authentications requiring it.
The auth methods that employ Getcredential() will only be used if the client's
GetCredential callback is actually set.
13 years ago
Christian Beier 14c8943c92 Update ChangeLog for 0.9.8.1. 13 years ago
Christian Beier 609ccec1a0 Update version number in autotools && cmake, NEWS entry. 13 years ago
Peter Watkins b551e05edb Added comments. 14 years ago
Christian Beier 3df7537a30 Fix deadlock in threaded mode when using nested rfbClientIteratorNext() calls.
Lengthy explanation follows...

First, the scenario before this patch:

We have three clients 1,2,3 connected. The main thread loops through
them using rfbClientIteratorNext() (loop L1) and is currently at
client 2 i.e. client 2's cl_2->refCount is 1. At this point we need to
loop again through the clients, with cl_2->refCount == 1, i.e. do a
loop L2 nested within loop L1.

BUT: Now client 2 disconnects, it's clientInput thread terminates its
clientOutput thread and calls rfbClientConnectionGone(). This LOCKs
clientListMutex and WAITs for cl_2->refCount to become 0. This means
this thread waits for the main thread to release cl_2. Waiting, with
clientListMutex LOCKed!

Meanwhile, the main thread is about to begin the inner
rfbClientIteratorNext() loop L2. The first call to rfbClientIteratorNext()
LOCKs clientListMutex. BAAM. This mutex is locked by cl2's clientInput
thread and is only released when cl_2->refCount becomes 0. The main thread
would decrement cl_2->refCount when it would continue with loop L1. But
it's waiting for cl2's clientInput thread to release clientListMutex. Which
never happens since this one's waiting for the main thread to decrement
cl_2->refCount. DEADLOCK.

Now, situation with this patch:

Same as above, but when client 2 disconnects it's clientInput thread
rfbClientConnectionGone(). This again LOCKs clientListMutex, removes cl_2
from the linked list and UNLOCKS clientListMutex. The WAIT for
cl_2->refCount to become 0 is _after_ that. Waiting, with
clientListMutex UNLOCKed!

Therefore, the main thread can continue, do the inner loop L2 (now only
looping through 1,3 - 2 was removed from the linked list) and continue with
loop L1, finally decrementing cl_2->refCount, allowing cl2's clientInput
thread to continue and terminate. The resources held by cl2 are not free()'d
by rfbClientConnectionGone until cl2->refCount becomes 0, i.e. loop L1 has
released cl2.
14 years ago
Johannes Schindelin e3b8aaab86 Update AUTHORS
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
14 years ago
George Fleury fba4818ae8 Fix memory leak
I was debbuging some code tonight and i found a pointer that is not been
freed, so i think there is maybe a memory leak, so it is...

there is the malloc caller reverse order:

( malloc cl->statEncList )
	<- rfbStatLookupEncoding
	<- rfbStatRecordEncodingSent
	<- rfbSendCursorPos
	<- rfbSendFramebufferUpdate
	<- rfbProcessEvents

I didnt look the whole libvncserver api, but i am using
rfbReverseConnection with rfbProcessEvents, and then when the client
connection dies, i am calling a rfbShutdownServer and rfbScreenCleanup,
but the malloc at rfbStatLookupEncoding isnt been freed.

So to free the stats i added a rfbResetStats(cl) after rfbPrintStats(cl)
at rfbClientConnectionGone in rfbserver.c before free the cl pointer. (at
rfbserver.c line 555). And this, obviously, is correcting the memory leak.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
14 years ago
Johannes Schindelin 9d0b80059a Hopefully fix the crash when updating from 0.9.7 or earlier
For backwards-compatibility reasons, we can only add struct members to the
end. That way, existing callers still can use newer libraries, as the
structs are always allocated by the library (and therefore guaranteed to
have the correct size) and still rely on the same position of the parts
the callers know about.

Reported by Luca Falavigna.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
14 years ago
Johannes Schindelin 84be9d3f49 SDLvncviewer: make it resizable by default
I got annoyed having to specify -resizable all the time; I never use it in
another mode anymore, since I am on a netbook.

The option -no-resizable was added to be able to switch off that feature.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
14 years ago
Christian Beier 5756b133f7 httpd: fix sending of binary data such as images.
We do this simply by omitting the content-type and let the browser
decide upon the mime-type of the sent file. Only exception is
'index.vnc', where we do set the content-type since some browsers
fail to detect it's html when it's ending in '.vnc'

Also, remove superfluous #defines. We close the connection always.
14 years ago
Christian Beier 03d9b51917 Fix typo && use proper website. 14 years ago
Christian Beier edbd5ab8d4 Add noVNC HTML5 client connect possibility to our http server.
Pure JavaScript, no Java plugin required anymore! (But a recent browser...)
14 years ago
Christian Beier bffd9ee33b Merge branch 'websockets' 14 years ago