oweals/tinc.git
15 years agoUse a global list to track outgoing connections.
Guus Sliepen [Tue, 20 Jan 2009 12:12:41 +0000 (13:12 +0100)]
Use a global list to track outgoing connections.

Previously an outgoing_t was maintained for each outgoing connection,
but the pointer to it was either stored in a connection_t or in an event_t.
This made it very hard to keep track of and to clean up.

Now a list is created when tinc starts and reads all the ConnectTo variables,
and which is recreated when tinc receives a HUP signal.

15 years agoAdd missing cleanup functions in close_network_connections().
Guus Sliepen [Mon, 19 Jan 2009 22:17:28 +0000 (23:17 +0100)]
Add missing cleanup functions in close_network_connections().

15 years agoChange flush_events() to expire_events().
Guus Sliepen [Mon, 19 Jan 2009 21:50:05 +0000 (22:50 +0100)]
Change flush_events() to expire_events().

The former function made a totally bogus shallow copy of the event_tree, called
the handler of each event and then deleted the whole tree.  This should've
caused tinc to crash when an ALARM signal was sent more than once, but for some
reason it didn't. It also behaved incorrectly when a handler added a new event.

The new function just moves the expiration time of all events to the past.

15 years agoMove free()s at the end om main() to the proper destructor functions.
Guus Sliepen [Fri, 9 Jan 2009 11:36:06 +0000 (12:36 +0100)]
Move free()s at the end om main() to the proper destructor functions.

15 years agoOnly send packets via UDP if UDP communication is possible.
Guus Sliepen [Sat, 3 Jan 2009 21:33:55 +0000 (22:33 +0100)]
Only send packets via UDP if UDP communication is possible.

When no session key is known for a node, or when it is doing PMTU discovery but
no MTU probes have returned yet, packets are sent via TCP. Some logic is added
to make sure intermediate nodes continue forwarding via TCP.  The per-node
packet queue is now no longer necessary and has been removed.

15 years agoConsistently allocate device and iface variables on the heap.
Guus Sliepen [Sat, 3 Jan 2009 21:06:10 +0000 (22:06 +0100)]
Consistently allocate device and iface variables on the heap.

This fixes a segfault when no Device has been specified and tinc exits, and it
would try to free() a static string. Thanks to Borg for spottin.

15 years agoUpdate documentation for git.
Guus Sliepen [Sat, 27 Dec 2008 10:09:43 +0000 (11:09 +0100)]
Update documentation for git.

15 years agoReleasing 1.0.9. release-1.0.9
Guus Sliepen [Fri, 26 Dec 2008 13:47:34 +0000 (13:47 +0000)]
Releasing 1.0.9.

15 years agoAdd missing parentheses in check for IPv4 multicast addresses.
Guus Sliepen [Fri, 26 Dec 2008 12:46:45 +0000 (12:46 +0000)]
Add missing parentheses in check for IPv4 multicast addresses.

15 years agoApply patch from Max Rijevski fixing a memory leak when closing connections.
Guus Sliepen [Tue, 23 Dec 2008 23:14:37 +0000 (23:14 +0000)]
Apply patch from Max Rijevski fixing a memory leak when closing connections.
It also cleans up more when stopping tinc, helping tools like valgrind.

15 years agoHandle broadcast and multicast packets in router mode.
Guus Sliepen [Tue, 23 Dec 2008 22:31:38 +0000 (22:31 +0000)]
Handle broadcast and multicast packets in router mode.
Multicast packets are treated as broadcast packets.
Based on a patch from Max Rijevski.

15 years agoUpdate the manpage as well, and some whitespace to make its source more legible.
Guus Sliepen [Mon, 22 Dec 2008 21:49:23 +0000 (21:49 +0000)]
Update the manpage as well, and some whitespace to make its source more legible.

15 years agoUpdate documentation.
Guus Sliepen [Mon, 22 Dec 2008 21:29:21 +0000 (21:29 +0000)]
Update documentation.
- TCPOnly is not experimental.
- Do not mention old Linux kernels and Ethertap anymore.
- Document the DeviceType, PMTU and PMTUDiscovery options.

