Fix a compiler warning.
[oweals/tinc.git] / NEWS
1 Version 1.0.19               June 25 2012
2
3  * Allow :: notation in IPv6 Subnets.
4
5  * Add support for systemd style socket activation.
6
7  * Allow environment variables to be used for the Name option.
8
9  * Add basic support for SOCKS proxies, HTTP proxies, and proxying through an
10    external command.
11
12 Version 1.0.18               March 25 2012
13
14  * Fixed IPv6 in switch mode by turning off DecrementTTL by default.
15
16  * Allow a port number to be specified in BindToAddress, which also allows tinc
17    to listen on multiple ports.
18
19  * Add support for multicast communication with UML/QEMU/KVM.
20
21 Version 1.0.17               March 10 2012
22
23  * The DeviceType option can now be used to select dummy, raw socket, UML and
24    VDE devices without needing to recompile tinc.
25
26  * Allow multiple BindToAddress statements.
27
28  * Decrement TTL value of IPv4 and IPv6 packets.
29
30  * Add LocalDiscovery option allowing tinc to detect peers that are behind the
31    same NAT.
32
33  * Accept Subnets passed with the -o option when StrictSubnets = yes.
34
35  * Disabling old RSA keys when generating new ones now also works properly on
36    Windows.
37
38 Version 1.0.16               July 23 2011
39
40  * Fixed a performance issue with TCP communication under Windows.
41
42  * Fixed code that, during network outages, would cause tinc to exit when it
43    thought two nodes with identical Names were on the VPN.
44
45 Version 1.0.15               June 24 2011
46
47  * Improved logging to file.
48
49  * Reduced amount of process wakeups on platforms which support pselect().
50
51  * Fixed ProcessPriority option under Windows.
52
53 Version 1.0.14               May  8 2011
54
55  * Fixed reading configuration files that do not end with a newline. Again.
56
57  * Allow arbitrary configuration options being specified on the command line.
58
59  * Allow all options in both tinc.conf and the local host config file.
60
61  * Configurable replay window, UDP send and receive buffers for performance tuning.
62
63  * Try harder to get UDP communication back after falling back to TCP.
64
65  * Initial support for attaching tinc to a VDE switch.
66
67  * DragonFly BSD support.
68
69  * Allow linking with OpenSSL 1.0.0.
70
71  Thanks to Brandon Black, Julien Muchembled, Michael Tokarev, Rumko and Timothy
72  Redaelli for their contributions to this version of tinc.
73
74 Version 1.0.13               Apr 11 2010
75
76  * Allow building tinc without LZO and/or Zlib.
77
78  * Clamp MSS of TCP packets in both directions.
79
80  * Experimental StrictSubnets, Forwarding and DirectOnly options,
81    giving more control over information and packets received from/sent to other
82    nodes.
83
84  * Ensure tinc never sends symbolic names for ports over the wire.
85
86 Version 1.0.12               Feb  3 2010
87
88  * Really allow fast roaming of hosts to other nodes in a switched VPN.
89
90  * Fixes missing or incorrect environment variables when calling host-up/down
91    and subnet-up/down scripts in some cases.
92
93  * Allow port to be specified in Address statements.
94
95  * Clamp MSS of TCP packets to the discovered path MTU.
96
97  * Let two nodes behind NAT learn each others current UDP address and port via
98    a third node, potentially allowing direct communications in a similar way to
99    STUN.
100
101 Version 1.0.11               Nov  1 2009
102
103  * Fixed potential crash when the HUP signal is sent.
104
105  * Fixes handling of weighted Subnets in switch and hub modes, preventing
106    unnecessary broadcasts.
107
108  * Works around a MinGW bug that caused packets to Windows nodes to always be
109    sent via TCP.
110
111  * Improvements to the PMTU discovery code, especially on Windows.
112
113  * Use UDP again in certain cases where 1.0.10 was too conservative and fell
114    back to TCP unnecessarily.
115
116  * Allow fast roaming of hosts to other nodes in a switched VPN.
117
118 Version 1.0.10               Oct 18 2009
119
120  * Fixed potential crashes during shutdown and (in rare conditions) when other
121    nodes disconnected from the VPN.
122
123  * Improved NAT handling: tinc now copes with mangled port numbers, and will
124    automatically fall back to TCP if direct UDP connection between nodes is not
125    possible. The TCPOnly option should not have to be used anymore.
126
127  * Allow configuration files with CRLF line endings to be read on UNIX.
128
129  * Disable old RSA keys when generating new ones, and raise the default size of
130    new RSA keys to 2048 bits.
131
132  * Many fixes in the path MTU discovery code, especially when Compression is
133    being used.
134
135  * Tinc can now drop privileges and/or chroot itself.
136
137  * The TunnelServer code now just ignores information from clients instead of
138    disconnecting them.
139
140  * Improved performance on Windows by using the new ProcessPriority option and
141    by making the handling of packets received from the TAP-Win32 adapter more
142    efficient.
143
144  * Code cleanups: tinc now follows the C99 standard, copyright headers have
145    been updated to include patch authors, checkpoint tracing and localisation
146    features have been removed.
147
148  * Support for (jailbroken) iPhone and iPod Touch has been added.
149
150  Thanks to Florian Forster, Grzegorz Dymarek and especially Michael Tokarev for
151  their contributions to this version of tinc.
152
153 Version 1.0.9                Dec 26 2008
154
155  * Fixed tinc as a service under Windows 2003.
156
157  * Fixed reading configuration files that do not end with a newline.
158
159  * Fixed crashes in situations where hostnames could not be resolved or hosts
160    would disconnect at the same time as session keys were exchanged.
161
162  * Improved default settings of tun and tap devices on BSD platforms.
163
164  * Make IPv6 sockets bind only to IPv6 on Linux.
165
166  * Enable path MTU discovery by default.
167
168  * Fixed a memory leak that occured when connections were closed.
169
170  Thanks to Max Rijevski for his contributions to this version of tinc.
171
172 Version 1.0.8                May 16 2007
173
174  * Fixed some memory and resource leaks.
175
176  * Made network sockets non-blocking under Windows.
177
178  Thanks to Scott Lamb and "dnk" for their contributions to this version of tinc.
179
180 Version 1.0.7                Jan  5 2007
181
182  * Fixed a bug that caused slow network speeds on Windows.
183
184  * Fixed a bug that caused tinc unable to write packets to the tun device on
185    OpenBSD.
186
187 Version 1.0.6                Dec 18 2006
188
189  * More flexible detection of the LZO libraries when compiling.
190
191  * Fixed a bug where broadcasts in switch and hub modes sometimes would not
192    work anymore when part of the VPN had become disconnected from the rest.
193
194 version 1.0.5                Nov 14 2006
195
196  * Lots of small fixes.
197
198  * Broadcast packets no longer grow in size with each hop. This should
199    fix switch mode (again).
200  
201  * Generic host-up and host-down scripts.
202
203  * Optionally dump graph in graphviz format to a file or a script.
204
205  * Support LZO 2.0 and later.
206
207  Thanks to Scott Lamb for his contributions to this version of tinc.
208
209 version 1.0.4                May  4 2005
210
211  * Fix switch and hub modes.
212
213  * Optionally start scripts when a Subnet becomes (un)reachable.
214
215 version 1.0.3                Nov 11 2004
216
217 * Show error message when failing to write a PID file.
218
219 * Ignore spaces at end of lines in config files.
220
221 * Fix handling of late packets.
222
223 * Unify BSD tun/tap device handling. This allows IPv6 on tun devices and
224   anything on tap devices as long as the underlying OS supports it.
225
226 * Handle IPv6 on Solaris tun devices.
227
228 * Allow tinc to work properly under Windows XP SP2.
229
230 * Allow VLAN tagged Ethernet frames in switch and hub mode.
231
232 * Experimental PMTUDiscovery, TunnelServer and BlockingTCP options.
233
234 version 1.0.2                Nov  8 2003
235
236 * Fix address and hostname resolving under Windows.
237
238 * Remove warnings about non-existing scripts and unsupported address families.
239
240 * Use the event logger under Windows.
241
242 * Fix quoting of filenames and command line arguments under Windows.
243
244 * Strict checks for length incoming network packets and return values of
245   cryptographic functions,
246
247 * Fix a bug in metadata handling that made the tinc daemon abort.
248
249 version 1.0.1                Aug 14 2003
250
251 * Allow empty lines in config files.
252
253 * Fix handling of spaces and backslashes in filenames under native Windows.
254
255 * Allow scripts to be executed under native Windows.
256
257 * Update documentation, make it less Linux specific.
258
259 version 1.0                  Aug  4 2003
260
261 * Lots of small bugfixes and code cleanups.
262
263 * Throughput doubled and latency reduced.
264
265 * Added support for LZO compression.
266
267 * No need to set MAC address or disable ARP anymore.
268
269 * Added support for Windows 2000 and XP, both natively and in a Cygwin
270   environment.
271
272 version 1.0pre8              Sep 16 2002
273
274 * More fixes for subnets with prefixlength undivisible by 8.
275
276 * Added support for NetBSD and MacOS/X.
277
278 * Switched from undirected graphs to directed graphs to avoid certain race
279   conditions and improve scalability.
280
281 * Generalized broadcasting and forwarding of protocol messages.
282
283 * Cleanup of source code.
284
285
286 version 1.0pre7              Apr  7 2002
287
288 * Don't do blocking read()s when getting a signal.
289
290 * Remove RSA key checking code, since it sometimes thinks perfectly good RSA
291   keys are bad.
292
293 * Fix handling of subnets when prefixlength isn't divisible by 8.
294
295
296 version 1.0pre6              Mar 27 2002
297
298 * Improvement of redundant links:
299
300   * Non-blocking connects.
301   
302   * Protocol broadcast messages can no longer go into an infinite loop.
303   
304   * Graph algorithm updated to look harder for direct connections.
305
306 * Good support for routing IPv6 packets over the VPN. Works on Linux,
307   FreeBSD, possibly OpenBSD but not on Solaris.
308
309 * Support for tunnels over IPv6 networks. Works on all supported
310   operating systems.
311
312 * Optional compression of UDP connections using zlib.
313
314 * Optionally let UDP connections inherit TOS field of tunneled packets.
315
316 * Optionally start scripts when certain hosts become (un)reachable.
317
318
319 version 1.0pre5              Feb  9 2002
320
321 * Security enhancements:
322
323   * Added sequence number and optional message authentication code to
324     the packets.
325
326   * Configurable encryption cipher and digest algorithms.
327
328 * More robust handling of dis- and reconnects.
329
330 * Added a "switch" and a "hub" mode to allow bridging setups.
331
332 * Preliminary support for routing of IPv6 packets.
333
334 * Supports Linux, FreeBSD, OpenBSD and Solaris.
335
336
337 It looks like this might be the last release before 1.0.
338
339
340 version 1.0pre4              Jan 17 2001
341
342 * Updated documentation; the documentation now reflects the
343   configuration as it is.
344
345 * Some internal changes to make tinc scale better for large
346   networks, such as using AVL trees instead of linked lists for the
347   connection list.  
348
349 * RSA keys can be stored in separate files if needed.  See the
350   documentation for more information.
351
352 * tinc has now been reported to run on Linux PowerPC and FreeBSD x86.
353
354
355
356 version 1.0pre3              Oct 31 2000
357
358 * The protocol has been redesigned, and although some details are
359   still under discussion, this is secure.  Care has been taken to
360   resist most, if not all, attacks.
361   
362 * Unfortunately this protocol is not compatible with earlier versions,
363   nor are earlier versions compatible with this version.  Because the
364   older protocol has huge security flaws, we feel that not
365   implementing backwards compatibility is justified.
366
367 * Some data about the protocol:
368
369   * It uses public/private RSA keys for authentication (this is the
370     actual fix for the security hole).
371
372   * All cryptographic functions have been taken out of tinc, instead
373     it uses the OpenSSL library functions.
374
375   * Offers support for multiple subnets per tinc daemon.
376
377 * New is also the support for the universal tun/tap device.  This
378   means better portability to FreeBSD and Solaris.
379
380 * tinc is tested to compile on Solaris, Linux x86, Linux alpha.
381
382 * tinc now uses the OpenSSL library for cryptographic operations.
383   More information on getting and installing OpenSSL is in the manual.
384   This also means that the GMP library is no longer required.
385
386 * Further, thanks to Enrique Zanardi, we have Spanish messages; Matias
387   Carrasco provided us with a Spanish translation of the manual.
388
389
390 What still needs to be done before 1.0:
391
392 * Documentation.  Especially since the protocol has changed, and a lot
393   of configuration directives have been added.
394
395
396
397
398 version 1.0pre2              May 31 2000
399
400 * This version has been internationalized; and a Dutch translation has          
401   been included.                                                                
402                                                                                 
403 * Two configuration variables have been added:                                  
404   * VpnMask - the IP network mask for the entire VPN, not just our              
405     subnet (as given by MyVirtualIP).  The Redhat and Debian packages           
406     use this variable in their system startup scripts, but it is                
407     ignored by tinc.                                                            
408   * Hostnames - if set to `yes', look up the names of IP addresses              
409     trying to connect to us.  Default set to `no', to prevent lockups           
410     during lookups.                                                             
411                                                                                 
412 * The system startup scripts for Debian and Redhat use                          
413   /etc/tinc/nets.boot to find out which networks need to be started             
414   during system boot.                                                           
415                                                                                 
416 * Fixes to prevent denial of service attacks by sending random data             
417   after connecting (and even when the connection has been established),         
418   either random garbage or just nonsensical protocol fields.                    
419                                                                                 
420 * tinc will retry to connect upon startup, does not quit if it doesn't          
421   work the first time.                                                          
422                                                                                 
423 * Hosts that are disconnected implicitly if we lose a connection get            
424   deleted from the internal list, to prevent hogging eachother with             
425   add and delete requests when the connection is restored.                      
426                                                                                 
427                                                                                 
428 What still needs to be done before 1.0:                                         
429                                                                                 
430 * Documentation.                                                                
431 * Failover ConnectTo lines, try another one if the first doesn't work.          
432
433
434
435
436 version 1.0pre1              May 12 2000
437  * New meta-protocol
438  * Various other bugfixes
439  * Documentation updates
440
441 version 0.3.3                Feb  9 2000
442  * Fixed bug that made tinc stop working with latest kernels (Guus
443    Sliepen)
444  * Updated the manual
445
446 version 0.3.2                Nov 12 1999
447  * no more `Invalid filedescriptor' when working with multiple
448    connections
449  * forward unknown packets to uplink
450
451 version 0.3.1                Oct 20 1999
452  * fixed a bug where tinc would exit without a trace
453
454 version 0.3                  Aug 20 1999
455  * pings now work immediately
456  * all packet sizes get transmitted correctly
457
458 version 0.2.26               Aug 15 1999
459  * fixed some remaining bugs
460  * --sysconfdir works with configure
461  * last version before 0.3
462
463 version 0.2.25               Aug  8 1999
464  * improved stability, going towards 0.3 now.
465
466 version 0.2.24               Aug  7 1999
467  * added key aging, there's a new config variable, KeyExpire.
468  * updated man and info pages
469
470 version 0.2.23               Aug  5 1999
471  * all known bugs fixed, this is a candidate for 0.3
472
473 version 0.2.22               Apr 11 1999
474  * multiconnection thing is now working nearly perfect :)
475
476 version 0.2.21               Apr 10 1999
477  * You shouldn't notice a thing, but a lot has changed wrt key
478 management - except that it refuses to talk to versions < 0.2.20
479
480 version 0.2.20
481
482 version 0.2.19               Apr  3 1999
483  * don't install a libcipher.so
484
485 version 0.2.18               Apr  3 1999
486  * blowfish library dynamically loaded upon execution
487  * included Eric Young's IDEA library
488
489 version 0.2.17               Apr  1 1999
490  * tincd now re-executes itself in case of a segmentation fault.
491
492 version 0.2.16               Apr  1 1999
493  * wrote tincd.conf(5) man page, which still needs a lot of work.
494  * config file now accepts and tolerates spaces, and any integer base
495 for integer variables, and better error reporting. See
496 doc/tincd.conf.sample for an example.
497
498 version 0.2.15               Mar 29 1999
499  * fixed bugs
500
501 version 0.2.14               Feb 10 1999
502  * added --timeout flag and PingTimeout configuration
503  * did some first syslog cleanup work
504
505 version 0.2.13               Jan 23 1999
506  * bugfixes
507
508 version 0.2.12               Jan 23 1999
509  * fixed nauseating bug so that it would crash whenever a connection
510 got lost
511
512 version 0.2.11               Jan 22 1999
513  * framework for multiple connections has been done
514  * simple manpage for tincd
515
516 version 0.2.10               Jan 18 1999
517  * passphrase support added
518
519 version 0.2.9                Jan 13 1999
520  * bugs fixed.
521
522 version 0.2.8                Jan 11 1999
523  * a reworked protocol version
524  * a ping/pong system
525  * more reliable networking code
526  * automatic reconnection
527  * still does not work with more than one connection :)
528  * strips MAC addresses before sending, so there's less overhead, and
529 less redundancy
530
531 version 0.2.7                Jan  3 1999
532  * several updates to make extending more easy.
533
534 version 0.2.6                Dec 20 1998
535  * Point-to-Point connections have been established, including
536 blowfish encryption and a secret key-exchange.
537
538 version 0.2.5                Dec 16 1998
539  * Project renamed to tinc, in honour of TINC.
540
541 version 0.2.4                Dec 16 1998
542  * now it really does ;)
543
544 version 0.2.3                Nov 24 1998
545  * it sort of works now
546
547 version 0.2.2                Nov 20 1998
548  * uses GNU gmp.
549
550 version 0.2.1                Nov 14 1998
551
552  * Bare version.