Commit graph

3096 commits

Author SHA1 Message Date
Guus Sliepen
9bd978cc8e Add a test for tinc-up creation from invitations. 2016-04-17 13:56:37 +02:00
Guus Sliepen
0b96b69672 Fix compiler warnings. 2016-04-17 13:55:36 +02:00
Guus Sliepen
a08860ff8c Fix gateway parsing in invitation files. 2016-04-17 13:55:18 +02:00
Guus Sliepen
6d04528966 Allow gateways to be specified for routes.
Also improve the variable names, and ensure the % symbols in
%INTERFACE% are properly quoted.
2016-04-17 13:23:01 +02:00
Guus Sliepen
03878f1215 Move some stray #includes. 2016-04-17 01:13:56 +02:00
Guus Sliepen
3273e32541 Generate a tinc-up script from an invitation.
This adds the ability for an invitation to provision an invitee with a
tinc-up script. This is quite strictly controlled; only address configuration
and routes are supported by adding "Ifconfig" and "Route" statements to
the invitation file. The "tinc join" command will generate a tinc-up script
from those statements, and will ask before enabling the tinc-up script.
2016-04-17 01:13:27 +02:00
Guus Sliepen
b2200f2166 Document how invitation files work.
This should eventually be merged in to tinc.texi.
2016-04-16 22:06:47 +02:00
Guus Sliepen
a31e1f03c4 Stop using SOL_TCP, SOL_IP and SOL_IPV6.
Instead, use IPPROTO_TCP, _IP and _IPv6. This fixes an issue on OS X where
it didn't create an UDP socket that listened on IPv4.
2016-04-15 16:56:56 +02:00
Guus Sliepen
a0a8f8f81f Fix crash at startup when Device is not specified on OS X. 2016-04-15 16:30:45 +02:00
Guus Sliepen
8afb52a39a Fix conditional checking of tun/tap headers on DragonFly BSD. 2016-04-15 14:27:52 +02:00
Guus Sliepen
039d6d48af Fix some compiler warnings from MinGW. 2016-04-15 12:42:30 +02:00
Guus Sliepen
1f5c26102e Fix generation of version_git.h for some versions of BSD make.
In order to support VPATH builds, we have to use ${srcdir}/version.c as
the target for the rule that depends on the generation of version_git.h.
When not doing a VPATH build, ${srcdir} expands to ".", so the target
will be "./version.c". However, on some BSDs, make does not understand
that "./version.c" is the same as "version.c", and therefore it doesn't
trigger generating version_git.h when trying to build version.o. (It
works fine if you do a VPATH build, and OpenBSD's make does the right
thing in all cases.)

The trick is to have version.c depend on ${srcdir}/version.c. Of course,
Linux's make knows this is nonsense and will complain about a circular
dependency, so add this rule only on BSD platforms.
2016-04-15 12:30:01 +02:00
Guus Sliepen
0037ec7cb3 Fix a non-working cast to get rid of a compiler warning. 2016-04-15 12:29:31 +02:00
Guus Sliepen
25bcdad878 Don't use HAVE_SYSTEM, the autoconf check was removed. 2016-04-15 11:38:56 +02:00
Guus Sliepen
cd5f222cc4 Remove use of strcpy() and sprintf().
Even though they were safe, compilers like to warn about them nowadays.
2016-04-15 11:25:18 +02:00
Guus Sliepen
d4410d0cce Don't assume sa.sa_family is a short int.
Because FreeBSD's compiler complained about it.
2016-04-15 11:10:50 +02:00
Guus Sliepen
d704a89ecc Add version_git.h and sample-config.tar.gz to CLEANFILES. 2016-04-15 11:00:14 +02:00
Guus Sliepen
3cceae93f6 Make some platform-specific header checks conditional.
Don't check for linux/if_tun.h on BSD platforms for example.
2016-04-14 23:53:13 +02:00
Guus Sliepen
d10834e920 Remove support for Windows 2000 and anything that doesn't support getaddrinfo(). 2016-04-14 23:32:50 +02:00
Guus Sliepen
615ecb7a8a Remove checks for non-C99 compliant compilers. 2016-04-14 23:13:49 +02:00
Guus Sliepen
ed09fa4e03 Fix version_get.h generation on BSD.
It doesn't like .PHONY rules that are actually doing stuff. So make a really
phony rule that does nothing and depend in it in the version_git.h rule.
2016-04-14 23:01:18 +02:00
Guus Sliepen
2802b3a497 Fix typo in Makefile.am. 2016-04-14 22:59:42 +02:00
Guus Sliepen
46ebfbb6eb Use getcwd() instead of get_current_dir_name(). 2016-04-14 17:29:25 +02:00
Guus Sliepen
b5b04910b9 Replace usleep() with nanosleep(). 2016-04-14 17:21:47 +02:00
Guus Sliepen
491839a81a Fix compiling under MinGW. 2016-04-14 17:05:10 +02:00
Guus Sliepen
34ea20af73 Remove checks for headers and functions that are in C99. 2016-04-14 17:03:01 +02:00
Guus Sliepen
fd3800324f Make text files Markdown-compatible. 2016-04-13 15:34:16 +02:00
Guus Sliepen
7f749c7e75 Update .gitignore. 2016-04-11 15:28:26 +02:00
Guus Sliepen
9ba3e95a9a Remove elliptic curve stubs from gcrypt/, add PRF implementation. 2016-04-11 15:27:08 +02:00
Guus Sliepen
20dd1c21dc Really don't compile getopt*.c if the system provides getopt_long(). 2016-04-11 15:20:32 +02:00
Guus Sliepen
9527622abc Enable silent builds by default.
Cleaner build messages make it easier to spot compiler warnings and errors.
Use make V=1 to get the verbose output back.