15 years agoEnable PMTU discovery by default.
Guus Sliepen [Mon, 22 Dec 2008 20:35:45 +0000 (20:35 +0000)]
Enable PMTU discovery by default.

15 years agoUpdate copyright information.
Guus Sliepen [Mon, 22 Dec 2008 20:27:52 +0000 (20:27 +0000)]
Update copyright information.

15 years agoUpdate Dutch translation.
Guus Sliepen [Mon, 22 Dec 2008 19:43:49 +0000 (19:43 +0000)]
Update Dutch translation.

15 years agoMake sure IPv6 sockets are IPv6 only.
Guus Sliepen [Mon, 22 Dec 2008 19:40:40 +0000 (19:40 +0000)]
Make sure IPv6 sockets are IPv6 only.
This will get rid of the "Can't bind to 0.0.0.0 port 655/tcp: Address already
in use" message on Linux.

15 years agoUse TUNIFHEAD by default on FreeBSD to make sure IPv6 works.
Guus Sliepen [Mon, 22 Dec 2008 19:33:37 +0000 (19:33 +0000)]
Use TUNIFHEAD by default on FreeBSD to make sure IPv6 works.

15 years agoTreat virtual network device as tap if Mode = switch or hub.
Guus Sliepen [Sun, 21 Dec 2008 16:19:31 +0000 (16:19 +0000)]
Treat virtual network device as tap if Mode = switch or hub.
On OpenBSD, the link0 flag should still be set in tinc-up or by other means.

15 years agoCorrect debug message.
Guus Sliepen [Fri, 5 Dec 2008 14:17:39 +0000 (14:17 +0000)]
Correct debug message.

16 years agoPrevent freeing a NULL pointer when a hostname is unresolvable.
Guus Sliepen [Tue, 18 Nov 2008 15:11:27 +0000 (15:11 +0000)]
Prevent freeing a NULL pointer when a hostname is unresolvable.

16 years agoDo not try to send REQ_KEY or ANS_KEY requests to unreachable nodes.
Guus Sliepen [Sat, 25 Oct 2008 19:54:00 +0000 (19:54 +0000)]
Do not try to send REQ_KEY or ANS_KEY requests to unreachable nodes.

16 years agoFix reading configuration files that do not end with a newline.
Guus Sliepen [Sat, 25 Oct 2008 18:10:08 +0000 (18:10 +0000)]
Fix reading configuration files that do not end with a newline.

16 years agoMake sure the prefixlength of subnets is sane.
Guus Sliepen [Fri, 14 Dec 2007 21:17:08 +0000 (21:17 +0000)]
Make sure the prefixlength of subnets is sane.
Thanks to Sven-Haegar Koch for spotting the bug and providing a fix.

17 years agoHandle SERVICE_CONTROL_INTERROGATE requests. Thanks to Carsten Ralle for noticing...
Guus Sliepen [Fri, 17 Aug 2007 22:09:00 +0000 (22:09 +0000)]
Handle SERVICE_CONTROL_INTERROGATE requests. Thanks to Carsten Ralle for noticing this.

17 years agoReleasing 1.0.8. release-1.0.8
Guus Sliepen [Wed, 16 May 2007 17:16:09 +0000 (17:16 +0000)]
Releasing 1.0.8.

17 years agoDon't free struct addrinfo too early. Spotted by Christian Cier-Zniewski.
Guus Sliepen [Wed, 16 May 2007 14:46:25 +0000 (14:46 +0000)]
Don't free struct addrinfo too early. Spotted by Christian Cier-Zniewski.

17 years agoUpdate dutch translation.
Guus Sliepen [Wed, 16 May 2007 14:42:41 +0000 (14:42 +0000)]
Update dutch translation.

17 years agoMake sure connection->name is never NULL.
Guus Sliepen [Wed, 16 May 2007 14:42:08 +0000 (14:42 +0000)]
Make sure connection->name is never NULL.

17 years agoApply patch from "dnk" making sockets non-blocking under Windows.
Guus Sliepen [Mon, 14 May 2007 09:21:09 +0000 (09:21 +0000)]
Apply patch from "dnk" making sockets non-blocking under Windows.

