Guus Sliepen [Thu, 11 Dec 2008 20:49:14 +0000 (20:49 +0000)]
Make sure IPv6 sockets are IPv6 only.
Guus Sliepen [Thu, 11 Dec 2008 18:07:26 +0000 (18:07 +0000)]
Use Dijkstra's algorithm. Based on patches from Max Rijevskiy.
Guus Sliepen [Thu, 11 Dec 2008 18:05:59 +0000 (18:05 +0000)]
Remove wrong checks.
Guus Sliepen [Thu, 11 Dec 2008 15:56:18 +0000 (15:56 +0000)]
Remove unnecessary parentheses from sizeof, apply sizeof to variables instead of types whereever possible.
Guus Sliepen [Thu, 11 Dec 2008 15:42:46 +0000 (15:42 +0000)]
Fix compiler warnings.
Guus Sliepen [Thu, 11 Dec 2008 15:21:40 +0000 (15:21 +0000)]
Backport fixes from trunk since revision 1555.
Guus Sliepen [Thu, 11 Dec 2008 14:44:44 +0000 (14:44 +0000)]
Use the crypto wrappers again instead of calling OpenSSL directly.
This theoretically allows other cryptographic libraries to be used,
and it improves the readability of the code.
Guus Sliepen [Thu, 11 Dec 2008 14:43:13 +0000 (14:43 +0000)]
Move AC_GNU_SOURCE up to make autoconf happy.
Also bump libgcrypt dependency to 1.4.0, because that version supports the OFB cipher mode.
Guus Sliepen [Thu, 11 Dec 2008 14:03:52 +0000 (14:03 +0000)]
Only show meta connection related debug messages when debug level >= 4
Guus Sliepen [Thu, 11 Dec 2008 13:59:46 +0000 (13:59 +0000)]
Look in the configured sbin directory for the tincd binary.
Scott Lamb [Thu, 8 Nov 2007 19:18:44 +0000 (19:18 +0000)]
Use a control socket directory to restrict access
This provides reasonable security even on Solaris. The sysadmin is
responsible for securing the control socket's ancestors from the
grandparent on.
We could add a cryptographic handshake later if desired.
Scott Lamb [Wed, 7 Nov 2007 06:45:28 +0000 (06:45 +0000)]
Coding style corrections
Scott Lamb [Wed, 7 Nov 2007 02:51:24 +0000 (02:51 +0000)]
Reload configuration through control socket
I also kept the SIGHUP handler, which many people will expect to see.
The control socket is better, though - it will tell you if there is a
problem.
Scott Lamb [Wed, 7 Nov 2007 02:50:58 +0000 (02:50 +0000)]
Retry connections through control socket
Scott Lamb [Wed, 7 Nov 2007 02:50:27 +0000 (02:50 +0000)]
Alter debugging levels through control socket
Scott Lamb [Wed, 7 Nov 2007 02:49:57 +0000 (02:49 +0000)]
Purge through the control socket
Scott Lamb [Wed, 7 Nov 2007 02:49:25 +0000 (02:49 +0000)]
Dump through control socket
Note this removes SIGUSR1, SIGUSR2, and the graph dumping config option.
It seems cleaner to do everything through the control socket.
Scott Lamb [Wed, 7 Nov 2007 02:48:33 +0000 (02:48 +0000)]
Fancier protocol for control socket
* pass error status back
* pass message boundaries
Scott Lamb [Wed, 7 Nov 2007 02:48:15 +0000 (02:48 +0000)]
Fix reload crash
sighup_handler was expecting the connection_tree to stay the same across
terminate_connection(), which hasn't been true since r1539.
Scott Lamb [Wed, 7 Nov 2007 02:48:00 +0000 (02:48 +0000)]
Update documentation to match tincctl changes
(Most of this was done in r1559, but it looks like tincctl.8.in got missed.)
Scott Lamb [Wed, 7 Nov 2007 02:47:05 +0000 (02:47 +0000)]
Temporarily revert to old crypto code
(The new code is still segfaulting for me, and I'd like to proceed with other
work.)
This largely rolls back to the revision 1545 state of the existing code
(new crypto layer is still there with no callers), though I reintroduced
the segfault fix of revision 1562.
Guus Sliepen [Sat, 20 Oct 2007 11:21:44 +0000 (11:21 +0000)]
Prevent double free() of a used challenge nonce.
Guus Sliepen [Fri, 19 Oct 2007 19:07:30 +0000 (19:07 +0000)]
Fix meta data segfault when receiving a partial command.
Guus Sliepen [Fri, 19 Oct 2007 18:54:43 +0000 (18:54 +0000)]
Use a dummy function as the read callback for connection bufferevents. Should not be triggered.
Guus Sliepen [Fri, 19 Oct 2007 18:53:48 +0000 (18:53 +0000)]
Fix connection weight estimation.
Guus Sliepen [Tue, 4 Sep 2007 15:06:35 +0000 (15:06 +0000)]
Apply patch from Scott Lamb: Update documentation to match tincctl changes
Guus Sliepen [Tue, 4 Sep 2007 14:58:52 +0000 (14:58 +0000)]
Small fixes to make gcrypt routines compile.
Guus Sliepen [Tue, 4 Sep 2007 14:58:11 +0000 (14:58 +0000)]
Fix formatting of --help output.
Guus Sliepen [Tue, 4 Sep 2007 14:57:37 +0000 (14:57 +0000)]
Only check for libgcrypt if --with-gcrypt is used.
Scott Lamb [Fri, 20 Jul 2007 20:10:46 +0000 (20:10 +0000)]
const correctness
cipher_encrypt and cipher_decrypt should take "const void *" data
Scott Lamb [Wed, 18 Jul 2007 16:44:05 +0000 (16:44 +0000)]
Updated svn:ignores list for new symlinked sources and tincctl.
Scott Lamb [Wed, 18 Jul 2007 16:40:41 +0000 (16:40 +0000)]
Refresh po/POTFILES.in.
In particular, remove lib/pidfile.c which was causing failures. Also sort
for diffability with "find . -type f -name '*.c' | cut -c3- | sort" output.
Scott Lamb [Wed, 18 Jul 2007 16:40:29 +0000 (16:40 +0000)]
Revert to only requiring autoconf 2.59.
The new autoconf macros introduced at the same time (AC_GNU_SOURCE,
AC_FUNC_MALLOC, AC_FUNC_REALLOC) exist in the autoconf 2.59 documentation,
and autoconf 2.59 appears to still work. This is more convenient, as RHEL 5
ships with autoconf 2.59.
Guus Sliepen [Wed, 23 May 2007 13:45:49 +0000 (13:45 +0000)]
Finish crypto wrapping. Also provide wrappers for OpenSSL.
Disable libgcrypt by default. Since it doesn't support the OFB cipher mode,
we can't use it in a backwards compatible way.
Guus Sliepen [Tue, 22 May 2007 23:41:22 +0000 (23:41 +0000)]
Some more crypto wrapper functions are needed.
Guus Sliepen [Tue, 22 May 2007 21:44:17 +0000 (21:44 +0000)]
Make sure the crypto wrapper functions can actually be compiled.
Guus Sliepen [Tue, 22 May 2007 21:32:48 +0000 (21:32 +0000)]
Create wrappers for the cryptographic operations used in tinc.
Implement them using libgcrypt.
Guus Sliepen [Sun, 20 May 2007 22:28:49 +0000 (22:28 +0000)]
Parse PEM RSA keys ourself, and use libgcrypt to do RSA encryption and decryption.
Guus Sliepen [Sat, 19 May 2007 22:23:02 +0000 (22:23 +0000)]
Use libevent for meta socket input/output buffering.
Guus Sliepen [Sat, 19 May 2007 16:21:52 +0000 (16:21 +0000)]
Use bufferevents to handle control socket buffering.
Guus Sliepen [Sat, 19 May 2007 15:21:26 +0000 (15:21 +0000)]
Implement "stop" command, and allow tincctl to retrieve a running tincd's PID.
Guus Sliepen [Sat, 19 May 2007 14:55:35 +0000 (14:55 +0000)]
Move key generation to tincctl.
Guus Sliepen [Sat, 19 May 2007 14:13:21 +0000 (14:13 +0000)]
Remove pidfile in favour of control socket.
Guus Sliepen [Sat, 19 May 2007 13:34:32 +0000 (13:34 +0000)]
Fix retrying outgoing connections.
Guus Sliepen [Sat, 19 May 2007 12:07:30 +0000 (12:07 +0000)]
We can safely delete a connection_t in terminate_connection() now.
Guus Sliepen [Fri, 18 May 2007 16:52:34 +0000 (16:52 +0000)]
Start of control socket implementation.
Guus Sliepen [Fri, 18 May 2007 11:54:16 +0000 (11:54 +0000)]
Update documentation.
Guus Sliepen [Fri, 18 May 2007 11:35:21 +0000 (11:35 +0000)]
Show branch version number.
Guus Sliepen [Fri, 18 May 2007 11:19:31 +0000 (11:19 +0000)]
More consistent variable naming.
Guus Sliepen [Fri, 18 May 2007 10:29:10 +0000 (10:29 +0000)]
Detect duplicate outgoing connections.
Guus Sliepen [Fri, 18 May 2007 10:05:26 +0000 (10:05 +0000)]
Use splay trees instead of AVL trees.
Guus Sliepen [Fri, 18 May 2007 10:00:00 +0000 (10:00 +0000)]
K&R style braces
Guus Sliepen [Fri, 18 May 2007 09:51:54 +0000 (09:51 +0000)]
Remove last references to the global variable "running".
Guus Sliepen [Fri, 18 May 2007 09:43:52 +0000 (09:43 +0000)]
Remove the last bits of the legacy main_loop().
Guus Sliepen [Fri, 18 May 2007 09:34:06 +0000 (09:34 +0000)]
Remove global variable "now".
Guus Sliepen [Thu, 17 May 2007 23:57:48 +0000 (23:57 +0000)]
Move key regeneration handling to net_setup.c.
Guus Sliepen [Thu, 17 May 2007 23:33:07 +0000 (23:33 +0000)]
Use libevent to handle key expiration.
Guus Sliepen [Thu, 17 May 2007 23:24:40 +0000 (23:24 +0000)]
Use libevent to age learned MAC addresses.
Guus Sliepen [Thu, 17 May 2007 23:14:42 +0000 (23:14 +0000)]
Use libevent to age past requests.
Guus Sliepen [Thu, 17 May 2007 23:04:02 +0000 (23:04 +0000)]
Redo SIGALRM handling.
Guus Sliepen [Thu, 17 May 2007 22:41:34 +0000 (22:41 +0000)]
Use libevent to handle all non-fatal signals.
Guus Sliepen [Thu, 17 May 2007 22:17:24 +0000 (22:17 +0000)]
Properly use the timeout_initialized() macro.
Guus Sliepen [Thu, 17 May 2007 22:13:12 +0000 (22:13 +0000)]
Remove legacy event system.
Guus Sliepen [Thu, 17 May 2007 22:09:55 +0000 (22:09 +0000)]
Use libevent for retrying outgoing connections.
Guus Sliepen [Thu, 17 May 2007 22:01:07 +0000 (22:01 +0000)]
Use libevent to send MTU probes.
Guus Sliepen [Thu, 17 May 2007 21:47:27 +0000 (21:47 +0000)]
Configure events after obtaining a socket.
Guus Sliepen [Thu, 17 May 2007 21:34:58 +0000 (21:34 +0000)]
Use libevent to handle HUP signal.
Guus Sliepen [Thu, 17 May 2007 21:14:30 +0000 (21:14 +0000)]
Use libevent to dump graphs when necessary.
event_add() can be called repeatedly, the second and later calls are ignored if
the event hasn't been removed yet.
Guus Sliepen [Thu, 17 May 2007 20:20:10 +0000 (20:20 +0000)]
Use a separate event structure to handle meta data writes.
Make meta socket events persistent.
Guus Sliepen [Thu, 17 May 2007 19:52:12 +0000 (19:52 +0000)]
128 listener sockets is way too much.
Guus Sliepen [Thu, 17 May 2007 19:51:26 +0000 (19:51 +0000)]
Properly delete listener socket events on shutdown.
Guus Sliepen [Thu, 17 May 2007 19:15:48 +0000 (19:15 +0000)]
Port fixes from release 1.0.8.
Guus Sliepen [Mon, 12 Mar 2007 17:55:43 +0000 (17:55 +0000)]
Only free members of connection_t that have been allocated.
Scott Lamb [Tue, 27 Feb 2007 08:13:41 +0000 (08:13 +0000)]
Lots of svn:ignore entries
Scott Lamb [Tue, 27 Feb 2007 01:57:01 +0000 (01:57 +0000)]
Convert to libevent.
This is a quick initial conversion that doesn't yet show much advantage:
- We roll our own timeouts.
- We roll our own signal handling.
- We build up the meta connection fd events on each loop rather than
on state changes.
Scott Lamb [Tue, 27 Feb 2007 01:30:57 +0000 (01:30 +0000)]
A couple missed tevent things.
(Sorry; had a couple changes queued.)
Scott Lamb [Tue, 27 Feb 2007 01:26:11 +0000 (01:26 +0000)]
Rename "event_t" to "tevent_t", along with associated functions.
This relieves some confusion and problems during the libevent transition.
In particular, "event_add" was defined by both.
(The 't' stands for 'timeout', 'tinc', 'temporary', or some such.)
Guus Sliepen [Sat, 24 Feb 2007 22:50:42 +0000 (22:50 +0000)]
Created the 1.1 branch where large code changes can take place,
at the same time keeping compatibility with 1.0.
Guus Sliepen [Wed, 14 Feb 2007 09:32:16 +0000 (09:32 +0000)]
Close the proper filedescriptor (if it exists).
Guus Sliepen [Wed, 14 Feb 2007 09:21:34 +0000 (09:21 +0000)]
Apply patch from Scott Lamb fixing some memory and resource leaks.
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.
Guus Sliepen [Fri, 5 Jan 2007 15:03:07 +0000 (15:03 +0000)]
Releasing 1.0.7.
Guus Sliepen [Fri, 5 Jan 2007 13:18:36 +0000 (13:18 +0000)]
Update copyright notices.
Guus Sliepen [Fri, 5 Jan 2007 13:17:33 +0000 (13:17 +0000)]
No things to do for the 1.0 branch except bugfixing.
Guus Sliepen [Fri, 5 Jan 2007 05:44:01 +0000 (05:44 +0000)]
rename() cannot replace existing files on Windows.
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.
Guus Sliepen [Thu, 4 Jan 2007 15:28:36 +0000 (15:28 +0000)]
Tapreader socket should be bound to localhost only.
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.
Guus Sliepen [Mon, 18 Dec 2006 17:38:05 +0000 (17:38 +0000)]
Releasing 1.0.6.
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.
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.
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.
Guus Sliepen [Sat, 16 Dec 2006 16:34:04 +0000 (16:34 +0000)]
We do properly check for malloc and realloc.
Guus Sliepen [Sat, 16 Dec 2006 16:26:57 +0000 (16:26 +0000)]
Use standard autoconf macros instead of our own.
Guus Sliepen [Sat, 16 Dec 2006 16:26:08 +0000 (16:26 +0000)]
Fix rule that creates html version of manpages.
Guus Sliepen [Fri, 15 Dec 2006 20:44:33 +0000 (20:44 +0000)]
Remove old Spanish translation.
Guus Sliepen [Fri, 15 Dec 2006 20:43:39 +0000 (20:43 +0000)]
Remove unnecessary stuff from configure.in.
Guus Sliepen [Tue, 12 Dec 2006 14:54:39 +0000 (14:54 +0000)]
Use the correct next pointer.
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.
Guus Sliepen [Wed, 29 Nov 2006 17:18:39 +0000 (17:18 +0000)]
Search for lzo/lzo1x.h, lzo2/lzo1x.h and lzo1x.h.