Commit Graph

69 Commits (79310af7e7a289d2baf1bdc295daefdcc76ecc0e)

Author SHA1 Message Date
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 Rohit´s 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