17 years agoClose the proper filedescriptor (if it exists).
Guus Sliepen [Wed, 14 Feb 2007 09:32:16 +0000 (09:32 +0000)]
Close the proper filedescriptor (if it exists).

17 years agoApply patch from Scott Lamb fixing some memory and resource leaks.
Guus Sliepen [Wed, 14 Feb 2007 09:21:34 +0000 (09:21 +0000)]
Apply patch from Scott Lamb fixing some memory and resource leaks.

17 years agoApply patch from Scott Lamb preventing an infinite loop when sending SIGALRM.
Guus Sliepen [Wed, 14 Feb 2007 09:20:20 +0000 (09:20 +0000)]
Apply patch from Scott Lamb preventing an infinite loop when sending SIGALRM.

17 years agoReleasing 1.0.7. release-1.0.7
Guus Sliepen [Fri, 5 Jan 2007 15:03:07 +0000 (15:03 +0000)]
Releasing 1.0.7.

17 years agoUpdate copyright notices.
Guus Sliepen [Fri, 5 Jan 2007 13:18:36 +0000 (13:18 +0000)]
Update copyright notices.

17 years agoNo things to do for the 1.0 branch except bugfixing.
Guus Sliepen [Fri, 5 Jan 2007 13:17:33 +0000 (13:17 +0000)]
No things to do for the 1.0 branch except bugfixing.

17 years agorename() cannot replace existing files on Windows.
Guus Sliepen [Fri, 5 Jan 2007 05:44:01 +0000 (05:44 +0000)]
rename() cannot replace existing files on Windows.

17 years agoFix generic BSD tun device to write only the actual packet length.
Guus Sliepen [Fri, 5 Jan 2007 04:49:02 +0000 (04:49 +0000)]
Fix generic BSD tun device to write only the actual packet length.
Due to a copy&paste bug, it tried to write a packet with the maximum size.
This was not a problem until the maximum size was increased to support VLANs.

17 years agoTapreader socket should be bound to localhost only.
Guus Sliepen [Thu, 4 Jan 2007 15:28:36 +0000 (15:28 +0000)]
Tapreader socket should be bound to localhost only.

17 years agoUse a ringbuffer in shared memory to transfer packets from the tapreader thread to...
Guus Sliepen [Wed, 3 Jan 2007 18:18:54 +0000 (18:18 +0000)]
Use a ringbuffer in shared memory to transfer packets from the tapreader thread to the main thread.
It's a wonder it ever worked before. The socket that is created is not of a
datagram type, therefore packet boundaries were not preserved, which becomes
a problem as soon as the TAP-Win32 device receives packets in fast succession.

17 years agoReleasing 1.0.6. release-1.0.6
Guus Sliepen [Mon, 18 Dec 2006 17:38:05 +0000 (17:38 +0000)]
Releasing 1.0.6.

17 years agoPrevent compiler warnings about redefinition of EAI_FAMILY on FreeBSD 6.1.
Guus Sliepen [Mon, 18 Dec 2006 11:41:53 +0000 (11:41 +0000)]
Prevent compiler warnings about redefinition of EAI_FAMILY on FreeBSD 6.1.

17 years agoDo a simple test for linux/if_tun.h instead of no test at all.
Guus Sliepen [Sat, 16 Dec 2006 16:53:58 +0000 (16:53 +0000)]
Do a simple test for linux/if_tun.h instead of no test at all.

17 years agoRemove the test for linux/if_tun.h.
Guus Sliepen [Sat, 16 Dec 2006 16:40:09 +0000 (16:40 +0000)]
Remove the test for linux/if_tun.h.
It has been available for years on any decent Linux distribution.
Although linux/if_tun.h is now required to compile tinc,
you can still run it on systems which only support Ethertap.

17 years agoWe do properly check for malloc and realloc.
Guus Sliepen [Sat, 16 Dec 2006 16:34:04 +0000 (16:34 +0000)]
We do properly check for malloc and realloc.

