Set opcode correctly for binary frames.
[libvncserver.git] / NEWS
bloba5d0a890d5770e28f5eb32814fff76cf82a67fa8
1 0.9.9
2    - Overall changes:
3      * Added noVNC HTML5 VNC viewer (http://kanaka.github.com/noVNC/) connect possibility
4        to our http server. Pure JavaScript, no Java plugin required anymore! (But a
5        recent browser...)
6      * Added a GTK+ VNC viewer example.
8    - LibVNCServer/LibVNCClient:
9      * Added support to build for Google Android.
10      * Complete IPv6 support in both LibVNCServer and LibVNCClient.
12    - LibVNCServer:
13      * Split two event-loop related functions out of the rfbProcessEvents() mechanism.
14        This is required to be able to do proper event loop integration with Qt. Idea was
15        taken from Vino's libvncserver fork.
16      * Added TightPNG (http://wiki.qemu.org/VNC_Tight_PNG) encoding support. Like the
17        original Tight encoding, this still uses JPEG, but ZLIB encoded rects are encoded
18        with PNG here.
19      * Added suport for serving VNC sessions through WebSockets
20        (http://en.wikipedia.org/wiki/WebSocket), a web technology providing for multiplexing
21        bi-directional, full-duplex communications channels over a single TCP connection.
22      * Support connections from the Mac OS X built-in VNC client to LibVNCServer
23        instances running with no password.
24      * Replaced the Tight encoder with a TurboVNC one which is tremendously faster in most
25        cases, especially with high-color video or 3D workloads.
26        (http://www.virtualgl.org/pmwiki/uploads/About/tighttoturbo.pdf)
28    - LibVNCClient:
29      * Added support to only listen for reverse connections on a specific IP address.
30      * Support for using OpenSSL instead of GnuTLS. This could come in handy on embedded
31        devices where only this TLS implementation is available.
32      * Added support to connect to UltraVNC Single Click servers.
34 0.9.8.2
35    - Fixed a regression that crept in with the Apple Remote Desktop support.
37 0.9.8.1
38    - Fixed an ABI compatibility issue.
40 0.9.8
41    - Overall changes:
42      * Automagically generated API documentation using doxygen.
43      * Added support for pkg-config.
44      * Fixed Mingw32 cross compilation.
45      * Fixed CMake build system.
47    - LibVNCServer/LibVNCClient:
48      * All files used by _both_ LibVNCServer and LibVNCClient were put into
49        a 'common' directory, reducing code duplication.
50      * Implemented xvp VNC extension.
51      * Updated minilzo library used for Ultra encoding to ver 2.04.
52        According to the minilzo README, this brings a significant
53        speedup on 64-bit architechtures.
55    - LibVNCServer:
56      * Thread safety for ZRLE, Zlib, Tight, RRE, CoRRE and Ultra encodings.
57        This makes all VNC encodings safe to use with a multithreaded server.
58      * A DisplayFinishedHook for LibVNCServer. If set, this hook gets called
59        just before rfbSendFrameBufferUpdate() returns.
60      * Fix for tight security type for RFB 3.8 in TightVNC file transfer
61        (Debian Bug #517422).
63    - LibVNCClient:
64      * Unix sockets support.
65      * Anonymous TLS security type support.
66      * VeNCrypt security type support.
67      * MSLogon security type support.
68      * ARD (Apple Remote Desktop) security type support.
69      * UltraVNC Repeater support.
70      * A new FinishedFrameBufferUpdate callback that is invoked after each
71        complete framebuffer update.
72      * A new non-forking listen (reverse VNC) function that works under
73        Windows.
74      * IPv6 support. LibVNCClient is now able to connect to IPv6 VNC servers.
75      * IP QoS support. This enables setting the DSCP/Traffic Class field of
76        IP/IPv6 packets sent by a client. For example starting a client with
77        -qosdscp 184 marks all outgoing traffic for expedited forwarding.
78        Implementation for Win32 is still a TODO, though.
79      * Fixed hostname resolution problems under Windows.
81    - SDLvncviewer
82      * Is now resizable and can do key repeat, mouse wheel scrolling
83        and clipboard copy and paste.
85    - LinuxVNC:
86      * Fix for no input possible because of ctrl key being stuck.
87        Issue was reported as Debian bug #555988.
90 0.9.7
91    Mark sent me patches to no longer need C++ for ZRLE encoding!
92    added --disable-cxx Option for configure
93    x11vnc changes from Karl Runge:
94       - Changed all those whimpy printf(...)'s into manly fprintf(stdxxx,...)'s.
96       - Added -q switch (quiet) to suppress printing all the debug-looking output.
98       - Added -bg switch to fork into background after everything is set up.
99         (checks for LIBVNCSERVER_HAVE_FORK and LIBVNCSERVER_HAVE_SETSID)
101       - Print this string out to stdout:  'PORT=XXXX' (usually XXXX = 5900).
102         Combining with -bg, easy to write a ssh/rsh wrapper with something like:
103         port=`ssh $host "x11vnc -bg .."` then run vncviewer based on $port output.
104         (tunneling the vnc traffic thru ssh a bit more messy, but doable)
106       - Quite a bit of code to be more careful when doing 8bpp indexed color, e.g.
107         not assuming NCOLORS is 256, handling 8bit TrueColor and Direct Color, etc
108         (I did all this probably in April, not quite clear in my mind now, but
109         I did test it out a fair amount on my old Sparcstation 20 wrt a user's
110         questions).
111    introduce rfbErr for Errors (Erik)
112    make rfbLog overridable (suggested by Erik)
113    don't reutrn on EINTR in WriteExact()/ReadExact() (suggested by Erik)
114    use AX_PREFIX_CONFIG_H to prefix constants in config.h to avoid
115         name clashes (also suggested by Erik)
116    transformed Bool, KeySym, Pixel to rfbBool, rfbKeySym, rfbPixel
117         (as suggested by Erik)
118    purged exit() calls (suggested by Erik)
119    fixed bug with maxRectsPerUpdate and Tight Encoding (these are incompatible)
120    checked sync with TightVNC 1.2.8:
121         viewonly/full passwords; if given a list, only the first is a full one
122         vncRandomBytes is a little more secure now
123         new weights for tight encoding
124    checked sync with RealVNC 3.3.7
125         introduced maxRectsPerUpdate
126    added first alpha version of LibVNCClient
127    added simple and simple15 example (really simple examples)
128    finally got around to fix configure in CVS
129    long standing http bug (.jar was sent twice) fixed by a friend of Karl named Mike
130    http options in cargs
131    when closing a client and no longer listening for new ones, don't crash
132    fixed a bug with ClientConnectionGone
133    endianness is checked at configure time
134    fixed a bug that prevented the first client from being closed
135    fixed that annoying "libvncserver-config --link" bug
136    make rfbReverseByte public (for rdp2vnc)
137    fixed compilation on OS X, IRIX, Solaris
138    install target for headers is now ${prefix}/include/rfb ("#include <rfb/rfb.h>")
139    renamed "sraRegion.h" to "rfbregion.h"
140    CARD{8,16,32} are more standard uint{8,16,32}_t now
141    fixed LinuxVNC colour handling
142    fixed a bug with pthreads where the connection was not closed
143    moved vncterm to main package (LinuxVNC included)
144    portability fixes (IRIX, OSX, Solaris)
145    more portable way to determine endianness and types of a given size
146         through autoconf based methods
148    rpm packaging through autoconf
149    autoconf'ed the whole package (including optional support for zlib,
150         pthreads and libjpeg as well as zrle/c++)
151    moved appropriate files to contrib/ and examples/ respectively
152    fixed long standing cargs bug (Justin "Zippy" Dearing)
153    Even better x11vnc from Karl J. Runge! (supports different kbd layouts of
154         client/server)
155    Better x11vnc from Karl J. Runge!
156    fixed severe bug (Const Kaplinsky)
157    got patch from Const Kaplisnky with CursorPosUpdate encoding and some Docs
158    sync'ed with newest RealVNC (ZRLE encoding)
159    a HTTP request for tunnelling was added (to fool strict web proxies)
160    sync'ed with TightVNC 1.2.5
162    support for NewFB from Const Kaplinsky
163    memory leaks squashed (localtime pseudo leak is still there :-)
164    small improvements for OSXvnc (still not working correctly)
165    synced with TightVNC 1.2.3
166    solaris compile cleanups
167    many x11vnc improvements
168    added backchannel, an encoding which needs special clients to pass
169         arbitrary data to the client
170    changes from Tim Jansen regarding multi threading and client blocking
171         as well as C++ compliancy
172    x11vnc can be controlled by starting again with special options if compiling
173         with LOCAL_CONTROL defined
175    added x11vnc, a x0rfbserver clone
176    regard deferUpdateTime in processEvents, if usec<0
177    initialize deferUpdateTime (memory "leak"!)
178    changed command line handling (arguments are parsed and then removed)
179    added very simple example: zippy
180    added rfbDrawLine, rfbDrawPixel
182    inserted a deferUpdate mechanism (X11 independent).
183    removed deletion of requestedRegion
184    added rfbLoadConsoleFont
185    fixed font colour handling.
186    added rfbSelectBox
187    added rfbDrawCharWithClip to allow for clipping and a background colour.
188    fixed font colours
189    added rfbFillRect
190    added IO function to check password.
191    rfbNewClient now sets the socket in the fd_set (for the select() call)
192    when compiling the library with HAVE_PTHREADS and an application
193         which includes "rfb.h" without, the structures got mixed up.
194         So, the pthreads section is now always at the end, and also
195         you get a linker error for rfbInitServer when using two different
196         pthread setups.
197    fixed two deadlocks: when setting a cursor and when using CopyRect
198    fixed CopyRect when copying modified regions (they lost the modified
199          property)
200    WIN32 target compiles and works for example :-)
201    fixed CopyRect (was using the wrong order of rectangles...)
202          should also work with pthreads, because copyrects are
203          always sent immediately (so that two consecutive copy rects
204          cannot conflict).
205    changed rfbUndrawCursor(rfbClientPtr) to (rfbScreenInfoPtr), because
206            this makes more sense!
207    flag backgroundLoop in rfbScreenInfo (if having pthreads)
208    CopyRect & CopyRegion were implemented.
209         if you use a rfbDoCopyR* function, it copies the data in the
210         framebuffer. If you prefer to do that yourself, use rfbScheduleCopyR*
211         instead; this doesn't modify the frameBuffer.
212    added flag to optionally not send XCursor updates, but only RichCursor,
213         or if that is not possible, fall back to server side cursor.
214         This is useful if your cursor has many nice colours.
215    fixed java viewer on server side:
216         SendCursorUpdate would send data even before the client pixel format
217         was set, but the java applet doesn't like the server's format.
218    fixed two pthread issues:
219         rfbSendFramebuffer was sent by a ProcessClientMessage function
220         (unprotected by updateMutex).
221         cursor coordinates were set without protection by cursorMutex
222    source is now equivalent to TridiaVNC 1.2.1
223    pthreads now work (use iterators!)
224    cursors are supported (rfbSetCursor automatically undraws cursor)
225    support for 3 bytes/pixel (slow!)
226    server side colourmap support
227    fixed rfbCloseClient not to close the connection (pthreads!)
228         this is done lazily (and with proper signalling).
229    cleaned up mac.c (from original OSXvnc); now compiles (untested!)
230    compiles cleanly on Linux, IRIX, BSD, Apple (Darwin)
231    fixed prototypes
233    rewrote API to use pseudo-methods instead of required functions.
234    lots of clean up.
235    Example can show symbols now.
236    All encodings
237    HTTP