oweals/tinc.git
10 years agoProperly initialize buffers.
Guus Sliepen [Sun, 13 Apr 2014 10:09:48 +0000 (12:09 +0200)]
Properly initialize buffers.

Valgrind complained about use of uninitialized data.

10 years agoHandle a disconnecting tincd better.
Guus Sliepen [Sun, 9 Mar 2014 14:32:10 +0000 (15:32 +0100)]
Handle a disconnecting tincd better.

- Try to prevent SIGPIPE from being sent for errors sending to the control
  socket. We don't outright block the SIGPIPE signal because we still want the
  tinc CLI to exit when its output is actually sent to a real (broken) pipe.

- Don't call exit() from top(), and properly detect when the control socket is
  closed by the tincd.

10 years agoRewind the file before trying to use PEM_read_RSA_PUBKEY().
Guus Sliepen [Wed, 26 Feb 2014 16:27:57 +0000 (17:27 +0100)]
Rewind the file before trying to use PEM_read_RSA_PUBKEY().

10 years agoAdd "network" command to list or switch networks.
Guus Sliepen [Wed, 26 Feb 2014 10:00:30 +0000 (11:00 +0100)]
Add "network" command to list or switch networks.

10 years agoAdd missing attribution for 1.1pre10 to the NEWS file.
Guus Sliepen [Fri, 7 Feb 2014 22:06:26 +0000 (23:06 +0100)]
Add missing attribution for 1.1pre10 to the NEWS file.

10 years agoReally fix compiling under Windows.
Guus Sliepen [Fri, 7 Feb 2014 22:05:33 +0000 (23:05 +0100)]
Really fix compiling under Windows.

10 years agoReleasing 1.1pre10. release-1.1pre10
Guus Sliepen [Fri, 7 Feb 2014 20:40:42 +0000 (21:40 +0100)]
Releasing 1.1pre10.

10 years agoCheck whether OpenSSL has support for GCM.
Guus Sliepen [Fri, 7 Feb 2014 20:40:29 +0000 (21:40 +0100)]
Check whether OpenSSL has support for GCM.

10 years agoFix compiling for Windows.
Guus Sliepen [Fri, 7 Feb 2014 20:14:41 +0000 (21:14 +0100)]
Fix compiling for Windows.

10 years agoUpdate copyright notices.
Guus Sliepen [Fri, 7 Feb 2014 19:38:48 +0000 (20:38 +0100)]
Update copyright notices.

10 years agoAttribution for Dennis Joachimsthaler.
Guus Sliepen [Fri, 7 Feb 2014 18:57:06 +0000 (19:57 +0100)]
Attribution for Dennis Joachimsthaler.

10 years agoHandle errors from TAP-Win32/64 adapter in a better way.
Guus Sliepen [Fri, 7 Feb 2014 15:34:08 +0000 (16:34 +0100)]
Handle errors from TAP-Win32/64 adapter in a better way.

Before, the tapreader thread would just exit immediately after encountering the
first error, without notifying the main thread. Now, the tapreader thead never
exits itself, but tells the main thread to stop when more than ten errors are
encountered in a row.

10 years agoAttribution for various contributors.
Guus Sliepen [Fri, 7 Feb 2014 18:48:11 +0000 (19:48 +0100)]
Attribution for various contributors.

Conflicts:
THANKS

10 years agoUse addresses learned from other nodes when making outgoing connections.
Guus Sliepen [Thu, 30 Jan 2014 16:10:30 +0000 (17:10 +0100)]
Use addresses learned from other nodes when making outgoing connections.

Before, when making a meta-connection to a node (either because of a ConnectTo
or because AutoConnect is set), tinc required one or more Address statements
in the corresponding host config file. However, tinc learns addresses from
other nodes that it uses for UDP connections. We can use those just as well for
TCP connections.

10 years agoDocument Weight and also allow it to be set from tinc.conf.
Guus Sliepen [Wed, 29 Jan 2014 16:32:18 +0000 (17:32 +0100)]
Document Weight and also allow it to be set from tinc.conf.