17 years agoUse standard autoconf macros instead of our own.
Guus Sliepen [Sat, 16 Dec 2006 16:26:57 +0000 (16:26 +0000)]
Use standard autoconf macros instead of our own.

17 years agoFix rule that creates html version of manpages.
Guus Sliepen [Sat, 16 Dec 2006 16:26:08 +0000 (16:26 +0000)]
Fix rule that creates html version of manpages.

17 years agoRemove old Spanish translation.
Guus Sliepen [Fri, 15 Dec 2006 20:44:33 +0000 (20:44 +0000)]
Remove old Spanish translation.

17 years agoRemove unnecessary stuff from configure.in.
Guus Sliepen [Fri, 15 Dec 2006 20:43:39 +0000 (20:43 +0000)]
Remove unnecessary stuff from configure.in.

17 years agoUse the correct next pointer.
Guus Sliepen [Tue, 12 Dec 2006 14:54:39 +0000 (14:54 +0000)]
Use the correct next pointer.

17 years agoWhen building the minimum spanning tree, make sure we start from a reachable node.
Guus Sliepen [Tue, 12 Dec 2006 14:49:09 +0000 (14:49 +0000)]
When building the minimum spanning tree, make sure we start from a reachable node.

18 years agoSearch for lzo/lzo1x.h, lzo2/lzo1x.h and lzo1x.h.
Guus Sliepen [Wed, 29 Nov 2006 17:18:39 +0000 (17:18 +0000)]
Search for lzo/lzo1x.h, lzo2/lzo1x.h and lzo1x.h.

18 years agoMake sure resolved addressed for outgoing connections are freed, if there are any.
Guus Sliepen [Wed, 29 Nov 2006 16:57:46 +0000 (16:57 +0000)]
Make sure resolved addressed for outgoing connections are freed, if there are any.

18 years agoReleasing 1.0.5. release-1.0.5
Guus Sliepen [Tue, 14 Nov 2006 15:43:28 +0000 (15:43 +0000)]
Releasing 1.0.5.

18 years agoEWOULDBLOCK does not exist on platforms without O_NONBLOCK
Guus Sliepen [Tue, 14 Nov 2006 12:28:04 +0000 (12:28 +0000)]
EWOULDBLOCK does not exist on platforms without O_NONBLOCK

18 years agoWhen deleting an entire tree, start at head, not at root.
Guus Sliepen [Sat, 11 Nov 2006 22:45:45 +0000 (22:45 +0000)]
When deleting an entire tree, start at head, not at root.

18 years agoNodes use events, so event system should be initialised first and destroyed last.
Guus Sliepen [Sat, 11 Nov 2006 22:44:15 +0000 (22:44 +0000)]
Nodes use events, so event system should be initialised first and destroyed last.

18 years agoUpdate Dutch translation.
Guus Sliepen [Sat, 11 Nov 2006 21:37:22 +0000 (21:37 +0000)]
Update Dutch translation.

18 years agoDocument GraphDumpFile option.
Guus Sliepen [Sat, 11 Nov 2006 20:37:58 +0000 (20:37 +0000)]
Document GraphDumpFile option.

18 years agoSupport and autodetect LZO version 2.0 and later.
Guus Sliepen [Sat, 11 Nov 2006 20:10:46 +0000 (20:10 +0000)]
Support and autodetect LZO version 2.0 and later.

18 years agoSupport and autodetect LZO version 2.0 and later.
Guus Sliepen [Sat, 11 Nov 2006 20:06:14 +0000 (20:06 +0000)]
Support and autodetect LZO version 2.0 and later.

18 years agopopen() requires pclose().
Guus Sliepen [Sat, 11 Nov 2006 14:37:03 +0000 (14:37 +0000)]
popen() requires pclose().

18 years agoAdded graph dumping ability based on Markus Goetz's patch.
Guus Sliepen [Sat, 11 Nov 2006 14:11:16 +0000 (14:11 +0000)]
Added graph dumping ability based on Markus Goetz's patch.

18 years agoThe "active" bit in node.status is not used.
Guus Sliepen [Sat, 11 Nov 2006 13:43:00 +0000 (13:43 +0000)]
The "active" bit in node.status is not used.

