summaryrefslogtreecommitdiffstats
path: root/NEWS
blob: 8618efe793146045734cee13bcd7ffe61e095062 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
0.9.11
   - Overall changes:
     * LibVNCServer/LibVNCClient development now uses continous intregration,
       provided by TravisCI.

   - LibVNCClient:
     * Now initializes libgcrypt before use if the application did not do it.
       Fixes a crash when connection to Mac hosts
       (https://github.com/LibVNC/libvncserver/issues/45).
     * Various fixes that result in more stable handling of malicious or broken
       servers.
     * Removed broken and unmaintained H264 decoding.
     * Some documentation fixes.
     * Added hooks to WriteToTLS() for optional protection by mutex.

   - LibVNCServer:
     * Stability fixes for the WebSocket implementation.
     * Replaced SHA1 implementation with the one from RFC 6234.
     * The built-in HTTP server does not allow directory traversals anymore.
     * The built-in HTTP now sends correct MIME types for CSS and SVG.
     * Added support for systemd socket activation.
     * Made it possible to get autoPort behavior with either ipv4 or ipv6
       disabled.
     * Fixed starting of an onHold-client in threaded mode.

0.9.10
   - Overall changes:
     * Moved the whole project from sourceforge to https://libvnc.github.io/.
     * Cleaned out the autotools build system which now uses autoreconf.
     * Updated noVNC HTML5 client to latest version.
     * Split out x11vnc sources into separate repository at
       https://github.com/LibVNC/x11vnc
     * Split out vncterm sources into separate repository at
       https://github.com/LibVNC/vncterm
     * Split out VisualNaCro sources into separate repository at
       https://github.com/LibVNC/VisualNaCro
     * Merged Debian patches.

   - LibVNCServer/LibVNCClient:
     * Fixed some security-related buffer overflow cases.
     * Added compatibility headers to make LibVNCServer/LibVNCClient build on native
       Windows 8.
     * Update LZO to version 2.07, fixing CVE-2014-4607.

   - LibVNCServer:
     * Merged patches from KDE/krfb.
     * Can now do IPv6 without IPv4.
     * Fixed a use-after-free issue in scale.c.

0.9.9
   - Overall changes:
     * Added noVNC HTML5 VNC viewer (http://kanaka.github.com/noVNC/) connect possibility
       to our http server. Pure JavaScript, no Java plugin required anymore! (But a
       recent browser...)
     * Added a GTK+ VNC viewer example.

   - LibVNCServer/LibVNCClient:
     * Added support to build for Google Android.
     * Complete IPv6 support in both LibVNCServer and LibVNCClient.

   - LibVNCServer:
     * 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.
     * Added TightPNG (http://wiki.qemu.org/VNC_Tight_PNG) encoding support. Like the
       original Tight encoding, this still uses JPEG, but ZLIB encoded rects are encoded
       with PNG here.
     * Added suport for serving VNC sessions through WebSockets
       (http://en.wikipedia.org/wiki/WebSocket), a web technology providing for multiplexing
       bi-directional, full-duplex communications channels over a single TCP connection.
     * Support connections from the Mac OS X built-in VNC client to LibVNCServer
       instances running with no password.
     * Replaced the Tight encoder with a TurboVNC one which is tremendously faster in most
       cases, especially with high-color video or 3D workloads.
       (http://www.virtualgl.org/pmwiki/uploads/About/tighttoturbo.pdf)

   - LibVNCClient:
     * Added support to only listen for reverse connections on a specific IP address.
     * Support for using OpenSSL instead of GnuTLS. This could come in handy on embedded
       devices where only this TLS implementation is available.
     * Added support to connect to UltraVNC Single Click servers.

0.9.8.2
   - Fixed a regression that crept in with the Apple Remote Desktop support.

0.9.8.1
   - Fixed an ABI compatibility issue.

0.9.8
   - Overall changes:
     * Automagically generated API documentation using doxygen.
     * Added support for pkg-config.
     * Fixed Mingw32 cross compilation.
     * Fixed CMake build system.

   - LibVNCServer/LibVNCClient:
     * All files used by _both_ LibVNCServer and LibVNCClient were put into
       a 'common' directory, reducing code duplication.
     * Implemented xvp VNC extension.
     * Updated minilzo library used for Ultra encoding to ver 2.04.
       According to the minilzo README, this brings a significant
       speedup on 64-bit architectures.

   - LibVNCServer:
     * Thread safety for ZRLE, Zlib, Tight, RRE, CoRRE and Ultra encodings.
       This makes all VNC encodings safe to use with a multithreaded server.
     * A DisplayFinishedHook for LibVNCServer. If set, this hook gets called
       just before rfbSendFrameBufferUpdate() returns.
     * Fix for tight security type for RFB 3.8 in TightVNC file transfer
       (Debian Bug #517422).

   - LibVNCClient:
     * Unix sockets support.
     * Anonymous TLS security type support.
     * VeNCrypt security type support.
     * MSLogon security type support.
     * ARD (Apple Remote Desktop) security type support.
     * UltraVNC Repeater support.
     * A new FinishedFrameBufferUpdate callback that is invoked after each
       complete framebuffer update.
     * A new non-forking listen (reverse VNC) function that works under
       Windows.
     * IPv6 support. LibVNCClient is now able to connect to IPv6 VNC servers.
     * IP QoS support. This enables setting the DSCP/Traffic Class field of
       IP/IPv6 packets sent by a client. For example starting a client with
       -qosdscp 184 marks all outgoing traffic for expedited forwarding.
       Implementation for Win32 is still a TODO, though.
     * Fixed hostname resolution problems under Windows.

   - SDLvncviewer
     * Is now resizable and can do key repeat, mouse wheel scrolling
       and clipboard copy and paste.

   - LinuxVNC:
     * Fix for no input possible because of ctrl key being stuck.
       Issue was reported as Debian bug #555988.


0.9.7
   Mark sent me patches to no longer need C++ for ZRLE encoding!
   added --disable-cxx Option for configure
   x11vnc changes from Karl Runge:
      - Changed all those whimpy printf(...)'s into manly fprintf(stdxxx,...)'s.

      - Added -q switch (quiet) to suppress printing all the debug-looking output.

      - Added -bg switch to fork into background after everything is set up.
        (checks for LIBVNCSERVER_HAVE_FORK and LIBVNCSERVER_HAVE_SETSID)

      - Print this string out to stdout:  'PORT=XXXX' (usually XXXX = 5900).
        Combining with -bg, easy to write a ssh/rsh wrapper with something like:
        port=`ssh $host "x11vnc -bg .."` then run vncviewer based on $port output.
        (tunneling the vnc traffic through ssh a bit more messy, but doable)

      - Quite a bit of code to be more careful when doing 8bpp indexed color, e.g.
        not assuming NCOLORS is 256, handling 8bit TrueColor and Direct Color, etc
        (I did all this probably in April, not quite clear in my mind now, but
        I did test it out a fair amount on my old Sparcstation 20 wrt a user's
        questions).
   introduce rfbErr for Errors (Erik)
   make rfbLog overridable (suggested by Erik)
   don't reutrn on EINTR in WriteExact()/ReadExact() (suggested by Erik)
   use AX_PREFIX_CONFIG_H to prefix constants in config.h to avoid
	name clashes (also suggested by Erik)
   transformed Bool, KeySym, Pixel to rfbBool, rfbKeySym, rfbPixel
	(as suggested by Erik)
   purged exit() calls (suggested by Erik)
   fixed bug with maxRectsPerUpdate and Tight Encoding (these are incompatible)
   checked sync with TightVNC 1.2.8:
	viewonly/full passwords; if given a list, only the first is a full one
	vncRandomBytes is a little more secure now
	new weights for tight encoding
   checked sync with RealVNC 3.3.7
	introduced maxRectsPerUpdate
   added first alpha version of LibVNCClient
   added simple and simple15 example (really simple examples)
   finally got around to fix configure in CVS
   long standing http bug (.jar was sent twice) fixed by a friend of Karl named Mike
   http options in cargs
   when closing a client and no longer listening for new ones, don't crash
   fixed a bug with ClientConnectionGone
   endianness is checked at configure time
   fixed a bug that prevented the first client from being closed
   fixed that annoying "libvncserver-config --link" bug
   make rfbReverseByte public (for rdp2vnc)
   fixed compilation on OS X, IRIX, Solaris
   install target for headers is now ${prefix}/include/rfb ("#include <rfb/rfb.h>")
   renamed "sraRegion.h" to "rfbregion.h"
   CARD{8,16,32} are more standard uint{8,16,32}_t now
   fixed LinuxVNC colour handling
   fixed a bug with pthreads where the connection was not closed
   moved vncterm to main package (LinuxVNC included)
   portability fixes (IRIX, OSX, Solaris)
   more portable way to determine endianness and types of a given size
	through autoconf based methods
0.5
   rpm packaging through autoconf
   autoconf'ed the whole package (including optional support for zlib,
	pthreads and libjpeg as well as zrle/c++)
   moved appropriate files to contrib/ and examples/ respectively
   fixed long standing cargs bug (Justin "Zippy" Dearing)
   Even better x11vnc from Karl J. Runge! (supports different kbd layouts of
	client/server)
   Better x11vnc from Karl J. Runge!
   fixed severe bug (Const Kaplinsky)
   got patch from Const Kaplisnky with CursorPosUpdate encoding and some Docs
   sync'ed with newest RealVNC (ZRLE encoding)
   a HTTP request for tunnelling was added (to fool strict web proxies)
   sync'ed with TightVNC 1.2.5
0.4
   support for NewFB from Const Kaplinsky
   memory leaks squashed (localtime pseudo leak is still there :-)
   small improvements for OSXvnc (still not working correctly)
   synced with TightVNC 1.2.3
   solaris compile cleanups
   many x11vnc improvements
   added backchannel, an encoding which needs special clients to pass
	arbitrary data to the client
   changes from Tim Jansen regarding multi threading and client blocking
	as well as C++ compliancy
   x11vnc can be controlled by starting again with special options if compiling
	with LOCAL_CONTROL defined
0.3
   added x11vnc, a x0rfbserver clone
   regard deferUpdateTime in processEvents, if usec<0
   initialize deferUpdateTime (memory "leak"!)
   changed command line handling (arguments are parsed and then removed)
   added very simple example: zippy
   added rfbDrawLine, rfbDrawPixel
0.2
   inserted a deferUpdate mechanism (X11 independent).
   removed deletion of requestedRegion
   added rfbLoadConsoleFont
   fixed font colour handling.
   added rfbSelectBox
   added rfbDrawCharWithClip to allow for clipping and a background colour.
   fixed font colours
   added rfbFillRect
   added IO function to check password.
   rfbNewClient now sets the socket in the fd_set (for the select() call)
   when compiling the library with HAVE_PTHREADS and an application
	which includes "rfb.h" without, the structures got mixed up.
	So, the pthreads section is now always at the end, and also
	you get a linker error for rfbInitServer when using two different
	pthread setups.
   fixed two deadlocks: when setting a cursor and when using CopyRect
   fixed CopyRect when copying modified regions (they lost the modified
	 property)
   WIN32 target compiles and works for example :-)
   fixed CopyRect (was using the wrong order of rectangles...)
   	 should also work with pthreads, because copyrects are
	 always sent immediately (so that two consecutive copy rects
	 cannot conflict).
   changed rfbUndrawCursor(rfbClientPtr) to (rfbScreenInfoPtr), because
   	   this makes more sense!
   flag backgroundLoop in rfbScreenInfo (if having pthreads)
   CopyRect & CopyRegion were implemented.
	if you use a rfbDoCopyR* function, it copies the data in the
	framebuffer. If you prefer to do that yourself, use rfbScheduleCopyR*
	instead; this doesn't modify the frameBuffer.
   added flag to optionally not send XCursor updates, but only RichCursor,
	or if that is not possible, fall back to server side cursor.
	This is useful if your cursor has many nice colours.
   fixed java viewer on server side:
	SendCursorUpdate would send data even before the client pixel format
	was set, but the java applet doesn't like the server's format.
   fixed two pthread issues:
	rfbSendFramebuffer was sent by a ProcessClientMessage function
	(unprotected by updateMutex).
	cursor coordinates were set without protection by cursorMutex
   source is now equivalent to TridiaVNC 1.2.1
   pthreads now work (use iterators!)
   cursors are supported (rfbSetCursor automatically undraws cursor)
   support for 3 bytes/pixel (slow!)
   server side colourmap support
   fixed rfbCloseClient not to close the connection (pthreads!)
	this is done lazily (and with proper signalling).
   cleaned up mac.c (from original OSXvnc); now compiles (untested!)
   compiles cleanly on Linux, IRIX, BSD, Apple (Darwin)
   fixed prototypes
0.1
   rewrote API to use pseudo-methods instead of required functions.
   lots of clean up.
   Example can show symbols now.
   All encodings
   HTTP