| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
too.
As done with the RFB sockets, this uses a separate-socket approach as well.
|
|
|
|
|
| |
Without this, we would have gotten a stale IPv4 socket in a race
condition.
|
|
|
|
|
|
|
|
|
| |
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 <[email protected]>
|
| |
|
|
|
|
|
|
|
| |
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 <[email protected]>
|
|
|
|
|
|
|
| |
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 <[email protected]>
|
|
|
|
| |
Signed-off-by: Christian Beier <[email protected]>
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
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 <[email protected]>
Signed-off-by: Christian Beier <[email protected]>
|
|
|
|
|
|
|
| |
The header file and most of the functions referred to
do not exist in libvncserver.
Signed-off-by: Christian Beier <[email protected]>
|
|
|
|
|
|
|
| |
If set, this hook gets called just before
rfbSendFrameBufferUpdate() returns.
Signed-off-by: Christian Beier <[email protected]>
|
| |
|
|
|
|
| |
Proposed tight security type fix for debian bug 517422.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 <[email protected]>
|
| |
|
| |
|
| |
|
|
|
|
| |
Both PalmVNC and UltraVNC SetScale messages are supported
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
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.
|
|
|
|
| |
these hooks obsolete
|
|
|
|
| |
Thank you very much, Rohit!
|
|
|
|
| |
the processCustomClientMessage() method.
|
|
|
|
| |
I eventually saw the light and went with Rohit�s original approach.
|
| |
|
| |
|
|
|
|
| |
-fixscreen
|
| |
|
| |
|
|
|
|
| |
socklen_t test from configure.ac
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
configure.ac tweaks.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|