18 years agomemcpy() addresses from packet headers before calling the lookup functions.
Guus Sliepen [Wed, 9 Aug 2006 22:31:10 +0000 (22:31 +0000)]
memcpy() addresses from packet headers before calling the lookup functions.
This probably fixes a problem on the ARM architecture that causes tinc to fail to lookup IPv4 addresses.

18 years agoRemove unused variable.
Guus Sliepen [Tue, 8 Aug 2006 13:50:58 +0000 (13:50 +0000)]
Remove unused variable.

18 years agoRemove unused parameter from maskcmp().
Guus Sliepen [Tue, 8 Aug 2006 13:44:37 +0000 (13:44 +0000)]
Remove unused parameter from maskcmp().

18 years agoRemove unused variables.
Guus Sliepen [Tue, 8 Aug 2006 13:44:19 +0000 (13:44 +0000)]
Remove unused variables.

18 years agoFix format string warnings.
Guus Sliepen [Tue, 8 Aug 2006 13:29:17 +0000 (13:29 +0000)]
Fix format string warnings.

18 years agoDo not break strict aliasing of status_t structs.
Guus Sliepen [Tue, 8 Aug 2006 13:21:08 +0000 (13:21 +0000)]
Do not break strict aliasing of status_t structs.

18 years agoAdd generic host-up and host-down scripts.
Guus Sliepen [Mon, 12 Jun 2006 21:45:39 +0000 (21:45 +0000)]
Add generic host-up and host-down scripts.
Thanks to Menno Smits for a patch.

18 years agoUse memcpy() to copy sockaddrs returned by getaddrinfo().
Guus Sliepen [Sun, 11 Jun 2006 18:53:27 +0000 (18:53 +0000)]
Use memcpy() to copy sockaddrs returned by getaddrinfo().
Thanks to Miles Nordin for spotting this.

18 years agoRestore length of the original packet in send_udppacket().
Guus Sliepen [Wed, 26 Apr 2006 16:29:47 +0000 (16:29 +0000)]
Restore length of the original packet in send_udppacket().

18 years agoUpdate copyright notices, remove Ivo's email address.
Guus Sliepen [Wed, 26 Apr 2006 13:52:58 +0000 (13:52 +0000)]
Update copyright notices, remove Ivo's email address.

18 years agoFix a bug in handling prefixlengths that are not a multiple of 4.
Guus Sliepen [Wed, 12 Apr 2006 08:38:35 +0000 (08:38 +0000)]
Fix a bug in handling prefixlengths that are not a multiple of 4.
Thanks to Sven-Haegar Koch for spotting the bug and providing the fix.

18 years agoFix signedness compiler warnings.
Guus Sliepen [Sun, 19 Mar 2006 13:06:21 +0000 (13:06 +0000)]
Fix signedness compiler warnings.

18 years agoExport flush_meta().
Guus Sliepen [Sun, 19 Mar 2006 12:43:45 +0000 (12:43 +0000)]
Export flush_meta().

18 years agoMissing #include.
Guus Sliepen [Sun, 19 Mar 2006 12:43:28 +0000 (12:43 +0000)]
Missing #include.

18 years agoMake sure $NAME is set correctly when executing tinc-down script.
Guus Sliepen [Mon, 6 Feb 2006 12:30:51 +0000 (12:30 +0000)]
Make sure $NAME is set correctly when executing tinc-down script.

18 years agoApply patch from Scott Lamb adding an output buffer for the TCP sockets.
Guus Sliepen [Thu, 19 Jan 2006 17:13:18 +0000 (17:13 +0000)]
Apply patch from Scott Lamb adding an output buffer for the TCP sockets.
This helps coalescing multiple send_meta() commands into one TCP packet.
Also limit the size of the output buffer before dropping PACKETs.

18 years agoApply patch from Scott Lamb unifying configuration of TCP socket options.
Guus Sliepen [Fri, 13 Jan 2006 11:21:59 +0000 (11:21 +0000)]
Apply patch from Scott Lamb unifying configuration of TCP socket options.