10 years agoDon't ask questions if we are not running interactively.
Guus Sliepen [Wed, 29 Jan 2014 16:17:59 +0000 (17:17 +0100)]
Don't ask questions if we are not running interactively.

When creating invitations or using them to join a VPN, and the tinc command is
not run interactively (ie, when stdin and stdout are not connected or
redirected to/from a file), don't ask questions. If normally tinc would ask for
a confirmation, just assume the default answer instead. If tinc really needs
some input, just print an error message instead.

In case an invitation is used for a VPN which uses a netname that is already in
use on the local host, tinc will store the configuration in a temporary
directory. Normally it asks for an alternative netname and then renames the
temporary directory, but when not run interactively, it now just prints the
location of the unchanged temporary directory.

10 years agoAdd missing newlines when copying variables from tinc.conf to an invitation file.
Guus Sliepen [Mon, 27 Jan 2014 22:21:25 +0000 (23:21 +0100)]
Add missing newlines when copying variables from tinc.conf to an invitation file.

10 years agoTest two tinc daemons using network namespaces.
Guus Sliepen [Fri, 24 Jan 2014 15:09:32 +0000 (16:09 +0100)]
Test two tinc daemons using network namespaces.

Testing multiple daemons connecting to each other on the same computer is
usually difficult, because connections to local IP addresses will bypass most
of the network stack. However, recent versions of Linux support network
namespaces, which can isolate network interfaces. We use this to isolate the
virtual interface of the daemons from each other, so we get the behaviour as if
the daemons were each running on their own machine. This can also be used for
more complicated tests (including those with firewall rules) without disturbing
the real network setup of the host computer.

10 years agoAdd the ListenAddress option.
Guus Sliepen [Mon, 20 Jan 2014 20:19:13 +0000 (21:19 +0100)]
Add the ListenAddress option.

ListenAddress works the same as BindToAddress, except that from now on,
explicitly binding outgoing packets to the address of a socket is only done for
sockets specified with BindToAddress.

10 years agoDocument that 1.1 uses AES-256 in GCM mode.
Guus Sliepen [Mon, 20 Jan 2014 19:21:15 +0000 (20:21 +0100)]
Document that 1.1 uses AES-256 in GCM mode.

10 years agoDocument clearly that tinc depends on curses and readline libraries.
Guus Sliepen [Mon, 20 Jan 2014 19:16:58 +0000 (20:16 +0100)]
Document clearly that tinc depends on curses and readline libraries.

10 years agoLet tinc-gui use correct address family when connecting to tincd via TCP.
Guus Sliepen [Sun, 19 Jan 2014 20:15:23 +0000 (21:15 +0100)]
Let tinc-gui use correct address family when connecting to tincd via TCP.

10 years agoEnsure tinc-gui running in 64 bits mode can find tinc's 32 bit registry key.
Dennis Joachimsthaler [Fri, 17 Jan 2014 17:15:40 +0000 (18:15 +0100)]
Ensure tinc-gui running in 64 bits mode can find tinc's 32 bit registry key.

10 years agoFix tinc-gui on Windows.
Dennis Joachimsthaler [Fri, 17 Jan 2014 15:10:10 +0000 (16:10 +0100)]
Fix tinc-gui on Windows.

10 years agoAdd index entries for the CLI commands.
Guus Sliepen [Thu, 16 Jan 2014 13:52:44 +0000 (14:52 +0100)]
Add index entries for the CLI commands.

10 years agoUpdate the documentation of the tinc command.
Guus Sliepen [Thu, 16 Jan 2014 13:46:44 +0000 (14:46 +0100)]
Update the documentation of the tinc command.

10 years agoClarify StrictSubnets.
Guus Sliepen [Thu, 16 Jan 2014 13:02:56 +0000 (14:02 +0100)]
Clarify StrictSubnets.

