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