# Conflicts:
#	configure.ac
#	doc/Makefile.am
2016-04-11 15:07:23 +02:00
Guus Sliepen
413faffca3 Update links in the documentation.
# Conflicts:
#	doc/tinc.conf.5.in
#	doc/tinc.texi
#	src/avl_tree.c
#	src/avl_tree.h
2016-04-11 14:58:27 +02:00
Guus Sliepen
5cbc12b3d4 Explicitly mention that LibreSSL can be used as well.
# Conflicts:
#	doc/tinc.texi
#	m4/openssl.m4
2016-04-11 14:55:23 +02:00
Guus Sliepen
d7f6737cfc Update support for BSD tun/tap devices, add support for OS X utun interfaces. 2016-04-11 14:49:51 +02:00
Guus Sliepen
2a7871990b Update "now" after connect() when making outgoing connections.
It could be that address resolution takes a long time, don't let that
count against a connection. This is especially important when using a
nameserver from the VPN.

# Conflicts:
#	src/net_socket.c
2016-04-10 17:49:23 +02:00
Guus Sliepen
cadbf587a0 Never call putenv() with data on the stack.
Even though we are using putenv() here to remove items from the
environment, there is no guarantee that putenv() doesn't add the
argument to the environment anyway. In that case, we have to make sure
that it doesn't go away. We also don't want a memory leak, so keep a
list of things we unputenv()ed around, so we can reuse things.

Thanks to Poul-Henning Kamp for pointing out this problem.

# Conflicts:
#	src/process.c
2016-04-10 17:42:23 +02:00
Guus Sliepen
0e8e53b4ce Fix --logfile without a filename on Windows.
On Windows, the log filename now defaults to "tinc.log" in the same
directory as tinc.conf.

# Conflicts:
#	src/tincd.c
2016-04-10 17:28:42 +02:00
Guus Sliepen
c544e5e8fe Support ToS/DiffServ for IPv6 meta and UDP connections.
Also remember ToS/DiffServ priority for each socket individually. This
is a port of commits c72e237 and 042a6c1.
2016-04-10 17:24:55 +02:00
Guus Sliepen
e355088535 Use iface instead of interface.
This was accidentally added in commit 2f03a5d.
2016-04-10 17:01:52 +02:00
Guus Sliepen
6f97c00115 Update THANKS. 2016-04-10 17:01:04 +02:00
Guus Sliepen
8be447ac02 Update .gitignore. 2016-04-10 16:51:03 +02:00
Guus Sliepen
9f0fb224a6 Don't compile getopt*.c if the system provides getopt_long().
# Conflicts:
#	configure.ac
#	src/Makefile.am
#	src/tincd.c
2016-04-10 16:47:32 +02:00
Guus Sliepen
c2726dae62 Fix typo.
Found by LunarShaddow.
2016-04-10 16:38:45 +02:00
LunarShaddow
e44c337eae re-arrange include sequence to avoid a mingw introduced bug.
refers: https://www.cygwin.com/ml/cygwin/2012-12/msg00194.html

# Conflicts:
#	src/cygwin/device.c
2016-03-07 21:54:13 +01:00
LunarShaddow
af83d0b9e8 fix typo 2016-03-07 21:51:44 +01:00
Guus Sliepen
bf50b3502a Fix for botched cherry-pick commit 60fb230. 2016-02-28 16:38:49 +01:00
Guus Sliepen
1ceea259c3 Add warnings for bad combinations of Device and Interface.
On Linux, the name of the tun/tap interface can be set freely. However,
on most other operating systems, tinc cannot change the name of the
interface. In those situations, it is possible to specify a Device and
an Interface that conflict with each other. On BSD, this can cause
$INTERFACE to be set incorrectly, on Windows, this results in a
potentially unreliable way in which a TAP-Win32 interface is selected.

# Conflicts:
#	src/bsd/device.c
2016-02-28 16:37:52 +01:00
Guus Sliepen
e3f80e9167 Small fixes for the documentation.
# Conflicts:
#	doc/tinc.texi
2016-02-28 16:36:15 +01:00
Guus Sliepen
72cfd4f047 Clarify that scripts are called synchronously.
# Conflicts:
#	doc/tinc.conf.5.in
#	doc/tinc.texi
2016-02-28 16:35:21 +01:00
Guus Sliepen
4d7469e0da Fix forwarding of edge updates.
Commit e4670fc accidentily prevented ADD_EDGE messages from propagating
in some cases.
2016-02-28 16:31:31 +01:00