18 years agoEVP_Cleanup() when quitting.
Guus Sliepen [Fri, 13 Jan 2006 11:09:19 +0000 (11:09 +0000)]
EVP_Cleanup() when quitting.

19 years agoEnable OpenSSL ENGINE, so crypto hardware gets used. Thanks to Andreas van Cranenburgh.
Guus Sliepen [Wed, 16 Nov 2005 10:45:11 +0000 (10:45 +0000)]
Enable OpenSSL ENGINE, so crypto hardware gets used. Thanks to Andreas van Cranenburgh.

19 years agoAdd alloca.h to the list of necessary header files.
Guus Sliepen [Fri, 3 Jun 2005 10:56:02 +0000 (10:56 +0000)]
Add alloca.h to the list of necessary header files.

19 years agoPrevent possible buffer overflows when using very large (>= 8192 bit) RSA keys.
Guus Sliepen [Fri, 3 Jun 2005 10:16:03 +0000 (10:16 +0000)]
Prevent possible buffer overflows when using very large (>= 8192 bit) RSA keys.
Thanks to Tonnerre Lombard for noticing!

19 years agoReleasing 1.0.4. release-1.0.4
Guus Sliepen [Wed, 4 May 2005 19:38:28 +0000 (19:38 +0000)]
Releasing 1.0.4.

19 years agoUpdate copyright notices.
Guus Sliepen [Wed, 4 May 2005 18:09:30 +0000 (18:09 +0000)]
Update copyright notices.

19 years agoDescribe subnet-up/down scripts in documentation.
Guus Sliepen [Wed, 4 May 2005 16:53:11 +0000 (16:53 +0000)]
Describe subnet-up/down scripts in documentation.

19 years agoSeveral splay tree fixes.
Guus Sliepen [Wed, 4 May 2005 15:56:25 +0000 (15:56 +0000)]
Several splay tree fixes.

19 years agoSearching through splay trees may change the tree variable.
Guus Sliepen [Wed, 4 May 2005 15:52:55 +0000 (15:52 +0000)]
Searching through splay trees may change the tree variable.

19 years agoBe on the safe side with initialisation of c->name.
Guus Sliepen [Wed, 4 May 2005 15:51:45 +0000 (15:51 +0000)]
Be on the safe side with initialisation of c->name.

19 years agoRemove unused (and potentially segfaulting) net2str() call.
Guus Sliepen [Wed, 6 Apr 2005 20:43:37 +0000 (20:43 +0000)]
Remove unused (and potentially segfaulting) net2str() call.

19 years agoDon't try to add a non-existing node back to the node_udp_tree.
Guus Sliepen [Thu, 20 Jan 2005 15:14:25 +0000 (15:14 +0000)]
Don't try to add a non-existing node back to the node_udp_tree.

19 years agoNodes should only be in the node_udp_tree if they are reachable.
Guus Sliepen [Tue, 4 Jan 2005 22:19:56 +0000 (22:19 +0000)]
Nodes should only be in the node_udp_tree if they are reachable.

19 years agoCorrect size argument for strncat().
Guus Sliepen [Tue, 4 Jan 2005 22:18:58 +0000 (22:18 +0000)]
Correct size argument for strncat().

19 years agoUse the proper free function.
Guus Sliepen [Fri, 3 Dec 2004 13:27:33 +0000 (13:27 +0000)]
Use the proper free function.

19 years agoFree memory used by connection_t after it is deleted from the connection tree.
Guus Sliepen [Fri, 3 Dec 2004 13:22:18 +0000 (13:22 +0000)]
Free memory used by connection_t after it is deleted from the connection tree.

19 years agoSmall fix.
Guus Sliepen [Wed, 1 Dec 2004 21:26:51 +0000 (21:26 +0000)]
Small fix.

19 years agosubnet-up/down hooks, use list_t for the todo list.
Guus Sliepen [Wed, 1 Dec 2004 20:06:39 +0000 (20:06 +0000)]
subnet-up/down hooks, use list_t for the todo list.

19 years agosubnet-up/down hooks
Guus Sliepen [Wed, 1 Dec 2004 20:06:05 +0000 (20:06 +0000)]
subnet-up/down hooks