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