10 years agoAdding "conf.d" configuration dir support.
Florent Clairambault [Sun, 29 Dec 2013 22:11:54 +0000 (23:11 +0100)]
Adding "conf.d" configuration dir support.

Any file matching the pattern /etc/tinc/$NETNAME/conf.d/*.conf will be
parsed after the tinc.conf file.

10 years agoFix handling of --with-libgcrypt.
Guus Sliepen [Tue, 10 Dec 2013 16:13:15 +0000 (17:13 +0100)]
Fix handling of --with-libgcrypt.

10 years agoDon't enable -fstack-protector-all.
Guus Sliepen [Tue, 10 Dec 2013 16:02:52 +0000 (17:02 +0100)]
Don't enable -fstack-protector-all.

It is not supported on all architectures and is problematic on some
platforms.

10 years agoAdd our own autoconf check for libgcrypt.
Guus Sliepen [Tue, 10 Dec 2013 10:18:04 +0000 (11:18 +0100)]
Add our own autoconf check for libgcrypt.

This one doesn't require one to have libgcrypt installed while running
autoreconf, making life easier for people who compile tinc from git.

10 years agoEnable compiler hardening flags by default.
Guus Sliepen [Tue, 10 Dec 2013 09:48:00 +0000 (10:48 +0100)]
Enable compiler hardening flags by default.

Check whether the compiler supports hardening flags and enable them unless
--disable-hardening is specified.

Conflicts:
configure.ac

10 years agoRemove erroneous warning about SPTPS being disabled.
Guus Sliepen [Sun, 8 Dec 2013 20:37:56 +0000 (21:37 +0100)]
Remove erroneous warning about SPTPS being disabled.

10 years agoDon't print an error when no ECDSA key is known for a node using the legacy protocol.
Guus Sliepen [Sun, 8 Dec 2013 20:32:21 +0000 (21:32 +0100)]
Don't print an error when no ECDSA key is known for a node using the legacy protocol.

10 years agoGive full path to unconfigured tinc-up script.
Guus Sliepen [Sun, 8 Dec 2013 20:31:50 +0000 (21:31 +0100)]
Give full path to unconfigured tinc-up script.

10 years agoAllow running without ECDSA keys If ExperimentalProtocol is not explicitly set.
Guus Sliepen [Sun, 8 Dec 2013 20:06:03 +0000 (21:06 +0100)]
Allow running without ECDSA keys If ExperimentalProtocol is not explicitly set.

To make upgrading less painful, allow running tinc 1.1 without ECDSA keys
unless ExperimentalProtocol is explicitly set to yes.

10 years agoDon't print device statistics when exiting tinc.
Guus Sliepen [Sun, 8 Dec 2013 19:23:44 +0000 (20:23 +0100)]
Don't print device statistics when exiting tinc.

Much more detailed statistics are now kept per node, which can be queried at
any time, which makes the device statistics obsolete.

10 years agoPrefer ncurses over curses.
Guus Sliepen [Sat, 7 Dec 2013 21:59:37 +0000 (22:59 +0100)]
Prefer ncurses over curses.

10 years agoUse hardcoded value for TUNNEWPPA if net/if_tun.h is missing on Solaris.
Guus Sliepen [Sat, 7 Dec 2013 21:54:02 +0000 (22:54 +0100)]
Use hardcoded value for TUNNEWPPA if net/if_tun.h is missing on Solaris.

10 years agoAvoid using a variable named "sun". Solaris doesn't like it.
Guus Sliepen [Sat, 7 Dec 2013 21:39:24 +0000 (22:39 +0100)]
Avoid using a variable named "sun". Solaris doesn't like it.

10 years agoStricter check for raw socket support.
Guus Sliepen [Sat, 7 Dec 2013 21:20:10 +0000 (22:20 +0100)]
Stricter check for raw socket support.

10 years agoInclude <limits.h> for PATH_MAX.
Guus Sliepen [Sat, 7 Dec 2013 21:19:39 +0000 (22:19 +0100)]
Include <limits.h> for PATH_MAX.

10 years agoUpdate support for Solaris.
Guus Sliepen [Sat, 7 Dec 2013 20:52:41 +0000 (21:52 +0100)]
Update support for Solaris.

Adds support for the latest TAP driver from
http://www.whiteboard.ne.jp/~admin2/tuntap/, so tinc now also works in switch
mode on Solaris 11.

10 years agoIf no Port is specified, set myport to actual port of first listening socket.
Guus Sliepen [Thu, 5 Dec 2013 14:01:30 +0000 (15:01 +0100)]
If no Port is specified, set myport to actual port of first listening socket.

If the Port statement is not used, there are two other ways to let tinc listen
on a non-default port: either by specifying one or more BindToAddress
statements including port numbers, or by starting it from systemd with socket
activation. Tinc announces its own port to other nodes, but before it only
announced what was set using the Port statement.

10 years agoMention in the manual that multiple Address staments are allowed.
Guus Sliepen [Thu, 5 Dec 2013 13:30:00 +0000 (14:30 +0100)]
Mention in the manual that multiple Address staments are allowed.

10 years agoAllow "none" for Cipher and Digest again.
Guus Sliepen [Thu, 28 Nov 2013 13:19:55 +0000 (14:19 +0100)]
Allow "none" for Cipher and Digest again.

11 years agoMake LocalDiscovery work for SPTPS packets.
Guus Sliepen [Thu, 21 Nov 2013 21:13:14 +0000 (22:13 +0100)]
Make LocalDiscovery work for SPTPS packets.

11 years agoRemove an unused variable.
Guus Sliepen [Wed, 20 Nov 2013 22:02:20 +0000 (23:02 +0100)]
Remove an unused variable.

11 years agoFix two warnings from Clang's static analyzer.
Guus Sliepen [Fri, 15 Nov 2013 14:32:53 +0000 (15:32 +0100)]
Fix two warnings from Clang's static analyzer.

11 years agoFix sending bulk data starting with a newline.
Guus Sliepen [Tue, 22 Oct 2013 19:28:44 +0000 (21:28 +0200)]
Fix sending bulk data starting with a newline.

11 years agoMake sptps_test less verbose by default.
Guus Sliepen [Tue, 22 Oct 2013 19:19:41 +0000 (21:19 +0200)]
Make sptps_test less verbose by default.

11 years agoClean up child processes from proxy type exec.
Guus Sliepen [Fri, 18 Oct 2013 14:58:47 +0000 (16:58 +0200)]
Clean up child processes from proxy type exec.

11 years agoFix sending empty SPTPS records.
Guus Sliepen [Tue, 15 Oct 2013 12:09:42 +0000 (14:09 +0200)]
Fix sending empty SPTPS records.

11 years agoUse AES-256-GCM for the SPTPS protocol.
Guus Sliepen [Sat, 12 Oct 2013 23:02:52 +0000 (01:02 +0200)]
Use AES-256-GCM for the SPTPS protocol.

It is faster than AES-256-CTR + HMAC-SHA256, especially on Intel chips with AES
and PCLMULQDQ instructions.

11 years agoFix typos in the documentation.
Guus Sliepen [Fri, 27 Sep 2013 08:43:56 +0000 (10:43 +0200)]
Fix typos in the documentation.

Thanks to Thomas Sattler for finding and reporting them.

11 years agoFix segfault when Name = $HOST but $HOST is not set.
Guus Sliepen [Fri, 27 Sep 2013 09:36:46 +0000 (11:36 +0200)]
Fix segfault when Name = $HOST but $HOST is not set.

Conflicts:
src/net_setup.c

11 years agoLink sptps_speed with -lrt.
Guus Sliepen [Sun, 15 Sep 2013 20:03:00 +0000 (22:03 +0200)]
Link sptps_speed with -lrt.

This is necessary for clock_gettime() on older versions of libc.

11 years agoDon't leak memory during the key generation speed test.
Guus Sliepen [Sun, 15 Sep 2013 20:02:33 +0000 (22:02 +0200)]
Don't leak memory during the key generation speed test.

11 years agoAdd a benchmark for the SPTPS protocol.
Guus Sliepen [Sun, 15 Sep 2013 15:35:55 +0000 (17:35 +0200)]
Add a benchmark for the SPTPS protocol.

11 years agoAvoid using BIOs.
Guus Sliepen [Sun, 15 Sep 2013 14:21:25 +0000 (16:21 +0200)]
Avoid using BIOs.

11 years agoWrong date for the 1.1pre9 release in the NEWS.
Guus Sliepen [Sun, 15 Sep 2013 11:36:53 +0000 (13:36 +0200)]
Wrong date for the 1.1pre9 release in the NEWS.

11 years agoReleasing 1.1pre9. release-1.1pre9
Guus Sliepen [Sun, 8 Sep 2013 15:29:12 +0000 (17:29 +0200)]
Releasing 1.1pre9.

11 years agoDon't try to mkdir(CONFDIR) if --config is used.
Guus Sliepen [Sun, 8 Sep 2013 13:03:06 +0000 (15:03 +0200)]
Don't try to mkdir(CONFDIR) if --config is used.

11 years agoMake sure test scripts end up in the tarball.
Guus Sliepen [Sun, 8 Sep 2013 12:47:59 +0000 (14:47 +0200)]
Make sure test scripts end up in the tarball.

11 years agoAutomake doesn't like info files being mentioned in CLEANFILES.
Guus Sliepen [Sun, 8 Sep 2013 12:42:32 +0000 (14:42 +0200)]
Automake doesn't like info files being mentioned in CLEANFILES.

11 years agoTest running ping through two tinc daemons.
Guus Sliepen [Thu, 5 Sep 2013 15:42:31 +0000 (17:42 +0200)]
Test running ping through two tinc daemons.

This is a more complicated test with one tinc daemon using a tap interface
(therefore requiring root), and a second one using a multicast interface. A
separate program "pong" is listening on the same multicast address, and waits
for ARP and ICMP packets, responding to ICMP echo packets with replies.
This test doesn't require any configuration of the tap interface.

11 years agoDon't return zero-length packets when receiving multicast loopback packets.
Guus Sliepen [Thu, 5 Sep 2013 15:41:05 +0000 (17:41 +0200)]
Don't return zero-length packets when receiving multicast loopback packets.

11 years agoAdd two more test scripts.
Guus Sliepen [Thu, 5 Sep 2013 12:59:56 +0000 (14:59 +0200)]
Add two more test scripts.

11 years agoFix multicast device.
Guus Sliepen [Thu, 5 Sep 2013 12:51:13 +0000 (14:51 +0200)]
Fix multicast device.

11 years agoExit value 1 instead of a random non-zero value.
Guus Sliepen [Thu, 5 Sep 2013 12:50:10 +0000 (14:50 +0200)]
Exit value 1 instead of a random non-zero value.

11 years agoAdd a test for invite and join commands.
Guus Sliepen [Sun, 1 Sep 2013 22:15:50 +0000 (00:15 +0200)]
Add a test for invite and join commands.

11 years agoAlso test whether tinc daemons can connect to each other after import/export.
Guus Sliepen [Sun, 1 Sep 2013 22:15:18 +0000 (00:15 +0200)]
Also test whether tinc daemons can connect to each other after import/export.

11 years agoSlightly relax the connection rate limit for a single address.
Guus Sliepen [Sun, 1 Sep 2013 22:11:04 +0000 (00:11 +0200)]
Slightly relax the connection rate limit for a single address.

The restriction of accepting only 1 connection per second from a single address
is a bit too much, especially if one wants to join a VPN using an invitation,
which requires two connections.

11 years agoSend a RELOAD to a running tincd when a new invitation key has been generated.
Guus Sliepen [Sun, 1 Sep 2013 20:59:51 +0000 (22:59 +0200)]
Send a RELOAD to a running tincd when a new invitation key has been generated.

11 years agoClean up leftover tincd and sptps_test processes.
Guus Sliepen [Sun, 1 Sep 2013 20:58:45 +0000 (22:58 +0200)]
Clean up leftover tincd and sptps_test processes.

11 years agoFix tincd logfile location when running tests.
Guus Sliepen [Sun, 1 Sep 2013 19:55:16 +0000 (21:55 +0200)]
Fix tincd logfile location when running tests.

11 years agoFix broken build with --with-openssl, --with-libgcrypt.
Etienne Dechamps [Sun, 1 Sep 2013 19:07:32 +0000 (20:07 +0100)]
Fix broken build with --with-openssl, --with-libgcrypt.

When --with-openssl is used, $openssl is set to the specified path.
Unfortunately, that confuses the OPENSSL conditional which expects it to
be set to "true". The result is that the contents of the openssl/
directory are not built when --with-openssl is used, resulting in
undefined references and a broken build.

In addition, there is a typo in the GCRYPT conditional definition
("grypt" instead of "gcrypt") which means GCRYPT never gets set,
(presumably) breaking builds using libgcrypt.

These regressions were introduced in
9b9230a0a79c670b86f54fadd2807b864ff9d91f.

11 years agoAdd test for import, export and exchange commands.
Guus Sliepen [Sun, 1 Sep 2013 19:07:02 +0000 (21:07 +0200)]
Add test for import, export and exchange commands.

11 years agoSmall fixes for tests.
Guus Sliepen [Sun, 1 Sep 2013 19:06:25 +0000 (21:06 +0200)]
Small fixes for tests.

11 years agoMake sptps_test more easy to work with.
Guus Sliepen [Sun, 1 Sep 2013 14:02:49 +0000 (16:02 +0200)]
Make sptps_test more easy to work with.

It now defers reading from stdin until after the authentication phase is
completed.  Furthermore, it supports the -q, -r, -w options similar to those of
Jürgen Nickelsen's socket.

11 years agoSome shells set $_ to an absolute path.
Guus Sliepen [Sun, 1 Sep 2013 13:40:59 +0000 (15:40 +0200)]
Some shells set $_ to an absolute path.

11 years agoStart of a test suite.
Guus Sliepen [Sat, 31 Aug 2013 22:39:14 +0000 (00:39 +0200)]
Start of a test suite.

11 years agoAllow testing the replay window with sptps_test.
Guus Sliepen [Fri, 30 Aug 2013 12:23:02 +0000 (14:23 +0200)]
Allow testing the replay window with sptps_test.

11 years agoFix the replay window in SPTPS.
Guus Sliepen [Fri, 30 Aug 2013 12:22:05 +0000 (14:22 +0200)]
Fix the replay window in SPTPS.

11 years agoFix CTR mode.
Guus Sliepen [Fri, 30 Aug 2013 11:43:23 +0000 (13:43 +0200)]
Fix CTR mode.

11 years agoAdd an option to test datagram SPTPS with packet loss.
Guus Sliepen [Fri, 30 Aug 2013 11:04:14 +0000 (13:04 +0200)]
Add an option to test datagram SPTPS with packet loss.

11 years agoWhen generating invitations, handle any order of Port and Adress statements.
Guus Sliepen [Wed, 28 Aug 2013 12:24:07 +0000 (14:24 +0200)]
When generating invitations, handle any order of Port and Adress statements.

11 years agoCall WSAStartup() in main().
Guus Sliepen [Tue, 27 Aug 2013 19:19:50 +0000 (21:19 +0200)]
Call WSAStartup() in main().

The tinc utility defered calling WSAStartup() until it tried to connect to a
running tinc daemon. However, socket functions are now also used for other
things (like joining another VPN using an invitation). Now we just
unconditionally call WSAStartup() early in main().

11 years agoTell invited node about Mode and Broadcast settings.
Guus Sliepen [Fri, 23 Aug 2013 22:48:24 +0000 (00:48 +0200)]
Tell invited node about Mode and Broadcast settings.

Since these settings really should be the same for all nodes in a VPN.

11 years agoUse PATHEXT when checking for the presence of scripts on Windows.
Guus Sliepen [Fri, 23 Aug 2013 17:24:36 +0000 (19:24 +0200)]
Use PATHEXT when checking for the presence of scripts on Windows.

It seems like a lot of overhead to call access() for every possible extension
defined in PATHEXT, but apparently this is what Windows does itself too. At
least this avoids calling system() when the script one is looking for does not
exist at all.

Since the tinc utility also needs to call scripts, execute_script() is now
split off into its own source file.

11 years agoExecute scripts when invitations are created or accepted.
Guus Sliepen [Tue, 20 Aug 2013 22:24:55 +0000 (00:24 +0200)]
Execute scripts when invitations are created or accepted.

11 years agoEnsure the invitation filenames do not reveal the secret cookie.
Guus Sliepen [Tue, 20 Aug 2013 21:09:36 +0000 (23:09 +0200)]
Ensure the invitation filenames do not reveal the secret cookie.

Since filenames could potentially leak to unprivileged users (for example,
because of locatedb), it should not contain the cookie used for invitations.
Instead, tinc now uses the hash of the cookie and the invitation key as the
filename to store pending invitations in.

11 years agoLet a server explicitly send a notification when the invitation protocol succeeded.
Guus Sliepen [Tue, 20 Aug 2013 20:36:31 +0000 (22:36 +0200)]
Let a server explicitly send a notification when the invitation protocol succeeded.

11 years agoUse our own infrastructure for finding out the local node's externally visible host...
Guus Sliepen [Tue, 20 Aug 2013 14:49:03 +0000 (16:49 +0200)]
Use our own infrastructure for finding out the local node's externally visible host name.

11 years agoResolve the local host name before generating the invitation file.
Guus Sliepen [Tue, 20 Aug 2013 14:47:07 +0000 (16:47 +0200)]
Resolve the local host name before generating the invitation file.

11 years agoBind outgoing sockets again.
Guus Sliepen [Sun, 18 Aug 2013 21:55:40 +0000 (23:55 +0200)]
Bind outgoing sockets again.

Commit cff5a84 removed the feature of binding outgoing TCP sockets to a local
address. We now call bind() again, but only if there is exactly one listening
socket with the same address family as the destination address of the outgoing
socket.

11 years agoRemove broadcast of KEY_CHANGED message during tinc's initialization.
Guus Sliepen [Sun, 18 Aug 2013 20:43:55 +0000 (22:43 +0200)]
Remove broadcast of KEY_CHANGED message during tinc's initialization.

11 years agoFix order of tincd's initialization.
Guus Sliepen [Sun, 18 Aug 2013 20:35:27 +0000 (22:35 +0200)]
Fix order of tincd's initialization.

The order in which tinc initialized things was not completely correct. Now, it
is done as follows:

- Load and parse configuration files.
- Create all TCP and UDP listening sockets.
- Create PID file and UNIX socket.
- Run the tinc-up script.
- Drop privileges.
- Start outgoing connections.
- Run the main loop.

The PID file can only be created correctly if the listening sockets have been
set up ,as it includes the address and port of the first listening socket. The
tinc-up script has to be run after the PID file and UNIX socket have been
created so it can change their permissions if necessary. Outgoing connections
should only be started right before the main loop, because this is not really
part of the initialization.

11 years agoDon't force a .bat extension for scripts under Windows.
Guus Sliepen [Sun, 18 Aug 2013 16:20:41 +0000 (18:20 +0200)]
Don't force a .bat extension for scripts under Windows.

11 years agoCreate UNIX socket at the same time as the PID file is created.
Guus Sliepen [Sun, 18 Aug 2013 15:02:49 +0000 (17:02 +0200)]
Create UNIX socket at the same time as the PID file is created.

The PID file was created before tinc-up was called, but the UNIX socket was
created afterwards, which meant one could not change the UNIX socket's owner or
permissions from the tinc-up script.