Compare commits
80 commits
upstream/1
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c14863878e | ||
|
|
72c0b016d0 | ||
|
|
464df78ca9 | ||
|
|
32e725a2c0 | ||
|
|
038933e7fc | ||
|
|
6932380624 | ||
|
|
10b8518c22 | ||
|
|
b511a112e6 | ||
|
|
bc8ca65653 | ||
|
|
87cef22421 | ||
|
|
aa10d88732 | ||
|
|
1813f3157e | ||
|
|
60cff3039b | ||
|
|
f5c641f5cc | ||
|
|
2ebbac3278 | ||
|
|
26033edb96 | ||
|
|
ff64081061 | ||
|
|
36f0d3c816 | ||
|
|
34d5939212 | ||
|
|
ecd1f6f67a | ||
|
|
02de1cd2f1 | ||
|
|
a04a7bcd67 | ||
|
|
f8e1f5a528 | ||
|
|
b28bb7b29b | ||
|
|
66e86a419b | ||
|
|
ac78971aab | ||
|
|
2989322746 | ||
|
|
11d9efef1b | ||
|
|
dcd38ec07d | ||
|
|
502cecde93 | ||
|
|
e537caa7b1 | ||
|
|
02fdd053f1 | ||
|
|
a83439b023 | ||
|
|
c167efd01b | ||
|
|
088ed763df | ||
|
|
4d11e18342 | ||
|
|
1e23c12b1d | ||
|
|
c0d04cc168 | ||
|
|
a0bb9d443f | ||
|
|
cce24e0be4 | ||
|
|
e53cefdf85 | ||
|
|
d7b49da4e6 | ||
|
|
c09679c3ba | ||
|
|
854118c85f | ||
|
|
a7e5217cf7 | ||
|
|
e8daab5950 | ||
|
|
6698135e07 | ||
|
|
4343b5a2fa | ||
|
|
a797a94c81 | ||
|
|
cc0493ea17 | ||
|
|
06acdce080 | ||
|
|
8ce89f6ef0 | ||
|
|
c63e635d89 | ||
|
|
c078db2fd8 | ||
|
|
94e6f906d5 | ||
|
|
5a84bb737c | ||
|
|
2ad1dc3fd7 | ||
|
|
3f653aaa2d | ||
|
|
f01c927470 | ||
|
|
dc781ea51d | ||
|
|
0fd2ac248d | ||
|
|
2006358f32 | ||
|
|
3cfe4d82fb | ||
|
|
0dd8a42607 | ||
|
|
08ed40f17e | ||
|
|
7e336e415f | ||
|
|
b96e4c6b19 | ||
|
|
445df16805 | ||
|
|
4812d2eb3d | ||
|
|
19f25e5e7d | ||
|
|
74be525b2f | ||
|
|
be5fbb7e93 | ||
|
|
bcb4501d84 | ||
|
|
c473eb1653 | ||
|
|
2cb3185582 | ||
|
|
23459e1237 | ||
|
|
458d509a4f | ||
|
|
64f9c3df1b | ||
|
|
6f5ff440c9 | ||
|
|
0f3c45c5cc |
86 changed files with 6759 additions and 3819 deletions
2
COPYING
2
COPYING
|
|
@ -1,4 +1,4 @@
|
||||||
Copyright (C) 1998-2017 Ivo Timmermans, Guus Sliepen and others.
|
Copyright (C) 1998-2019 Ivo Timmermans, Guus Sliepen and others.
|
||||||
See the AUTHORS file for a complete list.
|
See the AUTHORS file for a complete list.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify it under
|
This program is free software; you can redistribute it and/or modify it under
|
||||||
|
|
|
||||||
114
ChangeLog
114
ChangeLog
|
|
@ -1,3 +1,70 @@
|
||||||
|
Version 1.0.36 August 26 2019
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Guus Sliepen (8):
|
||||||
|
Remove the call to RAND_load_file().
|
||||||
|
Update THANKS.
|
||||||
|
Backport tinc 1.1's str2net() function.
|
||||||
|
Update THANKS.
|
||||||
|
Fix spelling errors found by codespell.
|
||||||
|
Reformat all code using astyle.
|
||||||
|
Add a missing check for a pathname being too long.
|
||||||
|
Releasing 1.0.36.
|
||||||
|
|
||||||
|
Rosen Penev (2):
|
||||||
|
Fix compilation when OpenSSL has no ENGINE support
|
||||||
|
Fix compilation without deprecated OpenSSL APIs
|
||||||
|
|
||||||
|
Quentin Rameau (1):
|
||||||
|
Double-quote nodes in graphviz network file
|
||||||
|
|
||||||
|
Werner Schreiber (1):
|
||||||
|
Fix segfault when dest->mtu is 0.
|
||||||
|
|
||||||
|
Version 1.0.35 October 05 2018
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Guus Sliepen (12):
|
||||||
|
Prevent oracle attacks (CVE-2018-16737, CVE-2018-16738)
|
||||||
|
Prevent a MITM from forcing a NULL cipher for UDP (CVE-2018-16758)
|
||||||
|
Check the return value from snprintf().
|
||||||
|
Check the return values from BN_hex2bn() and RAND_load_file().
|
||||||
|
Fix all warnings when compiling with -Wall -W -pedantic.
|
||||||
|
Fix two small memory leaks.
|
||||||
|
Don't check for NULL-pointers before calling free().
|
||||||
|
Update THANKS.
|
||||||
|
Fix checks for Cygwin-related macros.
|
||||||
|
Fix spelling errors.
|
||||||
|
Update README and links to required libraries.
|
||||||
|
Releasing 1.0.35.
|
||||||
|
|
||||||
|
AMRI Amine (1):
|
||||||
|
Fixing typo
|
||||||
|
|
||||||
|
Rafael Sadowski (1):
|
||||||
|
OpenBSD has a proper tap device.
|
||||||
|
|
||||||
|
Version 1.0.34 June 12 2018
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Guus Sliepen (10):
|
||||||
|
Add missing thanks to the NEWS message.
|
||||||
|
Fix building documentation when using OpenBSD's make.
|
||||||
|
Fix #ifdefs that were broken due to commit d178b58.
|
||||||
|
Don't use SOL_IP and SOL_IPV6.
|
||||||
|
Make systemd service file handling identical to tinc 1.1.
|
||||||
|
Rename distro/ to systemd/.
|
||||||
|
Document how to enable tinc at boot time using systemd.
|
||||||
|
Fix all spelling errors found by codespell.
|
||||||
|
Properly implement tinc.texi's dependency on tincinclude.texi.
|
||||||
|
Releasing 1.0.34.
|
||||||
|
|
||||||
|
Maximilian Stein (1):
|
||||||
|
Fix SEGFAULT when trying to connect to IPv6 peer in non-IPv6 environment
|
||||||
|
|
||||||
|
wangliushuai (1):
|
||||||
|
Remove redundant 'break'.
|
||||||
|
|
||||||
Version 1.0.33 November 04 2017
|
Version 1.0.33 November 04 2017
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
@ -225,20 +292,7 @@ VittGam (1):
|
||||||
Version 1.0.24 May 11 2014
|
Version 1.0.24 May 11 2014
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
Guus Sliepen (26):
|
Guus Sliepen (13):
|
||||||
Mention in the manual that multiple Address staments are allowed.
|
|
||||||
If no Port is specified, set myport to actual port of first listening socket.
|
|
||||||
Enable compiler hardening flags by default.
|
|
||||||
Update support for Solaris.
|
|
||||||
Include <limits.h> for PATH_MAX.
|
|
||||||
Stricter check for raw socket support.
|
|
||||||
Use hardcoded value for TUNNEWPPA if net/if_tun.h is missing on Solaris.
|
|
||||||
Fix incorrectly merged bits from 80cd2ff73071941a5356555b85a00ee90dfd0e16.
|
|
||||||
Don't enable -fstack-protector-all.
|
|
||||||
Remove or lower the priority of some debug messages.
|
|
||||||
Clarify StrictSubnets.
|
|
||||||
Attribution for various contributors.
|
|
||||||
Handle errors from TAP-Win32/64 adapter in a better way.
|
|
||||||
Remove useless variable 'hard' from try_harder().
|
Remove useless variable 'hard' from try_harder().
|
||||||
Merge pull request #14 from luckyhacky/master
|
Merge pull request #14 from luckyhacky/master
|
||||||
Add an autoconf check for res_init().
|
Add an autoconf check for res_init().
|
||||||
|
|
@ -258,22 +312,40 @@ Steffan Karger (3):
|
||||||
Use cryptographically strong random when generating keys.
|
Use cryptographically strong random when generating keys.
|
||||||
Check RAND_bytes() return value, fail when getting random fails.
|
Check RAND_bytes() return value, fail when getting random fails.
|
||||||
|
|
||||||
Florent Clairambault (2):
|
|
||||||
Adding "conf.d" configuration dir support.
|
|
||||||
Adding some documentation around the /etc/tinc/$NET/conf.d directory.
|
|
||||||
|
|
||||||
Armin Fisslthaler (1):
|
Armin Fisslthaler (1):
|
||||||
reload /etc/resolv.conf in SIGALRM handler
|
reload /etc/resolv.conf in SIGALRM handler
|
||||||
|
|
||||||
Loic Dachary (1):
|
Loic Dachary (1):
|
||||||
fix documentation typo
|
fix documentation typo
|
||||||
|
|
||||||
Vilbrekin (1):
|
|
||||||
Update android build instructions. Disable PIE as this is not supported on some devices.
|
|
||||||
|
|
||||||
luckyhacky (1):
|
luckyhacky (1):
|
||||||
update to openssl version 1.0.1g due to lack of heartbleed bug in prior version of openssl
|
update to openssl version 1.0.1g due to lack of heartbleed bug in prior version of openssl
|
||||||
|
|
||||||
|
refs/tags/1.0.23-android-1 March 11 2014
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Guus Sliepen (13):
|
||||||
|
Mention in the manual that multiple Address staments are allowed.
|
||||||
|
If no Port is specified, set myport to actual port of first listening socket.
|
||||||
|
Enable compiler hardening flags by default.
|
||||||
|
Update support for Solaris.
|
||||||
|
Include <limits.h> for PATH_MAX.
|
||||||
|
Stricter check for raw socket support.
|
||||||
|
Use hardcoded value for TUNNEWPPA if net/if_tun.h is missing on Solaris.
|
||||||
|
Fix incorrectly merged bits from 80cd2ff73071941a5356555b85a00ee90dfd0e16.
|
||||||
|
Don't enable -fstack-protector-all.
|
||||||
|
Remove or lower the priority of some debug messages.
|
||||||
|
Clarify StrictSubnets.
|
||||||
|
Attribution for various contributors.
|
||||||
|
Handle errors from TAP-Win32/64 adapter in a better way.
|
||||||
|
|
||||||
|
Florent Clairambault (2):
|
||||||
|
Adding "conf.d" configuration dir support.
|
||||||
|
Adding some documentation around the /etc/tinc/$NET/conf.d directory.
|
||||||
|
|
||||||
|
Vilbrekin (1):
|
||||||
|
Update android build instructions. Disable PIE as this is not supported on some devices.
|
||||||
|
|
||||||
Version 1.0.23 October 19 2013
|
Version 1.0.23 October 19 2013
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
AUTOMAKE_OPTIONS = gnu
|
AUTOMAKE_OPTIONS = gnu
|
||||||
|
|
||||||
SUBDIRS = src doc distro
|
SUBDIRS = src doc systemd
|
||||||
|
|
||||||
ACLOCAL_AMFLAGS = -I m4
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
|
|
||||||
|
|
|
||||||
34
Makefile.in
34
Makefile.in
|
|
@ -1,7 +1,7 @@
|
||||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
# Makefile.in generated by automake 1.16.2 from Makefile.am.
|
||||||
# @configure_input@
|
# @configure_input@
|
||||||
|
|
||||||
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
# Copyright (C) 1994-2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
# This Makefile.in is free software; the Free Software Foundation
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
|
@ -141,9 +141,9 @@ am__recursive_targets = \
|
||||||
$(RECURSIVE_CLEAN_TARGETS) \
|
$(RECURSIVE_CLEAN_TARGETS) \
|
||||||
$(am__extra_recursive_targets)
|
$(am__extra_recursive_targets)
|
||||||
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
|
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
|
||||||
cscope distdir dist dist-all distcheck
|
cscope distdir distdir-am dist dist-all distcheck
|
||||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
|
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \
|
||||||
$(LISP)config.h.in
|
config.h.in
|
||||||
# Read a list of newline-separated strings from the standard input,
|
# Read a list of newline-separated strings from the standard input,
|
||||||
# and print each of them once, without duplicates. Input order is
|
# and print each of them once, without duplicates. Input order is
|
||||||
# *not* preserved.
|
# *not* preserved.
|
||||||
|
|
@ -250,9 +250,6 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
PACKAGE_URL = @PACKAGE_URL@
|
PACKAGE_URL = @PACKAGE_URL@
|
||||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
PKG_CONFIG = @PKG_CONFIG@
|
|
||||||
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
|
||||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
|
||||||
SET_MAKE = @SET_MAKE@
|
SET_MAKE = @SET_MAKE@
|
||||||
SHELL = @SHELL@
|
SHELL = @SHELL@
|
||||||
STRIP = @STRIP@
|
STRIP = @STRIP@
|
||||||
|
|
@ -304,13 +301,13 @@ sbindir = @sbindir@
|
||||||
sharedstatedir = @sharedstatedir@
|
sharedstatedir = @sharedstatedir@
|
||||||
srcdir = @srcdir@
|
srcdir = @srcdir@
|
||||||
sysconfdir = @sysconfdir@
|
sysconfdir = @sysconfdir@
|
||||||
systemdsystemunitdir = @systemdsystemunitdir@
|
systemd_path = @systemd_path@
|
||||||
target_alias = @target_alias@
|
target_alias = @target_alias@
|
||||||
top_build_prefix = @top_build_prefix@
|
top_build_prefix = @top_build_prefix@
|
||||||
top_builddir = @top_builddir@
|
top_builddir = @top_builddir@
|
||||||
top_srcdir = @top_srcdir@
|
top_srcdir = @top_srcdir@
|
||||||
AUTOMAKE_OPTIONS = gnu
|
AUTOMAKE_OPTIONS = gnu
|
||||||
SUBDIRS = src doc distro
|
SUBDIRS = src doc systemd
|
||||||
ACLOCAL_AMFLAGS = -I m4
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
EXTRA_DIST = COPYING.README README.android
|
EXTRA_DIST = COPYING.README README.android
|
||||||
all: config.h
|
all: config.h
|
||||||
|
|
@ -338,8 +335,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||||
echo ' $(SHELL) ./config.status'; \
|
echo ' $(SHELL) ./config.status'; \
|
||||||
$(SHELL) ./config.status;; \
|
$(SHELL) ./config.status;; \
|
||||||
*) \
|
*) \
|
||||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
|
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
|
||||||
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
|
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
|
||||||
esac;
|
esac;
|
||||||
|
|
||||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||||
|
|
@ -472,7 +469,10 @@ distclean-tags:
|
||||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||||
-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
|
-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(BUILT_SOURCES)
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) distdir-am
|
||||||
|
|
||||||
|
distdir-am: $(DISTFILES)
|
||||||
@case `sed 15q $(srcdir)/NEWS` in \
|
@case `sed 15q $(srcdir)/NEWS` in \
|
||||||
*"$(VERSION)"*) : ;; \
|
*"$(VERSION)"*) : ;; \
|
||||||
*) \
|
*) \
|
||||||
|
|
@ -558,6 +558,10 @@ dist-xz: distdir
|
||||||
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
|
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
|
||||||
$(am__post_remove_distdir)
|
$(am__post_remove_distdir)
|
||||||
|
|
||||||
|
dist-zstd: distdir
|
||||||
|
tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst
|
||||||
|
$(am__post_remove_distdir)
|
||||||
|
|
||||||
dist-tarZ: distdir
|
dist-tarZ: distdir
|
||||||
@echo WARNING: "Support for distribution archives compressed with" \
|
@echo WARNING: "Support for distribution archives compressed with" \
|
||||||
"legacy program 'compress' is deprecated." >&2
|
"legacy program 'compress' is deprecated." >&2
|
||||||
|
|
@ -600,6 +604,8 @@ distcheck: dist
|
||||||
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
|
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
|
||||||
*.zip*) \
|
*.zip*) \
|
||||||
unzip $(distdir).zip ;;\
|
unzip $(distdir).zip ;;\
|
||||||
|
*.tar.zst*) \
|
||||||
|
zstd -dc $(distdir).tar.zst | $(am__untar) ;;\
|
||||||
esac
|
esac
|
||||||
chmod -R a-w $(distdir)
|
chmod -R a-w $(distdir)
|
||||||
chmod u+w $(distdir)
|
chmod u+w $(distdir)
|
||||||
|
|
@ -776,7 +782,7 @@ uninstall-am:
|
||||||
am--refresh check check-am clean clean-cscope clean-generic \
|
am--refresh check check-am clean clean-cscope clean-generic \
|
||||||
cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \
|
cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \
|
||||||
dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \
|
dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \
|
||||||
distcheck distclean distclean-generic distclean-hdr \
|
dist-zstd distcheck distclean distclean-generic distclean-hdr \
|
||||||
distclean-tags distcleancheck distdir distuninstallcheck dvi \
|
distclean-tags distcleancheck distdir distuninstallcheck dvi \
|
||||||
dvi-am html html-am info info-am install install-am \
|
dvi-am html html-am info info-am install install-am \
|
||||||
install-data install-data-am install-dvi install-dvi-am \
|
install-data install-data-am install-dvi install-dvi-am \
|
||||||
|
|
|
||||||
35
NEWS
35
NEWS
|
|
@ -1,3 +1,33 @@
|
||||||
|
Version 1.0.36 August 26 2019
|
||||||
|
|
||||||
|
* Fix compiling tinc with certain versions of the OpenSSL library.
|
||||||
|
* Fix parsing some IPv6 addresses with :: in them.
|
||||||
|
* Fix GraphDumpFile output to handle node names starting with a digit.
|
||||||
|
* Fix a potential segmentation fault when fragmenting packets.
|
||||||
|
|
||||||
|
Thanks to Rosen Penev, Quentin Rameau and Werner Schreiber for their
|
||||||
|
contributions to this version of tinc.
|
||||||
|
|
||||||
|
Version 1.0.35 October 5 2018
|
||||||
|
|
||||||
|
* Prevent oracle attacks (CVE-2018-16737, CVE-2018-16738).
|
||||||
|
* Prevent a MITM from forcing a NULL cipher for UDP (CVE-2018-16758).
|
||||||
|
* Minor fixes in the documentation.
|
||||||
|
|
||||||
|
Thanks to Amine Amri and Rafael Sadowski for their contributions to this
|
||||||
|
version of tinc.
|
||||||
|
|
||||||
|
Version 1.0.34 June 12 2018
|
||||||
|
|
||||||
|
* Fix a potential segmentation fault when connecting to an IPv6 peer via a
|
||||||
|
proxy.
|
||||||
|
* Minor improvements to the build system.
|
||||||
|
* Make the systemd service file identical to the one from the 1.1 branch.
|
||||||
|
* Fix a potential problem causing IPv4 sockets to not work on macOS.
|
||||||
|
|
||||||
|
Thanks to Maximilian Stein and Wang Liu Shuai for their contributions to this
|
||||||
|
version of tinc.
|
||||||
|
|
||||||
Version 1.0.33 November 4 2017
|
Version 1.0.33 November 4 2017
|
||||||
|
|
||||||
* Allow compilation from a build directory.
|
* Allow compilation from a build directory.
|
||||||
|
|
@ -7,6 +37,9 @@ Version 1.0.33 November 4 2017
|
||||||
* Disable PMTUDiscovery when TCPOnly is used.
|
* Disable PMTUDiscovery when TCPOnly is used.
|
||||||
* Support the --runstatedir option of the autoconf 2.70.
|
* Support the --runstatedir option of the autoconf 2.70.
|
||||||
|
|
||||||
|
Thanks to Rafael Sadowski and Pierre-Olivier Mercier for their contributions to
|
||||||
|
this version of tinc.
|
||||||
|
|
||||||
Version 1.0.32 September 2 2017
|
Version 1.0.32 September 2 2017
|
||||||
|
|
||||||
* Fix segmentation fault when using Cipher = none.
|
* Fix segmentation fault when using Cipher = none.
|
||||||
|
|
@ -338,7 +371,7 @@ Version 1.0.9 Dec 26 2008
|
||||||
|
|
||||||
* Enable path MTU discovery by default.
|
* Enable path MTU discovery by default.
|
||||||
|
|
||||||
* Fixed a memory leak that occured when connections were closed.
|
* Fixed a memory leak that occurred when connections were closed.
|
||||||
|
|
||||||
Thanks to Max Rijevski for his contributions to this version of tinc.
|
Thanks to Max Rijevski for his contributions to this version of tinc.
|
||||||
|
|
||||||
|
|
|
||||||
45
README
45
README
|
|
@ -1,7 +1,7 @@
|
||||||
This is the README file for tinc version 1.0.33. Installation
|
This is the README file for tinc version 1.0.36. Installation
|
||||||
instructions may be found in the INSTALL file.
|
instructions may be found in the INSTALL file.
|
||||||
|
|
||||||
tinc is Copyright (C) 1998-2017 by:
|
tinc is Copyright (C) 1998-2019 by:
|
||||||
|
|
||||||
Ivo Timmermans,
|
Ivo Timmermans,
|
||||||
Guus Sliepen <guus@tinc-vpn.org>,
|
Guus Sliepen <guus@tinc-vpn.org>,
|
||||||
|
|
@ -41,24 +41,25 @@ issues are being addressed in the tinc 1.1 branch.
|
||||||
|
|
||||||
The Sweet32 attack affects versions of tinc prior to 1.0.30.
|
The Sweet32 attack affects versions of tinc prior to 1.0.30.
|
||||||
|
|
||||||
|
On September 6th, 2018, Michael Yonly contacted us and provided
|
||||||
|
proof-of-concept code that allowed a remote attacker to create an
|
||||||
|
authenticated, one-way connection with a node, and also that there was a
|
||||||
|
possibility for a man-in-the-middle to force UDP packets from a node to be sent
|
||||||
|
in plaintext. The first issue was trivial to exploit on tinc versions prior to
|
||||||
|
1.0.30, but the changes in 1.0.30 to mitigate the Sweet32 attack made this
|
||||||
|
weakness much harder to exploit. These issues have been fixed in tinc 1.0.35.
|
||||||
|
The new protocol in the tinc 1.1 branch is not susceptible to these issues.
|
||||||
|
|
||||||
Cryptography is a hard thing to get right. We cannot make any
|
Cryptography is a hard thing to get right. We cannot make any
|
||||||
guarantees. Time, review and feedback are the only things that can
|
guarantees. Time, review and feedback are the only things that can
|
||||||
prove the security of any cryptographic product. If you wish to review
|
prove the security of any cryptographic product. If you wish to review
|
||||||
tinc or give us feedback, you are strongly encouraged to do so.
|
tinc or give us feedback, you are strongly encouraged to do so.
|
||||||
|
|
||||||
|
|
||||||
Changes to configuration file format since 1.0pre5
|
|
||||||
--------------------------------------------------
|
|
||||||
|
|
||||||
Some configuration variables have different names now. Most notably "TapDevice"
|
|
||||||
should be changed into "Device", and "Device" should be changed into
|
|
||||||
"BindToDevice".
|
|
||||||
|
|
||||||
|
|
||||||
Compatibility
|
Compatibility
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
Version 1.0.31 is compatible with 1.0pre8, 1.0 and later, but not with older
|
Version 1.0.35 is compatible with 1.0pre8, 1.0 and later, but not with older
|
||||||
versions of tinc. Note that since version 1.0.30, tinc requires all nodes in
|
versions of tinc. Note that since version 1.0.30, tinc requires all nodes in
|
||||||
the VPN to be compiled with a version of LibreSSL or OpenSSL that supports the
|
the VPN to be compiled with a version of LibreSSL or OpenSSL that supports the
|
||||||
AES256 and SHA256 algorithms.
|
AES256 and SHA256 algorithms.
|
||||||
|
|
@ -67,21 +68,21 @@ AES256 and SHA256 algorithms.
|
||||||
Requirements
|
Requirements
|
||||||
------------
|
------------
|
||||||
|
|
||||||
Since 1.0pre3, we use OpenSSL for all cryptographic functions. So you need to
|
The OpenSSL library is used for all cryptographic functions. You can find it at
|
||||||
install this library first; grab it from http://www.openssl.org/. You will
|
https://www.openssl.org/. You will need version 1.0.1 or later with support for
|
||||||
need version 1.0.1 or later with support for AES256 and SHA256 enabled. If
|
AES256 and SHA256 enabled. If this library is not installed on your system, the
|
||||||
this library is not installed on you system, configure will fail. The manual
|
configure script will fail. The manual in doc/tinc.texi contains more detailed
|
||||||
in doc/tinc.texi contains more detailed information on how to install this
|
information on how to install this library. Alternatively, you may also use the
|
||||||
library. Alternatively, you may also use LibreSSL.
|
LibreSSL library.
|
||||||
|
|
||||||
Since 1.0pre6, the zlib library is used for optional compression. You can
|
The zlib library is used for optional compression. You can
|
||||||
find it at http://www.gzip.org/zlib/. Because of a possible exploit in
|
find it at https://zlib.net/. Because of a possible exploit in
|
||||||
earlier versions we recommend that you download version 1.1.4 or later.
|
earlier versions we recommend that you download version 1.1.4 or later.
|
||||||
|
|
||||||
Since 1.0, the lzo library is also used for optional compression. You can
|
The LZO library is also used for optional compression. You can
|
||||||
find it at http://www.oberhumer.com/opensource/lzo/.
|
find it at https://www.oberhumer.com/opensource/lzo/.
|
||||||
|
|
||||||
In order to compile tinc, you will need a GNU C compiler environment.
|
In order to compile tinc, you will need a C99 compliant compiler.
|
||||||
|
|
||||||
|
|
||||||
Features
|
Features
|
||||||
|
|
|
||||||
9
THANKS
9
THANKS
|
|
@ -5,6 +5,7 @@ We would like to thank the following people for their contributions to tinc:
|
||||||
* Alexis Hildebrandt
|
* Alexis Hildebrandt
|
||||||
* Allesandro Gatti
|
* Allesandro Gatti
|
||||||
* Andreas van Cranenburgh
|
* Andreas van Cranenburgh
|
||||||
|
* Andrew Hahn
|
||||||
* Anthony G. Basile
|
* Anthony G. Basile
|
||||||
* Armijn Hemel
|
* Armijn Hemel
|
||||||
* Armin Fisslthaler
|
* Armin Fisslthaler
|
||||||
|
|
@ -21,6 +22,7 @@ We would like to thank the following people for their contributions to tinc:
|
||||||
* Delf Eldkraft
|
* Delf Eldkraft
|
||||||
* Dennis Joachimsthaler
|
* Dennis Joachimsthaler
|
||||||
* dnk
|
* dnk
|
||||||
|
* Егор Палкин
|
||||||
* Élie Bouttier
|
* Élie Bouttier
|
||||||
* Enrique Zanardi
|
* Enrique Zanardi
|
||||||
* Erik Tews
|
* Erik Tews
|
||||||
|
|
@ -41,8 +43,10 @@ We would like to thank the following people for their contributions to tinc:
|
||||||
* James Cook
|
* James Cook
|
||||||
* James MacLean
|
* James MacLean
|
||||||
* Jamie Briggs
|
* Jamie Briggs
|
||||||
|
* Jan Štembera
|
||||||
* Jason Harper
|
* Jason Harper
|
||||||
* Jason Livesay
|
* Jason Livesay
|
||||||
|
* Jasper Krijgsman
|
||||||
* Jelle de Jong
|
* Jelle de Jong
|
||||||
* Jeroen Domburg
|
* Jeroen Domburg
|
||||||
* Jeroen Ubbink
|
* Jeroen Ubbink
|
||||||
|
|
@ -69,7 +73,9 @@ We would like to thank the following people for their contributions to tinc:
|
||||||
* Max Rijevski
|
* Max Rijevski
|
||||||
* Menno Smits
|
* Menno Smits
|
||||||
* Mesar Hameed
|
* Mesar Hameed
|
||||||
|
* Michael Taylor
|
||||||
* Michael Tokarev
|
* Michael Tokarev
|
||||||
|
* Michael Yonli
|
||||||
* Miles Nordin
|
* Miles Nordin
|
||||||
* Nathan Stratton Treadway
|
* Nathan Stratton Treadway
|
||||||
* Murat Donmez
|
* Murat Donmez
|
||||||
|
|
@ -79,10 +85,12 @@ We would like to thank the following people for their contributions to tinc:
|
||||||
* Philipp Babel
|
* Philipp Babel
|
||||||
* Pierre Emeriaud
|
* Pierre Emeriaud
|
||||||
* Pierre-Olivier Mercier
|
* Pierre-Olivier Mercier
|
||||||
|
* Rafael Wolf
|
||||||
* Rafael Sadowski
|
* Rafael Sadowski
|
||||||
* Rafał Leśniak
|
* Rafał Leśniak
|
||||||
* Rhosyn Celyn
|
* Rhosyn Celyn
|
||||||
* Robert van der Meulen
|
* Robert van der Meulen
|
||||||
|
* Robert Waniek
|
||||||
* Rumko
|
* Rumko
|
||||||
* Ryan Miller
|
* Ryan Miller
|
||||||
* Sam Bryan
|
* Sam Bryan
|
||||||
|
|
@ -101,6 +109,7 @@ We would like to thank the following people for their contributions to tinc:
|
||||||
* Tonnerre Lombard
|
* Tonnerre Lombard
|
||||||
* Ulrich Seifert
|
* Ulrich Seifert
|
||||||
* Vil Brekin
|
* Vil Brekin
|
||||||
|
* Vincent Laurent
|
||||||
* Vittorio Gambaletta
|
* Vittorio Gambaletta
|
||||||
* Wendy Willard
|
* Wendy Willard
|
||||||
* Wessel Dankers
|
* Wessel Dankers
|
||||||
|
|
|
||||||
467
aclocal.m4
vendored
467
aclocal.m4
vendored
|
|
@ -1,6 +1,6 @@
|
||||||
# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
|
# generated automatically by aclocal 1.16.2 -*- Autoconf -*-
|
||||||
|
|
||||||
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
|
# Copyright (C) 1996-2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
|
@ -20,283 +20,7 @@ You have another version of autoconf. It may work, but is not guaranteed to.
|
||||||
If you have problems, you may need to regenerate the build system entirely.
|
If you have problems, you may need to regenerate the build system entirely.
|
||||||
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
|
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
|
||||||
|
|
||||||
dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
|
# Copyright (C) 2002-2020 Free Software Foundation, Inc.
|
||||||
dnl serial 11 (pkg-config-0.29)
|
|
||||||
dnl
|
|
||||||
dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
|
|
||||||
dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
|
|
||||||
dnl
|
|
||||||
dnl This program is free software; you can redistribute it and/or modify
|
|
||||||
dnl it under the terms of the GNU General Public License as published by
|
|
||||||
dnl the Free Software Foundation; either version 2 of the License, or
|
|
||||||
dnl (at your option) any later version.
|
|
||||||
dnl
|
|
||||||
dnl This program is distributed in the hope that it will be useful, but
|
|
||||||
dnl WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
dnl General Public License for more details.
|
|
||||||
dnl
|
|
||||||
dnl You should have received a copy of the GNU General Public License
|
|
||||||
dnl along with this program; if not, write to the Free Software
|
|
||||||
dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
||||||
dnl 02111-1307, USA.
|
|
||||||
dnl
|
|
||||||
dnl As a special exception to the GNU General Public License, if you
|
|
||||||
dnl distribute this file as part of a program that contains a
|
|
||||||
dnl configuration script generated by Autoconf, you may include it under
|
|
||||||
dnl the same distribution terms that you use for the rest of that
|
|
||||||
dnl program.
|
|
||||||
|
|
||||||
dnl PKG_PREREQ(MIN-VERSION)
|
|
||||||
dnl -----------------------
|
|
||||||
dnl Since: 0.29
|
|
||||||
dnl
|
|
||||||
dnl Verify that the version of the pkg-config macros are at least
|
|
||||||
dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's
|
|
||||||
dnl installed version of pkg-config, this checks the developer's version
|
|
||||||
dnl of pkg.m4 when generating configure.
|
|
||||||
dnl
|
|
||||||
dnl To ensure that this macro is defined, also add:
|
|
||||||
dnl m4_ifndef([PKG_PREREQ],
|
|
||||||
dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])])
|
|
||||||
dnl
|
|
||||||
dnl See the "Since" comment for each macro you use to see what version
|
|
||||||
dnl of the macros you require.
|
|
||||||
m4_defun([PKG_PREREQ],
|
|
||||||
[m4_define([PKG_MACROS_VERSION], [0.29])
|
|
||||||
m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
|
|
||||||
[m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
|
|
||||||
])dnl PKG_PREREQ
|
|
||||||
|
|
||||||
dnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
|
|
||||||
dnl ----------------------------------
|
|
||||||
dnl Since: 0.16
|
|
||||||
dnl
|
|
||||||
dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
|
|
||||||
dnl first found in the path. Checks that the version of pkg-config found
|
|
||||||
dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
|
|
||||||
dnl used since that's the first version where most current features of
|
|
||||||
dnl pkg-config existed.
|
|
||||||
AC_DEFUN([PKG_PROG_PKG_CONFIG],
|
|
||||||
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
|
|
||||||
m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
|
|
||||||
m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
|
|
||||||
AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
|
|
||||||
AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
|
|
||||||
AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
|
|
||||||
|
|
||||||
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
|
|
||||||
AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
|
|
||||||
fi
|
|
||||||
if test -n "$PKG_CONFIG"; then
|
|
||||||
_pkg_min_version=m4_default([$1], [0.9.0])
|
|
||||||
AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
|
|
||||||
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
|
|
||||||
AC_MSG_RESULT([yes])
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT([no])
|
|
||||||
PKG_CONFIG=""
|
|
||||||
fi
|
|
||||||
fi[]dnl
|
|
||||||
])dnl PKG_PROG_PKG_CONFIG
|
|
||||||
|
|
||||||
dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
|
||||||
dnl -------------------------------------------------------------------
|
|
||||||
dnl Since: 0.18
|
|
||||||
dnl
|
|
||||||
dnl Check to see whether a particular set of modules exists. Similar to
|
|
||||||
dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
|
|
||||||
dnl
|
|
||||||
dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
|
||||||
dnl only at the first occurence in configure.ac, so if the first place
|
|
||||||
dnl it's called might be skipped (such as if it is within an "if", you
|
|
||||||
dnl have to call PKG_CHECK_EXISTS manually
|
|
||||||
AC_DEFUN([PKG_CHECK_EXISTS],
|
|
||||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
|
||||||
if test -n "$PKG_CONFIG" && \
|
|
||||||
AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
|
|
||||||
m4_default([$2], [:])
|
|
||||||
m4_ifvaln([$3], [else
|
|
||||||
$3])dnl
|
|
||||||
fi])
|
|
||||||
|
|
||||||
dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
|
|
||||||
dnl ---------------------------------------------
|
|
||||||
dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting
|
|
||||||
dnl pkg_failed based on the result.
|
|
||||||
m4_define([_PKG_CONFIG],
|
|
||||||
[if test -n "$$1"; then
|
|
||||||
pkg_cv_[]$1="$$1"
|
|
||||||
elif test -n "$PKG_CONFIG"; then
|
|
||||||
PKG_CHECK_EXISTS([$3],
|
|
||||||
[pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
|
|
||||||
test "x$?" != "x0" && pkg_failed=yes ],
|
|
||||||
[pkg_failed=yes])
|
|
||||||
else
|
|
||||||
pkg_failed=untried
|
|
||||||
fi[]dnl
|
|
||||||
])dnl _PKG_CONFIG
|
|
||||||
|
|
||||||
dnl _PKG_SHORT_ERRORS_SUPPORTED
|
|
||||||
dnl ---------------------------
|
|
||||||
dnl Internal check to see if pkg-config supports short errors.
|
|
||||||
AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
|
|
||||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
|
||||||
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
|
|
||||||
_pkg_short_errors_supported=yes
|
|
||||||
else
|
|
||||||
_pkg_short_errors_supported=no
|
|
||||||
fi[]dnl
|
|
||||||
])dnl _PKG_SHORT_ERRORS_SUPPORTED
|
|
||||||
|
|
||||||
|
|
||||||
dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
|
|
||||||
dnl [ACTION-IF-NOT-FOUND])
|
|
||||||
dnl --------------------------------------------------------------
|
|
||||||
dnl Since: 0.4.0
|
|
||||||
dnl
|
|
||||||
dnl Note that if there is a possibility the first call to
|
|
||||||
dnl PKG_CHECK_MODULES might not happen, you should be sure to include an
|
|
||||||
dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
|
|
||||||
AC_DEFUN([PKG_CHECK_MODULES],
|
|
||||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
|
||||||
AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
|
|
||||||
AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
|
|
||||||
|
|
||||||
pkg_failed=no
|
|
||||||
AC_MSG_CHECKING([for $1])
|
|
||||||
|
|
||||||
_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
|
|
||||||
_PKG_CONFIG([$1][_LIBS], [libs], [$2])
|
|
||||||
|
|
||||||
m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
|
|
||||||
and $1[]_LIBS to avoid the need to call pkg-config.
|
|
||||||
See the pkg-config man page for more details.])
|
|
||||||
|
|
||||||
if test $pkg_failed = yes; then
|
|
||||||
AC_MSG_RESULT([no])
|
|
||||||
_PKG_SHORT_ERRORS_SUPPORTED
|
|
||||||
if test $_pkg_short_errors_supported = yes; then
|
|
||||||
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
|
|
||||||
else
|
|
||||||
$1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
|
|
||||||
fi
|
|
||||||
# Put the nasty error message in config.log where it belongs
|
|
||||||
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
|
|
||||||
|
|
||||||
m4_default([$4], [AC_MSG_ERROR(
|
|
||||||
[Package requirements ($2) were not met:
|
|
||||||
|
|
||||||
$$1_PKG_ERRORS
|
|
||||||
|
|
||||||
Consider adjusting the PKG_CONFIG_PATH environment variable if you
|
|
||||||
installed software in a non-standard prefix.
|
|
||||||
|
|
||||||
_PKG_TEXT])[]dnl
|
|
||||||
])
|
|
||||||
elif test $pkg_failed = untried; then
|
|
||||||
AC_MSG_RESULT([no])
|
|
||||||
m4_default([$4], [AC_MSG_FAILURE(
|
|
||||||
[The pkg-config script could not be found or is too old. Make sure it
|
|
||||||
is in your PATH or set the PKG_CONFIG environment variable to the full
|
|
||||||
path to pkg-config.
|
|
||||||
|
|
||||||
_PKG_TEXT
|
|
||||||
|
|
||||||
To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
|
|
||||||
])
|
|
||||||
else
|
|
||||||
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
|
|
||||||
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
|
|
||||||
AC_MSG_RESULT([yes])
|
|
||||||
$3
|
|
||||||
fi[]dnl
|
|
||||||
])dnl PKG_CHECK_MODULES
|
|
||||||
|
|
||||||
|
|
||||||
dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
|
|
||||||
dnl [ACTION-IF-NOT-FOUND])
|
|
||||||
dnl ---------------------------------------------------------------------
|
|
||||||
dnl Since: 0.29
|
|
||||||
dnl
|
|
||||||
dnl Checks for existence of MODULES and gathers its build flags with
|
|
||||||
dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags
|
|
||||||
dnl and VARIABLE-PREFIX_LIBS from --libs.
|
|
||||||
dnl
|
|
||||||
dnl Note that if there is a possibility the first call to
|
|
||||||
dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to
|
|
||||||
dnl include an explicit call to PKG_PROG_PKG_CONFIG in your
|
|
||||||
dnl configure.ac.
|
|
||||||
AC_DEFUN([PKG_CHECK_MODULES_STATIC],
|
|
||||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
|
||||||
_save_PKG_CONFIG=$PKG_CONFIG
|
|
||||||
PKG_CONFIG="$PKG_CONFIG --static"
|
|
||||||
PKG_CHECK_MODULES($@)
|
|
||||||
PKG_CONFIG=$_save_PKG_CONFIG[]dnl
|
|
||||||
])dnl PKG_CHECK_MODULES_STATIC
|
|
||||||
|
|
||||||
|
|
||||||
dnl PKG_INSTALLDIR([DIRECTORY])
|
|
||||||
dnl -------------------------
|
|
||||||
dnl Since: 0.27
|
|
||||||
dnl
|
|
||||||
dnl Substitutes the variable pkgconfigdir as the location where a module
|
|
||||||
dnl should install pkg-config .pc files. By default the directory is
|
|
||||||
dnl $libdir/pkgconfig, but the default can be changed by passing
|
|
||||||
dnl DIRECTORY. The user can override through the --with-pkgconfigdir
|
|
||||||
dnl parameter.
|
|
||||||
AC_DEFUN([PKG_INSTALLDIR],
|
|
||||||
[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
|
|
||||||
m4_pushdef([pkg_description],
|
|
||||||
[pkg-config installation directory @<:@]pkg_default[@:>@])
|
|
||||||
AC_ARG_WITH([pkgconfigdir],
|
|
||||||
[AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
|
|
||||||
[with_pkgconfigdir=]pkg_default)
|
|
||||||
AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
|
|
||||||
m4_popdef([pkg_default])
|
|
||||||
m4_popdef([pkg_description])
|
|
||||||
])dnl PKG_INSTALLDIR
|
|
||||||
|
|
||||||
|
|
||||||
dnl PKG_NOARCH_INSTALLDIR([DIRECTORY])
|
|
||||||
dnl --------------------------------
|
|
||||||
dnl Since: 0.27
|
|
||||||
dnl
|
|
||||||
dnl Substitutes the variable noarch_pkgconfigdir as the location where a
|
|
||||||
dnl module should install arch-independent pkg-config .pc files. By
|
|
||||||
dnl default the directory is $datadir/pkgconfig, but the default can be
|
|
||||||
dnl changed by passing DIRECTORY. The user can override through the
|
|
||||||
dnl --with-noarch-pkgconfigdir parameter.
|
|
||||||
AC_DEFUN([PKG_NOARCH_INSTALLDIR],
|
|
||||||
[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
|
|
||||||
m4_pushdef([pkg_description],
|
|
||||||
[pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
|
|
||||||
AC_ARG_WITH([noarch-pkgconfigdir],
|
|
||||||
[AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
|
|
||||||
[with_noarch_pkgconfigdir=]pkg_default)
|
|
||||||
AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
|
|
||||||
m4_popdef([pkg_default])
|
|
||||||
m4_popdef([pkg_description])
|
|
||||||
])dnl PKG_NOARCH_INSTALLDIR
|
|
||||||
|
|
||||||
|
|
||||||
dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
|
|
||||||
dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
|
||||||
dnl -------------------------------------------
|
|
||||||
dnl Since: 0.28
|
|
||||||
dnl
|
|
||||||
dnl Retrieves the value of the pkg-config variable for the given module.
|
|
||||||
AC_DEFUN([PKG_CHECK_VAR],
|
|
||||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
|
||||||
AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
|
|
||||||
|
|
||||||
_PKG_CONFIG([$1], [variable="][$3]["], [$2])
|
|
||||||
AS_VAR_COPY([$1], [pkg_cv_][$1])
|
|
||||||
|
|
||||||
AS_VAR_IF([$1], [""], [$5], [$4])dnl
|
|
||||||
])dnl PKG_CHECK_VAR
|
|
||||||
|
|
||||||
# Copyright (C) 2002-2017 Free Software Foundation, Inc.
|
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
|
@ -308,10 +32,10 @@ AS_VAR_IF([$1], [""], [$5], [$4])dnl
|
||||||
# generated from the m4 files accompanying Automake X.Y.
|
# generated from the m4 files accompanying Automake X.Y.
|
||||||
# (This private macro should not be called outside this file.)
|
# (This private macro should not be called outside this file.)
|
||||||
AC_DEFUN([AM_AUTOMAKE_VERSION],
|
AC_DEFUN([AM_AUTOMAKE_VERSION],
|
||||||
[am__api_version='1.15'
|
[am__api_version='1.16'
|
||||||
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
|
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
|
||||||
dnl require some minimum version. Point them to the right macro.
|
dnl require some minimum version. Point them to the right macro.
|
||||||
m4_if([$1], [1.15.1], [],
|
m4_if([$1], [1.16.2], [],
|
||||||
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
|
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
@ -327,14 +51,14 @@ m4_define([_AM_AUTOCONF_VERSION], [])
|
||||||
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
|
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
|
||||||
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
|
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
|
||||||
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
||||||
[AM_AUTOMAKE_VERSION([1.15.1])dnl
|
[AM_AUTOMAKE_VERSION([1.16.2])dnl
|
||||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||||
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
|
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
|
||||||
|
|
||||||
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
|
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
|
||||||
|
|
||||||
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
# Copyright (C) 2001-2020 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
|
@ -386,7 +110,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd`
|
||||||
|
|
||||||
# AM_CONDITIONAL -*- Autoconf -*-
|
# AM_CONDITIONAL -*- Autoconf -*-
|
||||||
|
|
||||||
# Copyright (C) 1997-2017 Free Software Foundation, Inc.
|
# Copyright (C) 1997-2020 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
|
@ -417,7 +141,7 @@ AC_CONFIG_COMMANDS_PRE(
|
||||||
Usually this means the macro was only invoked conditionally.]])
|
Usually this means the macro was only invoked conditionally.]])
|
||||||
fi])])
|
fi])])
|
||||||
|
|
||||||
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
|
# Copyright (C) 1999-2020 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
|
@ -608,13 +332,12 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
|
||||||
|
|
||||||
# Generate code to set up dependency tracking. -*- Autoconf -*-
|
# Generate code to set up dependency tracking. -*- Autoconf -*-
|
||||||
|
|
||||||
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
|
# Copyright (C) 1999-2020 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
# with or without modifications, as long as this notice is preserved.
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
|
||||||
# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||||
# ------------------------------
|
# ------------------------------
|
||||||
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||||
|
|
@ -622,49 +345,43 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||||
# Older Autoconf quotes --file arguments for eval, but not when files
|
# Older Autoconf quotes --file arguments for eval, but not when files
|
||||||
# are listed without --file. Let's play safe and only enable the eval
|
# are listed without --file. Let's play safe and only enable the eval
|
||||||
# if we detect the quoting.
|
# if we detect the quoting.
|
||||||
case $CONFIG_FILES in
|
# TODO: see whether this extra hack can be removed once we start
|
||||||
*\'*) eval set x "$CONFIG_FILES" ;;
|
# requiring Autoconf 2.70 or later.
|
||||||
*) set x $CONFIG_FILES ;;
|
AS_CASE([$CONFIG_FILES],
|
||||||
esac
|
[*\'*], [eval set x "$CONFIG_FILES"],
|
||||||
|
[*], [set x $CONFIG_FILES])
|
||||||
shift
|
shift
|
||||||
for mf
|
# Used to flag and report bootstrapping failures.
|
||||||
|
am_rc=0
|
||||||
|
for am_mf
|
||||||
do
|
do
|
||||||
# Strip MF so we end up with the name of the file.
|
# Strip MF so we end up with the name of the file.
|
||||||
mf=`echo "$mf" | sed -e 's/:.*$//'`
|
am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'`
|
||||||
# Check whether this is an Automake generated Makefile or not.
|
# Check whether this is an Automake generated Makefile which includes
|
||||||
# We used to match only the files named 'Makefile.in', but
|
# dependency-tracking related rules and includes.
|
||||||
# some people rename them; so instead we look at the file content.
|
# Grep'ing the whole file directly is not great: AIX grep has a line
|
||||||
# Grep'ing the first line is not enough: some people post-process
|
|
||||||
# each Makefile.in and add a new line on top of each file to say so.
|
|
||||||
# Grep'ing the whole file is not good either: AIX grep has a line
|
|
||||||
# limit of 2048, but all sed's we know have understand at least 4000.
|
# limit of 2048, but all sed's we know have understand at least 4000.
|
||||||
if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
|
sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
|
||||||
dirpart=`AS_DIRNAME("$mf")`
|
|| continue
|
||||||
else
|
am_dirpart=`AS_DIRNAME(["$am_mf"])`
|
||||||
continue
|
am_filepart=`AS_BASENAME(["$am_mf"])`
|
||||||
|
AM_RUN_LOG([cd "$am_dirpart" \
|
||||||
|
&& sed -e '/# am--include-marker/d' "$am_filepart" \
|
||||||
|
| $MAKE -f - am--depfiles]) || am_rc=$?
|
||||||
|
done
|
||||||
|
if test $am_rc -ne 0; then
|
||||||
|
AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
|
||||||
|
for automatic dependency tracking. If GNU make was not used, consider
|
||||||
|
re-running the configure script with MAKE="gmake" (or whatever is
|
||||||
|
necessary). You can also try re-running configure with the
|
||||||
|
'--disable-dependency-tracking' option to at least be able to build
|
||||||
|
the package (albeit without support for automatic dependency tracking).])
|
||||||
fi
|
fi
|
||||||
# Extract the definition of DEPDIR, am__include, and am__quote
|
AS_UNSET([am_dirpart])
|
||||||
# from the Makefile without running 'make'.
|
AS_UNSET([am_filepart])
|
||||||
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
|
AS_UNSET([am_mf])
|
||||||
test -z "$DEPDIR" && continue
|
AS_UNSET([am_rc])
|
||||||
am__include=`sed -n 's/^am__include = //p' < "$mf"`
|
rm -f conftest-deps.mk
|
||||||
test -z "$am__include" && continue
|
|
||||||
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
|
|
||||||
# Find all dependency output files, they are included files with
|
|
||||||
# $(DEPDIR) in their names. We invoke sed twice because it is the
|
|
||||||
# simplest approach to changing $(DEPDIR) to its actual value in the
|
|
||||||
# expansion.
|
|
||||||
for file in `sed -n "
|
|
||||||
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
|
|
||||||
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
|
|
||||||
# Make sure the directory exists.
|
|
||||||
test -f "$dirpart/$file" && continue
|
|
||||||
fdir=`AS_DIRNAME(["$file"])`
|
|
||||||
AS_MKDIR_P([$dirpart/$fdir])
|
|
||||||
# echo "creating $dirpart/$file"
|
|
||||||
echo '# dummy' > "$dirpart/$file"
|
|
||||||
done
|
|
||||||
done
|
|
||||||
}
|
}
|
||||||
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||||
|
|
||||||
|
|
@ -673,18 +390,17 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||||
# -----------------------------
|
# -----------------------------
|
||||||
# This macro should only be invoked once -- use via AC_REQUIRE.
|
# This macro should only be invoked once -- use via AC_REQUIRE.
|
||||||
#
|
#
|
||||||
# This code is only required when automatic dependency tracking
|
# This code is only required when automatic dependency tracking is enabled.
|
||||||
# is enabled. FIXME. This creates each '.P' file that we will
|
# This creates each '.Po' and '.Plo' makefile fragment that we'll need in
|
||||||
# need in order to bootstrap the dependency handling code.
|
# order to bootstrap the dependency handling code.
|
||||||
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||||
[AC_CONFIG_COMMANDS([depfiles],
|
[AC_CONFIG_COMMANDS([depfiles],
|
||||||
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
|
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||||
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
|
[AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])
|
||||||
])
|
|
||||||
|
|
||||||
# Do all the work for Automake. -*- Autoconf -*-
|
# Do all the work for Automake. -*- Autoconf -*-
|
||||||
|
|
||||||
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
|
# Copyright (C) 1996-2020 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
|
@ -771,8 +487,8 @@ AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
|
||||||
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
|
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
|
||||||
# For better backward compatibility. To be removed once Automake 1.9.x
|
# For better backward compatibility. To be removed once Automake 1.9.x
|
||||||
# dies out for good. For more background, see:
|
# dies out for good. For more background, see:
|
||||||
# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
|
# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
|
||||||
# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
|
# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
|
||||||
AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
|
AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
|
||||||
# We need awk for the "check" target (and possibly the TAP driver). The
|
# We need awk for the "check" target (and possibly the TAP driver). The
|
||||||
# system "awk" is bad on some platforms.
|
# system "awk" is bad on some platforms.
|
||||||
|
|
@ -839,7 +555,7 @@ END
|
||||||
Aborting the configuration process, to ensure you take notice of the issue.
|
Aborting the configuration process, to ensure you take notice of the issue.
|
||||||
|
|
||||||
You can download and install GNU coreutils to get an 'rm' implementation
|
You can download and install GNU coreutils to get an 'rm' implementation
|
||||||
that behaves properly: <http://www.gnu.org/software/coreutils/>.
|
that behaves properly: <https://www.gnu.org/software/coreutils/>.
|
||||||
|
|
||||||
If you want to complete the configuration process using your problematic
|
If you want to complete the configuration process using your problematic
|
||||||
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
|
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
|
||||||
|
|
@ -881,7 +597,7 @@ for _am_header in $config_headers :; do
|
||||||
done
|
done
|
||||||
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
|
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
|
||||||
|
|
||||||
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
# Copyright (C) 2001-2020 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
|
@ -902,7 +618,7 @@ if test x"${install_sh+set}" != xset; then
|
||||||
fi
|
fi
|
||||||
AC_SUBST([install_sh])])
|
AC_SUBST([install_sh])])
|
||||||
|
|
||||||
# Copyright (C) 2003-2017 Free Software Foundation, Inc.
|
# Copyright (C) 2003-2020 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
|
@ -923,7 +639,7 @@ AC_SUBST([am__leading_dot])])
|
||||||
|
|
||||||
# Check to see how 'make' treats includes. -*- Autoconf -*-
|
# Check to see how 'make' treats includes. -*- Autoconf -*-
|
||||||
|
|
||||||
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
# Copyright (C) 2001-2020 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
|
@ -931,49 +647,42 @@ AC_SUBST([am__leading_dot])])
|
||||||
|
|
||||||
# AM_MAKE_INCLUDE()
|
# AM_MAKE_INCLUDE()
|
||||||
# -----------------
|
# -----------------
|
||||||
# Check to see how make treats includes.
|
# Check whether make has an 'include' directive that can support all
|
||||||
|
# the idioms we need for our automatic dependency tracking code.
|
||||||
AC_DEFUN([AM_MAKE_INCLUDE],
|
AC_DEFUN([AM_MAKE_INCLUDE],
|
||||||
[am_make=${MAKE-make}
|
[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive])
|
||||||
cat > confinc << 'END'
|
cat > confinc.mk << 'END'
|
||||||
am__doit:
|
am__doit:
|
||||||
@echo this is the am__doit target
|
@echo this is the am__doit target >confinc.out
|
||||||
.PHONY: am__doit
|
.PHONY: am__doit
|
||||||
END
|
END
|
||||||
# If we don't find an include directive, just comment out the code.
|
|
||||||
AC_MSG_CHECKING([for style of include used by $am_make])
|
|
||||||
am__include="#"
|
am__include="#"
|
||||||
am__quote=
|
am__quote=
|
||||||
_am_result=none
|
# BSD make does it like this.
|
||||||
# First try GNU make style include.
|
echo '.include "confinc.mk" # ignored' > confmf.BSD
|
||||||
echo "include confinc" > confmf
|
# Other make implementations (GNU, Solaris 10, AIX) do it like this.
|
||||||
# Ignore all kinds of additional output from 'make'.
|
echo 'include confinc.mk # ignored' > confmf.GNU
|
||||||
case `$am_make -s -f confmf 2> /dev/null` in #(
|
_am_result=no
|
||||||
*the\ am__doit\ target*)
|
for s in GNU BSD; do
|
||||||
am__include=include
|
AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])
|
||||||
am__quote=
|
AS_CASE([$?:`cat confinc.out 2>/dev/null`],
|
||||||
_am_result=GNU
|
['0:this is the am__doit target'],
|
||||||
;;
|
[AS_CASE([$s],
|
||||||
esac
|
[BSD], [am__include='.include' am__quote='"'],
|
||||||
# Now try BSD make style include.
|
[am__include='include' am__quote=''])])
|
||||||
if test "$am__include" = "#"; then
|
if test "$am__include" != "#"; then
|
||||||
echo '.include "confinc"' > confmf
|
_am_result="yes ($s style)"
|
||||||
case `$am_make -s -f confmf 2> /dev/null` in #(
|
break
|
||||||
*the\ am__doit\ target*)
|
fi
|
||||||
am__include=.include
|
done
|
||||||
am__quote="\""
|
rm -f confinc.* confmf.*
|
||||||
_am_result=BSD
|
AC_MSG_RESULT([${_am_result}])
|
||||||
;;
|
AC_SUBST([am__include])])
|
||||||
esac
|
AC_SUBST([am__quote])])
|
||||||
fi
|
|
||||||
AC_SUBST([am__include])
|
|
||||||
AC_SUBST([am__quote])
|
|
||||||
AC_MSG_RESULT([$_am_result])
|
|
||||||
rm -f confinc confmf
|
|
||||||
])
|
|
||||||
|
|
||||||
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
|
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
|
||||||
|
|
||||||
# Copyright (C) 1997-2017 Free Software Foundation, Inc.
|
# Copyright (C) 1997-2020 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
|
@ -1012,7 +721,7 @@ fi
|
||||||
|
|
||||||
# Helper functions for option handling. -*- Autoconf -*-
|
# Helper functions for option handling. -*- Autoconf -*-
|
||||||
|
|
||||||
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
# Copyright (C) 2001-2020 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
|
@ -1041,7 +750,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
|
||||||
AC_DEFUN([_AM_IF_OPTION],
|
AC_DEFUN([_AM_IF_OPTION],
|
||||||
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
|
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
|
||||||
|
|
||||||
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
|
# Copyright (C) 1999-2020 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
|
@ -1088,7 +797,7 @@ AC_LANG_POP([C])])
|
||||||
# For backward compatibility.
|
# For backward compatibility.
|
||||||
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
|
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
|
||||||
|
|
||||||
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
# Copyright (C) 2001-2020 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
|
@ -1107,7 +816,7 @@ AC_DEFUN([AM_RUN_LOG],
|
||||||
|
|
||||||
# Check to make sure that the build environment is sane. -*- Autoconf -*-
|
# Check to make sure that the build environment is sane. -*- Autoconf -*-
|
||||||
|
|
||||||
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
|
# Copyright (C) 1996-2020 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
|
@ -1188,7 +897,7 @@ AC_CONFIG_COMMANDS_PRE(
|
||||||
rm -f conftest.file
|
rm -f conftest.file
|
||||||
])
|
])
|
||||||
|
|
||||||
# Copyright (C) 2009-2017 Free Software Foundation, Inc.
|
# Copyright (C) 2009-2020 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
|
@ -1248,7 +957,7 @@ AC_SUBST([AM_BACKSLASH])dnl
|
||||||
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
|
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
|
||||||
])
|
])
|
||||||
|
|
||||||
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
# Copyright (C) 2001-2020 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
|
@ -1276,7 +985,7 @@ fi
|
||||||
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
|
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
|
||||||
AC_SUBST([INSTALL_STRIP_PROGRAM])])
|
AC_SUBST([INSTALL_STRIP_PROGRAM])])
|
||||||
|
|
||||||
# Copyright (C) 2006-2017 Free Software Foundation, Inc.
|
# Copyright (C) 2006-2020 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
|
@ -1295,7 +1004,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
|
||||||
|
|
||||||
# Check how to create a tarball. -*- Autoconf -*-
|
# Check how to create a tarball. -*- Autoconf -*-
|
||||||
|
|
||||||
# Copyright (C) 2004-2017 Free Software Foundation, Inc.
|
# Copyright (C) 2004-2020 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This file is free software; the Free Software Foundation
|
# This file is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
|
|
||||||
17
compile
17
compile
|
|
@ -1,9 +1,9 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Wrapper for compilers which do not understand '-c -o'.
|
# Wrapper for compilers which do not understand '-c -o'.
|
||||||
|
|
||||||
scriptversion=2012-10-14.11; # UTC
|
scriptversion=2018-03-07.03; # UTC
|
||||||
|
|
||||||
# Copyright (C) 1999-2014 Free Software Foundation, Inc.
|
# Copyright (C) 1999-2020 Free Software Foundation, Inc.
|
||||||
# Written by Tom Tromey <tromey@cygnus.com>.
|
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
|
@ -17,7 +17,7 @@ scriptversion=2012-10-14.11; # UTC
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
# As a special exception to the GNU General Public License, if you
|
# As a special exception to the GNU General Public License, if you
|
||||||
# distribute this file as part of a program that contains a
|
# distribute this file as part of a program that contains a
|
||||||
|
|
@ -53,7 +53,7 @@ func_file_conv ()
|
||||||
MINGW*)
|
MINGW*)
|
||||||
file_conv=mingw
|
file_conv=mingw
|
||||||
;;
|
;;
|
||||||
CYGWIN*)
|
CYGWIN* | MSYS*)
|
||||||
file_conv=cygwin
|
file_conv=cygwin
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
|
@ -67,7 +67,7 @@ func_file_conv ()
|
||||||
mingw/*)
|
mingw/*)
|
||||||
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
|
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
|
||||||
;;
|
;;
|
||||||
cygwin/*)
|
cygwin/* | msys/*)
|
||||||
file=`cygpath -m "$file" || echo "$file"`
|
file=`cygpath -m "$file" || echo "$file"`
|
||||||
;;
|
;;
|
||||||
wine/*)
|
wine/*)
|
||||||
|
|
@ -255,7 +255,8 @@ EOF
|
||||||
echo "compile $scriptversion"
|
echo "compile $scriptversion"
|
||||||
exit $?
|
exit $?
|
||||||
;;
|
;;
|
||||||
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
|
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
|
||||||
|
icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
|
||||||
func_cl_wrapper "$@" # Doesn't return...
|
func_cl_wrapper "$@" # Doesn't return...
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
@ -339,9 +340,9 @@ exit $ret
|
||||||
# Local Variables:
|
# Local Variables:
|
||||||
# mode: shell-script
|
# mode: shell-script
|
||||||
# sh-indentation: 2
|
# sh-indentation: 2
|
||||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||||
# time-stamp-start: "scriptversion="
|
# time-stamp-start: "scriptversion="
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
# time-stamp-time-zone: "UTC"
|
# time-stamp-time-zone: "UTC0"
|
||||||
# time-stamp-end: "; # UTC"
|
# time-stamp-end: "; # UTC"
|
||||||
# End:
|
# End:
|
||||||
|
|
|
||||||
580
config.guess
vendored
580
config.guess
vendored
File diff suppressed because it is too large
Load diff
258
config.sub
vendored
258
config.sub
vendored
|
|
@ -1,8 +1,8 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Configuration validation subroutine script.
|
# Configuration validation subroutine script.
|
||||||
# Copyright 1992-2016 Free Software Foundation, Inc.
|
# Copyright 1992-2018 Free Software Foundation, Inc.
|
||||||
|
|
||||||
timestamp='2016-11-04'
|
timestamp='2018-02-22'
|
||||||
|
|
||||||
# This file is free software; you can redistribute it and/or modify it
|
# This file is free software; you can redistribute it and/or modify it
|
||||||
# under the terms of the GNU General Public License as published by
|
# under the terms of the GNU General Public License as published by
|
||||||
|
|
@ -15,7 +15,7 @@ timestamp='2016-11-04'
|
||||||
# General Public License for more details.
|
# General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
# along with this program; if not, see <https://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
# As a special exception to the GNU General Public License, if you
|
# As a special exception to the GNU General Public License, if you
|
||||||
# distribute this file as part of a program that contains a
|
# distribute this file as part of a program that contains a
|
||||||
|
|
@ -33,7 +33,7 @@ timestamp='2016-11-04'
|
||||||
# Otherwise, we print the canonical config type on stdout and succeed.
|
# Otherwise, we print the canonical config type on stdout and succeed.
|
||||||
|
|
||||||
# You can get the latest version of this script from:
|
# You can get the latest version of this script from:
|
||||||
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
|
# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
|
||||||
|
|
||||||
# This file is supposed to be the same for all GNU packages
|
# This file is supposed to be the same for all GNU packages
|
||||||
# and recognize all the CPU types, system types and aliases
|
# and recognize all the CPU types, system types and aliases
|
||||||
|
|
@ -57,7 +57,7 @@ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
|
||||||
|
|
||||||
Canonicalize a configuration name.
|
Canonicalize a configuration name.
|
||||||
|
|
||||||
Operation modes:
|
Options:
|
||||||
-h, --help print this help, then exit
|
-h, --help print this help, then exit
|
||||||
-t, --time-stamp print date of last modification, then exit
|
-t, --time-stamp print date of last modification, then exit
|
||||||
-v, --version print version number, then exit
|
-v, --version print version number, then exit
|
||||||
|
|
@ -67,7 +67,7 @@ Report bugs and patches to <config-patches@gnu.org>."
|
||||||
version="\
|
version="\
|
||||||
GNU config.sub ($timestamp)
|
GNU config.sub ($timestamp)
|
||||||
|
|
||||||
Copyright 1992-2016 Free Software Foundation, Inc.
|
Copyright 1992-2018 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This is free software; see the source for copying conditions. There is NO
|
This is free software; see the source for copying conditions. There is NO
|
||||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||||
|
|
@ -94,7 +94,7 @@ while test $# -gt 0 ; do
|
||||||
|
|
||||||
*local*)
|
*local*)
|
||||||
# First pass through any local machine types.
|
# First pass through any local machine types.
|
||||||
echo $1
|
echo "$1"
|
||||||
exit ;;
|
exit ;;
|
||||||
|
|
||||||
* )
|
* )
|
||||||
|
|
@ -112,7 +112,7 @@ esac
|
||||||
|
|
||||||
# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
|
# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
|
||||||
# Here we must recognize all the valid KERNEL-OS combinations.
|
# Here we must recognize all the valid KERNEL-OS combinations.
|
||||||
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
|
maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
|
||||||
case $maybe_os in
|
case $maybe_os in
|
||||||
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
|
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
|
||||||
linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
|
linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
|
||||||
|
|
@ -120,16 +120,16 @@ case $maybe_os in
|
||||||
kopensolaris*-gnu* | cloudabi*-eabi* | \
|
kopensolaris*-gnu* | cloudabi*-eabi* | \
|
||||||
storm-chaos* | os2-emx* | rtmk-nova*)
|
storm-chaos* | os2-emx* | rtmk-nova*)
|
||||||
os=-$maybe_os
|
os=-$maybe_os
|
||||||
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
|
basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
|
||||||
;;
|
;;
|
||||||
android-linux)
|
android-linux)
|
||||||
os=-linux-android
|
os=-linux-android
|
||||||
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
|
basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
basic_machine=`echo $1 | sed 's/-[^-]*$//'`
|
basic_machine=`echo "$1" | sed 's/-[^-]*$//'`
|
||||||
if [ $basic_machine != $1 ]
|
if [ "$basic_machine" != "$1" ]
|
||||||
then os=`echo $1 | sed 's/.*-/-/'`
|
then os=`echo "$1" | sed 's/.*-/-/'`
|
||||||
else os=; fi
|
else os=; fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
@ -178,44 +178,44 @@ case $os in
|
||||||
;;
|
;;
|
||||||
-sco6)
|
-sco6)
|
||||||
os=-sco5v6
|
os=-sco5v6
|
||||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||||
;;
|
;;
|
||||||
-sco5)
|
-sco5)
|
||||||
os=-sco3.2v5
|
os=-sco3.2v5
|
||||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||||
;;
|
;;
|
||||||
-sco4)
|
-sco4)
|
||||||
os=-sco3.2v4
|
os=-sco3.2v4
|
||||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||||
;;
|
;;
|
||||||
-sco3.2.[4-9]*)
|
-sco3.2.[4-9]*)
|
||||||
os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
|
os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
|
||||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||||
;;
|
;;
|
||||||
-sco3.2v[4-9]*)
|
-sco3.2v[4-9]*)
|
||||||
# Don't forget version if it is 3.2v4 or newer.
|
# Don't forget version if it is 3.2v4 or newer.
|
||||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||||
;;
|
;;
|
||||||
-sco5v6*)
|
-sco5v6*)
|
||||||
# Don't forget version if it is 3.2v4 or newer.
|
# Don't forget version if it is 3.2v4 or newer.
|
||||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||||
;;
|
;;
|
||||||
-sco*)
|
-sco*)
|
||||||
os=-sco3.2v2
|
os=-sco3.2v2
|
||||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||||
;;
|
;;
|
||||||
-udk*)
|
-udk*)
|
||||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||||
;;
|
;;
|
||||||
-isc)
|
-isc)
|
||||||
os=-isc2.2
|
os=-isc2.2
|
||||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||||
;;
|
;;
|
||||||
-clix*)
|
-clix*)
|
||||||
basic_machine=clipper-intergraph
|
basic_machine=clipper-intergraph
|
||||||
;;
|
;;
|
||||||
-isc*)
|
-isc*)
|
||||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
|
||||||
;;
|
;;
|
||||||
-lynx*178)
|
-lynx*178)
|
||||||
os=-lynxos178
|
os=-lynxos178
|
||||||
|
|
@ -227,10 +227,7 @@ case $os in
|
||||||
os=-lynxos
|
os=-lynxos
|
||||||
;;
|
;;
|
||||||
-ptx*)
|
-ptx*)
|
||||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
|
basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'`
|
||||||
;;
|
|
||||||
-windowsnt*)
|
|
||||||
os=`echo $os | sed -e 's/windowsnt/winnt/'`
|
|
||||||
;;
|
;;
|
||||||
-psos*)
|
-psos*)
|
||||||
os=-psos
|
os=-psos
|
||||||
|
|
@ -263,7 +260,7 @@ case $basic_machine in
|
||||||
| fido | fr30 | frv | ft32 \
|
| fido | fr30 | frv | ft32 \
|
||||||
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
|
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
|
||||||
| hexagon \
|
| hexagon \
|
||||||
| i370 | i860 | i960 | ia64 \
|
| i370 | i860 | i960 | ia16 | ia64 \
|
||||||
| ip2k | iq2000 \
|
| ip2k | iq2000 \
|
||||||
| k1om \
|
| k1om \
|
||||||
| le32 | le64 \
|
| le32 | le64 \
|
||||||
|
|
@ -299,7 +296,7 @@ case $basic_machine in
|
||||||
| nios | nios2 | nios2eb | nios2el \
|
| nios | nios2 | nios2eb | nios2el \
|
||||||
| ns16k | ns32k \
|
| ns16k | ns32k \
|
||||||
| open8 | or1k | or1knd | or32 \
|
| open8 | or1k | or1knd | or32 \
|
||||||
| pdp10 | pdp11 | pj | pjl \
|
| pdp10 | pj | pjl \
|
||||||
| powerpc | powerpc64 | powerpc64le | powerpcle \
|
| powerpc | powerpc64 | powerpc64le | powerpcle \
|
||||||
| pru \
|
| pru \
|
||||||
| pyramid \
|
| pyramid \
|
||||||
|
|
@ -315,7 +312,7 @@ case $basic_machine in
|
||||||
| ubicom32 \
|
| ubicom32 \
|
||||||
| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
|
| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
|
||||||
| visium \
|
| visium \
|
||||||
| we32k \
|
| wasm32 \
|
||||||
| x86 | xc16x | xstormy16 | xtensa \
|
| x86 | xc16x | xstormy16 | xtensa \
|
||||||
| z8k | z80)
|
| z8k | z80)
|
||||||
basic_machine=$basic_machine-unknown
|
basic_machine=$basic_machine-unknown
|
||||||
|
|
@ -336,7 +333,7 @@ case $basic_machine in
|
||||||
basic_machine=$basic_machine-unknown
|
basic_machine=$basic_machine-unknown
|
||||||
os=-none
|
os=-none
|
||||||
;;
|
;;
|
||||||
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
|
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65)
|
||||||
;;
|
;;
|
||||||
ms1)
|
ms1)
|
||||||
basic_machine=mt-unknown
|
basic_machine=mt-unknown
|
||||||
|
|
@ -365,7 +362,7 @@ case $basic_machine in
|
||||||
;;
|
;;
|
||||||
# Object if more than one company name word.
|
# Object if more than one company name word.
|
||||||
*-*-*)
|
*-*-*)
|
||||||
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
|
echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
# Recognize the basic CPU types with company name.
|
# Recognize the basic CPU types with company name.
|
||||||
|
|
@ -388,7 +385,7 @@ case $basic_machine in
|
||||||
| h8300-* | h8500-* \
|
| h8300-* | h8500-* \
|
||||||
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
|
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
|
||||||
| hexagon-* \
|
| hexagon-* \
|
||||||
| i*86-* | i860-* | i960-* | ia64-* \
|
| i*86-* | i860-* | i960-* | ia16-* | ia64-* \
|
||||||
| ip2k-* | iq2000-* \
|
| ip2k-* | iq2000-* \
|
||||||
| k1om-* \
|
| k1om-* \
|
||||||
| le32-* | le64-* \
|
| le32-* | le64-* \
|
||||||
|
|
@ -446,6 +443,7 @@ case $basic_machine in
|
||||||
| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
|
| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
|
||||||
| vax-* \
|
| vax-* \
|
||||||
| visium-* \
|
| visium-* \
|
||||||
|
| wasm32-* \
|
||||||
| we32k-* \
|
| we32k-* \
|
||||||
| x86-* | x86_64-* | xc16x-* | xps100-* \
|
| x86-* | x86_64-* | xc16x-* | xps100-* \
|
||||||
| xstormy16-* | xtensa*-* \
|
| xstormy16-* | xtensa*-* \
|
||||||
|
|
@ -459,7 +457,7 @@ case $basic_machine in
|
||||||
# Recognize the various machine names and aliases which stand
|
# Recognize the various machine names and aliases which stand
|
||||||
# for a CPU type and a company and sometimes even an OS.
|
# for a CPU type and a company and sometimes even an OS.
|
||||||
386bsd)
|
386bsd)
|
||||||
basic_machine=i386-unknown
|
basic_machine=i386-pc
|
||||||
os=-bsd
|
os=-bsd
|
||||||
;;
|
;;
|
||||||
3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
|
3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
|
||||||
|
|
@ -493,7 +491,7 @@ case $basic_machine in
|
||||||
basic_machine=x86_64-pc
|
basic_machine=x86_64-pc
|
||||||
;;
|
;;
|
||||||
amd64-*)
|
amd64-*)
|
||||||
basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
|
basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||||
;;
|
;;
|
||||||
amdahl)
|
amdahl)
|
||||||
basic_machine=580-amdahl
|
basic_machine=580-amdahl
|
||||||
|
|
@ -538,7 +536,7 @@ case $basic_machine in
|
||||||
os=-linux
|
os=-linux
|
||||||
;;
|
;;
|
||||||
blackfin-*)
|
blackfin-*)
|
||||||
basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
|
basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||||
os=-linux
|
os=-linux
|
||||||
;;
|
;;
|
||||||
bluegene*)
|
bluegene*)
|
||||||
|
|
@ -546,13 +544,13 @@ case $basic_machine in
|
||||||
os=-cnk
|
os=-cnk
|
||||||
;;
|
;;
|
||||||
c54x-*)
|
c54x-*)
|
||||||
basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
|
basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||||
;;
|
;;
|
||||||
c55x-*)
|
c55x-*)
|
||||||
basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
|
basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||||
;;
|
;;
|
||||||
c6x-*)
|
c6x-*)
|
||||||
basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
|
basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||||
;;
|
;;
|
||||||
c90)
|
c90)
|
||||||
basic_machine=c90-cray
|
basic_machine=c90-cray
|
||||||
|
|
@ -641,7 +639,7 @@ case $basic_machine in
|
||||||
basic_machine=rs6000-bull
|
basic_machine=rs6000-bull
|
||||||
os=-bosx
|
os=-bosx
|
||||||
;;
|
;;
|
||||||
dpx2* | dpx2*-bull)
|
dpx2*)
|
||||||
basic_machine=m68k-bull
|
basic_machine=m68k-bull
|
||||||
os=-sysv3
|
os=-sysv3
|
||||||
;;
|
;;
|
||||||
|
|
@ -650,7 +648,7 @@ case $basic_machine in
|
||||||
os=$os"spe"
|
os=$os"spe"
|
||||||
;;
|
;;
|
||||||
e500v[12]-*)
|
e500v[12]-*)
|
||||||
basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
|
basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||||
os=$os"spe"
|
os=$os"spe"
|
||||||
;;
|
;;
|
||||||
ebmon29k)
|
ebmon29k)
|
||||||
|
|
@ -742,9 +740,6 @@ case $basic_machine in
|
||||||
hp9k8[0-9][0-9] | hp8[0-9][0-9])
|
hp9k8[0-9][0-9] | hp8[0-9][0-9])
|
||||||
basic_machine=hppa1.0-hp
|
basic_machine=hppa1.0-hp
|
||||||
;;
|
;;
|
||||||
hppa-next)
|
|
||||||
os=-nextstep3
|
|
||||||
;;
|
|
||||||
hppaosf)
|
hppaosf)
|
||||||
basic_machine=hppa1.1-hp
|
basic_machine=hppa1.1-hp
|
||||||
os=-osf
|
os=-osf
|
||||||
|
|
@ -757,26 +752,26 @@ case $basic_machine in
|
||||||
basic_machine=i370-ibm
|
basic_machine=i370-ibm
|
||||||
;;
|
;;
|
||||||
i*86v32)
|
i*86v32)
|
||||||
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
|
basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
|
||||||
os=-sysv32
|
os=-sysv32
|
||||||
;;
|
;;
|
||||||
i*86v4*)
|
i*86v4*)
|
||||||
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
|
basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
|
||||||
os=-sysv4
|
os=-sysv4
|
||||||
;;
|
;;
|
||||||
i*86v)
|
i*86v)
|
||||||
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
|
basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
|
||||||
os=-sysv
|
os=-sysv
|
||||||
;;
|
;;
|
||||||
i*86sol2)
|
i*86sol2)
|
||||||
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
|
basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
|
||||||
os=-solaris2
|
os=-solaris2
|
||||||
;;
|
;;
|
||||||
i386mach)
|
i386mach)
|
||||||
basic_machine=i386-mach
|
basic_machine=i386-mach
|
||||||
os=-mach
|
os=-mach
|
||||||
;;
|
;;
|
||||||
i386-vsta | vsta)
|
vsta)
|
||||||
basic_machine=i386-unknown
|
basic_machine=i386-unknown
|
||||||
os=-vsta
|
os=-vsta
|
||||||
;;
|
;;
|
||||||
|
|
@ -795,19 +790,16 @@ case $basic_machine in
|
||||||
os=-sysv
|
os=-sysv
|
||||||
;;
|
;;
|
||||||
leon-*|leon[3-9]-*)
|
leon-*|leon[3-9]-*)
|
||||||
basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
|
basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'`
|
||||||
;;
|
;;
|
||||||
m68knommu)
|
m68knommu)
|
||||||
basic_machine=m68k-unknown
|
basic_machine=m68k-unknown
|
||||||
os=-linux
|
os=-linux
|
||||||
;;
|
;;
|
||||||
m68knommu-*)
|
m68knommu-*)
|
||||||
basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
|
basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||||
os=-linux
|
os=-linux
|
||||||
;;
|
;;
|
||||||
m88k-omron*)
|
|
||||||
basic_machine=m88k-omron
|
|
||||||
;;
|
|
||||||
magnum | m3230)
|
magnum | m3230)
|
||||||
basic_machine=mips-mips
|
basic_machine=mips-mips
|
||||||
os=-sysv
|
os=-sysv
|
||||||
|
|
@ -839,10 +831,10 @@ case $basic_machine in
|
||||||
os=-mint
|
os=-mint
|
||||||
;;
|
;;
|
||||||
mips3*-*)
|
mips3*-*)
|
||||||
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
|
basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`
|
||||||
;;
|
;;
|
||||||
mips3*)
|
mips3*)
|
||||||
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
|
basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown
|
||||||
;;
|
;;
|
||||||
monitor)
|
monitor)
|
||||||
basic_machine=m68k-rom68k
|
basic_machine=m68k-rom68k
|
||||||
|
|
@ -861,7 +853,7 @@ case $basic_machine in
|
||||||
os=-msdos
|
os=-msdos
|
||||||
;;
|
;;
|
||||||
ms1-*)
|
ms1-*)
|
||||||
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
|
basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'`
|
||||||
;;
|
;;
|
||||||
msys)
|
msys)
|
||||||
basic_machine=i686-pc
|
basic_machine=i686-pc
|
||||||
|
|
@ -903,7 +895,7 @@ case $basic_machine in
|
||||||
basic_machine=v70-nec
|
basic_machine=v70-nec
|
||||||
os=-sysv
|
os=-sysv
|
||||||
;;
|
;;
|
||||||
next | m*-next )
|
next | m*-next)
|
||||||
basic_machine=m68k-next
|
basic_machine=m68k-next
|
||||||
case $os in
|
case $os in
|
||||||
-nextstep* )
|
-nextstep* )
|
||||||
|
|
@ -948,6 +940,12 @@ case $basic_machine in
|
||||||
nsr-tandem)
|
nsr-tandem)
|
||||||
basic_machine=nsr-tandem
|
basic_machine=nsr-tandem
|
||||||
;;
|
;;
|
||||||
|
nsv-tandem)
|
||||||
|
basic_machine=nsv-tandem
|
||||||
|
;;
|
||||||
|
nsx-tandem)
|
||||||
|
basic_machine=nsx-tandem
|
||||||
|
;;
|
||||||
op50n-* | op60c-*)
|
op50n-* | op60c-*)
|
||||||
basic_machine=hppa1.1-oki
|
basic_machine=hppa1.1-oki
|
||||||
os=-proelf
|
os=-proelf
|
||||||
|
|
@ -980,7 +978,7 @@ case $basic_machine in
|
||||||
os=-linux
|
os=-linux
|
||||||
;;
|
;;
|
||||||
parisc-*)
|
parisc-*)
|
||||||
basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
|
basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||||
os=-linux
|
os=-linux
|
||||||
;;
|
;;
|
||||||
pbd)
|
pbd)
|
||||||
|
|
@ -996,7 +994,7 @@ case $basic_machine in
|
||||||
basic_machine=i386-pc
|
basic_machine=i386-pc
|
||||||
;;
|
;;
|
||||||
pc98-*)
|
pc98-*)
|
||||||
basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
|
basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||||
;;
|
;;
|
||||||
pentium | p5 | k5 | k6 | nexgen | viac3)
|
pentium | p5 | k5 | k6 | nexgen | viac3)
|
||||||
basic_machine=i586-pc
|
basic_machine=i586-pc
|
||||||
|
|
@ -1011,16 +1009,16 @@ case $basic_machine in
|
||||||
basic_machine=i786-pc
|
basic_machine=i786-pc
|
||||||
;;
|
;;
|
||||||
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
|
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
|
||||||
basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
|
basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||||
;;
|
;;
|
||||||
pentiumpro-* | p6-* | 6x86-* | athlon-*)
|
pentiumpro-* | p6-* | 6x86-* | athlon-*)
|
||||||
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
|
basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||||
;;
|
;;
|
||||||
pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
|
pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
|
||||||
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
|
basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||||
;;
|
;;
|
||||||
pentium4-*)
|
pentium4-*)
|
||||||
basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
|
basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||||
;;
|
;;
|
||||||
pn)
|
pn)
|
||||||
basic_machine=pn-gould
|
basic_machine=pn-gould
|
||||||
|
|
@ -1030,23 +1028,23 @@ case $basic_machine in
|
||||||
ppc | ppcbe) basic_machine=powerpc-unknown
|
ppc | ppcbe) basic_machine=powerpc-unknown
|
||||||
;;
|
;;
|
||||||
ppc-* | ppcbe-*)
|
ppc-* | ppcbe-*)
|
||||||
basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
|
basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||||
;;
|
;;
|
||||||
ppcle | powerpclittle)
|
ppcle | powerpclittle)
|
||||||
basic_machine=powerpcle-unknown
|
basic_machine=powerpcle-unknown
|
||||||
;;
|
;;
|
||||||
ppcle-* | powerpclittle-*)
|
ppcle-* | powerpclittle-*)
|
||||||
basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
|
basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||||
;;
|
;;
|
||||||
ppc64) basic_machine=powerpc64-unknown
|
ppc64) basic_machine=powerpc64-unknown
|
||||||
;;
|
;;
|
||||||
ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
|
ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||||
;;
|
;;
|
||||||
ppc64le | powerpc64little)
|
ppc64le | powerpc64little)
|
||||||
basic_machine=powerpc64le-unknown
|
basic_machine=powerpc64le-unknown
|
||||||
;;
|
;;
|
||||||
ppc64le-* | powerpc64little-*)
|
ppc64le-* | powerpc64little-*)
|
||||||
basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
|
basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||||
;;
|
;;
|
||||||
ps2)
|
ps2)
|
||||||
basic_machine=i386-ibm
|
basic_machine=i386-ibm
|
||||||
|
|
@ -1100,17 +1098,10 @@ case $basic_machine in
|
||||||
sequent)
|
sequent)
|
||||||
basic_machine=i386-sequent
|
basic_machine=i386-sequent
|
||||||
;;
|
;;
|
||||||
sh)
|
|
||||||
basic_machine=sh-hitachi
|
|
||||||
os=-hms
|
|
||||||
;;
|
|
||||||
sh5el)
|
sh5el)
|
||||||
basic_machine=sh5le-unknown
|
basic_machine=sh5le-unknown
|
||||||
;;
|
;;
|
||||||
sh64)
|
simso-wrs)
|
||||||
basic_machine=sh64-unknown
|
|
||||||
;;
|
|
||||||
sparclite-wrs | simso-wrs)
|
|
||||||
basic_machine=sparclite-wrs
|
basic_machine=sparclite-wrs
|
||||||
os=-vxworks
|
os=-vxworks
|
||||||
;;
|
;;
|
||||||
|
|
@ -1129,7 +1120,7 @@ case $basic_machine in
|
||||||
os=-sysv4
|
os=-sysv4
|
||||||
;;
|
;;
|
||||||
strongarm-* | thumb-*)
|
strongarm-* | thumb-*)
|
||||||
basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
|
basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
|
||||||
;;
|
;;
|
||||||
sun2)
|
sun2)
|
||||||
basic_machine=m68000-sun
|
basic_machine=m68000-sun
|
||||||
|
|
@ -1251,6 +1242,9 @@ case $basic_machine in
|
||||||
basic_machine=hppa1.1-winbond
|
basic_machine=hppa1.1-winbond
|
||||||
os=-proelf
|
os=-proelf
|
||||||
;;
|
;;
|
||||||
|
x64)
|
||||||
|
basic_machine=x86_64-pc
|
||||||
|
;;
|
||||||
xbox)
|
xbox)
|
||||||
basic_machine=i686-pc
|
basic_machine=i686-pc
|
||||||
os=-mingw32
|
os=-mingw32
|
||||||
|
|
@ -1259,20 +1253,12 @@ case $basic_machine in
|
||||||
basic_machine=xps100-honeywell
|
basic_machine=xps100-honeywell
|
||||||
;;
|
;;
|
||||||
xscale-* | xscalee[bl]-*)
|
xscale-* | xscalee[bl]-*)
|
||||||
basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
|
basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'`
|
||||||
;;
|
;;
|
||||||
ymp)
|
ymp)
|
||||||
basic_machine=ymp-cray
|
basic_machine=ymp-cray
|
||||||
os=-unicos
|
os=-unicos
|
||||||
;;
|
;;
|
||||||
z8k-*-coff)
|
|
||||||
basic_machine=z8k-unknown
|
|
||||||
os=-sim
|
|
||||||
;;
|
|
||||||
z80-*-coff)
|
|
||||||
basic_machine=z80-unknown
|
|
||||||
os=-sim
|
|
||||||
;;
|
|
||||||
none)
|
none)
|
||||||
basic_machine=none-none
|
basic_machine=none-none
|
||||||
os=-none
|
os=-none
|
||||||
|
|
@ -1301,10 +1287,6 @@ case $basic_machine in
|
||||||
vax)
|
vax)
|
||||||
basic_machine=vax-dec
|
basic_machine=vax-dec
|
||||||
;;
|
;;
|
||||||
pdp10)
|
|
||||||
# there are many clones, so DEC is not a safe bet
|
|
||||||
basic_machine=pdp10-unknown
|
|
||||||
;;
|
|
||||||
pdp11)
|
pdp11)
|
||||||
basic_machine=pdp11-dec
|
basic_machine=pdp11-dec
|
||||||
;;
|
;;
|
||||||
|
|
@ -1314,9 +1296,6 @@ case $basic_machine in
|
||||||
sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
|
sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
|
||||||
basic_machine=sh-unknown
|
basic_machine=sh-unknown
|
||||||
;;
|
;;
|
||||||
sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
|
|
||||||
basic_machine=sparc-sun
|
|
||||||
;;
|
|
||||||
cydra)
|
cydra)
|
||||||
basic_machine=cydra-cydrome
|
basic_machine=cydra-cydrome
|
||||||
;;
|
;;
|
||||||
|
|
@ -1336,7 +1315,7 @@ case $basic_machine in
|
||||||
# Make sure to match an already-canonicalized machine name.
|
# Make sure to match an already-canonicalized machine name.
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
|
echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
@ -1344,10 +1323,10 @@ esac
|
||||||
# Here we canonicalize certain aliases for manufacturers.
|
# Here we canonicalize certain aliases for manufacturers.
|
||||||
case $basic_machine in
|
case $basic_machine in
|
||||||
*-digital*)
|
*-digital*)
|
||||||
basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
|
basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'`
|
||||||
;;
|
;;
|
||||||
*-commodore*)
|
*-commodore*)
|
||||||
basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
|
basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'`
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
;;
|
;;
|
||||||
|
|
@ -1358,8 +1337,8 @@ esac
|
||||||
if [ x"$os" != x"" ]
|
if [ x"$os" != x"" ]
|
||||||
then
|
then
|
||||||
case $os in
|
case $os in
|
||||||
# First match some system type aliases
|
# First match some system type aliases that might get confused
|
||||||
# that might get confused with valid system types.
|
# with valid system types.
|
||||||
# -solaris* is a basic system type, with this one exception.
|
# -solaris* is a basic system type, with this one exception.
|
||||||
-auroraux)
|
-auroraux)
|
||||||
os=-auroraux
|
os=-auroraux
|
||||||
|
|
@ -1370,18 +1349,19 @@ case $os in
|
||||||
-solaris)
|
-solaris)
|
||||||
os=-solaris2
|
os=-solaris2
|
||||||
;;
|
;;
|
||||||
-svr4*)
|
|
||||||
os=-sysv4
|
|
||||||
;;
|
|
||||||
-unixware*)
|
-unixware*)
|
||||||
os=-sysv4.2uw
|
os=-sysv4.2uw
|
||||||
;;
|
;;
|
||||||
-gnu/linux*)
|
-gnu/linux*)
|
||||||
os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
|
os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
|
||||||
;;
|
;;
|
||||||
# First accept the basic system types.
|
# es1800 is here to avoid being matched by es* (a different OS)
|
||||||
|
-es1800*)
|
||||||
|
os=-ose
|
||||||
|
;;
|
||||||
|
# Now accept the basic system types.
|
||||||
# The portable systems comes first.
|
# The portable systems comes first.
|
||||||
# Each alternative MUST END IN A *, to match a version number.
|
# Each alternative MUST end in a * to match a version number.
|
||||||
# -sysv* is not here because it comes later, after sysvr4.
|
# -sysv* is not here because it comes later, after sysvr4.
|
||||||
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
|
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
|
||||||
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
|
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
|
||||||
|
|
@ -1391,25 +1371,26 @@ case $os in
|
||||||
| -aos* | -aros* | -cloudabi* | -sortix* \
|
| -aos* | -aros* | -cloudabi* | -sortix* \
|
||||||
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
|
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
|
||||||
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
|
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
|
||||||
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
|
| -hiux* | -knetbsd* | -mirbsd* | -netbsd* \
|
||||||
| -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
|
| -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
|
||||||
| -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
|
| -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
|
||||||
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
|
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
|
||||||
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
|
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
|
||||||
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
|
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
|
||||||
| -chorusos* | -chorusrdb* | -cegcc* \
|
| -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
|
||||||
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
||||||
| -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
|
| -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
|
||||||
| -linux-newlib* | -linux-musl* | -linux-uclibc* \
|
| -linux-newlib* | -linux-musl* | -linux-uclibc* \
|
||||||
| -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
|
| -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
|
||||||
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
|
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \
|
||||||
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
|
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
|
||||||
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
|
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
|
||||||
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
|
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
|
||||||
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
|
| -morphos* | -superux* | -rtmk* | -windiss* \
|
||||||
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
|
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
|
||||||
| -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
|
| -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
|
||||||
| -onefs* | -tirtos* | -phoenix* | -fuchsia*)
|
| -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \
|
||||||
|
| -midnightbsd*)
|
||||||
# Remember, each alternative MUST END IN *, to match a version number.
|
# Remember, each alternative MUST END IN *, to match a version number.
|
||||||
;;
|
;;
|
||||||
-qnx*)
|
-qnx*)
|
||||||
|
|
@ -1426,12 +1407,12 @@ case $os in
|
||||||
-nto*)
|
-nto*)
|
||||||
os=`echo $os | sed -e 's|nto|nto-qnx|'`
|
os=`echo $os | sed -e 's|nto|nto-qnx|'`
|
||||||
;;
|
;;
|
||||||
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
|
-sim | -xray | -os68k* | -v88r* \
|
||||||
| -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
|
| -windows* | -osx | -abug | -netware* | -os9* \
|
||||||
| -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
|
| -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
|
||||||
;;
|
;;
|
||||||
-mac*)
|
-mac*)
|
||||||
os=`echo $os | sed -e 's|mac|macos|'`
|
os=`echo "$os" | sed -e 's|mac|macos|'`
|
||||||
;;
|
;;
|
||||||
-linux-dietlibc)
|
-linux-dietlibc)
|
||||||
os=-linux-dietlibc
|
os=-linux-dietlibc
|
||||||
|
|
@ -1440,10 +1421,10 @@ case $os in
|
||||||
os=`echo $os | sed -e 's|linux|linux-gnu|'`
|
os=`echo $os | sed -e 's|linux|linux-gnu|'`
|
||||||
;;
|
;;
|
||||||
-sunos5*)
|
-sunos5*)
|
||||||
os=`echo $os | sed -e 's|sunos5|solaris2|'`
|
os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
|
||||||
;;
|
;;
|
||||||
-sunos6*)
|
-sunos6*)
|
||||||
os=`echo $os | sed -e 's|sunos6|solaris3|'`
|
os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
|
||||||
;;
|
;;
|
||||||
-opened*)
|
-opened*)
|
||||||
os=-openedition
|
os=-openedition
|
||||||
|
|
@ -1454,12 +1435,6 @@ case $os in
|
||||||
-wince*)
|
-wince*)
|
||||||
os=-wince
|
os=-wince
|
||||||
;;
|
;;
|
||||||
-osfrose*)
|
|
||||||
os=-osfrose
|
|
||||||
;;
|
|
||||||
-osf*)
|
|
||||||
os=-osf
|
|
||||||
;;
|
|
||||||
-utek*)
|
-utek*)
|
||||||
os=-bsd
|
os=-bsd
|
||||||
;;
|
;;
|
||||||
|
|
@ -1484,7 +1459,7 @@ case $os in
|
||||||
-nova*)
|
-nova*)
|
||||||
os=-rtmk-nova
|
os=-rtmk-nova
|
||||||
;;
|
;;
|
||||||
-ns2 )
|
-ns2)
|
||||||
os=-nextstep2
|
os=-nextstep2
|
||||||
;;
|
;;
|
||||||
-nsk*)
|
-nsk*)
|
||||||
|
|
@ -1506,7 +1481,7 @@ case $os in
|
||||||
-oss*)
|
-oss*)
|
||||||
os=-sysv3
|
os=-sysv3
|
||||||
;;
|
;;
|
||||||
-svr4)
|
-svr4*)
|
||||||
os=-sysv4
|
os=-sysv4
|
||||||
;;
|
;;
|
||||||
-svr3)
|
-svr3)
|
||||||
|
|
@ -1521,24 +1496,28 @@ case $os in
|
||||||
-ose*)
|
-ose*)
|
||||||
os=-ose
|
os=-ose
|
||||||
;;
|
;;
|
||||||
-es1800*)
|
|
||||||
os=-ose
|
|
||||||
;;
|
|
||||||
-xenix)
|
|
||||||
os=-xenix
|
|
||||||
;;
|
|
||||||
-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
|
-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
|
||||||
os=-mint
|
os=-mint
|
||||||
;;
|
;;
|
||||||
-aros*)
|
|
||||||
os=-aros
|
|
||||||
;;
|
|
||||||
-zvmoe)
|
-zvmoe)
|
||||||
os=-zvmoe
|
os=-zvmoe
|
||||||
;;
|
;;
|
||||||
-dicos*)
|
-dicos*)
|
||||||
os=-dicos
|
os=-dicos
|
||||||
;;
|
;;
|
||||||
|
-pikeos*)
|
||||||
|
# Until real need of OS specific support for
|
||||||
|
# particular features comes up, bare metal
|
||||||
|
# configurations are quite functional.
|
||||||
|
case $basic_machine in
|
||||||
|
arm*)
|
||||||
|
os=-eabi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
os=-elf
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
-nacl*)
|
-nacl*)
|
||||||
;;
|
;;
|
||||||
-ios)
|
-ios)
|
||||||
|
|
@ -1548,7 +1527,7 @@ case $os in
|
||||||
*)
|
*)
|
||||||
# Get rid of the `-' at the beginning of $os.
|
# Get rid of the `-' at the beginning of $os.
|
||||||
os=`echo $os | sed 's/[^-]*-//'`
|
os=`echo $os | sed 's/[^-]*-//'`
|
||||||
echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
|
echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
@ -1638,12 +1617,12 @@ case $basic_machine in
|
||||||
sparc-* | *-sun)
|
sparc-* | *-sun)
|
||||||
os=-sunos4.1.1
|
os=-sunos4.1.1
|
||||||
;;
|
;;
|
||||||
|
pru-*)
|
||||||
|
os=-elf
|
||||||
|
;;
|
||||||
*-be)
|
*-be)
|
||||||
os=-beos
|
os=-beos
|
||||||
;;
|
;;
|
||||||
*-haiku)
|
|
||||||
os=-haiku
|
|
||||||
;;
|
|
||||||
*-ibm)
|
*-ibm)
|
||||||
os=-aix
|
os=-aix
|
||||||
;;
|
;;
|
||||||
|
|
@ -1683,7 +1662,7 @@ case $basic_machine in
|
||||||
m88k-omron*)
|
m88k-omron*)
|
||||||
os=-luna
|
os=-luna
|
||||||
;;
|
;;
|
||||||
*-next )
|
*-next)
|
||||||
os=-nextstep
|
os=-nextstep
|
||||||
;;
|
;;
|
||||||
*-sequent)
|
*-sequent)
|
||||||
|
|
@ -1698,9 +1677,6 @@ case $basic_machine in
|
||||||
i370-*)
|
i370-*)
|
||||||
os=-mvs
|
os=-mvs
|
||||||
;;
|
;;
|
||||||
*-next)
|
|
||||||
os=-nextstep3
|
|
||||||
;;
|
|
||||||
*-gould)
|
*-gould)
|
||||||
os=-sysv
|
os=-sysv
|
||||||
;;
|
;;
|
||||||
|
|
@ -1810,15 +1786,15 @@ case $basic_machine in
|
||||||
vendor=stratus
|
vendor=stratus
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
|
basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"`
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
echo $basic_machine$os
|
echo "$basic_machine$os"
|
||||||
exit
|
exit
|
||||||
|
|
||||||
# Local variables:
|
# Local variables:
|
||||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
# eval: (add-hook 'write-file-functions 'time-stamp)
|
||||||
# time-stamp-start: "timestamp='"
|
# time-stamp-start: "timestamp='"
|
||||||
# time-stamp-format: "%:y-%02m-%02d"
|
# time-stamp-format: "%:y-%02m-%02d"
|
||||||
# time-stamp-end: "'"
|
# time-stamp-end: "'"
|
||||||
|
|
|
||||||
429
configure
vendored
429
configure
vendored
|
|
@ -1,6 +1,6 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated by GNU Autoconf 2.69 for tinc 1.0.33.
|
# Generated by GNU Autoconf 2.69 for tinc 1.0.36.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
|
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
|
||||||
|
|
@ -577,8 +577,8 @@ MAKEFLAGS=
|
||||||
# Identity of this package.
|
# Identity of this package.
|
||||||
PACKAGE_NAME='tinc'
|
PACKAGE_NAME='tinc'
|
||||||
PACKAGE_TARNAME='tinc'
|
PACKAGE_TARNAME='tinc'
|
||||||
PACKAGE_VERSION='1.0.33'
|
PACKAGE_VERSION='1.0.36'
|
||||||
PACKAGE_STRING='tinc 1.0.33'
|
PACKAGE_STRING='tinc 1.0.36'
|
||||||
PACKAGE_BUGREPORT=''
|
PACKAGE_BUGREPORT=''
|
||||||
PACKAGE_URL=''
|
PACKAGE_URL=''
|
||||||
|
|
||||||
|
|
@ -625,6 +625,8 @@ LTLIBOBJS
|
||||||
LIBOBJS
|
LIBOBJS
|
||||||
GETOPT_FALSE
|
GETOPT_FALSE
|
||||||
GETOPT_TRUE
|
GETOPT_TRUE
|
||||||
|
WITH_SYSTEMD_FALSE
|
||||||
|
WITH_SYSTEMD_TRUE
|
||||||
TUNEMU_FALSE
|
TUNEMU_FALSE
|
||||||
TUNEMU_TRUE
|
TUNEMU_TRUE
|
||||||
VDE_FALSE
|
VDE_FALSE
|
||||||
|
|
@ -641,9 +643,7 @@ BSD_FALSE
|
||||||
BSD_TRUE
|
BSD_TRUE
|
||||||
LINUX_FALSE
|
LINUX_FALSE
|
||||||
LINUX_TRUE
|
LINUX_TRUE
|
||||||
HAVE_SYSTEMD_FALSE
|
systemd_path
|
||||||
HAVE_SYSTEMD_TRUE
|
|
||||||
systemdsystemunitdir
|
|
||||||
host_os
|
host_os
|
||||||
host_vendor
|
host_vendor
|
||||||
host_cpu
|
host_cpu
|
||||||
|
|
@ -652,9 +652,6 @@ build_os
|
||||||
build_vendor
|
build_vendor
|
||||||
build_cpu
|
build_cpu
|
||||||
build
|
build
|
||||||
PKG_CONFIG_LIBDIR
|
|
||||||
PKG_CONFIG_PATH
|
|
||||||
PKG_CONFIG
|
|
||||||
EGREP
|
EGREP
|
||||||
GREP
|
GREP
|
||||||
CPP
|
CPP
|
||||||
|
|
@ -665,7 +662,6 @@ am__nodep
|
||||||
AMDEPBACKSLASH
|
AMDEPBACKSLASH
|
||||||
AMDEP_FALSE
|
AMDEP_FALSE
|
||||||
AMDEP_TRUE
|
AMDEP_TRUE
|
||||||
am__quote
|
|
||||||
am__include
|
am__include
|
||||||
DEPDIR
|
DEPDIR
|
||||||
OBJEXT
|
OBJEXT
|
||||||
|
|
@ -740,7 +736,8 @@ PACKAGE_VERSION
|
||||||
PACKAGE_TARNAME
|
PACKAGE_TARNAME
|
||||||
PACKAGE_NAME
|
PACKAGE_NAME
|
||||||
PATH_SEPARATOR
|
PATH_SEPARATOR
|
||||||
SHELL'
|
SHELL
|
||||||
|
am__quote'
|
||||||
ac_subst_files=''
|
ac_subst_files=''
|
||||||
ac_user_opts='
|
ac_user_opts='
|
||||||
enable_option_checking
|
enable_option_checking
|
||||||
|
|
@ -750,7 +747,7 @@ enable_uml
|
||||||
enable_vde
|
enable_vde
|
||||||
enable_tunemu
|
enable_tunemu
|
||||||
with_windows2000
|
with_windows2000
|
||||||
with_systemdsystemunitdir
|
with_systemd
|
||||||
enable_hardening
|
enable_hardening
|
||||||
enable_zlib
|
enable_zlib
|
||||||
with_zlib
|
with_zlib
|
||||||
|
|
@ -773,10 +770,7 @@ CFLAGS
|
||||||
LDFLAGS
|
LDFLAGS
|
||||||
LIBS
|
LIBS
|
||||||
CPPFLAGS
|
CPPFLAGS
|
||||||
CPP
|
CPP'
|
||||||
PKG_CONFIG
|
|
||||||
PKG_CONFIG_PATH
|
|
||||||
PKG_CONFIG_LIBDIR'
|
|
||||||
|
|
||||||
|
|
||||||
# Initialize some variables set by options.
|
# Initialize some variables set by options.
|
||||||
|
|
@ -1327,7 +1321,7 @@ if test "$ac_init_help" = "long"; then
|
||||||
# Omit some internal or obsolete options to make the list less imposing.
|
# Omit some internal or obsolete options to make the list less imposing.
|
||||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||||
cat <<_ACEOF
|
cat <<_ACEOF
|
||||||
\`configure' configures tinc 1.0.33 to adapt to many kinds of systems.
|
\`configure' configures tinc 1.0.36 to adapt to many kinds of systems.
|
||||||
|
|
||||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||||
|
|
||||||
|
|
@ -1398,7 +1392,7 @@ fi
|
||||||
|
|
||||||
if test -n "$ac_init_help"; then
|
if test -n "$ac_init_help"; then
|
||||||
case $ac_init_help in
|
case $ac_init_help in
|
||||||
short | recursive ) echo "Configuration of tinc 1.0.33:";;
|
short | recursive ) echo "Configuration of tinc 1.0.36:";;
|
||||||
esac
|
esac
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
|
|
||||||
|
|
@ -1426,8 +1420,7 @@ Optional Packages:
|
||||||
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
|
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
|
||||||
--with-windows2000 compile with support for Windows 2000. This disables
|
--with-windows2000 compile with support for Windows 2000. This disables
|
||||||
support for tunneling over existing IPv6 networks.
|
support for tunneling over existing IPv6 networks.
|
||||||
--with-systemdsystemunitdir=DIR
|
--with-systemd[=DIR] install systemd service files [to DIR if specified]
|
||||||
Directory for systemd service files
|
|
||||||
--with-zlib=DIR zlib base directory, or:
|
--with-zlib=DIR zlib base directory, or:
|
||||||
--with-zlib-include=DIR zlib headers directory
|
--with-zlib-include=DIR zlib headers directory
|
||||||
--with-zlib-lib=DIR zlib library directory
|
--with-zlib-lib=DIR zlib library directory
|
||||||
|
|
@ -1449,11 +1442,6 @@ Some influential environment variables:
|
||||||
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
|
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
|
||||||
you have headers in a nonstandard directory <include dir>
|
you have headers in a nonstandard directory <include dir>
|
||||||
CPP C preprocessor
|
CPP C preprocessor
|
||||||
PKG_CONFIG path to pkg-config utility
|
|
||||||
PKG_CONFIG_PATH
|
|
||||||
directories to add to pkg-config's search path
|
|
||||||
PKG_CONFIG_LIBDIR
|
|
||||||
path overriding pkg-config's built-in search path
|
|
||||||
|
|
||||||
Use these variables to override the choices made by `configure' or to help
|
Use these variables to override the choices made by `configure' or to help
|
||||||
it to find libraries and programs with nonstandard names/locations.
|
it to find libraries and programs with nonstandard names/locations.
|
||||||
|
|
@ -1521,7 +1509,7 @@ fi
|
||||||
test -n "$ac_init_help" && exit $ac_status
|
test -n "$ac_init_help" && exit $ac_status
|
||||||
if $ac_init_version; then
|
if $ac_init_version; then
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
tinc configure 1.0.33
|
tinc configure 1.0.36
|
||||||
generated by GNU Autoconf 2.69
|
generated by GNU Autoconf 2.69
|
||||||
|
|
||||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||||
|
|
@ -1986,7 +1974,7 @@ cat >config.log <<_ACEOF
|
||||||
This file contains any messages produced by compilers while
|
This file contains any messages produced by compilers while
|
||||||
running configure, to aid debugging if configure makes a mistake.
|
running configure, to aid debugging if configure makes a mistake.
|
||||||
|
|
||||||
It was created by tinc $as_me 1.0.33, which was
|
It was created by tinc $as_me 1.0.36, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
$ $0 $@
|
$ $0 $@
|
||||||
|
|
@ -2335,7 +2323,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
am__api_version='1.15'
|
am__api_version='1.16'
|
||||||
|
|
||||||
ac_aux_dir=
|
ac_aux_dir=
|
||||||
for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
|
for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
|
||||||
|
|
@ -2850,7 +2838,7 @@ fi
|
||||||
|
|
||||||
# Define the identity of the package.
|
# Define the identity of the package.
|
||||||
PACKAGE='tinc'
|
PACKAGE='tinc'
|
||||||
VERSION='1.0.33'
|
VERSION='1.0.36'
|
||||||
|
|
||||||
|
|
||||||
cat >>confdefs.h <<_ACEOF
|
cat >>confdefs.h <<_ACEOF
|
||||||
|
|
@ -2880,8 +2868,8 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
|
||||||
|
|
||||||
# For better backward compatibility. To be removed once Automake 1.9.x
|
# For better backward compatibility. To be removed once Automake 1.9.x
|
||||||
# dies out for good. For more background, see:
|
# dies out for good. For more background, see:
|
||||||
# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
|
# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
|
||||||
# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
|
# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
|
||||||
mkdir_p='$(MKDIR_P)'
|
mkdir_p='$(MKDIR_P)'
|
||||||
|
|
||||||
# We need awk for the "check" target (and possibly the TAP driver). The
|
# We need awk for the "check" target (and possibly the TAP driver). The
|
||||||
|
|
@ -2932,7 +2920,7 @@ END
|
||||||
Aborting the configuration process, to ensure you take notice of the issue.
|
Aborting the configuration process, to ensure you take notice of the issue.
|
||||||
|
|
||||||
You can download and install GNU coreutils to get an 'rm' implementation
|
You can download and install GNU coreutils to get an 'rm' implementation
|
||||||
that behaves properly: <http://www.gnu.org/software/coreutils/>.
|
that behaves properly: <https://www.gnu.org/software/coreutils/>.
|
||||||
|
|
||||||
If you want to complete the configuration process using your problematic
|
If you want to complete the configuration process using your problematic
|
||||||
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
|
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
|
||||||
|
|
@ -2993,45 +2981,45 @@ DEPDIR="${am__leading_dot}deps"
|
||||||
|
|
||||||
ac_config_commands="$ac_config_commands depfiles"
|
ac_config_commands="$ac_config_commands depfiles"
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
|
||||||
am_make=${MAKE-make}
|
$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; }
|
||||||
cat > confinc << 'END'
|
cat > confinc.mk << 'END'
|
||||||
am__doit:
|
am__doit:
|
||||||
@echo this is the am__doit target
|
@echo this is the am__doit target >confinc.out
|
||||||
.PHONY: am__doit
|
.PHONY: am__doit
|
||||||
END
|
END
|
||||||
# If we don't find an include directive, just comment out the code.
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
|
|
||||||
$as_echo_n "checking for style of include used by $am_make... " >&6; }
|
|
||||||
am__include="#"
|
am__include="#"
|
||||||
am__quote=
|
am__quote=
|
||||||
_am_result=none
|
# BSD make does it like this.
|
||||||
# First try GNU make style include.
|
echo '.include "confinc.mk" # ignored' > confmf.BSD
|
||||||
echo "include confinc" > confmf
|
# Other make implementations (GNU, Solaris 10, AIX) do it like this.
|
||||||
# Ignore all kinds of additional output from 'make'.
|
echo 'include confinc.mk # ignored' > confmf.GNU
|
||||||
case `$am_make -s -f confmf 2> /dev/null` in #(
|
_am_result=no
|
||||||
*the\ am__doit\ target*)
|
for s in GNU BSD; do
|
||||||
am__include=include
|
{ echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5
|
||||||
am__quote=
|
(${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5
|
||||||
_am_result=GNU
|
ac_status=$?
|
||||||
|
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); }
|
||||||
|
case $?:`cat confinc.out 2>/dev/null` in #(
|
||||||
|
'0:this is the am__doit target') :
|
||||||
|
case $s in #(
|
||||||
|
BSD) :
|
||||||
|
am__include='.include' am__quote='"' ;; #(
|
||||||
|
*) :
|
||||||
|
am__include='include' am__quote='' ;;
|
||||||
|
esac ;; #(
|
||||||
|
*) :
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
# Now try BSD make style include.
|
if test "$am__include" != "#"; then
|
||||||
if test "$am__include" = "#"; then
|
_am_result="yes ($s style)"
|
||||||
echo '.include "confinc"' > confmf
|
break
|
||||||
case `$am_make -s -f confmf 2> /dev/null` in #(
|
fi
|
||||||
*the\ am__doit\ target*)
|
done
|
||||||
am__include=.include
|
rm -f confinc.* confmf.*
|
||||||
am__quote="\""
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
|
||||||
_am_result=BSD
|
$as_echo "${_am_result}" >&6; }
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
|
|
||||||
$as_echo "$_am_result" >&6; }
|
|
||||||
rm -f confinc confmf
|
|
||||||
|
|
||||||
# Check whether --enable-dependency-tracking was given.
|
# Check whether --enable-dependency-tracking was given.
|
||||||
if test "${enable_dependency_tracking+set}" = set; then :
|
if test "${enable_dependency_tracking+set}" = set; then :
|
||||||
|
|
@ -4811,127 +4799,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
|
|
||||||
if test -n "$ac_tool_prefix"; then
|
|
||||||
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
|
|
||||||
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
|
||||||
$as_echo_n "checking for $ac_word... " >&6; }
|
|
||||||
if ${ac_cv_path_PKG_CONFIG+:} false; then :
|
|
||||||
$as_echo_n "(cached) " >&6
|
|
||||||
else
|
|
||||||
case $PKG_CONFIG in
|
|
||||||
[\\/]* | ?:[\\/]*)
|
|
||||||
ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
|
||||||
for as_dir in $PATH
|
|
||||||
do
|
|
||||||
IFS=$as_save_IFS
|
|
||||||
test -z "$as_dir" && as_dir=.
|
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
|
||||||
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
|
||||||
ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
|
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
|
||||||
break 2
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
done
|
|
||||||
IFS=$as_save_IFS
|
|
||||||
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
PKG_CONFIG=$ac_cv_path_PKG_CONFIG
|
|
||||||
if test -n "$PKG_CONFIG"; then
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
|
|
||||||
$as_echo "$PKG_CONFIG" >&6; }
|
|
||||||
else
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
|
||||||
$as_echo "no" >&6; }
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
fi
|
|
||||||
if test -z "$ac_cv_path_PKG_CONFIG"; then
|
|
||||||
ac_pt_PKG_CONFIG=$PKG_CONFIG
|
|
||||||
# Extract the first word of "pkg-config", so it can be a program name with args.
|
|
||||||
set dummy pkg-config; ac_word=$2
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
|
||||||
$as_echo_n "checking for $ac_word... " >&6; }
|
|
||||||
if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
|
|
||||||
$as_echo_n "(cached) " >&6
|
|
||||||
else
|
|
||||||
case $ac_pt_PKG_CONFIG in
|
|
||||||
[\\/]* | ?:[\\/]*)
|
|
||||||
ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
|
||||||
for as_dir in $PATH
|
|
||||||
do
|
|
||||||
IFS=$as_save_IFS
|
|
||||||
test -z "$as_dir" && as_dir=.
|
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
|
||||||
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
|
||||||
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
|
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
|
||||||
break 2
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
done
|
|
||||||
IFS=$as_save_IFS
|
|
||||||
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
|
|
||||||
if test -n "$ac_pt_PKG_CONFIG"; then
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
|
|
||||||
$as_echo "$ac_pt_PKG_CONFIG" >&6; }
|
|
||||||
else
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
|
||||||
$as_echo "no" >&6; }
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$ac_pt_PKG_CONFIG" = x; then
|
|
||||||
PKG_CONFIG=""
|
|
||||||
else
|
|
||||||
case $cross_compiling:$ac_tool_warned in
|
|
||||||
yes:)
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
|
|
||||||
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
|
|
||||||
ac_tool_warned=yes ;;
|
|
||||||
esac
|
|
||||||
PKG_CONFIG=$ac_pt_PKG_CONFIG
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
|
||||||
if test -n "$PKG_CONFIG"; then
|
|
||||||
_pkg_min_version=0.9.0
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
|
|
||||||
$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
|
|
||||||
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
|
||||||
$as_echo "yes" >&6; }
|
|
||||||
else
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
|
||||||
$as_echo "no" >&6; }
|
|
||||||
PKG_CONFIG=""
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Make sure we can run config.sub.
|
# Make sure we can run config.sub.
|
||||||
$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
|
$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
|
||||||
as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
|
as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
|
||||||
|
|
@ -5155,37 +5022,24 @@ fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Check whether --with-systemdsystemunitdir was given.
|
# Check whether --with-systemd was given.
|
||||||
if test "${with_systemdsystemunitdir+set}" = set; then :
|
if test "${with_systemd+set}" = set; then :
|
||||||
withval=$with_systemdsystemunitdir;
|
withval=$with_systemd; systemd=true; systemd_path="$with_systemd"
|
||||||
else
|
else
|
||||||
with_systemdsystemunitdir=auto
|
systemd=false
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$with_systemdsystemunitdir" = "xyes" -o "x$with_systemdsystemunitdir" = "xauto"; then :
|
|
||||||
|
|
||||||
def_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)
|
if test "x$with_systemd" = "xyes"; then :
|
||||||
|
systemd_path="\${libdir}/systemd/system"
|
||||||
if test "x$def_systemdsystemunitdir" = "x"; then :
|
|
||||||
if test "x$with_systemdsystemunitdir" = "xyes"; then :
|
|
||||||
as_fn_error $? "systemd support requested but pkg-config unable to query systemd package" "$LINENO" 5
|
|
||||||
fi
|
|
||||||
with_systemdsystemunitdir=no
|
|
||||||
else
|
else
|
||||||
with_systemdsystemunitdir="$def_systemdsystemunitdir"
|
if test "x$with_systemd" = "xno"; then :
|
||||||
|
systemd=false
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if test "x$with_systemdsystemunitdir" != "xno"; then :
|
|
||||||
systemdsystemunitdir=$with_systemdsystemunitdir
|
|
||||||
|
|
||||||
fi
|
systemd_path=$systemd_path
|
||||||
if test "x$with_systemdsystemunitdir" != "xno"; then
|
|
||||||
HAVE_SYSTEMD_TRUE=
|
|
||||||
HAVE_SYSTEMD_FALSE='#'
|
|
||||||
else
|
|
||||||
HAVE_SYSTEMD_TRUE='#'
|
|
||||||
HAVE_SYSTEMD_FALSE=
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
if test "$linux" = true; then
|
if test "$linux" = true; then
|
||||||
|
|
@ -5252,6 +5106,14 @@ else
|
||||||
TUNEMU_FALSE=
|
TUNEMU_FALSE=
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if test "$systemd" = true; then
|
||||||
|
WITH_SYSTEMD_TRUE=
|
||||||
|
WITH_SYSTEMD_FALSE='#'
|
||||||
|
else
|
||||||
|
WITH_SYSTEMD_TRUE='#'
|
||||||
|
WITH_SYSTEMD_FALSE=
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
cat >confcache <<\_ACEOF
|
cat >confcache <<\_ACEOF
|
||||||
# This file is a shell script that caches the results of configure
|
# This file is a shell script that caches the results of configure
|
||||||
|
|
@ -6898,7 +6760,7 @@ if test "x$runstatedir" = "x"; then
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ac_config_files="$ac_config_files Makefile src/Makefile doc/Makefile distro/Makefile"
|
ac_config_files="$ac_config_files Makefile src/Makefile doc/Makefile systemd/Makefile"
|
||||||
|
|
||||||
|
|
||||||
cat >confcache <<\_ACEOF
|
cat >confcache <<\_ACEOF
|
||||||
|
|
@ -7034,10 +6896,6 @@ if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
|
||||||
as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
|
as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
|
||||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||||
fi
|
fi
|
||||||
if test -z "${HAVE_SYSTEMD_TRUE}" && test -z "${HAVE_SYSTEMD_FALSE}"; then
|
|
||||||
as_fn_error $? "conditional \"HAVE_SYSTEMD\" was never defined.
|
|
||||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
|
||||||
fi
|
|
||||||
if test -z "${LINUX_TRUE}" && test -z "${LINUX_FALSE}"; then
|
if test -z "${LINUX_TRUE}" && test -z "${LINUX_FALSE}"; then
|
||||||
as_fn_error $? "conditional \"LINUX\" was never defined.
|
as_fn_error $? "conditional \"LINUX\" was never defined.
|
||||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||||
|
|
@ -7070,6 +6928,10 @@ if test -z "${TUNEMU_TRUE}" && test -z "${TUNEMU_FALSE}"; then
|
||||||
as_fn_error $? "conditional \"TUNEMU\" was never defined.
|
as_fn_error $? "conditional \"TUNEMU\" was never defined.
|
||||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||||
fi
|
fi
|
||||||
|
if test -z "${WITH_SYSTEMD_TRUE}" && test -z "${WITH_SYSTEMD_FALSE}"; then
|
||||||
|
as_fn_error $? "conditional \"WITH_SYSTEMD\" was never defined.
|
||||||
|
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||||
|
fi
|
||||||
if test -z "${GETOPT_TRUE}" && test -z "${GETOPT_FALSE}"; then
|
if test -z "${GETOPT_TRUE}" && test -z "${GETOPT_FALSE}"; then
|
||||||
as_fn_error $? "conditional \"GETOPT\" was never defined.
|
as_fn_error $? "conditional \"GETOPT\" was never defined.
|
||||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||||
|
|
@ -7471,7 +7333,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||||
# report actual input values of CONFIG_FILES etc. instead of their
|
# report actual input values of CONFIG_FILES etc. instead of their
|
||||||
# values after options handling.
|
# values after options handling.
|
||||||
ac_log="
|
ac_log="
|
||||||
This file was extended by tinc $as_me 1.0.33, which was
|
This file was extended by tinc $as_me 1.0.36, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
CONFIG_FILES = $CONFIG_FILES
|
CONFIG_FILES = $CONFIG_FILES
|
||||||
|
|
@ -7537,7 +7399,7 @@ _ACEOF
|
||||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||||
ac_cs_version="\\
|
ac_cs_version="\\
|
||||||
tinc config.status 1.0.33
|
tinc config.status 1.0.36
|
||||||
configured by $0, generated by GNU Autoconf 2.69,
|
configured by $0, generated by GNU Autoconf 2.69,
|
||||||
with options \\"\$ac_cs_config\\"
|
with options \\"\$ac_cs_config\\"
|
||||||
|
|
||||||
|
|
@ -7656,7 +7518,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||||
#
|
#
|
||||||
# INIT-COMMANDS
|
# INIT-COMMANDS
|
||||||
#
|
#
|
||||||
AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
|
AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"
|
||||||
|
|
||||||
_ACEOF
|
_ACEOF
|
||||||
|
|
||||||
|
|
@ -7671,7 +7533,7 @@ do
|
||||||
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
|
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
|
||||||
"src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
|
"src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
|
||||||
"doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
|
"doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
|
||||||
"distro/Makefile") CONFIG_FILES="$CONFIG_FILES distro/Makefile" ;;
|
"systemd/Makefile") CONFIG_FILES="$CONFIG_FILES systemd/Makefile" ;;
|
||||||
|
|
||||||
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
|
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
|
||||||
esac
|
esac
|
||||||
|
|
@ -8271,29 +8133,35 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
|
||||||
# Older Autoconf quotes --file arguments for eval, but not when files
|
# Older Autoconf quotes --file arguments for eval, but not when files
|
||||||
# are listed without --file. Let's play safe and only enable the eval
|
# are listed without --file. Let's play safe and only enable the eval
|
||||||
# if we detect the quoting.
|
# if we detect the quoting.
|
||||||
case $CONFIG_FILES in
|
# TODO: see whether this extra hack can be removed once we start
|
||||||
*\'*) eval set x "$CONFIG_FILES" ;;
|
# requiring Autoconf 2.70 or later.
|
||||||
*) set x $CONFIG_FILES ;;
|
case $CONFIG_FILES in #(
|
||||||
esac
|
*\'*) :
|
||||||
|
eval set x "$CONFIG_FILES" ;; #(
|
||||||
|
*) :
|
||||||
|
set x $CONFIG_FILES ;; #(
|
||||||
|
*) :
|
||||||
|
;;
|
||||||
|
esac
|
||||||
shift
|
shift
|
||||||
for mf
|
# Used to flag and report bootstrapping failures.
|
||||||
|
am_rc=0
|
||||||
|
for am_mf
|
||||||
do
|
do
|
||||||
# Strip MF so we end up with the name of the file.
|
# Strip MF so we end up with the name of the file.
|
||||||
mf=`echo "$mf" | sed -e 's/:.*$//'`
|
am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'`
|
||||||
# Check whether this is an Automake generated Makefile or not.
|
# Check whether this is an Automake generated Makefile which includes
|
||||||
# We used to match only the files named 'Makefile.in', but
|
# dependency-tracking related rules and includes.
|
||||||
# some people rename them; so instead we look at the file content.
|
# Grep'ing the whole file directly is not great: AIX grep has a line
|
||||||
# Grep'ing the first line is not enough: some people post-process
|
|
||||||
# each Makefile.in and add a new line on top of each file to say so.
|
|
||||||
# Grep'ing the whole file is not good either: AIX grep has a line
|
|
||||||
# limit of 2048, but all sed's we know have understand at least 4000.
|
# limit of 2048, but all sed's we know have understand at least 4000.
|
||||||
if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
|
sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
|
||||||
dirpart=`$as_dirname -- "$mf" ||
|
|| continue
|
||||||
$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
am_dirpart=`$as_dirname -- "$am_mf" ||
|
||||||
X"$mf" : 'X\(//\)[^/]' \| \
|
$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||||
X"$mf" : 'X\(//\)$' \| \
|
X"$am_mf" : 'X\(//\)[^/]' \| \
|
||||||
X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
|
X"$am_mf" : 'X\(//\)$' \| \
|
||||||
$as_echo X"$mf" |
|
X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
|
||||||
|
$as_echo X"$am_mf" |
|
||||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
||||||
s//\1/
|
s//\1/
|
||||||
q
|
q
|
||||||
|
|
@ -8311,53 +8179,50 @@ $as_echo X"$mf" |
|
||||||
q
|
q
|
||||||
}
|
}
|
||||||
s/.*/./; q'`
|
s/.*/./; q'`
|
||||||
else
|
am_filepart=`$as_basename -- "$am_mf" ||
|
||||||
continue
|
$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \
|
||||||
|
X"$am_mf" : 'X\(//\)$' \| \
|
||||||
|
X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
|
||||||
|
$as_echo X/"$am_mf" |
|
||||||
|
sed '/^.*\/\([^/][^/]*\)\/*$/{
|
||||||
|
s//\1/
|
||||||
|
q
|
||||||
|
}
|
||||||
|
/^X\/\(\/\/\)$/{
|
||||||
|
s//\1/
|
||||||
|
q
|
||||||
|
}
|
||||||
|
/^X\/\(\/\).*/{
|
||||||
|
s//\1/
|
||||||
|
q
|
||||||
|
}
|
||||||
|
s/.*/./; q'`
|
||||||
|
{ echo "$as_me:$LINENO: cd "$am_dirpart" \
|
||||||
|
&& sed -e '/# am--include-marker/d' "$am_filepart" \
|
||||||
|
| $MAKE -f - am--depfiles" >&5
|
||||||
|
(cd "$am_dirpart" \
|
||||||
|
&& sed -e '/# am--include-marker/d' "$am_filepart" \
|
||||||
|
| $MAKE -f - am--depfiles) >&5 2>&5
|
||||||
|
ac_status=$?
|
||||||
|
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); } || am_rc=$?
|
||||||
|
done
|
||||||
|
if test $am_rc -ne 0; then
|
||||||
|
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
|
||||||
|
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
|
||||||
|
as_fn_error $? "Something went wrong bootstrapping makefile fragments
|
||||||
|
for automatic dependency tracking. If GNU make was not used, consider
|
||||||
|
re-running the configure script with MAKE=\"gmake\" (or whatever is
|
||||||
|
necessary). You can also try re-running configure with the
|
||||||
|
'--disable-dependency-tracking' option to at least be able to build
|
||||||
|
the package (albeit without support for automatic dependency tracking).
|
||||||
|
See \`config.log' for more details" "$LINENO" 5; }
|
||||||
fi
|
fi
|
||||||
# Extract the definition of DEPDIR, am__include, and am__quote
|
{ am_dirpart=; unset am_dirpart;}
|
||||||
# from the Makefile without running 'make'.
|
{ am_filepart=; unset am_filepart;}
|
||||||
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
|
{ am_mf=; unset am_mf;}
|
||||||
test -z "$DEPDIR" && continue
|
{ am_rc=; unset am_rc;}
|
||||||
am__include=`sed -n 's/^am__include = //p' < "$mf"`
|
rm -f conftest-deps.mk
|
||||||
test -z "$am__include" && continue
|
|
||||||
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
|
|
||||||
# Find all dependency output files, they are included files with
|
|
||||||
# $(DEPDIR) in their names. We invoke sed twice because it is the
|
|
||||||
# simplest approach to changing $(DEPDIR) to its actual value in the
|
|
||||||
# expansion.
|
|
||||||
for file in `sed -n "
|
|
||||||
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
|
|
||||||
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
|
|
||||||
# Make sure the directory exists.
|
|
||||||
test -f "$dirpart/$file" && continue
|
|
||||||
fdir=`$as_dirname -- "$file" ||
|
|
||||||
$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
|
||||||
X"$file" : 'X\(//\)[^/]' \| \
|
|
||||||
X"$file" : 'X\(//\)$' \| \
|
|
||||||
X"$file" : 'X\(/\)' \| . 2>/dev/null ||
|
|
||||||
$as_echo X"$file" |
|
|
||||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
|
||||||
s//\1/
|
|
||||||
q
|
|
||||||
}
|
|
||||||
/^X\(\/\/\)[^/].*/{
|
|
||||||
s//\1/
|
|
||||||
q
|
|
||||||
}
|
|
||||||
/^X\(\/\/\)$/{
|
|
||||||
s//\1/
|
|
||||||
q
|
|
||||||
}
|
|
||||||
/^X\(\/\).*/{
|
|
||||||
s//\1/
|
|
||||||
q
|
|
||||||
}
|
|
||||||
s/.*/./; q'`
|
|
||||||
as_dir=$dirpart/$fdir; as_fn_mkdir_p
|
|
||||||
# echo "creating $dirpart/$file"
|
|
||||||
echo '# dummy' > "$dirpart/$file"
|
|
||||||
done
|
|
||||||
done
|
|
||||||
}
|
}
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
|
|
||||||
33
configure.ac
33
configure.ac
|
|
@ -1,9 +1,9 @@
|
||||||
dnl Process this file with autoconf to produce a configure script.
|
dnl Process this file with autoconf to produce a configure script.
|
||||||
|
|
||||||
AC_PREREQ(2.61)
|
AC_PREREQ(2.61)
|
||||||
AC_INIT([tinc], [1.0.33])
|
AC_INIT([tinc], [1.0.36])
|
||||||
AC_CONFIG_SRCDIR([src/tincd.c])
|
AC_CONFIG_SRCDIR([src/tincd.c])
|
||||||
AM_INIT_AUTOMAKE([1.11 check-news std-options subdir-objects nostdinc silent-rules -Wall info-in-builddir])
|
AM_INIT_AUTOMAKE([1.11 check-news std-options subdir-objects nostdinc silent-rules -Wall])
|
||||||
AC_CONFIG_HEADERS([config.h])
|
AC_CONFIG_HEADERS([config.h])
|
||||||
AC_CONFIG_MACRO_DIR([m4])
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
AM_SILENT_RULES([yes])
|
AM_SILENT_RULES([yes])
|
||||||
|
|
@ -21,8 +21,6 @@ AC_PROG_INSTALL
|
||||||
|
|
||||||
AM_PROG_CC_C_O
|
AM_PROG_CC_C_O
|
||||||
|
|
||||||
PKG_PROG_PKG_CONFIG
|
|
||||||
|
|
||||||
dnl Check and set OS
|
dnl Check and set OS
|
||||||
|
|
||||||
AC_CANONICAL_HOST
|
AC_CANONICAL_HOST
|
||||||
|
|
@ -116,20 +114,16 @@ AC_ARG_WITH(windows2000,
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
AC_ARG_WITH([systemdsystemunitdir],
|
AC_ARG_WITH(systemd,
|
||||||
[AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files])],,
|
AS_HELP_STRING([--with-systemd@<:@=DIR@:>@], [install systemd service files @<:@to DIR if specified@:>@]),
|
||||||
[with_systemdsystemunitdir=auto])
|
[ systemd=true; systemd_path="$with_systemd" ],
|
||||||
AS_IF([test "x$with_systemdsystemunitdir" = "xyes" -o "x$with_systemdsystemunitdir" = "xauto"], [
|
[ systemd=false ]
|
||||||
def_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)
|
)
|
||||||
|
|
||||||
AS_IF([test "x$def_systemdsystemunitdir" = "x"],
|
AS_IF([test "x$with_systemd" = "xyes"], [systemd_path="\${libdir}/systemd/system"],
|
||||||
[AS_IF([test "x$with_systemdsystemunitdir" = "xyes"],
|
[AS_IF([test "x$with_systemd" = "xno"], [systemd=false])])
|
||||||
[AC_MSG_ERROR([systemd support requested but pkg-config unable to query systemd package])])
|
|
||||||
with_systemdsystemunitdir=no],
|
AC_SUBST(systemd_path, $systemd_path)
|
||||||
[with_systemdsystemunitdir="$def_systemdsystemunitdir"])])
|
|
||||||
AS_IF([test "x$with_systemdsystemunitdir" != "xno"],
|
|
||||||
[AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])])
|
|
||||||
AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$with_systemdsystemunitdir" != "xno"])
|
|
||||||
|
|
||||||
AM_CONDITIONAL(LINUX, test "$linux" = true)
|
AM_CONDITIONAL(LINUX, test "$linux" = true)
|
||||||
AM_CONDITIONAL(BSD, test "$bsd" = true)
|
AM_CONDITIONAL(BSD, test "$bsd" = true)
|
||||||
|
|
@ -139,6 +133,7 @@ AM_CONDITIONAL(CYGWIN, test "$cygwin" = true)
|
||||||
AM_CONDITIONAL(UML, test "$uml" = true)
|
AM_CONDITIONAL(UML, test "$uml" = true)
|
||||||
AM_CONDITIONAL(VDE, test "$vde" = true)
|
AM_CONDITIONAL(VDE, test "$vde" = true)
|
||||||
AM_CONDITIONAL(TUNEMU, test "$tunemu" = true)
|
AM_CONDITIONAL(TUNEMU, test "$tunemu" = true)
|
||||||
|
AM_CONDITIONAL(WITH_SYSTEMD, test "$systemd" = true)
|
||||||
|
|
||||||
AC_CACHE_SAVE
|
AC_CACHE_SAVE
|
||||||
|
|
||||||
|
|
@ -242,11 +237,11 @@ AC_ARG_ENABLE(jumbograms,
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
dnl Ensure runstatedir is set if we are using a version of autoconf that does not suppport it
|
dnl Ensure runstatedir is set if we are using a version of autoconf that does not support it
|
||||||
if test "x$runstatedir" = "x"; then
|
if test "x$runstatedir" = "x"; then
|
||||||
AC_SUBST([runstatedir], ['${localstatedir}/run'])
|
AC_SUBST([runstatedir], ['${localstatedir}/run'])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_CONFIG_FILES([Makefile src/Makefile doc/Makefile distro/Makefile])
|
AC_CONFIG_FILES([Makefile src/Makefile doc/Makefile systemd/Makefile])
|
||||||
|
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|
|
||||||
14
debian/NEWS
vendored
Normal file
14
debian/NEWS
vendored
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
tinc (1.0.27-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
This package now provides native systemd service files, allowing multiple
|
||||||
|
instances of tinc to be managed. Existing networks listed in
|
||||||
|
/etc/tinc/nets.boot will be converted to service instances once during this
|
||||||
|
upgrade. Afterwards, you can enable and disable networks using:
|
||||||
|
|
||||||
|
systemctl enable tinc@<netname>
|
||||||
|
systemctl disable tinc@<netname>
|
||||||
|
|
||||||
|
If you do not have systemd installed, the SysV init script will continue to
|
||||||
|
work as usual. For more information, see README.Debian.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Sun, 10 Apr 2016 01:33:55 +0200
|
||||||
80
debian/README.Debian
vendored
Normal file
80
debian/README.Debian
vendored
Normal file
|
|
@ -0,0 +1,80 @@
|
||||||
|
tinc for Debian
|
||||||
|
---------------
|
||||||
|
|
||||||
|
The manual for tinc is also available as info pages, type `info tinc'
|
||||||
|
to read it.
|
||||||
|
|
||||||
|
There are several ways in which tinc may be automatically started at boot:
|
||||||
|
|
||||||
|
Systemd
|
||||||
|
-------
|
||||||
|
|
||||||
|
Since 1.0.27-1, the tinc package comes with native systemd service files.
|
||||||
|
To enable and start a net, call:
|
||||||
|
|
||||||
|
systemctl enable tinc@<netname>
|
||||||
|
systemctl start tinc@<netname>
|
||||||
|
|
||||||
|
This will cause a tincd to be started which uses the configuration from
|
||||||
|
/etc/tinc/<netname>, and also makes sure that it will be started next time your
|
||||||
|
system boots.
|
||||||
|
|
||||||
|
Apart from controlling individual instances, you can also start/stop/reload all
|
||||||
|
enabled instances simultaneously by omitting @<netname>, for example:
|
||||||
|
|
||||||
|
systemctl reload tinc
|
||||||
|
|
||||||
|
Note that when you have systemd installed on your system, the file
|
||||||
|
/etc/tinc/nets.boot will not be used anymore to automatically start tinc
|
||||||
|
daemons. If the variable EXTRA is defined in /etc/default/tinc, it will be
|
||||||
|
passed on to tinc. The variable LIMITS is however not used.
|
||||||
|
|
||||||
|
The service files that come with this package start tinc unconditionally.
|
||||||
|
However, tinc does support socket activation. If you wish to write a socket
|
||||||
|
unit for tinc, use the ListenStream option to specify on which port(s) and
|
||||||
|
address(es) tinc should listen.
|
||||||
|
|
||||||
|
SysVinit
|
||||||
|
--------
|
||||||
|
|
||||||
|
The system startup script for tinc, /etc/init.d/tinc, uses the file
|
||||||
|
/etc/tinc/nets.boot to find out which networks have to be started. Use one
|
||||||
|
netname per line. Lines starting with a # are ignored.
|
||||||
|
|
||||||
|
/etc/network/interfaces
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
You can create a stanza in /etc/network/interfaces, and add a line with
|
||||||
|
"tinc-net <netname>". This will cause a tincd to be started which uses the
|
||||||
|
configuration from /etc/tinc/<netname>. You can use an inet static (with
|
||||||
|
address and netmask options) or inet dhcp stanza, in which case the ifup will
|
||||||
|
configure the VPN interface and you do not need to have a tinc-up script.
|
||||||
|
|
||||||
|
The following options are also recognized and map directly to the corresponding
|
||||||
|
command line options for tincd:
|
||||||
|
|
||||||
|
tinc-config <directory>
|
||||||
|
tinc-debug <level>
|
||||||
|
tinc-mlock yes
|
||||||
|
tinc-logfile <filename>
|
||||||
|
tinc-pidfile <filename>
|
||||||
|
tinc-chroot yes
|
||||||
|
tinc-user <username>
|
||||||
|
|
||||||
|
An example stanza:
|
||||||
|
|
||||||
|
iface vpn inet static
|
||||||
|
address 192.168.2.42
|
||||||
|
netmask 255.255.0.0
|
||||||
|
tinc-net myvpn
|
||||||
|
tinc-debug 1
|
||||||
|
tinc-mlock yes
|
||||||
|
tinc-user nobody
|
||||||
|
tinc-pidfile /tmp/tinc.pid
|
||||||
|
|
||||||
|
This will start a tinc daemon that reads its configuration from
|
||||||
|
/etc/tinc/myvpn, logs at debug level 1, locks itself in RAM, runs as user
|
||||||
|
nobody, and creates a network interface called "vpn". Ifup then sets the
|
||||||
|
address and netmask on that interface.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org>, Sun, 10 April 2016, 01:38:08 +0200
|
||||||
685
debian/changelog
vendored
Normal file
685
debian/changelog
vendored
Normal file
|
|
@ -0,0 +1,685 @@
|
||||||
|
tinc (1.0.36-2) unstable; urgency=medium
|
||||||
|
|
||||||
|
* Disable support for libvdeplug. Closes: #973233
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Sun, 22 Nov 2020 10:40:27 +0100
|
||||||
|
|
||||||
|
tinc (1.0.36-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
* New upstream version 1.0.36
|
||||||
|
* Add Vcs tags to debian/control.
|
||||||
|
* Bump Standards-Version.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Mon, 26 Aug 2019 14:17:21 +0200
|
||||||
|
|
||||||
|
tinc (1.0.35-2) unstable; urgency=medium
|
||||||
|
|
||||||
|
* Bump Standards-Version and Build-Depend on debhelper-compat (= 12).
|
||||||
|
* Remove calls to dh_installinit and dh_systemd_start from debian/rules,
|
||||||
|
compat level 12 does the right thing by default.
|
||||||
|
* Ensure we clean up doc/tinc.info.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Mon, 28 Jan 2019 21:54:45 +0100
|
||||||
|
|
||||||
|
tinc (1.0.35-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
- Includes fixes for CVE-2018-16737, CVE-2018-16738, CVE-2018-16758.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Mon, 08 Oct 2018 16:09:06 +0200
|
||||||
|
|
||||||
|
tinc (1.0.34-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
[ Guus Sliepen ]
|
||||||
|
* New upstream release.
|
||||||
|
- Fixes a potential segmentation fault when connecting to an IPv6
|
||||||
|
peer via a proxy. Closes: #887401
|
||||||
|
* Add support for the $EXTRA variable in /etc/default/tinc when using
|
||||||
|
systemd. Closes: #887116
|
||||||
|
|
||||||
|
[ Benda Xu ]
|
||||||
|
* Prevent possible incorrect IPv6 checksums due to function inlining.
|
||||||
|
Closes: #891400
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Tue, 12 Jun 2018 23:00:49 +0200
|
||||||
|
|
||||||
|
tinc (1.0.33-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
* Test for /etc/default/tinc before trying to source it. Closes: #777262
|
||||||
|
* Use --runstatedir=/run.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Sat, 04 Nov 2017 16:22:06 +0100
|
||||||
|
|
||||||
|
tinc (1.0.32-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
* Add a note to new nets.boot files that it is not used with systemd.
|
||||||
|
Closes: #841052
|
||||||
|
* In the post-down script, read the pid file only once. Closes: #832784
|
||||||
|
* Explicitly use /bin/sleep from coreutils. Closes: #772379
|
||||||
|
* Bump Standards-Version.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Tue, 05 Sep 2017 20:23:36 +0200
|
||||||
|
|
||||||
|
tinc (1.0.31-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
* Bump Standards-Version.
|
||||||
|
* Bump debian/compat.
|
||||||
|
* Add missing Depends: lsb-base.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Sun, 15 Jan 2017 16:20:40 +0100
|
||||||
|
|
||||||
|
tinc (1.0.29-2) unstable; urgency=medium
|
||||||
|
|
||||||
|
* Rebuild with libssl-dev from unstable.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Thu, 27 Oct 2016 13:09:46 +0200
|
||||||
|
|
||||||
|
tinc (1.0.29-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
* Bump debian/compat.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Mon, 10 Oct 2016 22:30:25 +0200
|
||||||
|
|
||||||
|
tinc (1.0.28-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
- Fixes FTBFS on kfreebsd.
|
||||||
|
* Systemd service files are now provided by upstream.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Sun, 10 Apr 2016 15:44:28 +0200
|
||||||
|
|
||||||
|
tinc (1.0.27-2) unstable; urgency=medium
|
||||||
|
|
||||||
|
* Fix tinc@.service.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Sun, 10 Apr 2016 12:45:33 +0200
|
||||||
|
|
||||||
|
tinc (1.0.27-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
* Bump Standards-Version.
|
||||||
|
* Add native systemd unit files.
|
||||||
|
* Automatically convert networks listed in nets.boot to systemd service
|
||||||
|
instances on upgrade.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Sun, 10 Apr 2016 01:39:16 +0200
|
||||||
|
|
||||||
|
tinc (1.0.26-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
* Use the contents, not the presence, of the pidfile to check that tincd is
|
||||||
|
shut down properly. Closes: #774682
|
||||||
|
* Bump Standards-Version.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Sun, 05 Jul 2015 17:23:08 +0200
|
||||||
|
|
||||||
|
tinc (1.0.24-2) unstable; urgency=medium
|
||||||
|
|
||||||
|
* Improve the init script: stopping tinc now waits for the process to
|
||||||
|
terminate. If that doesn't happen in 5 seconds, it will send the TERM
|
||||||
|
signal again (which helps if tinc is waiting for a script to finish
|
||||||
|
executing). It now also detects whether the process mentioned in the PID
|
||||||
|
file is actually running, and if not it will exit early and without
|
||||||
|
warnings. Closes: #748107
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Wed, 14 May 2014 21:44:16 +0200
|
||||||
|
|
||||||
|
tinc (1.0.24-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
[ Guus Sliepen ]
|
||||||
|
* New upstream release
|
||||||
|
* Add a debian/watch file.
|
||||||
|
* Bump Standards-Version.
|
||||||
|
|
||||||
|
[ Gian Piero Carrubba ]
|
||||||
|
* Allow resource limits to be set in /etc/default/tinc.
|
||||||
|
Closes: #690685, #704702
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Sun, 11 May 2014 21:17:13 +0200
|
||||||
|
|
||||||
|
tinc (1.0.23-2) unstable; urgency=low
|
||||||
|
|
||||||
|
* Use if-statements instead of && in shell scripts. Closes: #731279
|
||||||
|
The && operator does not clear the error status, and if the next statement
|
||||||
|
in a shell script does not change the error status it would cause the
|
||||||
|
script to prematurely exit. Thanks to Peter Reinholdtsen for spotting it.
|
||||||
|
* Use absolute path to tincd in the if-post-down script.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Thu, 05 Dec 2013 09:41:13 +0000
|
||||||
|
|
||||||
|
tinc (1.0.23-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Sat, 19 Oct 2013 21:06:05 +0200
|
||||||
|
|
||||||
|
tinc (1.0.22-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
- Handles whitespace between command line flags and optional arguments.
|
||||||
|
Closes: #710267
|
||||||
|
* Bump Standards-Version.
|
||||||
|
* Source /lib/lsb/init-functions in the init.d script.
|
||||||
|
* Don't use texi2html anymore, use automake's install-html target which uses
|
||||||
|
makeinfo.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Wed, 14 Aug 2013 15:34:29 +0200
|
||||||
|
|
||||||
|
tinc (1.0.21-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
- Includes fix for CVE-2013-1428.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Sun, 05 May 2013 10:42:33 +0200
|
||||||
|
|
||||||
|
tinc (1.0.19-3) unstable; urgency=high
|
||||||
|
|
||||||
|
* Drop packets forwarded via TCP if they are too big (CVE-2013-1428).
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Fri, 12 Apr 2013 22:52:10 +0200
|
||||||
|
|
||||||
|
tinc (1.0.19-2) unstable; urgency=low
|
||||||
|
|
||||||
|
* Fix behaviour of tinc-pidfile. Closes: #679130
|
||||||
|
* Enable parallel building in debian/rules.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Tue, 26 Jun 2012 18:28:34 +0200
|
||||||
|
|
||||||
|
tinc (1.0.19-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
* Bump debian/compat so tinc gets built with hardening flags.
|
||||||
|
* Allow tinc-pidfile in /etc/network/interfaces.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Mon, 25 Jun 2012 20:29:22 +0200
|
||||||
|
|
||||||
|
tinc (1.0.18-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Sun, 25 Mar 2012 18:52:15 +0200
|
||||||
|
|
||||||
|
tinc (1.0.17-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
* Enable support for UML and VDE.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Sat, 10 Mar 2012 14:50:00 +0100
|
||||||
|
|
||||||
|
tinc (1.0.16-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
* Mention alarm option in /etc/init.d/tinc's usage information.
|
||||||
|
Closes: #631761
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Sat, 23 Jul 2011 14:37:56 +0200
|
||||||
|
|
||||||
|
tinc (1.0.15-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
* Send SIGALRM to running tinc daemons whenever an interface is brought up
|
||||||
|
with the ifupdown framework. Based on a patch from Joachim Breitner.
|
||||||
|
Closes: #629880
|
||||||
|
* Allow tinc daemons to be started using ifupdown.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Fri, 24 Jun 2011 18:21:51 +0200
|
||||||
|
|
||||||
|
tinc (1.0.14-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
* Bump Standards-Version.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Mon, 09 May 2011 00:25:37 +0200
|
||||||
|
|
||||||
|
tinc (1.0.13-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Tue, 13 Apr 2010 12:06:36 +0200
|
||||||
|
|
||||||
|
tinc (1.0.12-2) unstable; urgency=low
|
||||||
|
|
||||||
|
* Remove debconf questions. Closes: #572116
|
||||||
|
Apparently debconf may not be used to ask a question at install time and
|
||||||
|
use the answer at upgrade time. Instead of kludging around this
|
||||||
|
restriction, no questions are asked anymore, and tinc will now always be
|
||||||
|
restarted when upgrading.
|
||||||
|
* Wait up to 5 seconds for tinc daemon to stop before restarting it.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Tue, 02 Mar 2010 14:01:36 +0100
|
||||||
|
|
||||||
|
tinc (1.0.12-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
* Bump Standards-Version.
|
||||||
|
* Migrate from CDBS to debhelper.
|
||||||
|
* Convert source package to 3.0 (quilt) format.
|
||||||
|
* Remove useless tinc.modules.
|
||||||
|
* Use init.d script from Michael Tokarev, allowing per-network arguments to
|
||||||
|
tincd.
|
||||||
|
* Remove update-rc.d calls from postinst and postrm.
|
||||||
|
* Let the init.d script depend on $remote_fs.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Thu, 04 Feb 2010 00:56:45 +0100
|
||||||
|
|
||||||
|
tinc (1.0.11-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
* Cope with texi2html arbitrarily changing its output directory.
|
||||||
|
Closes: #552927
|
||||||
|
* Do not stop tinc when configuring a new version, just restart after
|
||||||
|
the upgrade.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Sun, 01 Nov 2009 20:37:16 +0100
|
||||||
|
|
||||||
|
tinc (1.0.10-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
* Include Russian debconf translation. Closes: #548759
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Sun, 18 Oct 2009 16:31:49 +0200
|
||||||
|
|
||||||
|
tinc (1.0.9-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
- Binds IPv6 sockets only to IPv6. Closes: #440150
|
||||||
|
* Update copyright file. Closes: #482566
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Fri, 26 Dec 2008 13:25:05 +0100
|
||||||
|
|
||||||
|
tinc (1.0.8-2) unstable; urgency=low
|
||||||
|
|
||||||
|
* Include Portugese debconf translation. Closes: #434191
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Tue, 14 Aug 2007 13:50:27 +0200
|
||||||
|
|
||||||
|
tinc (1.0.8-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream release. Closes: #173987
|
||||||
|
* Include german debconf translation. Closes: #412351
|
||||||
|
* Build-Depend on texinfo. Closes: #424209
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Wed, 16 May 2007 17:59:16 +0200
|
||||||
|
|
||||||
|
tinc (1.0.7-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Fri, 5 Jan 2007 15:55:42 +0100
|
||||||
|
|
||||||
|
tinc (1.0.6-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Mon, 18 Dec 2006 15:41:03 +0100
|
||||||
|
|
||||||
|
tinc (1.0.5-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream release. Closes: #391610
|
||||||
|
* Add an LSB section to the init script.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Tue, 14 Nov 2006 16:32:20 +0100
|
||||||
|
|
||||||
|
tinc (1.0.4-4) unstable; urgency=low
|
||||||
|
|
||||||
|
* Include swedish debconf translation. Closes: #332963
|
||||||
|
* Remove nets.boot on purge. Closes: #333303
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Mon, 17 Oct 2005 12:34:32 +0200
|
||||||
|
|
||||||
|
tinc (1.0.4-3) unstable; urgency=low
|
||||||
|
|
||||||
|
* Depend on debconf | debconf-2.0.
|
||||||
|
* Include vietnamese debconf translation. Closes: #322305
|
||||||
|
* Include japanese debconf translation. Closes: #319591
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Thu, 29 Sep 2005 11:15:34 +0200
|
||||||
|
|
||||||
|
tinc (1.0.4-2) unstable; urgency=low
|
||||||
|
|
||||||
|
* Compensate for change in texinfo's output directory. Closes: #318562
|
||||||
|
* Include Czech translation of the debconf questions. Closes: #312982
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Sat, 16 Jul 2005 11:42:04 +0200
|
||||||
|
|
||||||
|
tinc (1.0.4-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream release. Closes: #294819
|
||||||
|
* Update french translation of debconf template. Closes: #293371, #296148
|
||||||
|
* Allow dashes in nets.boot. Closes: #296281
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Wed, 4 May 2005 21:56:22 +0200
|
||||||
|
|
||||||
|
tinc (1.0.3-4) unstable; urgency=low
|
||||||
|
|
||||||
|
* Call debconf early in postinst so it won't get confused by output
|
||||||
|
from other commands in the postinst script. Closes: #292920
|
||||||
|
* If MAKEDEV doesn't know about net/tun, fall back to tun.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Mon, 31 Jan 2005 13:27:16 +0100
|
||||||
|
|
||||||
|
tinc (1.0.3-3) unstable; urgency=low
|
||||||
|
|
||||||
|
* Fix clean rule in debian/rules.
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Thu, 27 Jan 2005 23:16:59 +0000
|
||||||
|
|
||||||
|
tinc (1.0.3-2) unstable; urgency=low
|
||||||
|
|
||||||
|
* Don't check for /dev/tap* in postinst if we don't create them anyway.
|
||||||
|
* MAKEDEV expects net/tun instead of tun.
|
||||||
|
* Don't ask if /dev/net/tun should be created, just do it.
|
||||||
|
Closes: #259489, #292450
|
||||||
|
* Move $EXTRA from init.d/tinc to /etc/default/tinc. Closes: #281366
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Thu, 27 Jan 2005 14:10:02 +0100
|
||||||
|
|
||||||
|
tinc (1.0.3-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
* Adopting the package from Ivo.
|
||||||
|
* Use invoke-rc.d, and tell user to do so as well. Closes: #223276
|
||||||
|
* Let force-reload do the same thing as reload. Closes: #230180
|
||||||
|
|
||||||
|
-- Guus Sliepen <guus@debian.org> Fri, 1 Oct 2004 21:04:14 +0200
|
||||||
|
|
||||||
|
tinc (1.0.2-2) unstable; urgency=low
|
||||||
|
|
||||||
|
* debian/control: Oops, really make that automake1.7.
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Sat, 8 Nov 2003 21:53:04 +0100
|
||||||
|
|
||||||
|
tinc (1.0.2-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream release:
|
||||||
|
* Fix broken replies to CHAL_RESP. (Closes: #217646)
|
||||||
|
* debian/control: Updated automake build dependency to automake1.7.
|
||||||
|
(Closes: #219360)
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Sat, 8 Nov 2003 19:56:04 +0100
|
||||||
|
|
||||||
|
tinc (1.0.1-2) unstable; urgency=low
|
||||||
|
|
||||||
|
* debian/dirs: Removed, moved contents to tinc.dirs.
|
||||||
|
(Closes: #208591)
|
||||||
|
* debian/docs: Renamed to tinc.docs.
|
||||||
|
* debian/rules: Install the contents of doc/sample-config.tar.gz in
|
||||||
|
/usr/share/doc/tinc/examples instead of /etc/tinc.
|
||||||
|
* debian/Makefile*: Removed.
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Wed, 10 Sep 2003 12:19:32 +0200
|
||||||
|
|
||||||
|
tinc (1.0.1-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
* debian/patches/001_openbsd_device.c.patch: Removed.
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Thu, 14 Aug 2003 17:03:28 +0200
|
||||||
|
|
||||||
|
tinc (1.0release-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream version. (Closes: #204639)
|
||||||
|
* Fixes switching back to normal logging mode when killing with
|
||||||
|
SIGINT twice. (Closes: #175633)
|
||||||
|
* Uses one SSL context struct for each connection, speeding up
|
||||||
|
encrypting/decrypting data; don't throw away out of sequence
|
||||||
|
packets. (Closes: #188874)
|
||||||
|
* Fixes handling of broadcast messages. (Closes: #175632)
|
||||||
|
* debian/rules: Use cdbs.
|
||||||
|
* debian/control: Build-Depend on cdbs, liblzo-dev.
|
||||||
|
* debian/patches/001_openbsd_device.c.patch: Sync openbsd/device.c to
|
||||||
|
latest CVS version.
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Sun, 10 Aug 2003 16:13:29 +0200
|
||||||
|
|
||||||
|
tinc (1.0pre8-6) unstable; urgency=low
|
||||||
|
|
||||||
|
* debian/po/fr.po: Added French debconf translation. (Closes: #201803)
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Fri, 18 Jul 2003 10:03:20 +0200
|
||||||
|
|
||||||
|
tinc (1.0pre8-5) unstable; urgency=low
|
||||||
|
|
||||||
|
* debian/*: Change to po-debconf, thanks to From: Michel Grentzinger
|
||||||
|
<mic.grentz@online.fr> for the patch:
|
||||||
|
- change debhelper dependency to 4.1.16 (according to man
|
||||||
|
po-debconf),
|
||||||
|
- manually add nl translation in old tinc.templates (master),
|
||||||
|
- run debconf-gettextize debian/tinc.templates,
|
||||||
|
- move old templates files (debian/tinc.templates.*),
|
||||||
|
- change construction "If you say no" to "If you refuse",
|
||||||
|
* debian/rules: Call po2debconf.
|
||||||
|
* debian/rules: Don't copy COPYING.README to the package.
|
||||||
|
* debian/control: Update Standards-Version.
|
||||||
|
* debian/conffiles: Removed.
|
||||||
|
* debian/postinst: No longer use mknod directly, use MAKEDEV.
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Tue, 15 Jul 2003 20:13:47 +0200
|
||||||
|
|
||||||
|
tinc (1.0pre8-4) unstable; urgency=low
|
||||||
|
|
||||||
|
* src/net.h, src/net_packet.c, src/net_setup.c: Apply fix from CVS
|
||||||
|
for OpenSSL-related memory leaks. (Closes: #189432)
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Mon, 5 May 2003 15:00:29 +0200
|
||||||
|
|
||||||
|
tinc (1.0pre8-3) unstable; urgency=low
|
||||||
|
|
||||||
|
* m4/openssl.m4: Updated to CVS version. (Closes: #184400)
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Thu, 13 Mar 2003 17:24:42 +0100
|
||||||
|
|
||||||
|
tinc (1.0pre8-2) unstable; urgency=low
|
||||||
|
|
||||||
|
* debian/postinst: Create /dev/net/tun if it doesn't exist.
|
||||||
|
* debian/tinc.modules: Add alias for /dev/net/tun.
|
||||||
|
* debian/rules: Install tinc.modules.
|
||||||
|
* These things together: (Closes: #151967, #153156)
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Wed, 13 Nov 2002 22:45:38 +0100
|
||||||
|
|
||||||
|
tinc (1.0pre8-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream version.
|
||||||
|
* debian/rules:
|
||||||
|
- DEB_BUILD_OPTIONS support.
|
||||||
|
- Enable --enable-tracing by default.
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Tue, 17 Sep 2002 13:50:44 +0200
|
||||||
|
|
||||||
|
tinc (1.0pre7-3) unstable; urgency=low
|
||||||
|
|
||||||
|
* Properly install _all_ info pages. (Closes: #144718)
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Wed, 29 May 2002 14:01:21 +0200
|
||||||
|
|
||||||
|
tinc (1.0pre7-2) unstable; urgency=low
|
||||||
|
|
||||||
|
* Dutch translation wasn't being installed.
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Thu, 11 Apr 2002 09:26:14 +0200
|
||||||
|
|
||||||
|
tinc (1.0pre7-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Tue, 9 Apr 2002 16:04:46 +0200
|
||||||
|
|
||||||
|
tinc (1.0pre6-3) unstable; urgency=medium
|
||||||
|
|
||||||
|
* Synched with upstream CVS.
|
||||||
|
* Added build dependency on zlib1g-dev. (Closes: #141705)
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Mon, 8 Apr 2002 21:19:31 +0200
|
||||||
|
|
||||||
|
tinc (1.0pre6-2) unstable; urgency=low
|
||||||
|
|
||||||
|
* The Section was non-US again, so changed it back to main/net.
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Thu, 28 Mar 2002 07:26:10 +0100
|
||||||
|
|
||||||
|
tinc (1.0pre6-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream release.
|
||||||
|
* Fixed text in debian/copyright
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Wed, 27 Mar 2002 23:10:07 +0100
|
||||||
|
|
||||||
|
tinc (1.0pre5-4) unstable; urgency=low
|
||||||
|
|
||||||
|
* Added a debconf question for restarting on upgrade.
|
||||||
|
* Added reload option to init.d, start with EXTRA='-d' default.
|
||||||
|
* Moved from non-US to main.
|
||||||
|
* Install example configuration files.
|
||||||
|
* The HTML documentation wasn't installed; fixed.
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Tue, 26 Mar 2002 20:14:19 +0100
|
||||||
|
|
||||||
|
tinc (1.0pre5-3) unstable; urgency=low
|
||||||
|
|
||||||
|
* Config variables are now treated case sentitivly again.
|
||||||
|
* Added a forgotten xstrdup.
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Fri, 15 Feb 2002 12:35:17 +0100
|
||||||
|
|
||||||
|
tinc (1.0pre5-2) unstable; urgency=low
|
||||||
|
|
||||||
|
* MaxTimeout accidentally wasn't configurable. (Closes: #119653)
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Wed, 13 Feb 2002 13:36:54 +0100
|
||||||
|
|
||||||
|
tinc (1.0pre5-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream version. (Closes: #119653)
|
||||||
|
* Init script redone in sh.
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Sun, 10 Feb 2002 16:39:53 +0100
|
||||||
|
|
||||||
|
tinc (1.0pre4-1.cvs010621.6) unstable; urgency=low
|
||||||
|
|
||||||
|
* Somehow po-Makefile.in.in.diff got lost, readded. (Closes: #119157)
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Thu, 15 Nov 2001 17:00:03 +0100
|
||||||
|
|
||||||
|
tinc (1.0pre4-1.cvs010621.5) unstable; urgency=low
|
||||||
|
|
||||||
|
* Fix a typo in postinst that let it MAKEDEV even on devfs.
|
||||||
|
(Closes: #116034)
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Thu, 18 Oct 2001 09:35:16 +0200
|
||||||
|
|
||||||
|
tinc (1.0pre4-1.cvs010621.4) unstable; urgency=low
|
||||||
|
|
||||||
|
* Ask before creating the device files. (Closes: #111099)
|
||||||
|
* Add a section to the info file.
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Fri, 12 Oct 2001 20:47:09 +0200
|
||||||
|
|
||||||
|
tinc (1.0pre4-1.cvs010621.3) unstable; urgency=low
|
||||||
|
|
||||||
|
* Build and install html documentation. (Closes: #106843)
|
||||||
|
* Remove build-time dependency on libc6-dev.
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Mon, 30 Jul 2001 22:03:52 +0200
|
||||||
|
|
||||||
|
tinc (1.0pre4-1.cvs010621.2) unstable; urgency=low
|
||||||
|
|
||||||
|
* Changed location of the pidfile. (Closes: #102798)
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Sun, 1 Jul 2001 01:57:43 +0200
|
||||||
|
|
||||||
|
tinc (1.0pre4-1.cvs010621.1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream version. (Closes: #98730)
|
||||||
|
* Rebuilding automatically inserted new config.{sub|guess}.
|
||||||
|
(Closes: #98165)
|
||||||
|
* Updated Standards-Version.
|
||||||
|
* Don't include a sample configuration file.
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Thu, 21 Jun 2001 14:08:49 +0200
|
||||||
|
|
||||||
|
tinc (1.0pre3-5) unstable; urgency=low
|
||||||
|
|
||||||
|
* Fixed an error in the init script that prevented tinc from
|
||||||
|
starting correctly.
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Thu, 8 Feb 2001 02:45:09 +0100
|
||||||
|
|
||||||
|
tinc (1.0pre3-4) unstable; urgency=low
|
||||||
|
|
||||||
|
* Change build-depends for OpenSSL to libssl096-dev
|
||||||
|
(Closes: #84197, #84873).
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Sun, 4 Feb 2001 22:43:22 +0100
|
||||||
|
|
||||||
|
tinc (1.0pre3-3) unstable; urgency=low
|
||||||
|
|
||||||
|
* Set architecture to any (really this time!) (Closes: #80451).
|
||||||
|
* Section set to non-US
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Tue, 23 Jan 2001 22:52:53 +0100
|
||||||
|
|
||||||
|
tinc (1.0pre3-2) unstable; urgency=low
|
||||||
|
|
||||||
|
* Set architecture to any (Closes: #80451).
|
||||||
|
* Added tinc.modules with some useful module aliases.
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Sat, 13 Jan 2001 16:10:57 +0100
|
||||||
|
|
||||||
|
tinc (1.0pre3-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* New upstream version (1.0pre3) (Closes: #71274).
|
||||||
|
* Better Depends and Build-Depends lines.
|
||||||
|
* Dropped dependencies on libgmp, added libssl.
|
||||||
|
* doc-base.tinc: New file.
|
||||||
|
* Deleted the file shlibs, as there on longer is a libblowfish.
|
||||||
|
* Patch po/Makefile.in.in from po-Makefile.in.in.diff if necessary.
|
||||||
|
* Use dh_perl to get accurate perl dependencies.
|
||||||
|
|
||||||
|
-- Ivo Timmermans <ivo@debian.org> Thu, 9 Nov 2000 21:58:40 +0100
|
||||||
|
|
||||||
|
tinc (1.0pre2-1.1) unstable; urgency=low
|
||||||
|
|
||||||
|
* NMU at Ivo's request as his application is being processed, and his
|
||||||
|
sponsor is based in the US.
|
||||||
|
|
||||||
|
-- J.H.M. Dassen (Ray) <jdassen@debian.org> Wed, 28 Jun 2000 21:52:30 +0200
|
||||||
|
|
||||||
|
tinc (1.0pre2-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* postinst creates a file /etc/tinc/nets.boot, containing all networks
|
||||||
|
to be started upon system startup;
|
||||||
|
* init.d script starts all networks from that list.
|
||||||
|
* postinst script creates tap devices.
|
||||||
|
|
||||||
|
-- Ivo Timmermans <itimmermans@bigfoot.com> Tue, 16 May 2000 00:06:25 +0200
|
||||||
|
|
||||||
|
tinc (1.0pre1-0.4) unstable; urgency=low
|
||||||
|
|
||||||
|
* postinst script.
|
||||||
|
|
||||||
|
-- Ivo Timmermans <itimmermans@bigfoot.com> Mon, 15 May 2000 19:22:05 +0200
|
||||||
|
|
||||||
|
tinc (1.0pre1-0.3) unstable; urgency=low
|
||||||
|
|
||||||
|
* system startup script.
|
||||||
|
|
||||||
|
-- Ivo Timmermans <itimmermans@bigfoot.com> Sun, 14 May 2000 22:58:02 +0200
|
||||||
|
|
||||||
|
tinc (1.0pre1-0.2) unstable; urgency=low
|
||||||
|
|
||||||
|
* Included the blowfish license.
|
||||||
|
|
||||||
|
-- Ivo Timmermans <itimmermans@bigfoot.com> Fri, 21 Apr 2000 17:07:50 +0200
|
||||||
|
|
||||||
|
tinc (1.0pre1-0.1) unstable; urgency=low
|
||||||
|
|
||||||
|
* Initial Release.
|
||||||
|
|
||||||
|
-- Ivo Timmermans <itimmermans@bigfoot.com> Fri, 21 Apr 2000 17:07:50 +0200
|
||||||
|
|
||||||
|
|
||||||
20
debian/control
vendored
Normal file
20
debian/control
vendored
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
Source: tinc
|
||||||
|
Section: net
|
||||||
|
Priority: optional
|
||||||
|
Maintainer: Guus Sliepen <guus@debian.org>
|
||||||
|
Standards-Version: 4.4.0
|
||||||
|
Build-Depends: libssl-dev, debhelper-compat (= 12), gettext, texinfo, zlib1g-dev, liblzo2-dev
|
||||||
|
Homepage: http://www.tinc-vpn.org/
|
||||||
|
Vcs-Browser: https://salsa.debian.org/guus/tinc
|
||||||
|
Vcs-Git: https://salsa.debian.org/guus/tinc.git
|
||||||
|
Rules-Requires-Root: no
|
||||||
|
|
||||||
|
Package: tinc
|
||||||
|
Architecture: any
|
||||||
|
Pre-Depends: ${misc:Pre-Depends}
|
||||||
|
Depends: ${shlibs:Depends}, ${misc:Depends}, lsb-base (>= 3.0-6)
|
||||||
|
Description: Virtual Private Network daemon
|
||||||
|
tinc is a daemon with which you can create a virtual private network
|
||||||
|
(VPN). One daemon can handle multiple connections, so you can
|
||||||
|
create an entire (moderately sized) VPN with only one daemon per
|
||||||
|
participating computer.
|
||||||
34
debian/copyright
vendored
Normal file
34
debian/copyright
vendored
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
This package was debianized by Ivo Timmermans <ivo@debian.org> on
|
||||||
|
Fri, 21 Apr 2000 17:07:50 +0200.
|
||||||
|
|
||||||
|
It was downloaded from http://www.tinc-vpn.org/
|
||||||
|
|
||||||
|
Upstream Authors:
|
||||||
|
Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
Ivo Timmermans <ivo@tinc-vpn.org>
|
||||||
|
|
||||||
|
Copyright (C) 1998-2005 Ivo Timmermans
|
||||||
|
1998-2008 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
On Debian GNU/Linux systems, the complete text of the GNU General Public
|
||||||
|
License version 2 can be found in /usr/share/common-licenses/GPL-2.
|
||||||
|
|
||||||
|
The following applies to tinc:
|
||||||
|
|
||||||
|
This program is released under the GPL with the additional exemption
|
||||||
|
that compiling, linking, and/or using OpenSSL is allowed. You may
|
||||||
|
provide binary packages linked to the OpenSSL libraries, provided that
|
||||||
|
all other requirements of the GPL are met.
|
||||||
|
|
||||||
|
The following applies to the LZO library:
|
||||||
|
|
||||||
|
Hereby I grant a special exception to the tinc VPN project
|
||||||
|
(http://tinc.nl.linux.org/) to link the LZO library with the OpenSSL library
|
||||||
|
(http://www.openssl.org).
|
||||||
|
|
||||||
|
Markus F.X.J. Oberhumer
|
||||||
10
debian/doc-base.tinc
vendored
Normal file
10
debian/doc-base.tinc
vendored
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
Document: tinc
|
||||||
|
Title: tinc Manual
|
||||||
|
Author: Ivo Timmermans, Guus Sliepen
|
||||||
|
Abstract: This manual describes how to set up a Virtual Private
|
||||||
|
Network with tinc.
|
||||||
|
Section: System/Security
|
||||||
|
|
||||||
|
Format: HTML
|
||||||
|
Files: /usr/share/doc/tinc/tinc.html/*
|
||||||
|
Index: /usr/share/doc/tinc/tinc.html/index.html
|
||||||
1
debian/info
vendored
Normal file
1
debian/info
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
doc/tinc.info
|
||||||
65
debian/patches/fix-incorrect-icmpv6-checksum
vendored
Normal file
65
debian/patches/fix-incorrect-icmpv6-checksum
vendored
Normal file
|
|
@ -0,0 +1,65 @@
|
||||||
|
Package: tinc
|
||||||
|
Version: 1.0.33-1
|
||||||
|
Severity: important
|
||||||
|
|
||||||
|
Dear Guus,
|
||||||
|
|
||||||
|
I have been using tinc since 2009 and it is great!
|
||||||
|
|
||||||
|
When PMTUDiscovery=yes and Mode=switch, and if ipv6 is used inside
|
||||||
|
tinc, the ICMPv6 "Packet Too Big" packets have incorrect checksums.
|
||||||
|
It can be reproduced by `ping6 <host in tinc> -s 1800` and `tcpdump -i
|
||||||
|
<tinc interface>`. Consequently, the host ignores the tinc-generated
|
||||||
|
ICMPv6 packets, PMTUDiscovery does not work and the connections freeze
|
||||||
|
when data flows are big.
|
||||||
|
|
||||||
|
I find the bug is gone if the function "inet_checksum" in route.c is
|
||||||
|
not inlined, either by compiling tinc with "-O2
|
||||||
|
-fno-inline-functions", or apply a patch such as,
|
||||||
|
|
||||||
|
diff --git a/src/route.c b/src/route.c
|
||||||
|
index ff82c06e..cd55383a 100644
|
||||||
|
--- a/src/route.c
|
||||||
|
+++ b/src/route.c
|
||||||
|
@@ -60,7 +60,7 @@ static const size_t opt_size = sizeof(struct nd_opt_hdr);
|
||||||
|
|
||||||
|
/* RFC 1071 */
|
||||||
|
|
||||||
|
-static uint16_t inet_checksum(void *data, int len, uint16_t prevsum) {
|
||||||
|
+__attribute__ ((noinline)) static uint16_t inet_checksum(void *data, int len, uint16_t prevsum) {
|
||||||
|
uint16_t *p = data;
|
||||||
|
uint32_t checksum = prevsum ^ 0xFFFF;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
I have tested with gcc-7.3.0 and gcc-5.4.0. They behaved the same. I
|
||||||
|
am not good at assembly to find out what really happened, but it is
|
||||||
|
for sure that inet_checksum does not work as expected if compiled
|
||||||
|
inline.
|
||||||
|
|
||||||
|
Thanks!
|
||||||
|
|
||||||
|
Yours,
|
||||||
|
Benda
|
||||||
|
|
||||||
|
-- System Information:
|
||||||
|
Debian Release: buster/sid
|
||||||
|
APT prefers unstable
|
||||||
|
APT policy: (500, 'unstable')
|
||||||
|
Architecture: amd64 (x86_64)
|
||||||
|
|
||||||
|
Kernel: Linux 4.9.0-5-amd64 (SMP w/8 CPU cores)
|
||||||
|
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8), LANGUAGE=en_US:en (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8)
|
||||||
|
Shell: /bin/sh linked to /bin/dash
|
||||||
|
Init: sysvinit (via /sbin/init)
|
||||||
|
|
||||||
|
Versions of packages tinc depends on:
|
||||||
|
ii libc6 2.26-2
|
||||||
|
ii liblzo2-2 2.08-1.2+b2
|
||||||
|
ii libssl1.1 1.1.0g-2
|
||||||
|
ii lsb-base 9.20170808
|
||||||
|
ii zlib1g 1:1.2.8.dfsg-5
|
||||||
|
|
||||||
|
tinc recommends no packages.
|
||||||
|
|
||||||
|
tinc suggests no packages.
|
||||||
2
debian/patches/series
vendored
Normal file
2
debian/patches/series
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
fix-incorrect-icmpv6-checksum
|
||||||
|
support-etc-defaults-tinc
|
||||||
12
debian/patches/support-etc-defaults-tinc
vendored
Normal file
12
debian/patches/support-etc-defaults-tinc
vendored
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
--- a/systemd/tinc@.service.in
|
||||||
|
+++ b/systemd/tinc@.service.in
|
||||||
|
@@ -9,7 +9,8 @@
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
WorkingDirectory=@sysconfdir@/tinc/%i
|
||||||
|
-ExecStart=@sbindir@/tincd -n %i -D
|
||||||
|
+EnvironmentFile=/etc/default/tinc
|
||||||
|
+ExecStart=@sbindir@/tincd -n %i -D $EXTRA
|
||||||
|
ExecReload=@sbindir@/tincd -n %i -kHUP
|
||||||
|
KillMode=mixed
|
||||||
|
Restart=on-failure
|
||||||
31
debian/postinst
vendored
Normal file
31
debian/postinst
vendored
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
#! /bin/sh
|
||||||
|
|
||||||
|
NETSFILE="/etc/tinc/nets.boot"
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
configure)
|
||||||
|
if [ ! -e /dev/.devfsd ] ; then if [ ! -e /dev/.devfs ] ; then
|
||||||
|
if [ ! -e /dev/net/tun ] ; then if [ ! -e /dev/tun ] ; then if [ -e /dev/MAKEDEV ]; then
|
||||||
|
echo "Creating tun device..."
|
||||||
|
cd /dev && ./MAKEDEV net/tun 2>/dev/null || ./MAKEDEV tun 2>/dev/null || echo "Failed to create tun device."
|
||||||
|
fi; fi; fi
|
||||||
|
fi; fi
|
||||||
|
|
||||||
|
if [ ! -e $NETSFILE ] ; then
|
||||||
|
echo "## This file contains all names of the networks to be started on system startup when using sysvinit." > $NETSFILE
|
||||||
|
echo "## If you are using systemd, use systemctl enable tinc@netname to enable individual networks." >> $NETSFILE
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
abort-upgrade|abort-remove|abort-deconfigure)
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "postinst called with unknown argument \`$1'" >&2
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
#DEBHELPER#
|
||||||
9
debian/postrm
vendored
Normal file
9
debian/postrm
vendored
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ "$1" = purge ]; then
|
||||||
|
rm -f /etc/tinc/nets.boot
|
||||||
|
fi
|
||||||
|
|
||||||
|
#DEBHELPER#
|
||||||
28
debian/preinst
vendored
Normal file
28
debian/preinst
vendored
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
NETSFILE="/etc/tinc/nets.boot"
|
||||||
|
SYSTEM="/lib/systemd/system"
|
||||||
|
WANTS="/etc/systemd/system/multi-user.target.wants"
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
upgrade)
|
||||||
|
if dpkg --compare-versions "$2" '<<' "1.0.27-1"; then
|
||||||
|
if [ -f "$NETSFILE" ]; then
|
||||||
|
echo -n "Creating systemd service instances from nets.boot:"
|
||||||
|
mkdir -p "$WANTS"
|
||||||
|
egrep '^[ ]*[a-zA-Z0-9_-]+' $NETSFILE | while read net args; do
|
||||||
|
echo -n " $net"
|
||||||
|
ln -s "$SYSTEM/tinc@.service" "$WANTS/tinc@$net.service" 2>/dev/null || true
|
||||||
|
done
|
||||||
|
echo "."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
#DEBHELPER#
|
||||||
16
debian/rules
vendored
Executable file
16
debian/rules
vendored
Executable file
|
|
@ -0,0 +1,16 @@
|
||||||
|
#!/usr/bin/make -f
|
||||||
|
|
||||||
|
%:
|
||||||
|
dh $@
|
||||||
|
|
||||||
|
override_dh_clean:
|
||||||
|
dh_clean
|
||||||
|
rm -f doc/tinc.info
|
||||||
|
|
||||||
|
override_dh_auto_configure:
|
||||||
|
dh_auto_configure -- --enable-uml --with-systemd=/lib/systemd/system --runstatedir=/run
|
||||||
|
|
||||||
|
override_dh_auto_install:
|
||||||
|
dh_auto_install -- install-html
|
||||||
|
# Remove info dir file
|
||||||
|
rm -f debian/tinc/usr/share/info/dir
|
||||||
1
debian/source/format
vendored
Normal file
1
debian/source/format
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
3.0 (quilt)
|
||||||
7
debian/tinc.default
vendored
Normal file
7
debian/tinc.default
vendored
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
# Extra options to be passed to tincd.
|
||||||
|
# EXTRA="-d"
|
||||||
|
|
||||||
|
# Limits to be configured for the tincd process. Please read your shell
|
||||||
|
# (pointed by /bin/sh) documentation for ulimit. You probably want to raise the
|
||||||
|
# max locked memory value if using both --mlock and --user flags.
|
||||||
|
# LIMITS="-l 1024"
|
||||||
7
debian/tinc.dirs
vendored
Normal file
7
debian/tinc.dirs
vendored
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
usr/sbin
|
||||||
|
usr/share
|
||||||
|
etc
|
||||||
|
etc/init.d
|
||||||
|
usr/share/locale
|
||||||
|
usr/share/doc/tinc
|
||||||
|
etc/tinc
|
||||||
3
debian/tinc.docs
vendored
Normal file
3
debian/tinc.docs
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
NEWS
|
||||||
|
README
|
||||||
|
AUTHORS
|
||||||
6
debian/tinc.files
vendored
Normal file
6
debian/tinc.files
vendored
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
usr/sbin/tincd
|
||||||
|
usr/share/man
|
||||||
|
etc
|
||||||
|
usr/share/doc/tinc
|
||||||
|
usr/share/locale
|
||||||
|
usr/share/info
|
||||||
41
debian/tinc.if-post-down
vendored
Executable file
41
debian/tinc.if-post-down
vendored
Executable file
|
|
@ -0,0 +1,41 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ "$METHOD" = loopback -o -z "$IF_TINC_NET" ]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Determine location of the PID file
|
||||||
|
|
||||||
|
EXTRA=""
|
||||||
|
if [ -n "$IF_TINC_PIDFILE" ]; then
|
||||||
|
EXTRA="--pidfile=$IF_TINC_PIDFILE"
|
||||||
|
else
|
||||||
|
IF_TINC_PIDFILE=/var/run/tinc.$IF_TINC_NET.pid
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Stop the tinc daemon
|
||||||
|
|
||||||
|
read pid rest < $IF_TINC_PIDFILE 2>/dev/null
|
||||||
|
|
||||||
|
/usr/sbin/tincd -n "$IF_TINC_NET" -k $EXTRA
|
||||||
|
|
||||||
|
# Wait for it to shut down properly
|
||||||
|
|
||||||
|
/bin/sleep 0.1
|
||||||
|
i=0;
|
||||||
|
while [ -f $IF_TINC_PIDFILE ] ; do
|
||||||
|
if [ ! -e "/proc/$pid" ] ; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $i = '30' ] ; then
|
||||||
|
echo 'Failed to stop tinc daemon!'
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
/bin/sleep 0.1
|
||||||
|
i=$(($i+1))
|
||||||
|
done
|
||||||
|
|
||||||
|
exit 0
|
||||||
70
debian/tinc.if-pre-up
vendored
Executable file
70
debian/tinc.if-pre-up
vendored
Executable file
|
|
@ -0,0 +1,70 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ "$METHOD" = loopback -o -z "$IF_TINC_NET" ]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Read options from /etc/default
|
||||||
|
|
||||||
|
[ -r /etc/default/tinc ] && . /etc/default/tinc
|
||||||
|
|
||||||
|
# Set process limits
|
||||||
|
|
||||||
|
setlimits() {
|
||||||
|
while [ $# -gt 0 ]; do
|
||||||
|
parm=$1 ; shift
|
||||||
|
if [ -n "$1" -a "${1#-}" = "$1" ]; then
|
||||||
|
value=$1 ; shift
|
||||||
|
ulimit $parm $value
|
||||||
|
else
|
||||||
|
ulimit $parm
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
test -n "$LIMITS" && setlimits $LIMITS
|
||||||
|
|
||||||
|
# Read options from /etc/network/interfaces
|
||||||
|
|
||||||
|
[ -n "$IF_TINC_CONFIG" ] && EXTRA="$EXTRA -c $IF_TINC_CONFIG"
|
||||||
|
[ -n "$IF_TINC_DEBUG" ] && EXTRA="$EXTRA -d$IF_TINC_DEBUG"
|
||||||
|
[ -n "$IF_TINC_MLOCK" ] && EXTRA="$EXTRA --mlock"
|
||||||
|
[ -n "$IF_TINC_LOGFILE" ] && EXTRA="$EXTRA --logfile=$IF_TINC_LOGFILE"
|
||||||
|
[ -n "$IF_TINC_PIDFILE" ] && EXTRA="$EXTRA --pidfile=$IF_TINC_PIDFILE" || IF_TINC_PIDFILE=/var/run/tinc.$IF_TINC_NET.pid
|
||||||
|
[ -n "$IF_TINC_CHROOT" ] && EXTRA="$EXTRA --chroot"
|
||||||
|
[ -n "$IF_TINC_USER" ] && EXTRA="$EXTRA --user=$IF_TINC_USER"
|
||||||
|
|
||||||
|
|
||||||
|
# Start tinc daemon
|
||||||
|
|
||||||
|
/usr/sbin/tincd -n "$IF_TINC_NET" -o "Interface=$IFACE" $EXTRA
|
||||||
|
|
||||||
|
# Wait for it to come up properly
|
||||||
|
|
||||||
|
/bin/sleep 0.1
|
||||||
|
i=0;
|
||||||
|
while [ ! -f $IF_TINC_PIDFILE ] ; do
|
||||||
|
if [ $i = '30' ] ; then
|
||||||
|
echo 'Failed to start tinc daemon!'
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
/bin/sleep 0.1
|
||||||
|
i=$(($i+1))
|
||||||
|
done
|
||||||
|
|
||||||
|
while read pid rest < $IF_TINC_PIDFILE ; do
|
||||||
|
if [ -e "/proc/$pid" ] ; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $i = '30' ] ; then
|
||||||
|
echo 'Failed to start tinc daemon!'
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
/bin/sleep 0.1
|
||||||
|
i=$(($i+1))
|
||||||
|
done
|
||||||
|
|
||||||
|
exit 0
|
||||||
9
debian/tinc.if-up
vendored
Executable file
9
debian/tinc.if-up
vendored
Executable file
|
|
@ -0,0 +1,9 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ "$METHOD" = loopback -o -n "$IF_TINC_NET" ]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
invoke-rc.d tinc alarm || exit 0
|
||||||
140
debian/tinc.init
vendored
Normal file
140
debian/tinc.init
vendored
Normal file
|
|
@ -0,0 +1,140 @@
|
||||||
|
#! /bin/sh
|
||||||
|
#
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: tinc
|
||||||
|
# Required-Start: $remote_fs $network
|
||||||
|
# Required-Stop: $remote_fs $network
|
||||||
|
# Should-Start: $syslog $named
|
||||||
|
# Should-Stop: $syslog
|
||||||
|
# Default-Start: 2 3 4 5
|
||||||
|
# Default-Stop: 0 1 6
|
||||||
|
# Short-Description: Start tinc daemons
|
||||||
|
# Description: Create a file $NETSFILE (/etc/tinc/nets.boot),
|
||||||
|
# and put all the names of the networks in there.
|
||||||
|
# These names must be valid directory names under
|
||||||
|
# $TCONF (/etc/tinc). Lines starting with a # will be
|
||||||
|
# ignored in this file.
|
||||||
|
### END INIT INFO
|
||||||
|
#
|
||||||
|
# Based on Lubomir Bulej's Redhat init script.
|
||||||
|
|
||||||
|
. /lib/lsb/init-functions
|
||||||
|
|
||||||
|
DAEMON="/usr/sbin/tincd"
|
||||||
|
NAME="tinc"
|
||||||
|
DESC="tinc daemons"
|
||||||
|
TCONF="/etc/tinc"
|
||||||
|
NETSFILE="$TCONF/nets.boot"
|
||||||
|
NETS=""
|
||||||
|
|
||||||
|
test -f $DAEMON || exit 0
|
||||||
|
|
||||||
|
[ -r /etc/default/tinc ] && . /etc/default/tinc
|
||||||
|
|
||||||
|
# foreach_net "what-to-say" action [arguments...]
|
||||||
|
foreach_net() {
|
||||||
|
if [ ! -f $NETSFILE ] ; then
|
||||||
|
echo "Please create $NETSFILE."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
echo -n "$1"
|
||||||
|
shift
|
||||||
|
egrep '^[ ]*[a-zA-Z0-9_-]+' $NETSFILE | while read net args; do
|
||||||
|
echo -n " $net"
|
||||||
|
"$@" $net $args
|
||||||
|
done
|
||||||
|
echo "."
|
||||||
|
}
|
||||||
|
|
||||||
|
signal_running() {
|
||||||
|
for i in /var/run/tinc.*pid; do
|
||||||
|
if [ -f "$i" ]; then
|
||||||
|
head -1 $i | while read pid; do
|
||||||
|
kill -$1 $pid
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
setlimits() {
|
||||||
|
while [ $# -gt 0 ]; do
|
||||||
|
parm=$1 ; shift
|
||||||
|
if [ -n "$1" -a "${1#-}" = "$1" ]; then
|
||||||
|
value=$1 ; shift
|
||||||
|
ulimit $parm $value
|
||||||
|
else
|
||||||
|
ulimit $parm
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
test -n "$LIMITS" && setlimits $LIMITS
|
||||||
|
|
||||||
|
start() {
|
||||||
|
$DAEMON $EXTRA -n "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
[ -f /var/run/tinc.$1.pid ] || return
|
||||||
|
read pid rest </var/run/tinc.$1.pid || return
|
||||||
|
kill -0 "$pid" 2>/dev/null || return
|
||||||
|
|
||||||
|
$DAEMON -n $1 -k || return
|
||||||
|
|
||||||
|
i=0;
|
||||||
|
/bin/sleep 0.5
|
||||||
|
|
||||||
|
# Wait for the pidfile to disappear
|
||||||
|
while [ -f /var/run/tinc.$1.pid ]; do
|
||||||
|
# And check that there is an actual process running
|
||||||
|
kill -0 "$pid" 2>/dev/null || return
|
||||||
|
|
||||||
|
if [ $i = '10' ] ; then
|
||||||
|
# It's still alive, kill it again and give up
|
||||||
|
$DAEMON -n $1 -k && /bin/sleep 0.5
|
||||||
|
break
|
||||||
|
else
|
||||||
|
echo -n "."
|
||||||
|
i=$(($i+1))
|
||||||
|
fi
|
||||||
|
|
||||||
|
/bin/sleep 0.5
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
reload() {
|
||||||
|
$DAEMON -n $1 -kHUP
|
||||||
|
}
|
||||||
|
|
||||||
|
alarm() {
|
||||||
|
$DAEMON -n $1 -kALRM
|
||||||
|
}
|
||||||
|
|
||||||
|
restart() {
|
||||||
|
stop "$@"
|
||||||
|
start "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
foreach_net "Starting $DESC:" start
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
foreach_net "Stopping $DESC:" stop
|
||||||
|
;;
|
||||||
|
reload|force-reload)
|
||||||
|
foreach_net "Reloading $DESC configuration:" reload
|
||||||
|
;;
|
||||||
|
restart)
|
||||||
|
foreach_net "Restarting $DESC:" restart
|
||||||
|
;;
|
||||||
|
alarm)
|
||||||
|
signal_running ALRM
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: /etc/init.d/$NAME {start|stop|reload|restart|force-reload|alarm}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
||||||
70
debian/upstream/signing-key.asc
vendored
Normal file
70
debian/upstream/signing-key.asc
vendored
Normal file
|
|
@ -0,0 +1,70 @@
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
Version: GnuPG v1
|
||||||
|
|
||||||
|
mQINBEVZzTABEADawFv/ibQ48uA1eRhL07vdM36Pcq2HDyuyNA+vYEalNH4jLmha
|
||||||
|
nGPvDALWwX0DXIWDAG8zeTj8s8zliLIjuPS4WRI2YdKIvWeG9fEvpKSXVWa42ica
|
||||||
|
dpzn/H2aBd4Ax6rQaiTXKOvxANAp2Veb+73ssPV5AL00uGTpzhh98xQzfFQCZ9ZL
|
||||||
|
YSVPqbMed5oCt/4jM9FBO2CuBtkfiO0dVVYtW7FAVjcIlE2NaZol/KGvz7wsS+yA
|
||||||
|
dE42W0l5MdQueLmTF4AIUSSTyPFGMQoyqh+MPif73Y589IGcW6GdfKYWnVDo6Trh
|
||||||
|
HOhcEky+uTYKb6NL0vrJgUiYVMzAOXFDdJni1eQGO6EfZRNYtTga3alWq/jVelK7
|
||||||
|
BID5JyNbkrTAqdPnhJGivVyk8gGX3+Hng8rkXTfWhp6yAYau1QfBm0F2tIQmpL1C
|
||||||
|
+7DoLvFErboQf685jXJBjzyvsJxB2ZLH1OOw6mNL0hy2LFkIyGza/bktY2em4apo
|
||||||
|
KWV5AM5LpyW6THH1oDS7706xFNkf4IFhKE0hKPzBiRnMDjRtMI131lkc5+P8Lqf5
|
||||||
|
jLTCFUgbEhU6Dz2YjhHAumVm0NWJETUpFDtVvMrqk+mp5xldUOWRNlYQC5aQOyda
|
||||||
|
eHOlNzB/BFbPhKMWI/zWlEH6f0t6WjHb4iwpWO47511aVNHF59aPzbAHxwARAQAB
|
||||||
|
tC9UaW5jIERldmVsb3BtZW50IFRlYW0gPHRpbmMtZGV2ZWxAdGluYy12cG4ub3Jn
|
||||||
|
PokCNgQTAQIAIAUCRVnNMAIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEEpg
|
||||||
|
hLnA1x9KxOAQAMPhO2WTXv9AaGQBQhyyoGseKoSfcRjtI9YEfE0OInQQ2E+SPYF/
|
||||||
|
dkfeLGAUqa4foTYQlMqfw70vBhTdVCb7HLTGn6/ICFUtDwakUQCgUQGlUVQiondA
|
||||||
|
8W6jj+QWrh5BQhHuXy2nCVaKnksu0/xQPsJotghxuYqaot3iJ4qVw9iT/Yeo9irH
|
||||||
|
Ffftqu0OVCdQ5zQuFNI9YCv/C83L59ecH7bOzYz2efTyobvxrhmgQtgOQwCWOE09
|
||||||
|
Kr3veM9KLG33YoXlqv8QN/3CwtsJvSwfhj+R2JowZC7RqHe/yznRzmRMsgbrolxi
|
||||||
|
uiJLonGxcNNkD7WhXi7/zL4A/JaC27XrFf1MPLv8aiTwnOIfrXd5jawpauUOZOXK
|
||||||
|
UjIZHlIqviB0r5s7A+AFeHW38Tp9VzNuQ7aEl5bHbSXV+s7DTAwGb279z0AVaJ3h
|
||||||
|
5hWFxupw7UoGdzROwCBYzeX3sioAL6QvkXua8X6zOH45VEiSwrRX3Hlx/MLo7Z4g
|
||||||
|
PWgFLf6WviHQXCG834To1XIwUk9RgNsL7OzGjtaCuRymADImKMNwierq2zTfoRFQ
|
||||||
|
v9onIadIMF1fsc70hiBG9yAi36MEuk4VxG8Jc3PQQfSFm4RWazv1k3E0AAIob2Ek
|
||||||
|
DLVjvLO62Navo/OQ6D7yyiX0qes5S7/k3F1h8+87eRn3yxZE2kbxPg8KuQENBEVZ
|
||||||
|
zYYBCACoYgExmMKEtABL3pir/IXI4exR/45hkP6txFIrkVQb8DGJ9H39kiDr4gtj
|
||||||
|
F+pvcgMpec35S3m4fJ7WhDNvbDB4ZvONc1NMKs9cqDXfB+TLWPm4W+SkcKUrs+nK
|
||||||
|
i8l7ieggTALJcvRoLTX2EFmUFrD6y870W3rK2SfC/0VJX8Ou5cPbwCeueExjo5x0
|
||||||
|
3gNfu0jWUS0cyA9y+1rVVekrLuJY/+SI4jv3gdzrYbxD0f6dpbpC37QHoJdd0KGF
|
||||||
|
acPtT2azjY+HxW10EA3Aw9oZWFXnb1nFg2RbDpkaGLmLbaXweltLyw154UmCXxym
|
||||||
|
PXPqi9bSfEkj0GiYrapk4mW114u9ABEBAAGJA0QEGAECAA8FAkVZzYcCGwIFCQHh
|
||||||
|
M4ABKQkQSmCEucDXH0rAXSAEGQECAAYFAkVZzYcACgkQ017duBDeLmmu3wf/TFZM
|
||||||
|
tLKxiyQPtGSTE3eULPdWCEMDZXdSPTY0QHM7Zvh+qn1ei+iFpD0549MYnBEAwDIV
|
||||||
|
4o62Nrcg8IPu0CEkZIAn2JiFFGYvMGk91awZGV1GS3umd7Dt349E1oKDPZVzRn+j
|
||||||
|
QIKarXxxabRmx2s/dZZgSs/eguWTboBFmvls9tVfe8x/xPvcHFmqHVUoGKEJy6Tm
|
||||||
|
no+s4yNjpc5wAaRml+GYf1tK9WMFuZn79qKxkYv4WI96dXR0FL59YbFRkkaI+1/b
|
||||||
|
G31MvWTqVjY1nJGslByFPUUB8Ca1djtp1gx6NXnOYr3V5MEDfdbjjPu79No+/y6M
|
||||||
|
tIua5yNtSRlk2nKhIqo3D/sGQ/uHijiMRAtoLhiyqYMc9W9vx/KOoCUHoMJqE39a
|
||||||
|
Eputvgwwo0rwgSmNfB1dzneFojBdJ47WBSHC8NKtkpJj6mzvvlaI9jmEpK54x3nl
|
||||||
|
OmBj3X/xaepoRGAtrmgTBP4A9hSjrTMGu/tUQjlX+Xcr6n3g7GSVe5FpUyIMPXEU
|
||||||
|
+JZDTiEUyn1OdzfNGmnWP+KJX5pQVq4czf5XK6otLZJELDVw/Hbjnjmdz5WOKgEH
|
||||||
|
jSof3WPeMBgPAcd/cMAZeiGtWM1UpJBHqEXTkthmrpmtRftJKDbooNM9d5OwKiT+
|
||||||
|
I3vNBv/plMSr8NDjhTWC+ihrN6RBj1vaqpDgGpucPhoO2hwNqWuI4q5WUKtCyw6J
|
||||||
|
An7ErNaH4c0nVaZq6kJ8Vxdt+LpKYmOsJ8y9xtl6StcrkKNn+6ZfCfee7DEo2bvb
|
||||||
|
scfpqJqqOqb5KOagTpYs8mo6yQ3leRvFtoeBOQHVQzct23EwOMxbDyeunT50a1eH
|
||||||
|
MZTEWuIiuCUudM81QXU46oIcaAtj8tpG0Tmnku9g27EjwxUt+8kVmhlPHMb2TdoF
|
||||||
|
k5d0ce+JuxIG5+i+t8sUCorMc8zfp4g1bxZeMOcPnfyO3bSW11EVcN7ZxHlFC+XE
|
||||||
|
YOByP50CM3P8lItPlQ+WpY9kYWjiwu9kVPaGQ16G47nspngJInU5dhka3KJGtIZe
|
||||||
|
q7kBDQRFWc3GAQgAz/JUs24niKsd0ZtOjUWd4R4y0gjS0kC/vvLL2gbXYkA9tcjG
|
||||||
|
5iEvVWJY34QsudX0v1ULsVnJ89X/gsk8hAhAia1TQm+0Qq+MSxEaQkMSaOO8N70U
|
||||||
|
XzgH1dielvpea20WO4MyWQuRIJ0K2nsGmEPnt6ZP7fK8HVHFNggP/mQ6LMu1reAF
|
||||||
|
gvb8cEtjb9B5QaCUEoLjsbsuo+vLW7AWy4GfIRNESHw2Qt08AUaGrihpu6zi7N2b
|
||||||
|
QkHHJtqa63GzYJ+kYzAVvrFJXdwL/TRXLBzv+6yyvYSIHi8uB6/o6CZN6hpjfpME
|
||||||
|
ph+oYPqXeNOyMd1E9Kg8ymcPrNyQKfE3WnCRXQARAQABiQIlBBgBAgAPBQJFWc3H
|
||||||
|
AhsMBQkB4TOAAAoJEEpghLnA1x9KXYMP/3D9JYti6C8DWuX2hWv+2SUbLcMa5u1e
|
||||||
|
ETewIo5S3mqGWSaxX4YLPVRkZ1lOLmFysOLimf0thYm7IsatLcWmBdYUpK92ilvr
|
||||||
|
Sk2sKlhrOoBXEX/79Kz+Aj5PjeyiQxgQ7Ba/afwhU6aTqs2Dp1T0YNu2eBvV+1QH
|
||||||
|
lZnW2Wh96zzwc0dJUuY9eBk5Fgpu08Wce7o6jxFPtVyAaQa0zcNAmw2TSY7wbunJ
|
||||||
|
WTl9OgATAyqVCuhWW7AnPcSqkH8lQigSc00wfqJKOD2Us0FqN6UKDCZTyQkdP6hx
|
||||||
|
G+3aUkkvGSOxy7u9bVWmrikuJMoiIY/CH/m+GcJJATVibI7t5MhhtBGySKc3PAwc
|
||||||
|
58sVe9AnbDvs84efrNP59j2KG2KKqcqjTGAmKyJnG3N50xJGakDIsqfneIRNWpEE
|
||||||
|
pOOPaOqR4qnPAS9OSt9A3hqBpWPjQcScd6AuO+J2PE5y23pTnb9PtLBQb5e4VFiv
|
||||||
|
N54u8j4bU2CO0SC2isZ3CR68dPHthWsxt4XbjhgktjbpQRQ8L2EDBQ8oE13GOrOw
|
||||||
|
P8x4Q0eC5uzkXNyRqzKOsxlZEuc+75aDDd3M2GDw08FG7GI1p/L+NgenwT+9TmFX
|
||||||
|
2hOKVrjgyx+fPut1t5DJJubDWXGOK33qvrL7HTCEv1zz7LNbbPwwNHK4lfMAWuJW
|
||||||
|
D9wc3Y9Se/P/
|
||||||
|
=5MAs
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
2
debian/watch
vendored
Normal file
2
debian/watch
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
version=3
|
||||||
|
opts=pgpsigurlmangle=s/$/.sig/ http://www.tinc-vpn.org/packages/tinc-(1\.0\.\d+)\.tar\.gz
|
||||||
8
depcomp
8
depcomp
|
|
@ -1,9 +1,9 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# depcomp - compile a program generating dependencies as side-effects
|
# depcomp - compile a program generating dependencies as side-effects
|
||||||
|
|
||||||
scriptversion=2016-01-11.22; # UTC
|
scriptversion=2018-03-07.03; # UTC
|
||||||
|
|
||||||
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
|
# Copyright (C) 1999-2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
|
@ -16,7 +16,7 @@ scriptversion=2016-01-11.22; # UTC
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
# As a special exception to the GNU General Public License, if you
|
# As a special exception to the GNU General Public License, if you
|
||||||
# distribute this file as part of a program that contains a
|
# distribute this file as part of a program that contains a
|
||||||
|
|
@ -783,7 +783,7 @@ exit 0
|
||||||
# Local Variables:
|
# Local Variables:
|
||||||
# mode: shell-script
|
# mode: shell-script
|
||||||
# sh-indentation: 2
|
# sh-indentation: 2
|
||||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||||
# time-stamp-start: "scriptversion="
|
# time-stamp-start: "scriptversion="
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
# time-stamp-time-zone: "UTC0"
|
# time-stamp-time-zone: "UTC0"
|
||||||
|
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
EXTRA_DIST = \
|
|
||||||
tinc.service \
|
|
||||||
tinc@.service
|
|
||||||
|
|
||||||
if HAVE_SYSTEMD
|
|
||||||
systemdsystemunit_DATA = \
|
|
||||||
tinc.service \
|
|
||||||
tinc@.service
|
|
||||||
endif
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
[Unit]
|
|
||||||
Description=Tinc net %i
|
|
||||||
PartOf=tinc.service
|
|
||||||
ReloadPropagatedFrom=tinc.service
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
WorkingDirectory=/etc/tinc/%i
|
|
||||||
ExecStart=/usr/sbin/tincd -n %i -D
|
|
||||||
ExecReload=/usr/sbin/tincd -n %i -kHUP
|
|
||||||
KillMode=mixed
|
|
||||||
TimeoutStopSec=5
|
|
||||||
Restart=always
|
|
||||||
RestartSec=60
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=tinc.service
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
## Process this file with automake to get Makefile.in
|
## Process this file with automake to get Makefile.in
|
||||||
|
|
||||||
info_TEXINFOS = tinc.texi
|
info_TEXINFOS = tinc.texi
|
||||||
|
tinc_TEXINFOS = tincinclude.texi
|
||||||
|
|
||||||
man_MANS = tincd.8 tinc.conf.5
|
man_MANS = tincd.8 tinc.conf.5
|
||||||
|
|
||||||
|
|
@ -25,12 +26,10 @@ substitute = sed \
|
||||||
-e s,'@localstatedir\@',"$(localstatedir)",g
|
-e s,'@localstatedir\@',"$(localstatedir)",g
|
||||||
|
|
||||||
tincd.8: $(srcdir)/tincd.8.in
|
tincd.8: $(srcdir)/tincd.8.in
|
||||||
$(AM_V_GEN)$(substitute) $< > $@
|
$(AM_V_GEN)$(substitute) $(srcdir)/tincd.8.in > $@
|
||||||
|
|
||||||
tinc.conf.5: $(srcdir)/tinc.conf.5.in
|
tinc.conf.5: $(srcdir)/tinc.conf.5.in
|
||||||
$(AM_V_GEN)$(substitute) $< > $@
|
$(AM_V_GEN)$(substitute) $(srcdir)/tinc.conf.5.in > $@
|
||||||
|
|
||||||
tincinclude.texi: $(srcdir)/tincinclude.texi.in
|
tincinclude.texi: $(srcdir)/tincinclude.texi.in
|
||||||
$(AM_V_GEN)$(substitute) $< > $@
|
$(AM_V_GEN)$(substitute) $(srcdir)/tincinclude.texi.in > $@
|
||||||
|
|
||||||
tinc.texi: tincinclude.texi
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
# Makefile.in generated by automake 1.16.2 from Makefile.am.
|
||||||
# @configure_input@
|
# @configure_input@
|
||||||
|
|
||||||
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
# Copyright (C) 1994-2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
# This Makefile.in is free software; the Free Software Foundation
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
|
@ -146,7 +146,7 @@ AM_V_texidevnull = $(am__v_texidevnull_@AM_V@)
|
||||||
am__v_texidevnull_ = $(am__v_texidevnull_@AM_DEFAULT_V@)
|
am__v_texidevnull_ = $(am__v_texidevnull_@AM_DEFAULT_V@)
|
||||||
am__v_texidevnull_0 = > /dev/null
|
am__v_texidevnull_0 = > /dev/null
|
||||||
am__v_texidevnull_1 =
|
am__v_texidevnull_1 =
|
||||||
INFO_DEPS = tinc.info
|
INFO_DEPS = $(srcdir)/tinc.info
|
||||||
am__TEXINFO_TEX_DIR = $(srcdir)
|
am__TEXINFO_TEX_DIR = $(srcdir)
|
||||||
DVIS = tinc.dvi
|
DVIS = tinc.dvi
|
||||||
PDFS = tinc.pdf
|
PDFS = tinc.pdf
|
||||||
|
|
@ -197,7 +197,7 @@ man8dir = $(mandir)/man8
|
||||||
NROFF = nroff
|
NROFF = nroff
|
||||||
MANS = $(man_MANS)
|
MANS = $(man_MANS)
|
||||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||||
am__DIST_COMMON = $(srcdir)/Makefile.in texinfo.tex
|
am__DIST_COMMON = $(srcdir)/Makefile.in $(tinc_TEXINFOS) texinfo.tex
|
||||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
ACLOCAL = @ACLOCAL@
|
ACLOCAL = @ACLOCAL@
|
||||||
AMTAR = @AMTAR@
|
AMTAR = @AMTAR@
|
||||||
|
|
@ -240,9 +240,6 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
PACKAGE_URL = @PACKAGE_URL@
|
PACKAGE_URL = @PACKAGE_URL@
|
||||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
PKG_CONFIG = @PKG_CONFIG@
|
|
||||||
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
|
||||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
|
||||||
SET_MAKE = @SET_MAKE@
|
SET_MAKE = @SET_MAKE@
|
||||||
SHELL = @SHELL@
|
SHELL = @SHELL@
|
||||||
STRIP = @STRIP@
|
STRIP = @STRIP@
|
||||||
|
|
@ -294,12 +291,13 @@ sbindir = @sbindir@
|
||||||
sharedstatedir = @sharedstatedir@
|
sharedstatedir = @sharedstatedir@
|
||||||
srcdir = @srcdir@
|
srcdir = @srcdir@
|
||||||
sysconfdir = @sysconfdir@
|
sysconfdir = @sysconfdir@
|
||||||
systemdsystemunitdir = @systemdsystemunitdir@
|
systemd_path = @systemd_path@
|
||||||
target_alias = @target_alias@
|
target_alias = @target_alias@
|
||||||
top_build_prefix = @top_build_prefix@
|
top_build_prefix = @top_build_prefix@
|
||||||
top_builddir = @top_builddir@
|
top_builddir = @top_builddir@
|
||||||
top_srcdir = @top_srcdir@
|
top_srcdir = @top_srcdir@
|
||||||
info_TEXINFOS = tinc.texi
|
info_TEXINFOS = tinc.texi
|
||||||
|
tinc_TEXINFOS = tincinclude.texi
|
||||||
man_MANS = tincd.8 tinc.conf.5
|
man_MANS = tincd.8 tinc.conf.5
|
||||||
EXTRA_DIST = tincinclude.texi.in tincd.8.in tinc.conf.5.in sample-config
|
EXTRA_DIST = tincinclude.texi.in tincd.8.in tinc.conf.5.in sample-config
|
||||||
CLEANFILES = *.html tincd.8 tinc.conf.5 tincinclude.texi
|
CLEANFILES = *.html tincd.8 tinc.conf.5 tincinclude.texi
|
||||||
|
|
@ -313,7 +311,7 @@ substitute = sed \
|
||||||
all: all-am
|
all: all-am
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
.SUFFIXES: .dvi .ps
|
.SUFFIXES: .dvi .html .info .pdf .ps .texi
|
||||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||||
@for dep in $?; do \
|
@for dep in $?; do \
|
||||||
case '$(am__configure_deps)' in \
|
case '$(am__configure_deps)' in \
|
||||||
|
|
@ -331,8 +329,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||||
*config.status*) \
|
*config.status*) \
|
||||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||||
*) \
|
*) \
|
||||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
|
||||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
|
||||||
esac;
|
esac;
|
||||||
|
|
||||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||||
|
|
@ -344,45 +342,53 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
$(am__aclocal_m4_deps):
|
$(am__aclocal_m4_deps):
|
||||||
|
|
||||||
tinc.info: tinc.texi
|
.texi.info:
|
||||||
$(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \
|
$(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \
|
||||||
|
am__cwd=`pwd` && $(am__cd) $(srcdir) && \
|
||||||
rm -rf $$backupdir && mkdir $$backupdir && \
|
rm -rf $$backupdir && mkdir $$backupdir && \
|
||||||
if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
|
if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
|
||||||
for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
|
for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
|
||||||
if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
|
if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
|
||||||
done; \
|
done; \
|
||||||
else :; fi && \
|
else :; fi && \
|
||||||
|
cd "$$am__cwd"; \
|
||||||
if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
|
if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
|
||||||
-o $@ `test -f 'tinc.texi' || echo '$(srcdir)/'`tinc.texi; \
|
-o $@ $<; \
|
||||||
then \
|
then \
|
||||||
rc=0; \
|
rc=0; \
|
||||||
|
$(am__cd) $(srcdir); \
|
||||||
else \
|
else \
|
||||||
rc=$$?; \
|
rc=$$?; \
|
||||||
|
$(am__cd) $(srcdir) && \
|
||||||
$$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
|
$$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
|
||||||
fi; \
|
fi; \
|
||||||
rm -rf $$backupdir; exit $$rc
|
rm -rf $$backupdir; exit $$rc
|
||||||
|
|
||||||
tinc.dvi: tinc.texi
|
.texi.dvi:
|
||||||
$(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
$(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
||||||
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
|
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
|
||||||
$(TEXI2DVI) $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \
|
$(TEXI2DVI) $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \
|
||||||
`test -f 'tinc.texi' || echo '$(srcdir)/'`tinc.texi
|
$<
|
||||||
|
|
||||||
tinc.pdf: tinc.texi
|
.texi.pdf:
|
||||||
$(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
$(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
||||||
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
|
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
|
||||||
$(TEXI2PDF) $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \
|
$(TEXI2PDF) $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \
|
||||||
`test -f 'tinc.texi' || echo '$(srcdir)/'`tinc.texi
|
$<
|
||||||
|
|
||||||
tinc.html: tinc.texi
|
.texi.html:
|
||||||
$(AM_V_MAKEINFO)rm -rf $(@:.html=.htp)
|
$(AM_V_MAKEINFO)rm -rf $(@:.html=.htp)
|
||||||
$(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
|
$(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
|
||||||
-o $(@:.html=.htp) `test -f 'tinc.texi' || echo '$(srcdir)/'`tinc.texi; \
|
-o $(@:.html=.htp) $<; \
|
||||||
then \
|
then \
|
||||||
rm -rf $@ && mv $(@:.html=.htp) $@; \
|
rm -rf $@ && mv $(@:.html=.htp) $@; \
|
||||||
else \
|
else \
|
||||||
rm -rf $(@:.html=.htp); exit 1; \
|
rm -rf $(@:.html=.htp); exit 1; \
|
||||||
fi
|
fi
|
||||||
|
$(srcdir)/tinc.info: tinc.texi $(tinc_TEXINFOS)
|
||||||
|
tinc.dvi: tinc.texi $(tinc_TEXINFOS)
|
||||||
|
tinc.pdf: tinc.texi $(tinc_TEXINFOS)
|
||||||
|
tinc.html: tinc.texi $(tinc_TEXINFOS)
|
||||||
.dvi.ps:
|
.dvi.ps:
|
||||||
$(AM_V_DVIPS)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
$(AM_V_DVIPS)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
||||||
$(DVIPS) $(AM_V_texinfo) -o $@ $<
|
$(DVIPS) $(AM_V_texinfo) -o $@ $<
|
||||||
|
|
@ -569,7 +575,10 @@ ctags CTAGS:
|
||||||
cscope cscopelist:
|
cscope cscopelist:
|
||||||
|
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(BUILT_SOURCES)
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) distdir-am
|
||||||
|
|
||||||
|
distdir-am: $(DISTFILES)
|
||||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
list='$(DISTFILES)'; \
|
list='$(DISTFILES)'; \
|
||||||
|
|
@ -831,15 +840,13 @@ tinc.conf.5.html: tinc.conf.5
|
||||||
$(AM_V_GEN)w3mman2html $< > $@
|
$(AM_V_GEN)w3mman2html $< > $@
|
||||||
|
|
||||||
tincd.8: $(srcdir)/tincd.8.in
|
tincd.8: $(srcdir)/tincd.8.in
|
||||||
$(AM_V_GEN)$(substitute) $< > $@
|
$(AM_V_GEN)$(substitute) $(srcdir)/tincd.8.in > $@
|
||||||
|
|
||||||
tinc.conf.5: $(srcdir)/tinc.conf.5.in
|
tinc.conf.5: $(srcdir)/tinc.conf.5.in
|
||||||
$(AM_V_GEN)$(substitute) $< > $@
|
$(AM_V_GEN)$(substitute) $(srcdir)/tinc.conf.5.in > $@
|
||||||
|
|
||||||
tincinclude.texi: $(srcdir)/tincinclude.texi.in
|
tincinclude.texi: $(srcdir)/tincinclude.texi.in
|
||||||
$(AM_V_GEN)$(substitute) $< > $@
|
$(AM_V_GEN)$(substitute) $(srcdir)/tincinclude.texi.in > $@
|
||||||
|
|
||||||
tinc.texi: tincinclude.texi
|
|
||||||
|
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
|
|
||||||
5539
doc/texinfo.tex
5539
doc/texinfo.tex
File diff suppressed because it is too large
Load diff
223
doc/tinc.info
223
doc/tinc.info
|
|
@ -1,14 +1,14 @@
|
||||||
This is tinc.info, produced by makeinfo version 6.5 from tinc.texi.
|
This is tinc.info, produced by makeinfo version 6.7 from tinc.texi.
|
||||||
|
|
||||||
INFO-DIR-SECTION Networking tools
|
INFO-DIR-SECTION Networking tools
|
||||||
START-INFO-DIR-ENTRY
|
START-INFO-DIR-ENTRY
|
||||||
* tinc: (tinc). The tinc Manual.
|
* tinc: (tinc). The tinc Manual.
|
||||||
END-INFO-DIR-ENTRY
|
END-INFO-DIR-ENTRY
|
||||||
|
|
||||||
This is the info manual for tinc version 1.0.33, a Virtual Private
|
This is the info manual for tinc version 1.0.36, a Virtual Private
|
||||||
Network daemon.
|
Network daemon.
|
||||||
|
|
||||||
Copyright (C) 1998-2017 Ivo Timmermans, Guus Sliepen
|
Copyright (C) 1998-2019 Ivo Timmermans, Guus Sliepen
|
||||||
<guus@tinc-vpn.org> and Wessel Dankers <wsl@tinc-vpn.org>.
|
<guus@tinc-vpn.org> and Wessel Dankers <wsl@tinc-vpn.org>.
|
||||||
|
|
||||||
Permission is granted to make and distribute verbatim copies of this
|
Permission is granted to make and distribute verbatim copies of this
|
||||||
|
|
@ -117,10 +117,10 @@ for both the receiving and sending end, it has become largely
|
||||||
runtime-configurable--in short, it has become a full-fledged
|
runtime-configurable--in short, it has become a full-fledged
|
||||||
professional package.
|
professional package.
|
||||||
|
|
||||||
Tinc also allows more than two sites to connect to eachother and form
|
Tinc also allows more than two sites to connect to each other and
|
||||||
a single VPN. Traditionally VPNs are created by making tunnels, which
|
form a single VPN. Traditionally VPNs are created by making tunnels,
|
||||||
only have two endpoints. Larger VPNs with more sites are created by
|
which only have two endpoints. Larger VPNs with more sites are created
|
||||||
adding more tunnels. Tinc takes another approach: only endpoints are
|
by adding more tunnels. Tinc takes another approach: only endpoints are
|
||||||
specified, the software itself will take care of creating the tunnels.
|
specified, the software itself will take care of creating the tunnels.
|
||||||
This allows for easier configuration and improved scalability.
|
This allows for easier configuration and improved scalability.
|
||||||
|
|
||||||
|
|
@ -373,9 +373,9 @@ if available. Make sure you install the development AND runtime
|
||||||
versions of this package.
|
versions of this package.
|
||||||
|
|
||||||
If you have to install zlib manually, you can get the source code
|
If you have to install zlib manually, you can get the source code
|
||||||
from <http://www.zlib.net/>. Instructions on how to configure, build
|
from <https://zlib.net/>. Instructions on how to configure, build and
|
||||||
and install this package are included within the package. Please make
|
install this package are included within the package. Please make sure
|
||||||
sure you build development and runtime libraries (which is the default).
|
you build development and runtime libraries (which is the default).
|
||||||
|
|
||||||
|
|
||||||
File: tinc.info, Node: lzo, Prev: zlib, Up: Libraries
|
File: tinc.info, Node: lzo, Prev: zlib, Up: Libraries
|
||||||
|
|
@ -1939,8 +1939,7 @@ correct destination MAC address. In those modes every interface should
|
||||||
have a unique MAC address, so make sure they are not the same. Because
|
have a unique MAC address, so make sure they are not the same. Because
|
||||||
switch and hub modes rely on MAC addresses to function correctly, these
|
switch and hub modes rely on MAC addresses to function correctly, these
|
||||||
modes cannot be used on the following operating systems which don't have
|
modes cannot be used on the following operating systems which don't have
|
||||||
a 'tap' style virtual network device: OpenBSD, NetBSD, Darwin and
|
a 'tap' style virtual network device: NetBSD, Darwin and Solaris.
|
||||||
Solaris.
|
|
||||||
|
|
||||||
|
|
||||||
File: tinc.info, Node: The meta-connection, Prev: The UDP tunnel, Up: The connection
|
File: tinc.info, Node: The meta-connection, Prev: The UDP tunnel, Up: The connection
|
||||||
|
|
@ -2279,7 +2278,7 @@ address these issues in tinc 2.0.
|
||||||
Cryptography is a hard thing to get right. We cannot make any
|
Cryptography is a hard thing to get right. We cannot make any
|
||||||
guarantees. Time, review and feedback are the only things that can
|
guarantees. Time, review and feedback are the only things that can
|
||||||
prove the security of any cryptographic product. If you wish to review
|
prove the security of any cryptographic product. If you wish to review
|
||||||
tinc or give us feedback, you are stronly encouraged to do so.
|
tinc or give us feedback, you are strongly encouraged to do so.
|
||||||
|
|
||||||
|
|
||||||
File: tinc.info, Node: Platform specific information, Next: About us, Prev: Technical information, Up: Top
|
File: tinc.info, Node: Platform specific information, Next: About us, Prev: Technical information, Up: Top
|
||||||
|
|
@ -2291,6 +2290,7 @@ File: tinc.info, Node: Platform specific information, Next: About us, Prev: T
|
||||||
|
|
||||||
* Interface configuration::
|
* Interface configuration::
|
||||||
* Routes::
|
* Routes::
|
||||||
|
* Automatically starting tinc::
|
||||||
|
|
||||||
|
|
||||||
File: tinc.info, Node: Interface configuration, Next: Routes, Up: Platform specific information
|
File: tinc.info, Node: Interface configuration, Next: Routes, Up: Platform specific information
|
||||||
|
|
@ -2329,11 +2329,6 @@ Solaris 'ifconfig' INTERFACE 'inet6 plumb up'
|
||||||
Darwin (Mac OS X) 'ifconfig' INTERFACE 'inet6' ADDRESS 'prefixlen' PREFIXLENGTH
|
Darwin (Mac OS X) 'ifconfig' INTERFACE 'inet6' ADDRESS 'prefixlen' PREFIXLENGTH
|
||||||
Windows 'netsh interface ipv6 add address' INTERFACE 'static' ADDRESS/PREFIXLENGTH
|
Windows 'netsh interface ipv6 add address' INTERFACE 'static' ADDRESS/PREFIXLENGTH
|
||||||
|
|
||||||
On some platforms, when running tinc in switch mode, the VPN
|
|
||||||
interface must be set to tap mode with an ifconfig command:
|
|
||||||
|
|
||||||
OpenBSD 'ifconfig' INTERFACE 'link0'
|
|
||||||
|
|
||||||
On Linux, it is possible to create a persistent tun/tap interface
|
On Linux, it is possible to create a persistent tun/tap interface
|
||||||
which will continue to exist even if tinc quit, although this is
|
which will continue to exist even if tinc quit, although this is
|
||||||
normally not required. It can be useful to set up a tun/tap interface
|
normally not required. It can be useful to set up a tun/tap interface
|
||||||
|
|
@ -2343,7 +2338,7 @@ root privileges at all.
|
||||||
Linux 'ip tuntap add dev' INTERFACE 'mode' TUN|TAP 'user' USERNAME
|
Linux 'ip tuntap add dev' INTERFACE 'mode' TUN|TAP 'user' USERNAME
|
||||||
|
|
||||||
|
|
||||||
File: tinc.info, Node: Routes, Prev: Interface configuration, Up: Platform specific information
|
File: tinc.info, Node: Routes, Next: Automatically starting tinc, Prev: Interface configuration, Up: Platform specific information
|
||||||
|
|
||||||
7.2 Routes
|
7.2 Routes
|
||||||
==========
|
==========
|
||||||
|
|
@ -2378,6 +2373,72 @@ Solaris 'route add -inet6' NETWORK_ADDRESS'/'PREFIXLENGTH LOCAL_ADDR
|
||||||
Darwin (Mac OS X) 'route add -inet6' NETWORK_ADDRESS'/'PREFIXLENGTH '-interface' INTERFACE
|
Darwin (Mac OS X) 'route add -inet6' NETWORK_ADDRESS'/'PREFIXLENGTH '-interface' INTERFACE
|
||||||
Windows 'netsh interface ipv6 add route' NETWORK ADDRESS/PREFIXLENGTH INTERFACE
|
Windows 'netsh interface ipv6 add route' NETWORK ADDRESS/PREFIXLENGTH INTERFACE
|
||||||
|
|
||||||
|
|
||||||
|
File: tinc.info, Node: Automatically starting tinc, Prev: Routes, Up: Platform specific information
|
||||||
|
|
||||||
|
7.3 Automatically starting tinc
|
||||||
|
===============================
|
||||||
|
|
||||||
|
* Menu:
|
||||||
|
|
||||||
|
* Linux::
|
||||||
|
* Windows::
|
||||||
|
* Other platforms::
|
||||||
|
|
||||||
|
|
||||||
|
File: tinc.info, Node: Linux, Next: Windows, Up: Automatically starting tinc
|
||||||
|
|
||||||
|
7.3.1 Linux
|
||||||
|
-----------
|
||||||
|
|
||||||
|
There are many Linux distributions, and historically, many of them had
|
||||||
|
their own way of starting programs at boot time. Today, a number of
|
||||||
|
major Linux distributions have chosen to use systemd as their init
|
||||||
|
system. Tinc ships with systemd service files that allow you to start
|
||||||
|
and stop tinc using systemd. There are two service files:
|
||||||
|
'tinc.service' is used to globally enable or disable all tinc daemons
|
||||||
|
managed by systemd, and 'tinc@NETNAME.service' is used to enable or
|
||||||
|
disable specific tinc daemons. So if one has created a tinc network
|
||||||
|
with netname 'foo', then you have to run the following two commands to
|
||||||
|
ensure it is started at boot time:
|
||||||
|
|
||||||
|
systemctl enable tinc
|
||||||
|
systemctl enable tinc@foo
|
||||||
|
|
||||||
|
To start the tinc daemon immediately if it wasn't already running,
|
||||||
|
use the following command:
|
||||||
|
|
||||||
|
systemctl start tinc@foo
|
||||||
|
|
||||||
|
You can also use 'systemctl start tinc', this will start all tinc
|
||||||
|
daemons that are enabled. You can stop and disable tinc networks in the
|
||||||
|
same way.
|
||||||
|
|
||||||
|
If your system is not using systemd, then you have to look up your
|
||||||
|
distribution's way of starting tinc at boot time.
|
||||||
|
|
||||||
|
|
||||||
|
File: tinc.info, Node: Windows, Next: Other platforms, Prev: Linux, Up: Automatically starting tinc
|
||||||
|
|
||||||
|
7.3.2 Windows
|
||||||
|
-------------
|
||||||
|
|
||||||
|
On Windows, if tinc is started without the '-D' or '--no-detach' option,
|
||||||
|
it will automatically register itself as a service that is started at
|
||||||
|
boot time. When tinc is stopped using the '-k' or '--kill', it will
|
||||||
|
also automatically unregister itself. Once tinc is registered as a
|
||||||
|
service, it is also possible to stop and start tinc using the Windows
|
||||||
|
Services Manager.
|
||||||
|
|
||||||
|
|
||||||
|
File: tinc.info, Node: Other platforms, Prev: Windows, Up: Automatically starting tinc
|
||||||
|
|
||||||
|
7.3.3 Other platforms
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
On platforms other than the ones mentioned in the earlier sections, you
|
||||||
|
have to look up your platform's way of starting programs at boot time.
|
||||||
|
|
||||||
|
|
||||||
File: tinc.info, Node: About us, Next: Concept Index, Prev: Platform specific information, Up: Top
|
File: tinc.info, Node: About us, Next: Concept Index, Prev: Platform specific information, Up: Top
|
||||||
|
|
||||||
|
|
@ -2610,6 +2671,7 @@ Concept Index
|
||||||
* SVPN: Security. (line 11)
|
* SVPN: Security. (line 11)
|
||||||
* switch: Main configuration variables.
|
* switch: Main configuration variables.
|
||||||
(line 243)
|
(line 243)
|
||||||
|
* systemd: Linux. (line 6)
|
||||||
* TCP: The meta-connection. (line 10)
|
* TCP: The meta-connection. (line 10)
|
||||||
* TCPonly: Host configuration variables.
|
* TCPonly: Host configuration variables.
|
||||||
(line 105)
|
(line 105)
|
||||||
|
|
@ -2658,62 +2720,71 @@ Node: Top806
|
||||||
Node: Introduction1105
|
Node: Introduction1105
|
||||||
Node: Virtual Private Networks1915
|
Node: Virtual Private Networks1915
|
||||||
Node: tinc3639
|
Node: tinc3639
|
||||||
Node: Supported platforms5166
|
Node: Supported platforms5167
|
||||||
Node: Preparations5867
|
Node: Preparations5868
|
||||||
Node: Configuring the kernel6123
|
Node: Configuring the kernel6124
|
||||||
Node: Configuration of Linux kernels6533
|
Node: Configuration of Linux kernels6534
|
||||||
Node: Configuration of FreeBSD kernels7388
|
Node: Configuration of FreeBSD kernels7389
|
||||||
Node: Configuration of OpenBSD kernels7853
|
Node: Configuration of OpenBSD kernels7854
|
||||||
Node: Configuration of NetBSD kernels8210
|
Node: Configuration of NetBSD kernels8211
|
||||||
Node: Configuration of Solaris kernels8615
|
Node: Configuration of Solaris kernels8616
|
||||||
Node: Configuration of Darwin (Mac OS X) kernels9278
|
Node: Configuration of Darwin (Mac OS X) kernels9279
|
||||||
Node: Configuration of Windows10097
|
Node: Configuration of Windows10098
|
||||||
Node: Libraries10637
|
Node: Libraries10638
|
||||||
Node: LibreSSL/OpenSSL11046
|
Node: LibreSSL/OpenSSL11047
|
||||||
Node: zlib13588
|
Node: zlib13589
|
||||||
Node: lzo14620
|
Node: lzo14618
|
||||||
Node: Installation15603
|
Node: Installation15601
|
||||||
Node: Building and installing tinc16513
|
Node: Building and installing tinc16511
|
||||||
Node: Darwin (Mac OS X) build environment17173
|
Node: Darwin (Mac OS X) build environment17171
|
||||||
Node: Cygwin (Windows) build environment17738
|
Node: Cygwin (Windows) build environment17736
|
||||||
Node: MinGW (Windows) build environment18327
|
Node: MinGW (Windows) build environment18325
|
||||||
Node: System files18921
|
Node: System files18919
|
||||||
Node: Device files19186
|
Node: Device files19184
|
||||||
Node: Other files19602
|
Node: Other files19600
|
||||||
Node: Configuration20215
|
Node: Configuration20213
|
||||||
Node: Configuration introduction20526
|
Node: Configuration introduction20524
|
||||||
Node: Multiple networks21794
|
Node: Multiple networks21792
|
||||||
Node: How connections work23220
|
Node: How connections work23218
|
||||||
Node: Configuration files24442
|
Node: Configuration files24440
|
||||||
Node: Main configuration variables25936
|
Node: Main configuration variables25934
|
||||||
Node: Host configuration variables42184
|
Node: Host configuration variables42182
|
||||||
Node: Scripts47716
|
Node: Scripts47714
|
||||||
Node: How to configure50982
|
Node: How to configure50980
|
||||||
Node: Generating keypairs52240
|
Node: Generating keypairs52238
|
||||||
Node: Network interfaces52739
|
Node: Network interfaces52737
|
||||||
Node: Example configuration54587
|
Node: Example configuration54585
|
||||||
Node: Running tinc59912
|
Node: Running tinc59910
|
||||||
Node: Runtime options60502
|
Node: Runtime options60500
|
||||||
Node: Signals64127
|
Node: Signals64125
|
||||||
Node: Debug levels65318
|
Node: Debug levels65316
|
||||||
Node: Solving problems66254
|
Node: Solving problems66252
|
||||||
Node: Error messages67806
|
Node: Error messages67804
|
||||||
Node: Sending bug reports71815
|
Node: Sending bug reports71813
|
||||||
Node: Technical information72762
|
Node: Technical information72760
|
||||||
Node: The connection72993
|
Node: The connection72991
|
||||||
Node: The UDP tunnel73305
|
Node: The UDP tunnel73303
|
||||||
Node: The meta-connection76366
|
Node: The meta-connection76355
|
||||||
Node: The meta-protocol77835
|
Node: The meta-protocol77824
|
||||||
Node: Security82852
|
Node: Security82841
|
||||||
Node: Authentication protocol83994
|
Node: Authentication protocol83983
|
||||||
Node: Encryption of network packets89039
|
Node: Encryption of network packets89028
|
||||||
Node: Security issues90415
|
Node: Security issues90404
|
||||||
Node: Platform specific information92054
|
Node: Platform specific information92044
|
||||||
Node: Interface configuration92282
|
Node: Interface configuration92304
|
||||||
Node: Routes94753
|
Node: Routes94600
|
||||||
Node: About us96767
|
Node: Automatically starting tinc96650
|
||||||
Node: Contact information96942
|
Node: Linux96873
|
||||||
Node: Authors97345
|
Node: Windows98094
|
||||||
Node: Concept Index97750
|
Node: Other platforms98599
|
||||||
|
Node: About us98881
|
||||||
|
Node: Contact information99056
|
||||||
|
Node: Authors99459
|
||||||
|
Node: Concept Index99864
|
||||||
|
|
||||||
End Tag Table
|
End Tag Table
|
||||||
|
|
||||||
|
|
||||||
|
Local Variables:
|
||||||
|
coding: utf-8
|
||||||
|
End:
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
|
|
||||||
This is the info manual for @value{PACKAGE} version @value{VERSION}, a Virtual Private Network daemon.
|
This is the info manual for @value{PACKAGE} version @value{VERSION}, a Virtual Private Network daemon.
|
||||||
|
|
||||||
Copyright @copyright{} 1998-2017 Ivo Timmermans,
|
Copyright @copyright{} 1998-2019 Ivo Timmermans,
|
||||||
Guus Sliepen <guus@@tinc-vpn.org> and
|
Guus Sliepen <guus@@tinc-vpn.org> and
|
||||||
Wessel Dankers <wsl@@tinc-vpn.org>.
|
Wessel Dankers <wsl@@tinc-vpn.org>.
|
||||||
|
|
||||||
|
|
@ -39,7 +39,7 @@ permission notice identical to this one.
|
||||||
@vskip 0pt plus 1filll
|
@vskip 0pt plus 1filll
|
||||||
This is the info manual for @value{PACKAGE} version @value{VERSION}, a Virtual Private Network daemon.
|
This is the info manual for @value{PACKAGE} version @value{VERSION}, a Virtual Private Network daemon.
|
||||||
|
|
||||||
Copyright @copyright{} 1998-2017 Ivo Timmermans,
|
Copyright @copyright{} 1998-2019 Ivo Timmermans,
|
||||||
Guus Sliepen <guus@@tinc-vpn.org> and
|
Guus Sliepen <guus@@tinc-vpn.org> and
|
||||||
Wessel Dankers <wsl@@tinc-vpn.org>.
|
Wessel Dankers <wsl@@tinc-vpn.org>.
|
||||||
|
|
||||||
|
|
@ -155,7 +155,7 @@ professional package.
|
||||||
|
|
||||||
@cindex traditional VPNs
|
@cindex traditional VPNs
|
||||||
@cindex scalability
|
@cindex scalability
|
||||||
Tinc also allows more than two sites to connect to eachother and form a single VPN.
|
Tinc also allows more than two sites to connect to each other and form a single VPN.
|
||||||
Traditionally VPNs are created by making tunnels, which only have two endpoints.
|
Traditionally VPNs are created by making tunnels, which only have two endpoints.
|
||||||
Larger VPNs with more sites are created by adding more tunnels.
|
Larger VPNs with more sites are created by adding more tunnels.
|
||||||
Tinc takes another approach: only endpoints are specified,
|
Tinc takes another approach: only endpoints are specified,
|
||||||
|
|
@ -421,7 +421,7 @@ available. Make sure you install the development AND runtime versions
|
||||||
of this package.
|
of this package.
|
||||||
|
|
||||||
If you have to install zlib manually, you can get the source code
|
If you have to install zlib manually, you can get the source code
|
||||||
from @url{http://www.zlib.net/}. Instructions on how to configure,
|
from @url{https://zlib.net/}. Instructions on how to configure,
|
||||||
build and install this package are included within the package. Please
|
build and install this package are included within the package. Please
|
||||||
make sure you build development and runtime libraries (which is the
|
make sure you build development and runtime libraries (which is the
|
||||||
default).
|
default).
|
||||||
|
|
@ -2075,7 +2075,7 @@ In switch or hub modes ARP does work so the sender already knows the correct des
|
||||||
In those modes every interface should have a unique MAC address, so make sure they are not the same.
|
In those modes every interface should have a unique MAC address, so make sure they are not the same.
|
||||||
Because switch and hub modes rely on MAC addresses to function correctly,
|
Because switch and hub modes rely on MAC addresses to function correctly,
|
||||||
these modes cannot be used on the following operating systems which don't have a `tap' style virtual network device:
|
these modes cannot be used on the following operating systems which don't have a `tap' style virtual network device:
|
||||||
OpenBSD, NetBSD, Darwin and Solaris.
|
NetBSD, Darwin and Solaris.
|
||||||
|
|
||||||
|
|
||||||
@c ==================================================================
|
@c ==================================================================
|
||||||
|
|
@ -2433,7 +2433,7 @@ We will address these issues in tinc 2.0.
|
||||||
Cryptography is a hard thing to get right. We cannot make any
|
Cryptography is a hard thing to get right. We cannot make any
|
||||||
guarantees. Time, review and feedback are the only things that can
|
guarantees. Time, review and feedback are the only things that can
|
||||||
prove the security of any cryptographic product. If you wish to review
|
prove the security of any cryptographic product. If you wish to review
|
||||||
tinc or give us feedback, you are stronly encouraged to do so.
|
tinc or give us feedback, you are strongly encouraged to do so.
|
||||||
|
|
||||||
|
|
||||||
@c ==================================================================
|
@c ==================================================================
|
||||||
|
|
@ -2443,6 +2443,7 @@ tinc or give us feedback, you are stronly encouraged to do so.
|
||||||
@menu
|
@menu
|
||||||
* Interface configuration::
|
* Interface configuration::
|
||||||
* Routes::
|
* Routes::
|
||||||
|
* Automatically starting tinc::
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
@c ==================================================================
|
@c ==================================================================
|
||||||
|
|
@ -2499,13 +2500,6 @@ For IPv6 addresses:
|
||||||
@tab @code{netsh interface ipv6 add address} @var{interface} @code{static} @var{address}/@var{prefixlength}
|
@tab @code{netsh interface ipv6 add address} @var{interface} @code{static} @var{address}/@var{prefixlength}
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
On some platforms, when running tinc in switch mode, the VPN interface must be set to tap mode with an ifconfig command:
|
|
||||||
|
|
||||||
@multitable {Darwin (Mac OS X)} {ifconfig route add -bla network address netmask netmask prefixlength interface}
|
|
||||||
@item OpenBSD
|
|
||||||
@tab @code{ifconfig} @var{interface} @code{link0}
|
|
||||||
@end multitable
|
|
||||||
|
|
||||||
On Linux, it is possible to create a persistent tun/tap interface which will
|
On Linux, it is possible to create a persistent tun/tap interface which will
|
||||||
continue to exist even if tinc quit, although this is normally not required.
|
continue to exist even if tinc quit, although this is normally not required.
|
||||||
It can be useful to set up a tun/tap interface owned by a non-root user, so
|
It can be useful to set up a tun/tap interface owned by a non-root user, so
|
||||||
|
|
@ -2569,6 +2563,66 @@ Adding routes to IPv6 subnets:
|
||||||
@tab @code{netsh interface ipv6 add route} @var{network address}/@var{prefixlength} @var{interface}
|
@tab @code{netsh interface ipv6 add route} @var{network address}/@var{prefixlength} @var{interface}
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
|
@c ==================================================================
|
||||||
|
@node Automatically starting tinc
|
||||||
|
@section Automatically starting tinc
|
||||||
|
|
||||||
|
@menu
|
||||||
|
* Linux::
|
||||||
|
* Windows::
|
||||||
|
* Other platforms::
|
||||||
|
@end menu
|
||||||
|
|
||||||
|
@c ==================================================================
|
||||||
|
@node Linux
|
||||||
|
@subsection Linux
|
||||||
|
|
||||||
|
@cindex systemd
|
||||||
|
There are many Linux distributions, and historically, many of them had their
|
||||||
|
own way of starting programs at boot time. Today, a number of major Linux
|
||||||
|
distributions have chosen to use systemd as their init system. Tinc ships with
|
||||||
|
systemd service files that allow you to start and stop tinc using systemd.
|
||||||
|
There are two service files: @code{tinc.service} is used to globally enable or
|
||||||
|
disable all tinc daemons managed by systemd, and
|
||||||
|
@code{tinc@@@var{netname}.service} is used to enable or disable specific tinc
|
||||||
|
daemons. So if one has created a tinc network with netname @code{foo}, then
|
||||||
|
you have to run the following two commands to ensure it is started at boot
|
||||||
|
time:
|
||||||
|
|
||||||
|
@example
|
||||||
|
systemctl enable tinc
|
||||||
|
systemctl enable tinc@@foo
|
||||||
|
@end example
|
||||||
|
|
||||||
|
To start the tinc daemon immediately if it wasn't already running, use the
|
||||||
|
following command:
|
||||||
|
|
||||||
|
@example
|
||||||
|
systemctl start tinc@@foo
|
||||||
|
@end example
|
||||||
|
|
||||||
|
You can also use @samp{systemctl start tinc}, this will start all tinc daemons
|
||||||
|
that are enabled. You can stop and disable tinc networks in the same way.
|
||||||
|
|
||||||
|
If your system is not using systemd, then you have to look up your
|
||||||
|
distribution's way of starting tinc at boot time.
|
||||||
|
|
||||||
|
@c ==================================================================
|
||||||
|
@node Windows
|
||||||
|
@subsection Windows
|
||||||
|
|
||||||
|
On Windows, if tinc is started without the @code{-D} or @code{--no-detach}
|
||||||
|
option, it will automatically register itself as a service that is started at
|
||||||
|
boot time. When tinc is stopped using the @code{-k} or @code{--kill}, it will
|
||||||
|
also automatically unregister itself. Once tinc is registered as a service, it
|
||||||
|
is also possible to stop and start tinc using the Windows Services Manager.
|
||||||
|
|
||||||
|
@c ==================================================================
|
||||||
|
@node Other platforms
|
||||||
|
@subsection Other platforms
|
||||||
|
|
||||||
|
On platforms other than the ones mentioned in the earlier sections, you have to
|
||||||
|
look up your platform's way of starting programs at boot time.
|
||||||
|
|
||||||
@c ==================================================================
|
@c ==================================================================
|
||||||
@node About us
|
@node About us
|
||||||
|
|
|
||||||
5
doc/tincinclude.texi
Normal file
5
doc/tincinclude.texi
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
@set VERSION 1.0.36
|
||||||
|
@set PACKAGE tinc
|
||||||
|
@set sysconfdir /etc
|
||||||
|
@set localstatedir /var
|
||||||
|
@set runstatedir /run
|
||||||
49
install-sh
49
install-sh
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# install - install a program, script, or datafile
|
# install - install a program, script, or datafile
|
||||||
|
|
||||||
scriptversion=2014-09-12.12; # UTC
|
scriptversion=2018-03-11.20; # UTC
|
||||||
|
|
||||||
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||||
# later released in X11R6 (xc/config/util/install.sh) with the
|
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||||
|
|
@ -271,15 +271,18 @@ do
|
||||||
fi
|
fi
|
||||||
dst=$dst_arg
|
dst=$dst_arg
|
||||||
|
|
||||||
# If destination is a directory, append the input filename; won't work
|
# If destination is a directory, append the input filename.
|
||||||
# if double slashes aren't ignored.
|
|
||||||
if test -d "$dst"; then
|
if test -d "$dst"; then
|
||||||
if test "$is_target_a_directory" = never; then
|
if test "$is_target_a_directory" = never; then
|
||||||
echo "$0: $dst_arg: Is a directory" >&2
|
echo "$0: $dst_arg: Is a directory" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
dstdir=$dst
|
dstdir=$dst
|
||||||
dst=$dstdir/`basename "$src"`
|
dstbase=`basename "$src"`
|
||||||
|
case $dst in
|
||||||
|
*/) dst=$dst$dstbase;;
|
||||||
|
*) dst=$dst/$dstbase;;
|
||||||
|
esac
|
||||||
dstdir_status=0
|
dstdir_status=0
|
||||||
else
|
else
|
||||||
dstdir=`dirname "$dst"`
|
dstdir=`dirname "$dst"`
|
||||||
|
|
@ -288,6 +291,11 @@ do
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
case $dstdir in
|
||||||
|
*/) dstdirslash=$dstdir;;
|
||||||
|
*) dstdirslash=$dstdir/;;
|
||||||
|
esac
|
||||||
|
|
||||||
obsolete_mkdir_used=false
|
obsolete_mkdir_used=false
|
||||||
|
|
||||||
if test $dstdir_status != 0; then
|
if test $dstdir_status != 0; then
|
||||||
|
|
@ -324,14 +332,16 @@ do
|
||||||
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
|
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
# $RANDOM is not portable (e.g. dash); use it when possible to
|
# Note that $RANDOM variable is not portable (e.g. dash); Use it
|
||||||
# lower collision chance
|
# here however when possible just to lower collision chance.
|
||||||
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||||
|
|
||||||
trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
|
trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
|
||||||
|
|
||||||
# As "mkdir -p" follows symlinks and we work in /tmp possibly; so
|
# Because "mkdir -p" follows existing symlinks and we likely work
|
||||||
# create the $tmpdir first (and fail if unsuccessful) to make sure
|
# directly in world-writeable /tmp, make sure that the '$tmpdir'
|
||||||
# that nobody tries to guess the $tmpdir name.
|
# directory is successfully created first before we actually test
|
||||||
|
# 'mkdir -p' feature.
|
||||||
if (umask $mkdir_umask &&
|
if (umask $mkdir_umask &&
|
||||||
$mkdirprog $mkdir_mode "$tmpdir" &&
|
$mkdirprog $mkdir_mode "$tmpdir" &&
|
||||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
|
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
|
||||||
|
|
@ -434,14 +444,25 @@ do
|
||||||
else
|
else
|
||||||
|
|
||||||
# Make a couple of temp file names in the proper directory.
|
# Make a couple of temp file names in the proper directory.
|
||||||
dsttmp=$dstdir/_inst.$$_
|
dsttmp=${dstdirslash}_inst.$$_
|
||||||
rmtmp=$dstdir/_rm.$$_
|
rmtmp=${dstdirslash}_rm.$$_
|
||||||
|
|
||||||
# Trap to clean up those temp files at exit.
|
# Trap to clean up those temp files at exit.
|
||||||
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
|
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
|
||||||
|
|
||||||
# Copy the file name to the temp name.
|
# Copy the file name to the temp name.
|
||||||
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
|
(umask $cp_umask &&
|
||||||
|
{ test -z "$stripcmd" || {
|
||||||
|
# Create $dsttmp read-write so that cp doesn't create it read-only,
|
||||||
|
# which would cause strip to fail.
|
||||||
|
if test -z "$doit"; then
|
||||||
|
: >"$dsttmp" # No need to fork-exec 'touch'.
|
||||||
|
else
|
||||||
|
$doit touch "$dsttmp"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
} &&
|
||||||
|
$doit_exec $cpprog "$src" "$dsttmp") &&
|
||||||
|
|
||||||
# and set any options; do chmod last to preserve setuid bits.
|
# and set any options; do chmod last to preserve setuid bits.
|
||||||
#
|
#
|
||||||
|
|
@ -500,9 +521,9 @@ do
|
||||||
done
|
done
|
||||||
|
|
||||||
# Local variables:
|
# Local variables:
|
||||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||||
# time-stamp-start: "scriptversion="
|
# time-stamp-start: "scriptversion="
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
# time-stamp-time-zone: "UTC"
|
# time-stamp-time-zone: "UTC0"
|
||||||
# time-stamp-end: "; # UTC"
|
# time-stamp-end: "; # UTC"
|
||||||
# End:
|
# End:
|
||||||
|
|
|
||||||
16
missing
16
missing
|
|
@ -1,9 +1,9 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Common wrapper for a few potentially missing GNU programs.
|
# Common wrapper for a few potentially missing GNU programs.
|
||||||
|
|
||||||
scriptversion=2013-10-28.13; # UTC
|
scriptversion=2018-03-07.03; # UTC
|
||||||
|
|
||||||
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
|
# Copyright (C) 1996-2020 Free Software Foundation, Inc.
|
||||||
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||||
|
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
|
@ -17,7 +17,7 @@ scriptversion=2013-10-28.13; # UTC
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
# As a special exception to the GNU General Public License, if you
|
# As a special exception to the GNU General Public License, if you
|
||||||
# distribute this file as part of a program that contains a
|
# distribute this file as part of a program that contains a
|
||||||
|
|
@ -101,9 +101,9 @@ else
|
||||||
exit $st
|
exit $st
|
||||||
fi
|
fi
|
||||||
|
|
||||||
perl_URL=http://www.perl.org/
|
perl_URL=https://www.perl.org/
|
||||||
flex_URL=http://flex.sourceforge.net/
|
flex_URL=https://github.com/westes/flex
|
||||||
gnu_software_URL=http://www.gnu.org/software
|
gnu_software_URL=https://www.gnu.org/software
|
||||||
|
|
||||||
program_details ()
|
program_details ()
|
||||||
{
|
{
|
||||||
|
|
@ -207,9 +207,9 @@ give_advice "$1" | sed -e '1s/^/WARNING: /' \
|
||||||
exit $st
|
exit $st
|
||||||
|
|
||||||
# Local variables:
|
# Local variables:
|
||||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||||
# time-stamp-start: "scriptversion="
|
# time-stamp-start: "scriptversion="
|
||||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
# time-stamp-time-zone: "UTC"
|
# time-stamp-time-zone: "UTC0"
|
||||||
# time-stamp-end: "; # UTC"
|
# time-stamp-end: "; # UTC"
|
||||||
# End:
|
# End:
|
||||||
|
|
|
||||||
252
src/Makefile.in
252
src/Makefile.in
|
|
@ -1,7 +1,7 @@
|
||||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
# Makefile.in generated by automake 1.16.2 from Makefile.am.
|
||||||
# @configure_input@
|
# @configure_input@
|
||||||
|
|
||||||
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
# Copyright (C) 1994-2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
# This Makefile.in is free software; the Free Software Foundation
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
|
@ -178,7 +178,29 @@ am__v_at_0 = @
|
||||||
am__v_at_1 =
|
am__v_at_1 =
|
||||||
DEFAULT_INCLUDES =
|
DEFAULT_INCLUDES =
|
||||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||||
am__depfiles_maybe = depfiles
|
am__maybe_remake_depfiles = depfiles
|
||||||
|
am__depfiles_remade = ./$(DEPDIR)/avl_tree.Po ./$(DEPDIR)/conf.Po \
|
||||||
|
./$(DEPDIR)/connection.Po ./$(DEPDIR)/dropin.Po \
|
||||||
|
./$(DEPDIR)/dummy_device.Po ./$(DEPDIR)/edge.Po \
|
||||||
|
./$(DEPDIR)/event.Po ./$(DEPDIR)/fake-getaddrinfo.Po \
|
||||||
|
./$(DEPDIR)/fake-getnameinfo.Po ./$(DEPDIR)/getopt.Po \
|
||||||
|
./$(DEPDIR)/getopt1.Po ./$(DEPDIR)/graph.Po \
|
||||||
|
./$(DEPDIR)/list.Po ./$(DEPDIR)/logger.Po ./$(DEPDIR)/meta.Po \
|
||||||
|
./$(DEPDIR)/multicast_device.Po ./$(DEPDIR)/net.Po \
|
||||||
|
./$(DEPDIR)/net_packet.Po ./$(DEPDIR)/net_setup.Po \
|
||||||
|
./$(DEPDIR)/net_socket.Po ./$(DEPDIR)/netutl.Po \
|
||||||
|
./$(DEPDIR)/node.Po ./$(DEPDIR)/pidfile.Po \
|
||||||
|
./$(DEPDIR)/process.Po ./$(DEPDIR)/protocol.Po \
|
||||||
|
./$(DEPDIR)/protocol_auth.Po ./$(DEPDIR)/protocol_edge.Po \
|
||||||
|
./$(DEPDIR)/protocol_key.Po ./$(DEPDIR)/protocol_misc.Po \
|
||||||
|
./$(DEPDIR)/protocol_subnet.Po ./$(DEPDIR)/proxy.Po \
|
||||||
|
./$(DEPDIR)/raw_socket_device.Po ./$(DEPDIR)/route.Po \
|
||||||
|
./$(DEPDIR)/subnet.Po ./$(DEPDIR)/tincd.Po \
|
||||||
|
./$(DEPDIR)/uml_device.Po ./$(DEPDIR)/utils.Po \
|
||||||
|
./$(DEPDIR)/vde_device.Po bsd/$(DEPDIR)/device.Po \
|
||||||
|
bsd/$(DEPDIR)/tunemu.Po cygwin/$(DEPDIR)/device.Po \
|
||||||
|
linux/$(DEPDIR)/device.Po mingw/$(DEPDIR)/device.Po \
|
||||||
|
solaris/$(DEPDIR)/device.Po
|
||||||
am__mv = mv -f
|
am__mv = mv -f
|
||||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||||
|
|
@ -261,9 +283,6 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
PACKAGE_URL = @PACKAGE_URL@
|
PACKAGE_URL = @PACKAGE_URL@
|
||||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
PKG_CONFIG = @PKG_CONFIG@
|
|
||||||
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
|
||||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
|
||||||
SET_MAKE = @SET_MAKE@
|
SET_MAKE = @SET_MAKE@
|
||||||
SHELL = @SHELL@
|
SHELL = @SHELL@
|
||||||
STRIP = @STRIP@
|
STRIP = @STRIP@
|
||||||
|
|
@ -315,7 +334,7 @@ sbindir = @sbindir@
|
||||||
sharedstatedir = @sharedstatedir@
|
sharedstatedir = @sharedstatedir@
|
||||||
srcdir = @srcdir@
|
srcdir = @srcdir@
|
||||||
sysconfdir = @sysconfdir@
|
sysconfdir = @sysconfdir@
|
||||||
systemdsystemunitdir = @systemdsystemunitdir@
|
systemd_path = @systemd_path@
|
||||||
target_alias = @target_alias@
|
target_alias = @target_alias@
|
||||||
top_build_prefix = @top_build_prefix@
|
top_build_prefix = @top_build_prefix@
|
||||||
top_builddir = @top_builddir@
|
top_builddir = @top_builddir@
|
||||||
|
|
@ -357,8 +376,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||||
*config.status*) \
|
*config.status*) \
|
||||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||||
*) \
|
*) \
|
||||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
|
||||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
|
||||||
esac;
|
esac;
|
||||||
|
|
||||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||||
|
|
@ -485,50 +504,56 @@ mostlyclean-compile:
|
||||||
distclean-compile:
|
distclean-compile:
|
||||||
-rm -f *.tab.c
|
-rm -f *.tab.c
|
||||||
|
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/avl_tree.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/avl_tree.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/conf.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/conf.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connection.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connection.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dropin.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dropin.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dummy_device.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dummy_device.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/edge.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/edge.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/event.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/event.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fake-getaddrinfo.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fake-getaddrinfo.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fake-getnameinfo.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fake-getnameinfo.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/graph.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/graph.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/logger.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/logger.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/meta.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/meta.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multicast_device.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multicast_device.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net_packet.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net_packet.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net_setup.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net_setup.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net_socket.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net_socket.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netutl.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netutl.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/node.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/node.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfile.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfile.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/protocol.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/protocol.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/protocol_auth.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/protocol_auth.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/protocol_edge.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/protocol_edge.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/protocol_key.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/protocol_key.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/protocol_misc.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/protocol_misc.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/protocol_subnet.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/protocol_subnet.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proxy.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proxy.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/raw_socket_device.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/raw_socket_device.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/route.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/route.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/subnet.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/subnet.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tincd.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tincd.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uml_device.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uml_device.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vde_device.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vde_device.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@bsd/$(DEPDIR)/device.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@bsd/$(DEPDIR)/device.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@bsd/$(DEPDIR)/tunemu.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@bsd/$(DEPDIR)/tunemu.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@cygwin/$(DEPDIR)/device.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@cygwin/$(DEPDIR)/device.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@linux/$(DEPDIR)/device.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@linux/$(DEPDIR)/device.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@mingw/$(DEPDIR)/device.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@mingw/$(DEPDIR)/device.Po@am__quote@ # am--include-marker
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@solaris/$(DEPDIR)/device.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@solaris/$(DEPDIR)/device.Po@am__quote@ # am--include-marker
|
||||||
|
|
||||||
|
$(am__depfiles_remade):
|
||||||
|
@$(MKDIR_P) $(@D)
|
||||||
|
@echo '# dummy' >$@-t && $(am__mv) $@-t $@
|
||||||
|
|
||||||
|
am--depfiles: $(am__depfiles_remade)
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
|
@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
|
||||||
|
|
@ -598,7 +623,10 @@ cscopelist-am: $(am__tagged_files)
|
||||||
distclean-tags:
|
distclean-tags:
|
||||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(BUILT_SOURCES)
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) distdir-am
|
||||||
|
|
||||||
|
distdir-am: $(DISTFILES)
|
||||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
list='$(DISTFILES)'; \
|
list='$(DISTFILES)'; \
|
||||||
|
|
@ -680,7 +708,50 @@ clean: clean-am
|
||||||
clean-am: clean-generic clean-sbinPROGRAMS mostlyclean-am
|
clean-am: clean-generic clean-sbinPROGRAMS mostlyclean-am
|
||||||
|
|
||||||
distclean: distclean-am
|
distclean: distclean-am
|
||||||
-rm -rf ./$(DEPDIR) bsd/$(DEPDIR) cygwin/$(DEPDIR) linux/$(DEPDIR) mingw/$(DEPDIR) solaris/$(DEPDIR)
|
-rm -f ./$(DEPDIR)/avl_tree.Po
|
||||||
|
-rm -f ./$(DEPDIR)/conf.Po
|
||||||
|
-rm -f ./$(DEPDIR)/connection.Po
|
||||||
|
-rm -f ./$(DEPDIR)/dropin.Po
|
||||||
|
-rm -f ./$(DEPDIR)/dummy_device.Po
|
||||||
|
-rm -f ./$(DEPDIR)/edge.Po
|
||||||
|
-rm -f ./$(DEPDIR)/event.Po
|
||||||
|
-rm -f ./$(DEPDIR)/fake-getaddrinfo.Po
|
||||||
|
-rm -f ./$(DEPDIR)/fake-getnameinfo.Po
|
||||||
|
-rm -f ./$(DEPDIR)/getopt.Po
|
||||||
|
-rm -f ./$(DEPDIR)/getopt1.Po
|
||||||
|
-rm -f ./$(DEPDIR)/graph.Po
|
||||||
|
-rm -f ./$(DEPDIR)/list.Po
|
||||||
|
-rm -f ./$(DEPDIR)/logger.Po
|
||||||
|
-rm -f ./$(DEPDIR)/meta.Po
|
||||||
|
-rm -f ./$(DEPDIR)/multicast_device.Po
|
||||||
|
-rm -f ./$(DEPDIR)/net.Po
|
||||||
|
-rm -f ./$(DEPDIR)/net_packet.Po
|
||||||
|
-rm -f ./$(DEPDIR)/net_setup.Po
|
||||||
|
-rm -f ./$(DEPDIR)/net_socket.Po
|
||||||
|
-rm -f ./$(DEPDIR)/netutl.Po
|
||||||
|
-rm -f ./$(DEPDIR)/node.Po
|
||||||
|
-rm -f ./$(DEPDIR)/pidfile.Po
|
||||||
|
-rm -f ./$(DEPDIR)/process.Po
|
||||||
|
-rm -f ./$(DEPDIR)/protocol.Po
|
||||||
|
-rm -f ./$(DEPDIR)/protocol_auth.Po
|
||||||
|
-rm -f ./$(DEPDIR)/protocol_edge.Po
|
||||||
|
-rm -f ./$(DEPDIR)/protocol_key.Po
|
||||||
|
-rm -f ./$(DEPDIR)/protocol_misc.Po
|
||||||
|
-rm -f ./$(DEPDIR)/protocol_subnet.Po
|
||||||
|
-rm -f ./$(DEPDIR)/proxy.Po
|
||||||
|
-rm -f ./$(DEPDIR)/raw_socket_device.Po
|
||||||
|
-rm -f ./$(DEPDIR)/route.Po
|
||||||
|
-rm -f ./$(DEPDIR)/subnet.Po
|
||||||
|
-rm -f ./$(DEPDIR)/tincd.Po
|
||||||
|
-rm -f ./$(DEPDIR)/uml_device.Po
|
||||||
|
-rm -f ./$(DEPDIR)/utils.Po
|
||||||
|
-rm -f ./$(DEPDIR)/vde_device.Po
|
||||||
|
-rm -f bsd/$(DEPDIR)/device.Po
|
||||||
|
-rm -f bsd/$(DEPDIR)/tunemu.Po
|
||||||
|
-rm -f cygwin/$(DEPDIR)/device.Po
|
||||||
|
-rm -f linux/$(DEPDIR)/device.Po
|
||||||
|
-rm -f mingw/$(DEPDIR)/device.Po
|
||||||
|
-rm -f solaris/$(DEPDIR)/device.Po
|
||||||
-rm -f Makefile
|
-rm -f Makefile
|
||||||
distclean-am: clean-am distclean-compile distclean-generic \
|
distclean-am: clean-am distclean-compile distclean-generic \
|
||||||
distclean-tags
|
distclean-tags
|
||||||
|
|
@ -726,7 +797,50 @@ install-ps-am:
|
||||||
installcheck-am: installcheck-sbinPROGRAMS
|
installcheck-am: installcheck-sbinPROGRAMS
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-am
|
maintainer-clean: maintainer-clean-am
|
||||||
-rm -rf ./$(DEPDIR) bsd/$(DEPDIR) cygwin/$(DEPDIR) linux/$(DEPDIR) mingw/$(DEPDIR) solaris/$(DEPDIR)
|
-rm -f ./$(DEPDIR)/avl_tree.Po
|
||||||
|
-rm -f ./$(DEPDIR)/conf.Po
|
||||||
|
-rm -f ./$(DEPDIR)/connection.Po
|
||||||
|
-rm -f ./$(DEPDIR)/dropin.Po
|
||||||
|
-rm -f ./$(DEPDIR)/dummy_device.Po
|
||||||
|
-rm -f ./$(DEPDIR)/edge.Po
|
||||||
|
-rm -f ./$(DEPDIR)/event.Po
|
||||||
|
-rm -f ./$(DEPDIR)/fake-getaddrinfo.Po
|
||||||
|
-rm -f ./$(DEPDIR)/fake-getnameinfo.Po
|
||||||
|
-rm -f ./$(DEPDIR)/getopt.Po
|
||||||
|
-rm -f ./$(DEPDIR)/getopt1.Po
|
||||||
|
-rm -f ./$(DEPDIR)/graph.Po
|
||||||
|
-rm -f ./$(DEPDIR)/list.Po
|
||||||
|
-rm -f ./$(DEPDIR)/logger.Po
|
||||||
|
-rm -f ./$(DEPDIR)/meta.Po
|
||||||
|
-rm -f ./$(DEPDIR)/multicast_device.Po
|
||||||
|
-rm -f ./$(DEPDIR)/net.Po
|
||||||
|
-rm -f ./$(DEPDIR)/net_packet.Po
|
||||||
|
-rm -f ./$(DEPDIR)/net_setup.Po
|
||||||
|
-rm -f ./$(DEPDIR)/net_socket.Po
|
||||||
|
-rm -f ./$(DEPDIR)/netutl.Po
|
||||||
|
-rm -f ./$(DEPDIR)/node.Po
|
||||||
|
-rm -f ./$(DEPDIR)/pidfile.Po
|
||||||
|
-rm -f ./$(DEPDIR)/process.Po
|
||||||
|
-rm -f ./$(DEPDIR)/protocol.Po
|
||||||
|
-rm -f ./$(DEPDIR)/protocol_auth.Po
|
||||||
|
-rm -f ./$(DEPDIR)/protocol_edge.Po
|
||||||
|
-rm -f ./$(DEPDIR)/protocol_key.Po
|
||||||
|
-rm -f ./$(DEPDIR)/protocol_misc.Po
|
||||||
|
-rm -f ./$(DEPDIR)/protocol_subnet.Po
|
||||||
|
-rm -f ./$(DEPDIR)/proxy.Po
|
||||||
|
-rm -f ./$(DEPDIR)/raw_socket_device.Po
|
||||||
|
-rm -f ./$(DEPDIR)/route.Po
|
||||||
|
-rm -f ./$(DEPDIR)/subnet.Po
|
||||||
|
-rm -f ./$(DEPDIR)/tincd.Po
|
||||||
|
-rm -f ./$(DEPDIR)/uml_device.Po
|
||||||
|
-rm -f ./$(DEPDIR)/utils.Po
|
||||||
|
-rm -f ./$(DEPDIR)/vde_device.Po
|
||||||
|
-rm -f bsd/$(DEPDIR)/device.Po
|
||||||
|
-rm -f bsd/$(DEPDIR)/tunemu.Po
|
||||||
|
-rm -f cygwin/$(DEPDIR)/device.Po
|
||||||
|
-rm -f linux/$(DEPDIR)/device.Po
|
||||||
|
-rm -f mingw/$(DEPDIR)/device.Po
|
||||||
|
-rm -f solaris/$(DEPDIR)/device.Po
|
||||||
-rm -f Makefile
|
-rm -f Makefile
|
||||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||||
|
|
||||||
|
|
@ -746,19 +860,19 @@ uninstall-am: uninstall-sbinPROGRAMS
|
||||||
|
|
||||||
.MAKE: install-am install-strip
|
.MAKE: install-am install-strip
|
||||||
|
|
||||||
.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
|
.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
|
||||||
clean-sbinPROGRAMS cscopelist-am ctags ctags-am distclean \
|
clean-generic clean-sbinPROGRAMS cscopelist-am ctags ctags-am \
|
||||||
distclean-compile distclean-generic distclean-tags distdir dvi \
|
distclean distclean-compile distclean-generic distclean-tags \
|
||||||
dvi-am html html-am info info-am install install-am \
|
distdir dvi dvi-am html html-am info info-am install \
|
||||||
install-data install-data-am install-dvi install-dvi-am \
|
install-am install-data install-data-am install-dvi \
|
||||||
install-exec install-exec-am install-html install-html-am \
|
install-dvi-am install-exec install-exec-am install-html \
|
||||||
install-info install-info-am install-man install-pdf \
|
install-html-am install-info install-info-am install-man \
|
||||||
install-pdf-am install-ps install-ps-am install-sbinPROGRAMS \
|
install-pdf install-pdf-am install-ps install-ps-am \
|
||||||
install-strip installcheck installcheck-am \
|
install-sbinPROGRAMS install-strip installcheck \
|
||||||
installcheck-sbinPROGRAMS installdirs maintainer-clean \
|
installcheck-am installcheck-sbinPROGRAMS installdirs \
|
||||||
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||||
mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
|
mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
|
||||||
uninstall-am uninstall-sbinPROGRAMS
|
tags tags-am uninstall uninstall-am uninstall-sbinPROGRAMS
|
||||||
|
|
||||||
.PRECIOUS: Makefile
|
.PRECIOUS: Makefile
|
||||||
|
|
||||||
|
|
|
||||||
31
src/conf.c
31
src/conf.c
|
|
@ -81,18 +81,9 @@ config_t *new_config(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void free_config(config_t *cfg) {
|
void free_config(config_t *cfg) {
|
||||||
if(cfg->variable) {
|
|
||||||
free(cfg->variable);
|
free(cfg->variable);
|
||||||
}
|
|
||||||
|
|
||||||
if(cfg->value) {
|
|
||||||
free(cfg->value);
|
free(cfg->value);
|
||||||
}
|
|
||||||
|
|
||||||
if(cfg->file) {
|
|
||||||
free(cfg->file);
|
free(cfg->file);
|
||||||
}
|
|
||||||
|
|
||||||
free(cfg);
|
free(cfg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -204,7 +195,7 @@ bool get_config_address(const config_t *cfg, struct addrinfo **result) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool get_config_subnet(const config_t *cfg, subnet_t **result) {
|
bool get_config_subnet(const config_t *cfg, subnet_t **result) {
|
||||||
subnet_t subnet = {};
|
subnet_t subnet = {0};
|
||||||
|
|
||||||
if(!cfg) {
|
if(!cfg) {
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -432,7 +423,11 @@ bool read_server_config(void) {
|
||||||
|
|
||||||
// And we try to read the ones that end with ".conf"
|
// And we try to read the ones that end with ".conf"
|
||||||
if(l > 5 && !strcmp(".conf", & ep->d_name[ l - 5 ])) {
|
if(l > 5 && !strcmp(".conf", & ep->d_name[ l - 5 ])) {
|
||||||
snprintf(fname, sizeof(fname), "%s/%s", dname, ep->d_name);
|
if((size_t)snprintf(fname, sizeof(fname), "%s/%s", dname, ep->d_name) >= sizeof(fname)) {
|
||||||
|
logger(LOG_ERR, "Pathname too long: %s/%s", dname, ep->d_name);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
x = read_config_file(config_tree, fname);
|
x = read_config_file(config_tree, fname);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -472,9 +467,14 @@ static void disable_old_keys(const char *filename) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
snprintf(tmpfile, sizeof(tmpfile), "%s.tmp", filename);
|
int len = snprintf(tmpfile, sizeof(tmpfile), "%s.tmp", filename);
|
||||||
|
|
||||||
|
if(len < 0 || len >= PATH_MAX) {
|
||||||
|
fprintf(stderr, "Pathname too long: %s.tmp\n", filename);
|
||||||
|
w = NULL;
|
||||||
|
} else {
|
||||||
w = fopen(tmpfile, "w");
|
w = fopen(tmpfile, "w");
|
||||||
|
}
|
||||||
|
|
||||||
while(fgets(buf, sizeof(buf), r)) {
|
while(fgets(buf, sizeof(buf), r)) {
|
||||||
if(!strncmp(buf, "-----BEGIN RSA", 14)) {
|
if(!strncmp(buf, "-----BEGIN RSA", 14)) {
|
||||||
|
|
@ -573,7 +573,12 @@ FILE *ask_and_open(const char *filename, const char *what) {
|
||||||
#endif
|
#endif
|
||||||
/* The directory is a relative path or a filename. */
|
/* The directory is a relative path or a filename. */
|
||||||
getcwd(directory, sizeof(directory));
|
getcwd(directory, sizeof(directory));
|
||||||
snprintf(abspath, sizeof(abspath), "%s/%s", directory, fn);
|
|
||||||
|
if((size_t)snprintf(abspath, sizeof(abspath), "%s/%s", directory, fn) >= sizeof(abspath)) {
|
||||||
|
fprintf(stderr, "Pathname too long: %s/%s\n", directory, fn);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
fn = abspath;
|
fn = abspath;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -96,13 +96,13 @@ void free_connection_partially(connection_t *c) {
|
||||||
c->outbudget = 0;
|
c->outbudget = 0;
|
||||||
|
|
||||||
if(c->inctx) {
|
if(c->inctx) {
|
||||||
EVP_CIPHER_CTX_cleanup(c->inctx);
|
EVP_CIPHER_CTX_reset(c->inctx);
|
||||||
free(c->inctx);
|
free(c->inctx);
|
||||||
c->inctx = NULL;
|
c->inctx = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(c->outctx) {
|
if(c->outctx) {
|
||||||
EVP_CIPHER_CTX_cleanup(c->outctx);
|
EVP_CIPHER_CTX_reset(c->outctx);
|
||||||
free(c->outctx);
|
free(c->outctx);
|
||||||
c->outctx = NULL;
|
c->outctx = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,10 @@
|
||||||
#include <openssl/rsa.h>
|
#include <openssl/rsa.h>
|
||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
|
|
||||||
|
#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
||||||
|
#define EVP_CIPHER_CTX_reset(c) EVP_CIPHER_CTX_cleanup(c)
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "avl_tree.h"
|
#include "avl_tree.h"
|
||||||
|
|
||||||
#define OPTION_INDIRECT 0x0001
|
#define OPTION_INDIRECT 0x0001
|
||||||
|
|
@ -42,7 +46,8 @@ typedef struct connection_status_t {
|
||||||
unsigned int decryptin: 1; /* 1 if we have to decrypt incoming traffic */
|
unsigned int decryptin: 1; /* 1 if we have to decrypt incoming traffic */
|
||||||
unsigned int mst: 1; /* 1 if this connection is part of a minimum spanning tree */
|
unsigned int mst: 1; /* 1 if this connection is part of a minimum spanning tree */
|
||||||
unsigned int proxy_passed: 1; /* 1 if we are connecting via a proxy and we have finished talking with it */
|
unsigned int proxy_passed: 1; /* 1 if we are connecting via a proxy and we have finished talking with it */
|
||||||
unsigned int unused: 22;
|
unsigned int tarpit: 1; /* 1 if the connection should be added to the tarpit */
|
||||||
|
unsigned int unused: 21;
|
||||||
} connection_status_t;
|
} connection_status_t;
|
||||||
|
|
||||||
#include "edge.h"
|
#include "edge.h"
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,8 @@ static bool setup_device(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void close_device(void) {
|
static void close_device(void) {
|
||||||
|
free(device);
|
||||||
|
free(iface);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool read_packet(vpn_packet_t *packet) {
|
static bool read_packet(vpn_packet_t *packet) {
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ void expire_events(void) {
|
||||||
time_t diff;
|
time_t diff;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Make all events appear expired by substracting the difference between
|
* Make all events appear expired by subtracting the difference between
|
||||||
* the expiration time of the last event and the current time.
|
* the expiration time of the last event and the current time.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
* fake library for ssh
|
* fake library for ssh
|
||||||
*
|
*
|
||||||
* This file includes getaddrinfo(), freeaddrinfo() and gai_strerror().
|
* This file includes getaddrinfo(), freeaddrinfo() and gai_strerror().
|
||||||
* These funtions are defined in rfc2133.
|
* These functions are defined in rfc2133.
|
||||||
*
|
*
|
||||||
* But these functions are not implemented correctly. The minimum subset
|
* But these functions are not implemented correctly. The minimum subset
|
||||||
* is implemented for ssh use only. For exapmle, this routine assumes
|
* is implemented for ssh use only. For example, this routine assumes
|
||||||
* that ai_family is AF_INET. Don't use it for another purpose.
|
* that ai_family is AF_INET. Don't use it for another purpose.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
* fake library for ssh
|
* fake library for ssh
|
||||||
*
|
*
|
||||||
* This file includes getnameinfo().
|
* This file includes getnameinfo().
|
||||||
* These funtions are defined in rfc2133.
|
* These functions are defined in rfc2133.
|
||||||
*
|
*
|
||||||
* But these functions are not implemented correctly. The minimum subset
|
* But these functions are not implemented correctly. The minimum subset
|
||||||
* is implemented for ssh use only. For exapmle, this routine assumes
|
* is implemented for ssh use only. For example, this routine assumes
|
||||||
* that ai_family is AF_INET. Don't use it for another purpose.
|
* that ai_family is AF_INET. Don't use it for another purpose.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
||||||
26
src/getopt.c
26
src/getopt.c
|
|
@ -34,7 +34,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
#include "../config.h"
|
#include "../config.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined (STDC) || !STDC
|
#if !defined (__STDC__) || !__STDC__
|
||||||
/* This is a separate conditional since some stdc systems
|
/* This is a separate conditional since some stdc systems
|
||||||
reject `defined (const)'. */
|
reject `defined (const)'. */
|
||||||
#ifndef const
|
#ifndef const
|
||||||
|
|
@ -57,7 +57,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
it is simpler to just do this in the source for each such file. */
|
it is simpler to just do this in the source for each such file. */
|
||||||
|
|
||||||
#define GETOPT_INTERFACE_VERSION 2
|
#define GETOPT_INTERFACE_VERSION 2
|
||||||
#if !defined (_LIBC) && defined (GLIBC) && GLIBC >= 2
|
#if !defined (_LIBC) && defined (__GLIBC__) && __GLIBC__ >= 2
|
||||||
#include <gnu-versions.h>
|
#include <gnu-versions.h>
|
||||||
#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
|
#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
|
||||||
#define ELIDE_CODE
|
#define ELIDE_CODE
|
||||||
|
|
@ -68,8 +68,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
|
||||||
|
|
||||||
/* This needs to come after some library #include
|
/* This needs to come after some library #include
|
||||||
to get GNU_LIBRARY defined. */
|
to get __GNU_LIBRARY__ defined. */
|
||||||
#ifdef GNU_LIBRARY
|
#ifdef __GNU_LIBRARY__
|
||||||
/* Don't include stdlib.h for non-GNU C libraries because some of them
|
/* Don't include stdlib.h for non-GNU C libraries because some of them
|
||||||
contain conflicting prototypes for getopt. */
|
contain conflicting prototypes for getopt. */
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
@ -83,7 +83,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined (WIN32) && !defined (CYGWIN32)
|
#if defined (WIN32) && !defined (__CYGWIN32__)
|
||||||
/* It's not Unix, really. See? Capital letters. */
|
/* It's not Unix, really. See? Capital letters. */
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#define getpid() GetCurrentProcessId()
|
#define getpid() GetCurrentProcessId()
|
||||||
|
|
@ -190,7 +190,7 @@ static enum {
|
||||||
/* Value of POSIXLY_CORRECT environment variable. */
|
/* Value of POSIXLY_CORRECT environment variable. */
|
||||||
static char *posixly_correct;
|
static char *posixly_correct;
|
||||||
|
|
||||||
#ifdef GNU_LIBRARY
|
#ifdef __GNU_LIBRARY__
|
||||||
/* We want to avoid inclusion of string.h with non-GNU libraries
|
/* We want to avoid inclusion of string.h with non-GNU libraries
|
||||||
because there are many ways it can cause trouble.
|
because there are many ways it can cause trouble.
|
||||||
On some systems, it contains special magic macros that don't work
|
On some systems, it contains special magic macros that don't work
|
||||||
|
|
@ -222,17 +222,17 @@ int chr;
|
||||||
|
|
||||||
/* If using GCC, we can safely declare strlen this way.
|
/* If using GCC, we can safely declare strlen this way.
|
||||||
If not using GCC, it is ok not to declare it. */
|
If not using GCC, it is ok not to declare it. */
|
||||||
#ifdef GNUC
|
#ifdef __GNUC__
|
||||||
/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h.
|
/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h.
|
||||||
That was relevant to code that was here before. */
|
That was relevant to code that was here before. */
|
||||||
#if !defined (STDC) || !STDC
|
#if !defined (__STDC__) || !__STDC__
|
||||||
/* gcc with -traditional declares the built-in strlen to return int,
|
/* gcc with -traditional declares the built-in strlen to return int,
|
||||||
and has done so at least since version 2.4.5. -- rms. */
|
and has done so at least since version 2.4.5. -- rms. */
|
||||||
extern int strlen(const char *);
|
extern int strlen(const char *);
|
||||||
#endif /* not STDC */
|
#endif /* not __STDC__ */
|
||||||
#endif /* GNUC */
|
#endif /* __GNUC__ */
|
||||||
|
|
||||||
#endif /* not GNU_LIBRARY */
|
#endif /* not __GNU_LIBRARY__ */
|
||||||
|
|
||||||
/* Handle permutation of arguments. */
|
/* Handle permutation of arguments. */
|
||||||
|
|
||||||
|
|
@ -291,7 +291,7 @@ text_set_element(libc_subinit, store_args_and_env);
|
||||||
`first_nonopt' and `last_nonopt' are relocated so that they describe
|
`first_nonopt' and `last_nonopt' are relocated so that they describe
|
||||||
the new indices of the non-options in ARGV after they are moved. */
|
the new indices of the non-options in ARGV after they are moved. */
|
||||||
|
|
||||||
#if defined (STDC) && STDC
|
#if defined (__STDC__) && __STDC__
|
||||||
static void exchange(char **);
|
static void exchange(char **);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -374,7 +374,7 @@ char **argv;
|
||||||
|
|
||||||
/* Initialize the internal data when the first call is made. */
|
/* Initialize the internal data when the first call is made. */
|
||||||
|
|
||||||
#if defined (STDC) && STDC
|
#if defined (__STDC__) && __STDC__
|
||||||
static const char *_getopt_initialize(int, char *const *, const char *);
|
static const char *_getopt_initialize(int, char *const *, const char *);
|
||||||
#endif
|
#endif
|
||||||
static const char *
|
static const char *
|
||||||
|
|
|
||||||
14
src/getopt.h
14
src/getopt.h
|
|
@ -79,7 +79,7 @@ extern "C" {
|
||||||
returns the contents of the `val' field. */
|
returns the contents of the `val' field. */
|
||||||
|
|
||||||
struct option {
|
struct option {
|
||||||
#if defined (STDC) && STDC
|
#if defined (__STDC__) && __STDC__
|
||||||
const char *name;
|
const char *name;
|
||||||
#else
|
#else
|
||||||
char *name;
|
char *name;
|
||||||
|
|
@ -97,15 +97,15 @@ extern "C" {
|
||||||
#define required_argument 1
|
#define required_argument 1
|
||||||
#define optional_argument 2
|
#define optional_argument 2
|
||||||
|
|
||||||
#if defined (STDC) && STDC
|
#if defined (__STDC__) && __STDC__
|
||||||
#ifdef GNU_LIBRARY
|
#ifdef __GNU_LIBRARY__
|
||||||
/* Many other libraries have conflicting prototypes for getopt, with
|
/* Many other libraries have conflicting prototypes for getopt, with
|
||||||
differences in the consts, in stdlib.h. To avoid compilation
|
differences in the consts, in stdlib.h. To avoid compilation
|
||||||
errors, only prototype getopt for the GNU C library. */
|
errors, only prototype getopt for the GNU C library. */
|
||||||
extern int getopt(int argc, char *const *argv, const char *shortopts);
|
extern int getopt(int argc, char *const *argv, const char *shortopts);
|
||||||
#else /* not GNU_LIBRARY */
|
#else /* not __GNU_LIBRARY__ */
|
||||||
extern int getopt();
|
extern int getopt();
|
||||||
#endif /* GNU_LIBRARY */
|
#endif /* __GNU_LIBRARY__ */
|
||||||
extern int getopt_long(int argc, char *const *argv, const char *shortopts,
|
extern int getopt_long(int argc, char *const *argv, const char *shortopts,
|
||||||
const struct option *longopts, int *longind);
|
const struct option *longopts, int *longind);
|
||||||
extern int getopt_long_only(int argc, char *const *argv,
|
extern int getopt_long_only(int argc, char *const *argv,
|
||||||
|
|
@ -117,13 +117,13 @@ extern "C" {
|
||||||
const char *shortopts,
|
const char *shortopts,
|
||||||
const struct option *longopts, int *longind,
|
const struct option *longopts, int *longind,
|
||||||
int long_only);
|
int long_only);
|
||||||
#else /* not STDC */
|
#else /* not __STDC__ */
|
||||||
extern int getopt();
|
extern int getopt();
|
||||||
extern int getopt_long();
|
extern int getopt_long();
|
||||||
extern int getopt_long_only();
|
extern int getopt_long_only();
|
||||||
|
|
||||||
extern int _getopt_internal();
|
extern int _getopt_internal();
|
||||||
#endif /* STDC */
|
#endif /* __STDC__ */
|
||||||
|
|
||||||
#ifdef cplusplus
|
#ifdef cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
|
||||||
#include "getopt.h"
|
#include "getopt.h"
|
||||||
|
|
||||||
#if !defined (STDC) || !STDC
|
#if !defined (__STDC__) || !__STDC__
|
||||||
/* This is a separate conditional since some stdc systems
|
/* This is a separate conditional since some stdc systems
|
||||||
reject `defined (const)'. */
|
reject `defined (const)'. */
|
||||||
#ifndef const
|
#ifndef const
|
||||||
|
|
@ -44,7 +44,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
it is simpler to just do this in the source for each such file. */
|
it is simpler to just do this in the source for each such file. */
|
||||||
|
|
||||||
#define GETOPT_INTERFACE_VERSION 2
|
#define GETOPT_INTERFACE_VERSION 2
|
||||||
#if !defined (_LIBC) && defined (GLIBC) && GLIBC >= 2
|
#if !defined (_LIBC) && defined (__GLIBC__) && __GLIBC__ >= 2
|
||||||
#include <gnu-versions.h>
|
#include <gnu-versions.h>
|
||||||
#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
|
#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
|
||||||
#define ELIDE_CODE
|
#define ELIDE_CODE
|
||||||
|
|
@ -55,8 +55,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
|
||||||
|
|
||||||
/* This needs to come after some library #include
|
/* This needs to come after some library #include
|
||||||
to get GNU_LIBRARY defined. */
|
to get __GNU_LIBRARY__ defined. */
|
||||||
#ifdef GNU_LIBRARY
|
#ifdef __GNU_LIBRARY__
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
||||||
10
src/graph.c
10
src/graph.c
|
|
@ -274,9 +274,9 @@ static void sssp_bfs(void) {
|
||||||
n->mtuevent = NULL;
|
n->mtuevent = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
xasprintf(&envp[0], "NETNAME=%s", netname ? : "");
|
xasprintf(&envp[0], "NETNAME=%s", netname ? netname : "");
|
||||||
xasprintf(&envp[1], "DEVICE=%s", device ? : "");
|
xasprintf(&envp[1], "DEVICE=%s", device ? device : "");
|
||||||
xasprintf(&envp[2], "INTERFACE=%s", iface ? : "");
|
xasprintf(&envp[2], "INTERFACE=%s", iface ? iface : "");
|
||||||
xasprintf(&envp[3], "NODE=%s", n->name);
|
xasprintf(&envp[3], "NODE=%s", n->name);
|
||||||
sockaddr2str(&n->address, &address, &port);
|
sockaddr2str(&n->address, &address, &port);
|
||||||
xasprintf(&envp[4], "REMOTEADDRESS=%s", address);
|
xasprintf(&envp[4], "REMOTEADDRESS=%s", address);
|
||||||
|
|
@ -360,13 +360,13 @@ void dump_graph(void) {
|
||||||
/* dump all nodes first */
|
/* dump all nodes first */
|
||||||
for(node = node_tree->head; node; node = node->next) {
|
for(node = node_tree->head; node; node = node->next) {
|
||||||
n = node->data;
|
n = node->data;
|
||||||
fprintf(file, " %s [label = \"%s\"];\n", n->name, n->name);
|
fprintf(file, " \"%s\" [label = \"%s\"];\n", n->name, n->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* now dump all edges */
|
/* now dump all edges */
|
||||||
for(node = edge_weight_tree->head; node; node = node->next) {
|
for(node = edge_weight_tree->head; node; node = node->next) {
|
||||||
e = node->data;
|
e = node->data;
|
||||||
fprintf(file, " %s -> %s;\n", e->from->name, e->to->name);
|
fprintf(file, " \"%s\" -> \"%s\";\n", e->from->name, e->to->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(file, "}\n");
|
fprintf(file, "}\n");
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@
|
||||||
|
|
||||||
#ifndef HAVE_STRUCT_IP
|
#ifndef HAVE_STRUCT_IP
|
||||||
struct ip {
|
struct ip {
|
||||||
#if BYTE_ORDER == LITTLE_ENDIAN
|
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
||||||
unsigned int ip_hl: 4;
|
unsigned int ip_hl: 4;
|
||||||
unsigned int ip_v: 4;
|
unsigned int ip_v: 4;
|
||||||
#else
|
#else
|
||||||
|
|
|
||||||
|
|
@ -167,6 +167,5 @@ void closelogger(void) {
|
||||||
case LOGMODE_NULL:
|
case LOGMODE_NULL:
|
||||||
case LOGMODE_STDERR:
|
case LOGMODE_STDERR:
|
||||||
break;
|
break;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
23
src/net.c
23
src/net.c
|
|
@ -180,6 +180,22 @@ static int build_fdset(fd_set *readset, fd_set *writeset) {
|
||||||
return max;
|
return max;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Put a misbehaving connection in the tarpit */
|
||||||
|
void tarpit(int fd) {
|
||||||
|
static int pits[10] = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
|
||||||
|
static int next_pit = 0;
|
||||||
|
|
||||||
|
if(pits[next_pit] != -1) {
|
||||||
|
closesocket(pits[next_pit]);
|
||||||
|
}
|
||||||
|
|
||||||
|
pits[next_pit++] = fd;
|
||||||
|
|
||||||
|
if(next_pit >= (int)(sizeof pits / sizeof pits[0])) {
|
||||||
|
next_pit = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Terminate a connection:
|
Terminate a connection:
|
||||||
- Close the socket
|
- Close the socket
|
||||||
|
|
@ -203,8 +219,12 @@ void terminate_connection(connection_t *c, bool report) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if(c->socket) {
|
if(c->socket) {
|
||||||
|
if(c->status.tarpit) {
|
||||||
|
tarpit(c->socket);
|
||||||
|
} else {
|
||||||
closesocket(c->socket);
|
closesocket(c->socket);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(c->edge) {
|
if(c->edge) {
|
||||||
if(!c->node) {
|
if(!c->node) {
|
||||||
|
|
@ -218,6 +238,7 @@ void terminate_connection(connection_t *c, bool report) {
|
||||||
}
|
}
|
||||||
|
|
||||||
edge_del(c->edge);
|
edge_del(c->edge);
|
||||||
|
c->edge = NULL;
|
||||||
|
|
||||||
/* Run MST and SSSP algorithms */
|
/* Run MST and SSSP algorithms */
|
||||||
|
|
||||||
|
|
@ -298,6 +319,7 @@ static void check_dead_connections(void) {
|
||||||
closesocket(c->socket);
|
closesocket(c->socket);
|
||||||
do_outgoing_connection(c);
|
do_outgoing_connection(c);
|
||||||
} else {
|
} else {
|
||||||
|
c->status.tarpit = true;
|
||||||
terminate_connection(c, false);
|
terminate_connection(c, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -379,6 +401,7 @@ static void check_network_activity(fd_set *readset, fd_set *writeset) {
|
||||||
|
|
||||||
if(FD_ISSET(c->socket, readset)) {
|
if(FD_ISSET(c->socket, readset)) {
|
||||||
if(!receive_meta(c)) {
|
if(!receive_meta(c)) {
|
||||||
|
c->status.tarpit = true;
|
||||||
terminate_connection(c, c->status.active);
|
terminate_connection(c, c->status.active);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -150,6 +150,7 @@ extern void flush_queue(struct node_t *n);
|
||||||
extern bool read_rsa_public_key(struct connection_t *c);
|
extern bool read_rsa_public_key(struct connection_t *c);
|
||||||
extern void send_mtu_probe(struct node_t *n);
|
extern void send_mtu_probe(struct node_t *n);
|
||||||
extern void load_all_subnets(void);
|
extern void load_all_subnets(void);
|
||||||
|
extern void tarpit(int fd);
|
||||||
|
|
||||||
#ifndef HAVE_MINGW
|
#ifndef HAVE_MINGW
|
||||||
#define closesocket(s) close(s)
|
#define closesocket(s) close(s)
|
||||||
|
|
|
||||||
|
|
@ -580,18 +580,18 @@ static void send_udppacket(node_t *n, vpn_packet_t *origpkt) {
|
||||||
listen_socket[n->sock].priority = origpriority;
|
listen_socket[n->sock].priority = origpriority;
|
||||||
|
|
||||||
switch(listen_socket[n->sock].sa.sa.sa_family) {
|
switch(listen_socket[n->sock].sa.sa.sa_family) {
|
||||||
#if defined(SOL_IP) && defined(IP_TOS)
|
#if defined(IP_TOS)
|
||||||
|
|
||||||
case AF_INET:
|
case AF_INET:
|
||||||
ifdebug(TRAFFIC) logger(LOG_DEBUG, "Setting IPv4 outgoing packet priority to %d", origpriority);
|
ifdebug(TRAFFIC) logger(LOG_DEBUG, "Setting IPv4 outgoing packet priority to %d", origpriority);
|
||||||
|
|
||||||
if(setsockopt(listen_socket[n->sock].udp, SOL_IP, IP_TOS, (void *)&origpriority, sizeof(origpriority))) { /* SO_PRIORITY doesn't seem to work */
|
if(setsockopt(listen_socket[n->sock].udp, IPPROTO_IP, IP_TOS, (void *)&origpriority, sizeof(origpriority))) { /* SO_PRIORITY doesn't seem to work */
|
||||||
logger(LOG_ERR, "System call `%s' failed: %s", "setsockopt", strerror(errno));
|
logger(LOG_ERR, "System call `%s' failed: %s", "setsockopt", strerror(errno));
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
#if defined(IPPROTO_IPV6) && defined(IPV6_TCLASS)
|
#if defined(IPV6_TCLASS)
|
||||||
|
|
||||||
case AF_INET6:
|
case AF_INET6:
|
||||||
ifdebug(TRAFFIC) logger(LOG_DEBUG, "Setting IPv6 outgoing packet priority to %d", origpriority);
|
ifdebug(TRAFFIC) logger(LOG_DEBUG, "Setting IPv6 outgoing packet priority to %d", origpriority);
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@
|
||||||
#include <openssl/rand.h>
|
#include <openssl/rand.h>
|
||||||
#include <openssl/err.h>
|
#include <openssl/err.h>
|
||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
|
#include <openssl/bn.h>
|
||||||
|
|
||||||
#include "avl_tree.h"
|
#include "avl_tree.h"
|
||||||
#include "conf.h"
|
#include "conf.h"
|
||||||
|
|
@ -388,8 +389,8 @@ static bool setup_myself(void) {
|
||||||
char *address = NULL;
|
char *address = NULL;
|
||||||
char *proxy = NULL;
|
char *proxy = NULL;
|
||||||
char *space;
|
char *space;
|
||||||
char *envp[5] = {};
|
char *envp[5] = {0};
|
||||||
struct addrinfo *ai, *aip, hint = {};
|
struct addrinfo *ai, *aip, hint = {0};
|
||||||
bool choice;
|
bool choice;
|
||||||
int i, err;
|
int i, err;
|
||||||
int replaywin_int;
|
int replaywin_int;
|
||||||
|
|
@ -852,9 +853,9 @@ static bool setup_myself(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Run tinc-up script to further initialize the tap interface */
|
/* Run tinc-up script to further initialize the tap interface */
|
||||||
xasprintf(&envp[0], "NETNAME=%s", netname ? : "");
|
xasprintf(&envp[0], "NETNAME=%s", netname ? netname : "");
|
||||||
xasprintf(&envp[1], "DEVICE=%s", device ? : "");
|
xasprintf(&envp[1], "DEVICE=%s", device ? device : "");
|
||||||
xasprintf(&envp[2], "INTERFACE=%s", iface ? : "");
|
xasprintf(&envp[2], "INTERFACE=%s", iface ? iface : "");
|
||||||
xasprintf(&envp[3], "NAME=%s", myself->name);
|
xasprintf(&envp[3], "NAME=%s", myself->name);
|
||||||
|
|
||||||
#ifdef HAVE_MINGW
|
#ifdef HAVE_MINGW
|
||||||
|
|
@ -1068,7 +1069,7 @@ bool setup_network(void) {
|
||||||
void close_network_connections(void) {
|
void close_network_connections(void) {
|
||||||
avl_node_t *node, *next;
|
avl_node_t *node, *next;
|
||||||
connection_t *c;
|
connection_t *c;
|
||||||
char *envp[5] = {};
|
char *envp[5] = {0};
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for(node = connection_tree->head; node; node = next) {
|
for(node = connection_tree->head; node; node = next) {
|
||||||
|
|
@ -1099,9 +1100,9 @@ void close_network_connections(void) {
|
||||||
close(listen_socket[i].udp);
|
close(listen_socket[i].udp);
|
||||||
}
|
}
|
||||||
|
|
||||||
xasprintf(&envp[0], "NETNAME=%s", netname ? : "");
|
xasprintf(&envp[0], "NETNAME=%s", netname ? netname : "");
|
||||||
xasprintf(&envp[1], "DEVICE=%s", device ? : "");
|
xasprintf(&envp[1], "DEVICE=%s", device ? device : "");
|
||||||
xasprintf(&envp[2], "INTERFACE=%s", iface ? : "");
|
xasprintf(&envp[2], "INTERFACE=%s", iface ? iface : "");
|
||||||
xasprintf(&envp[3], "NAME=%s", myself->name);
|
xasprintf(&envp[3], "NAME=%s", myself->name);
|
||||||
|
|
||||||
exit_requests();
|
exit_requests();
|
||||||
|
|
|
||||||
|
|
@ -77,12 +77,12 @@ static void configure_tcp(connection_t *c) {
|
||||||
setsockopt(c->socket, SOL_TCP, TCP_NODELAY, (void *)&option, sizeof(option));
|
setsockopt(c->socket, SOL_TCP, TCP_NODELAY, (void *)&option, sizeof(option));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(SOL_IP) && defined(IP_TOS) && defined(IPTOS_LOWDELAY)
|
#if defined(IP_TOS) && defined(IPTOS_LOWDELAY)
|
||||||
option = IPTOS_LOWDELAY;
|
option = IPTOS_LOWDELAY;
|
||||||
setsockopt(c->socket, SOL_IP, IP_TOS, (void *)&option, sizeof(option));
|
setsockopt(c->socket, IPPROTO_IP, IP_TOS, (void *)&option, sizeof(option));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(IPPROTO_IPV6) && defined(IPV6_TCLASS) && defined(IPTOS_LOWDELAY)
|
#if defined(IPV6_TCLASS) && defined(IPTOS_LOWDELAY)
|
||||||
option = IPTOS_LOWDELAY;
|
option = IPTOS_LOWDELAY;
|
||||||
setsockopt(c->socket, IPPROTO_IPV6, IPV6_TCLASS, (void *)&option, sizeof(option));
|
setsockopt(c->socket, IPPROTO_IPV6, IPV6_TCLASS, (void *)&option, sizeof(option));
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -142,12 +142,14 @@ int setup_listen_socket(const sockaddr_t *sa) {
|
||||||
option = 1;
|
option = 1;
|
||||||
setsockopt(nfd, SOL_SOCKET, SO_REUSEADDR, (void *)&option, sizeof(option));
|
setsockopt(nfd, SOL_SOCKET, SO_REUSEADDR, (void *)&option, sizeof(option));
|
||||||
|
|
||||||
#if defined(SOL_IPV6) && defined(IPV6_V6ONLY)
|
#if defined(IPV6_V6ONLY)
|
||||||
|
|
||||||
if(sa->sa.sa_family == AF_INET6) {
|
if(sa->sa.sa_family == AF_INET6) {
|
||||||
setsockopt(nfd, SOL_IPV6, IPV6_V6ONLY, (void *)&option, sizeof(option));
|
setsockopt(nfd, IPPROTO_IPV6, IPV6_V6ONLY, (void *)&option, sizeof(option));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
#warning IPV6_V6ONLY not defined
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(get_config_string(lookup_config(config_tree, "BindToInterface"), &iface)) {
|
if(get_config_string(lookup_config(config_tree, "BindToInterface"), &iface)) {
|
||||||
|
|
@ -238,7 +240,7 @@ int setup_vpn_in_socket(const sockaddr_t *sa) {
|
||||||
logger(LOG_WARNING, "Can't set UDP SO_SNDBUF to %i: %s", udp_sndbuf, strerror(errno));
|
logger(LOG_WARNING, "Can't set UDP SO_SNDBUF to %i: %s", udp_sndbuf, strerror(errno));
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(IPPROTO_IPV6) && defined(IPV6_V6ONLY)
|
#if defined(IPV6_V6ONLY)
|
||||||
|
|
||||||
if(sa->sa.sa_family == AF_INET6) {
|
if(sa->sa.sa_family == AF_INET6) {
|
||||||
setsockopt(nfd, IPPROTO_IPV6, IPV6_V6ONLY, (void *)&option, sizeof(option));
|
setsockopt(nfd, IPPROTO_IPV6, IPV6_V6ONLY, (void *)&option, sizeof(option));
|
||||||
|
|
@ -250,14 +252,14 @@ int setup_vpn_in_socket(const sockaddr_t *sa) {
|
||||||
#define IP_DONTFRAGMENT IP_DONTFRAG
|
#define IP_DONTFRAGMENT IP_DONTFRAG
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(SOL_IP) && defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_DO)
|
#if defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_DO)
|
||||||
|
|
||||||
if(myself->options & OPTION_PMTU_DISCOVERY) {
|
if(myself->options & OPTION_PMTU_DISCOVERY) {
|
||||||
option = IP_PMTUDISC_DO;
|
option = IP_PMTUDISC_DO;
|
||||||
setsockopt(nfd, SOL_IP, IP_MTU_DISCOVER, (void *)&option, sizeof(option));
|
setsockopt(nfd, IPPROTO_IP, IP_MTU_DISCOVER, (void *)&option, sizeof(option));
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif defined(IPPROTO_IP) && defined(IP_DONTFRAGMENT)
|
#elif defined(IP_DONTFRAGMENT)
|
||||||
|
|
||||||
if(myself->options & OPTION_PMTU_DISCOVERY) {
|
if(myself->options & OPTION_PMTU_DISCOVERY) {
|
||||||
option = 1;
|
option = 1;
|
||||||
|
|
@ -266,14 +268,14 @@ int setup_vpn_in_socket(const sockaddr_t *sa) {
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(SOL_IPV6) && defined(IPV6_MTU_DISCOVER) && defined(IPV6_PMTUDISC_DO)
|
#if defined(IPV6_MTU_DISCOVER) && defined(IPV6_PMTUDISC_DO)
|
||||||
|
|
||||||
if(myself->options & OPTION_PMTU_DISCOVERY) {
|
if(myself->options & OPTION_PMTU_DISCOVERY) {
|
||||||
option = IPV6_PMTUDISC_DO;
|
option = IPV6_PMTUDISC_DO;
|
||||||
setsockopt(nfd, SOL_IPV6, IPV6_MTU_DISCOVER, (void *)&option, sizeof(option));
|
setsockopt(nfd, IPPROTO_IPV6, IPV6_MTU_DISCOVER, (void *)&option, sizeof(option));
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif defined(IPPROTO_IPV6) && defined(IPV6_DONTFRAG)
|
#elif defined(IPV6_DONTFRAG)
|
||||||
|
|
||||||
if(myself->options & OPTION_PMTU_DISCOVERY) {
|
if(myself->options & OPTION_PMTU_DISCOVERY) {
|
||||||
option = 1;
|
option = 1;
|
||||||
|
|
@ -509,11 +511,11 @@ connect:
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(proxytype != PROXY_EXEC) {
|
if(proxytype != PROXY_EXEC) {
|
||||||
#if defined(SOL_IPV6) && defined(IPV6_V6ONLY)
|
#if defined(IPV6_V6ONLY)
|
||||||
int option = 1;
|
int option = 1;
|
||||||
|
|
||||||
if(c->address.sa.sa_family == AF_INET6) {
|
if(c->address.sa.sa_family == AF_INET6) {
|
||||||
setsockopt(c->socket, SOL_IPV6, IPV6_V6ONLY, (void *)&option, sizeof(option));
|
setsockopt(c->socket, IPPROTO_IPV6, IPV6_V6ONLY, (void *)&option, sizeof(option));
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -637,6 +639,9 @@ void setup_outgoing_connection(outgoing_t *outgoing) {
|
||||||
new connection
|
new connection
|
||||||
*/
|
*/
|
||||||
bool handle_new_meta_connection(int sock) {
|
bool handle_new_meta_connection(int sock) {
|
||||||
|
static const int max_accept_burst = 10;
|
||||||
|
static int last_accept_burst;
|
||||||
|
static int last_accept_time;
|
||||||
connection_t *c;
|
connection_t *c;
|
||||||
sockaddr_t sa;
|
sockaddr_t sa;
|
||||||
int fd;
|
int fd;
|
||||||
|
|
@ -649,6 +654,22 @@ bool handle_new_meta_connection(int sock) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(last_accept_time == now) {
|
||||||
|
last_accept_burst++;
|
||||||
|
|
||||||
|
if(last_accept_burst >= max_accept_burst) {
|
||||||
|
if(last_accept_burst == max_accept_burst) {
|
||||||
|
ifdebug(CONNECTIONS) logger(LOG_WARNING, "Throttling incoming connections");
|
||||||
|
}
|
||||||
|
|
||||||
|
tarpit(fd);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
last_accept_burst = 0;
|
||||||
|
last_accept_time = now;
|
||||||
|
}
|
||||||
|
|
||||||
sockaddrunmap(&sa);
|
sockaddrunmap(&sa);
|
||||||
|
|
||||||
c = new_connection();
|
c = new_connection();
|
||||||
|
|
@ -670,7 +691,6 @@ bool handle_new_meta_connection(int sock) {
|
||||||
connection_add(c);
|
connection_add(c);
|
||||||
|
|
||||||
c->allow_request = ID;
|
c->allow_request = ID;
|
||||||
send_id(c);
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ bool hostnames = false;
|
||||||
Return NULL on failure.
|
Return NULL on failure.
|
||||||
*/
|
*/
|
||||||
struct addrinfo *str2addrinfo(const char *address, const char *service, int socktype) {
|
struct addrinfo *str2addrinfo(const char *address, const char *service, int socktype) {
|
||||||
struct addrinfo *ai = NULL, hint = {};
|
struct addrinfo *ai = NULL, hint = {0};
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
hint.ai_family = addressfamily;
|
hint.ai_family = addressfamily;
|
||||||
|
|
@ -55,7 +55,7 @@ struct addrinfo *str2addrinfo(const char *address, const char *service, int sock
|
||||||
}
|
}
|
||||||
|
|
||||||
sockaddr_t str2sockaddr(const char *address, const char *port) {
|
sockaddr_t str2sockaddr(const char *address, const char *port) {
|
||||||
struct addrinfo *ai = NULL, hint = {};
|
struct addrinfo *ai = NULL, hint = {0};
|
||||||
sockaddr_t result;
|
sockaddr_t result;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -140,7 +140,7 @@ void node_del(node_t *n) {
|
||||||
}
|
}
|
||||||
|
|
||||||
node_t *lookup_node(char *name) {
|
node_t *lookup_node(char *name) {
|
||||||
node_t n = {};
|
node_t n = {0};
|
||||||
|
|
||||||
n.name = name;
|
n.name = name;
|
||||||
|
|
||||||
|
|
@ -148,7 +148,7 @@ node_t *lookup_node(char *name) {
|
||||||
}
|
}
|
||||||
|
|
||||||
node_t *lookup_node_udp(const sockaddr_t *sa) {
|
node_t *lookup_node_udp(const sockaddr_t *sa) {
|
||||||
node_t n = {};
|
node_t n = {0};
|
||||||
|
|
||||||
n.address = *sa;
|
n.address = *sa;
|
||||||
n.name = NULL;
|
n.name = NULL;
|
||||||
|
|
|
||||||
|
|
@ -193,7 +193,7 @@ void exit_requests(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool seen_request(char *request) {
|
bool seen_request(char *request) {
|
||||||
past_request_t *new, p = {};
|
past_request_t *new, p = {0};
|
||||||
|
|
||||||
p.request = request;
|
p.request = request;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@ bool id_h(connection_t *c) {
|
||||||
|
|
||||||
/* Check if identity is a valid name */
|
/* Check if identity is a valid name */
|
||||||
|
|
||||||
if(!check_id(name)) {
|
if(!check_id(name) || !strcmp(name, myself->name)) {
|
||||||
logger(LOG_ERR, "Got bad %s from %s (%s): %s", "ID", c->name,
|
logger(LOG_ERR, "Got bad %s from %s (%s): %s", "ID", c->name,
|
||||||
c->hostname, "invalid name");
|
c->hostname, "invalid name");
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -96,6 +96,11 @@ bool id_h(connection_t *c) {
|
||||||
}
|
}
|
||||||
|
|
||||||
c->allow_request = ACK;
|
c->allow_request = ACK;
|
||||||
|
|
||||||
|
if(!c->outgoing) {
|
||||||
|
send_id(c);
|
||||||
|
}
|
||||||
|
|
||||||
return send_ack(c);
|
return send_ack(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -115,6 +120,10 @@ bool id_h(connection_t *c) {
|
||||||
|
|
||||||
c->allow_request = METAKEY;
|
c->allow_request = METAKEY;
|
||||||
|
|
||||||
|
if(!c->outgoing) {
|
||||||
|
send_id(c);
|
||||||
|
}
|
||||||
|
|
||||||
return send_metakey(c);
|
return send_metakey(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -301,7 +310,8 @@ bool metakey_h(connection_t *c) {
|
||||||
c->inbudget = byte_budget(c->incipher);
|
c->inbudget = byte_budget(c->incipher);
|
||||||
c->status.decryptin = true;
|
c->status.decryptin = true;
|
||||||
} else {
|
} else {
|
||||||
c->incipher = NULL;
|
logger(LOG_ERR, "%s (%s) uses null cipher!", c->name, c->hostname);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
c->inmaclength = maclength;
|
c->inmaclength = maclength;
|
||||||
|
|
@ -319,7 +329,8 @@ bool metakey_h(connection_t *c) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
c->indigest = NULL;
|
logger(LOG_ERR, "%s (%s) uses null digest!", c->name, c->hostname);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
c->incompression = compression;
|
c->incompression = compression;
|
||||||
|
|
@ -393,7 +404,11 @@ bool challenge_h(connection_t *c) {
|
||||||
|
|
||||||
/* Rest is done by send_chal_reply() */
|
/* Rest is done by send_chal_reply() */
|
||||||
|
|
||||||
|
if(c->outgoing) {
|
||||||
return send_chal_reply(c);
|
return send_chal_reply(c);
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool send_chal_reply(connection_t *c) {
|
bool send_chal_reply(connection_t *c) {
|
||||||
|
|
@ -495,6 +510,10 @@ bool chal_reply_h(connection_t *c) {
|
||||||
|
|
||||||
c->allow_request = ACK;
|
c->allow_request = ACK;
|
||||||
|
|
||||||
|
if(!c->outgoing) {
|
||||||
|
send_chal_reply(c);
|
||||||
|
}
|
||||||
|
|
||||||
return send_ack(c);
|
return send_ack(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ bool add_edge_h(connection_t *c) {
|
||||||
|
|
||||||
/* Check if names are valid */
|
/* Check if names are valid */
|
||||||
|
|
||||||
if(!check_id(from_name) || !check_id(to_name)) {
|
if(!check_id(from_name) || !check_id(to_name) || !strcmp(from_name, to_name)) {
|
||||||
logger(LOG_ERR, "Got bad %s from %s (%s): %s", "ADD_EDGE", c->name,
|
logger(LOG_ERR, "Got bad %s from %s (%s): %s", "ADD_EDGE", c->name,
|
||||||
c->hostname, "invalid name");
|
c->hostname, "invalid name");
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -197,7 +197,7 @@ bool del_edge_h(connection_t *c) {
|
||||||
|
|
||||||
/* Check if names are valid */
|
/* Check if names are valid */
|
||||||
|
|
||||||
if(!check_id(from_name) || !check_id(to_name)) {
|
if(!check_id(from_name) || !check_id(to_name) || !strcmp(from_name, to_name)) {
|
||||||
logger(LOG_ERR, "Got bad %s from %s (%s): %s", "DEL_EDGE", c->name,
|
logger(LOG_ERR, "Got bad %s from %s (%s): %s", "DEL_EDGE", c->name,
|
||||||
c->hostname, "invalid name");
|
c->hostname, "invalid name");
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -286,6 +286,11 @@ bool ans_key_h(connection_t *c) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if(from->outkeylength != 1) {
|
||||||
|
logger(LOG_ERR, "Node %s (%s) uses wrong keylength!", from->name, from->hostname);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
from->outcipher = NULL;
|
from->outcipher = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ bool send_pong(connection_t *c) {
|
||||||
bool pong_h(connection_t *c) {
|
bool pong_h(connection_t *c) {
|
||||||
c->status.pinged = false;
|
c->status.pinged = false;
|
||||||
|
|
||||||
/* Succesful connection, reset timeout if this is an outgoing connection. */
|
/* Successful connection, reset timeout if this is an outgoing connection. */
|
||||||
|
|
||||||
if(c->outgoing) {
|
if(c->outgoing) {
|
||||||
c->outgoing->timeout = 0;
|
c->outgoing->timeout = 0;
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ bool add_subnet_h(connection_t *c) {
|
||||||
char subnetstr[MAX_STRING_SIZE];
|
char subnetstr[MAX_STRING_SIZE];
|
||||||
char name[MAX_STRING_SIZE];
|
char name[MAX_STRING_SIZE];
|
||||||
node_t *owner;
|
node_t *owner;
|
||||||
subnet_t s = {}, *new, *old;
|
subnet_t s = {0}, *new, *old;
|
||||||
|
|
||||||
if(sscanf(c->buffer, "%*d %*x " MAX_STRING " " MAX_STRING, name, subnetstr) != 2) {
|
if(sscanf(c->buffer, "%*d %*x " MAX_STRING " " MAX_STRING, name, subnetstr) != 2) {
|
||||||
logger(LOG_ERR, "Got bad %s from %s (%s)", "ADD_SUBNET", c->name,
|
logger(LOG_ERR, "Got bad %s from %s (%s)", "ADD_SUBNET", c->name,
|
||||||
|
|
@ -160,7 +160,7 @@ bool del_subnet_h(connection_t *c) {
|
||||||
char subnetstr[MAX_STRING_SIZE];
|
char subnetstr[MAX_STRING_SIZE];
|
||||||
char name[MAX_STRING_SIZE];
|
char name[MAX_STRING_SIZE];
|
||||||
node_t *owner;
|
node_t *owner;
|
||||||
subnet_t s = {}, *find;
|
subnet_t s = {0}, *find;
|
||||||
|
|
||||||
if(sscanf(c->buffer, "%*d %*x " MAX_STRING " " MAX_STRING, name, subnetstr) != 2) {
|
if(sscanf(c->buffer, "%*d %*x " MAX_STRING " " MAX_STRING, name, subnetstr) != 2) {
|
||||||
logger(LOG_ERR, "Got bad %s from %s (%s)", "DEL_SUBNET", c->name,
|
logger(LOG_ERR, "Got bad %s from %s (%s)", "DEL_SUBNET", c->name,
|
||||||
|
|
|
||||||
31
src/route.c
31
src/route.c
|
|
@ -116,8 +116,8 @@ static void swap_mac_addresses(vpn_packet_t *packet) {
|
||||||
/* RFC 792 */
|
/* RFC 792 */
|
||||||
|
|
||||||
static void route_ipv4_unreachable(node_t *source, vpn_packet_t *packet, length_t ether_size, uint8_t type, uint8_t code) {
|
static void route_ipv4_unreachable(node_t *source, vpn_packet_t *packet, length_t ether_size, uint8_t type, uint8_t code) {
|
||||||
struct ip ip = {};
|
struct ip ip = {0};
|
||||||
struct icmp icmp = {};
|
struct icmp icmp = {0};
|
||||||
|
|
||||||
struct in_addr ip_src;
|
struct in_addr ip_src;
|
||||||
struct in_addr ip_dst;
|
struct in_addr ip_dst;
|
||||||
|
|
@ -218,7 +218,7 @@ static void route_ipv4_unreachable(node_t *source, vpn_packet_t *packet, length_
|
||||||
|
|
||||||
static void route_ipv6_unreachable(node_t *source, vpn_packet_t *packet, length_t ether_size, uint8_t type, uint8_t code) {
|
static void route_ipv6_unreachable(node_t *source, vpn_packet_t *packet, length_t ether_size, uint8_t type, uint8_t code) {
|
||||||
struct ip6_hdr ip6;
|
struct ip6_hdr ip6;
|
||||||
struct icmp6_hdr icmp6 = {};
|
struct icmp6_hdr icmp6 = {0};
|
||||||
uint16_t checksum;
|
uint16_t checksum;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
|
|
@ -581,7 +581,7 @@ static void fragment_ipv4_packet(node_t *dest, vpn_packet_t *packet, length_t et
|
||||||
ifdebug(TRAFFIC) logger(LOG_INFO, "Fragmenting packet of %d bytes to %s (%s)", packet->len, dest->name, dest->hostname);
|
ifdebug(TRAFFIC) logger(LOG_INFO, "Fragmenting packet of %d bytes to %s (%s)", packet->len, dest->name, dest->hostname);
|
||||||
|
|
||||||
offset = packet->data + ether_size + ip_size;
|
offset = packet->data + ether_size + ip_size;
|
||||||
maxlen = (dest->mtu - ether_size - ip_size) & ~0x7;
|
maxlen = (MAX(dest->mtu, 590) - ether_size - ip_size) & ~0x7;
|
||||||
ip_off = ntohs(ip.ip_off);
|
ip_off = ntohs(ip.ip_off);
|
||||||
origf = ip_off & ~IP_OFFMASK;
|
origf = ip_off & ~IP_OFFMASK;
|
||||||
ip_off &= IP_OFFMASK;
|
ip_off &= IP_OFFMASK;
|
||||||
|
|
@ -632,11 +632,13 @@ static void route_ipv4_unicast(node_t *source, vpn_packet_t *packet) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!subnet->owner->status.reachable) {
|
if(!subnet->owner->status.reachable) {
|
||||||
return route_ipv4_unreachable(source, packet, ether_size, ICMP_DEST_UNREACH, ICMP_NET_UNREACH);
|
route_ipv4_unreachable(source, packet, ether_size, ICMP_DEST_UNREACH, ICMP_NET_UNREACH);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(forwarding_mode == FMODE_OFF && source != myself && subnet->owner != myself) {
|
if(forwarding_mode == FMODE_OFF && source != myself && subnet->owner != myself) {
|
||||||
return route_ipv4_unreachable(source, packet, ether_size, ICMP_DEST_UNREACH, ICMP_NET_ANO);
|
route_ipv4_unreachable(source, packet, ether_size, ICMP_DEST_UNREACH, ICMP_NET_ANO);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(decrement_ttl && source != myself && subnet->owner != myself)
|
if(decrement_ttl && source != myself && subnet->owner != myself)
|
||||||
|
|
@ -656,7 +658,8 @@ static void route_ipv4_unicast(node_t *source, vpn_packet_t *packet) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if(directonly && subnet->owner != via) {
|
if(directonly && subnet->owner != via) {
|
||||||
return route_ipv4_unreachable(source, packet, ether_size, ICMP_DEST_UNREACH, ICMP_NET_ANO);
|
route_ipv4_unreachable(source, packet, ether_size, ICMP_DEST_UNREACH, ICMP_NET_ANO);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(via && packet->len > MAX(via->mtu, 590) && via != myself) {
|
if(via && packet->len > MAX(via->mtu, 590) && via != myself) {
|
||||||
|
|
@ -723,17 +726,20 @@ static void route_ipv6_unicast(node_t *source, vpn_packet_t *packet) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!subnet->owner->status.reachable) {
|
if(!subnet->owner->status.reachable) {
|
||||||
return route_ipv6_unreachable(source, packet, ether_size, ICMP6_DST_UNREACH, ICMP6_DST_UNREACH_NOROUTE);
|
route_ipv6_unreachable(source, packet, ether_size, ICMP6_DST_UNREACH, ICMP6_DST_UNREACH_NOROUTE);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(forwarding_mode == FMODE_OFF && source != myself && subnet->owner != myself) {
|
if(forwarding_mode == FMODE_OFF && source != myself && subnet->owner != myself) {
|
||||||
return route_ipv6_unreachable(source, packet, ether_size, ICMP6_DST_UNREACH, ICMP6_DST_UNREACH_ADMIN);
|
route_ipv6_unreachable(source, packet, ether_size, ICMP6_DST_UNREACH, ICMP6_DST_UNREACH_ADMIN);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(decrement_ttl && source != myself && subnet->owner != myself)
|
if(decrement_ttl && source != myself && subnet->owner != myself) {
|
||||||
if(!do_decrement_ttl(source, packet)) {
|
if(!do_decrement_ttl(source, packet)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(priorityinheritance) {
|
if(priorityinheritance) {
|
||||||
packet->priority = ((packet->data[14] & 0x0f) << 4) | (packet->data[15] >> 4);
|
packet->priority = ((packet->data[14] & 0x0f) << 4) | (packet->data[15] >> 4);
|
||||||
|
|
@ -747,7 +753,8 @@ static void route_ipv6_unicast(node_t *source, vpn_packet_t *packet) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if(directonly && subnet->owner != via) {
|
if(directonly && subnet->owner != via) {
|
||||||
return route_ipv6_unreachable(source, packet, ether_size, ICMP6_DST_UNREACH, ICMP6_DST_UNREACH_ADMIN);
|
route_ipv6_unreachable(source, packet, ether_size, ICMP6_DST_UNREACH, ICMP6_DST_UNREACH_ADMIN);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(via && packet->len > MAX(via->mtu, 1294) && via != myself) {
|
if(via && packet->len > MAX(via->mtu, 1294) && via != myself) {
|
||||||
|
|
@ -875,7 +882,7 @@ static void route_neighborsol(node_t *source, vpn_packet_t *packet) {
|
||||||
memcpy(packet->data, packet->data + ETH_ALEN, ETH_ALEN); /* copy destination address */
|
memcpy(packet->data, packet->data + ETH_ALEN, ETH_ALEN); /* copy destination address */
|
||||||
packet->data[ETH_ALEN * 2 - 1] ^= 0xFF; /* mangle source address so it looks like it's not from us */
|
packet->data[ETH_ALEN * 2 - 1] ^= 0xFF; /* mangle source address so it looks like it's not from us */
|
||||||
|
|
||||||
ip6.ip6_dst = ip6.ip6_src; /* swap destination and source protocoll address */
|
ip6.ip6_dst = ip6.ip6_src; /* swap destination and source protocol address */
|
||||||
ip6.ip6_src = ns.nd_ns_target;
|
ip6.ip6_src = ns.nd_ns_target;
|
||||||
|
|
||||||
if(has_opt) {
|
if(has_opt) {
|
||||||
|
|
|
||||||
218
src/subnet.c
218
src/subnet.c
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
subnet.c -- handle subnet lookups and lists
|
subnet.c -- handle subnet lookups and lists
|
||||||
Copyright (C) 2000-2014 Guus Sliepen <guus@tinc-vpn.org>,
|
Copyright (C) 2000-2019 Guus Sliepen <guus@tinc-vpn.org>,
|
||||||
2000-2005 Ivo Timmermans
|
2000-2005 Ivo Timmermans
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
|
@ -205,177 +205,162 @@ void subnet_del(node_t *n, subnet_t *subnet) {
|
||||||
/* Ascii representation of subnets */
|
/* Ascii representation of subnets */
|
||||||
|
|
||||||
bool str2net(subnet_t *subnet, const char *subnetstr) {
|
bool str2net(subnet_t *subnet, const char *subnetstr) {
|
||||||
int i, l;
|
char str[1024];
|
||||||
uint16_t x[8];
|
strncpy(str, subnetstr, sizeof(str));
|
||||||
|
str[sizeof(str) - 1] = 0;
|
||||||
|
int consumed;
|
||||||
|
|
||||||
int weight = 10;
|
int weight = 10;
|
||||||
|
char *weight_separator = strchr(str, '#');
|
||||||
|
|
||||||
if(sscanf(subnetstr, "%hu.%hu.%hu.%hu/%d#%d",
|
if(weight_separator) {
|
||||||
&x[0], &x[1], &x[2], &x[3], &l, &weight) >= 5) {
|
char *weight_str = weight_separator + 1;
|
||||||
if(l < 0 || l > 32) {
|
|
||||||
|
if(sscanf(weight_str, "%d%n", &weight, &consumed) < 1) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
subnet->type = SUBNET_IPV4;
|
if(weight_str[consumed]) {
|
||||||
subnet->net.ipv4.prefixlength = l;
|
|
||||||
subnet->weight = weight;
|
|
||||||
|
|
||||||
for(i = 0; i < 4; i++) {
|
|
||||||
if(x[i] > 255) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
subnet->net.ipv4.address.x[i] = x[i];
|
*weight_separator = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
int prefixlength = -1;
|
||||||
}
|
char *prefixlength_separator = strchr(str, '/');
|
||||||
|
|
||||||
if(sscanf(subnetstr, "%hx:%hx:%hx:%hx:%hx:%hx:%hx:%hx/%d#%d",
|
if(prefixlength_separator) {
|
||||||
&x[0], &x[1], &x[2], &x[3], &x[4], &x[5], &x[6], &x[7],
|
char *prefixlength_str = prefixlength_separator + 1;
|
||||||
&l, &weight) >= 9) {
|
|
||||||
if(l < 0 || l > 128) {
|
if(sscanf(prefixlength_str, "%d%n", &prefixlength, &consumed) < 1) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
subnet->type = SUBNET_IPV6;
|
if(prefixlength_str[consumed]) {
|
||||||
subnet->net.ipv6.prefixlength = l;
|
|
||||||
subnet->weight = weight;
|
|
||||||
|
|
||||||
for(i = 0; i < 8; i++) {
|
|
||||||
subnet->net.ipv6.address.x[i] = htons(x[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(sscanf(subnetstr, "%hu.%hu.%hu.%hu#%d", &x[0], &x[1], &x[2], &x[3], &weight) >= 4) {
|
|
||||||
subnet->type = SUBNET_IPV4;
|
|
||||||
subnet->net.ipv4.prefixlength = 32;
|
|
||||||
subnet->weight = weight;
|
|
||||||
|
|
||||||
for(i = 0; i < 4; i++) {
|
|
||||||
if(x[i] > 255) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
subnet->net.ipv4.address.x[i] = x[i];
|
*prefixlength_separator = 0;
|
||||||
|
|
||||||
|
if(prefixlength < 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
uint16_t x[8];
|
||||||
|
|
||||||
|
if(sscanf(str, "%hx:%hx:%hx:%hx:%hx:%hx%n", &x[0], &x[1], &x[2], &x[3], &x[4], &x[5], &consumed) >= 6 && !str[consumed]) {
|
||||||
|
/*
|
||||||
|
Normally we should check that each part has two digits to prevent ambiguities.
|
||||||
|
However, in old tinc versions net2str() will aggressively return MAC addresses with one-digit parts,
|
||||||
|
so we have to accept them otherwise we would be unable to parse ADD_SUBNET messages.
|
||||||
|
*/
|
||||||
|
if(prefixlength >= 0) {
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(sscanf(subnetstr, "%hx:%hx:%hx:%hx:%hx:%hx:%hx:%hx#%d",
|
|
||||||
&x[0], &x[1], &x[2], &x[3], &x[4], &x[5], &x[6], &x[7], &weight) >= 8) {
|
|
||||||
subnet->type = SUBNET_IPV6;
|
|
||||||
subnet->net.ipv6.prefixlength = 128;
|
|
||||||
subnet->weight = weight;
|
|
||||||
|
|
||||||
for(i = 0; i < 8; i++) {
|
|
||||||
subnet->net.ipv6.address.x[i] = htons(x[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(sscanf(subnetstr, "%hx:%hx:%hx:%hx:%hx:%hx#%d",
|
|
||||||
&x[0], &x[1], &x[2], &x[3], &x[4], &x[5], &weight) >= 6) {
|
|
||||||
subnet->type = SUBNET_MAC;
|
subnet->type = SUBNET_MAC;
|
||||||
subnet->weight = weight;
|
subnet->weight = weight;
|
||||||
|
|
||||||
for(i = 0; i < 6; i++) {
|
for(int i = 0; i < 6; i++) {
|
||||||
subnet->net.mac.address.x[i] = x[i];
|
subnet->net.mac.address.x[i] = x[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// IPv6 short form
|
if(sscanf(str, "%hu.%hu.%hu.%hu%n", &x[0], &x[1], &x[2], &x[3], &consumed) >= 4 && !str[consumed]) {
|
||||||
if(strstr(subnetstr, "::")) {
|
if(prefixlength == -1) {
|
||||||
const char *p;
|
prefixlength = 32;
|
||||||
char *q;
|
|
||||||
int colons = 0;
|
|
||||||
|
|
||||||
// Count number of colons
|
|
||||||
for(p = subnetstr; *p; p++)
|
|
||||||
if(*p == ':') {
|
|
||||||
colons++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(colons > 7) {
|
if(prefixlength > 32) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Scan numbers before the double colon
|
subnet->type = SUBNET_IPV4;
|
||||||
p = subnetstr;
|
subnet->net.ipv4.prefixlength = prefixlength;
|
||||||
|
subnet->weight = weight;
|
||||||
|
|
||||||
for(i = 0; i < colons; i++) {
|
for(int i = 0; i < 4; i++) {
|
||||||
if(*p == ':') {
|
if(x[i] > 255) {
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
x[i] = strtoul(p, &q, 0x10);
|
|
||||||
|
|
||||||
if(!q || p == q || *q != ':') {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
p = ++q;
|
subnet->net.ipv4.address.x[i] = x[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
p++;
|
return true;
|
||||||
colons -= i;
|
|
||||||
|
|
||||||
if(!i) {
|
|
||||||
p++;
|
|
||||||
colons--;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!*p || *p == '/' || *p == '#') {
|
/* IPv6 */
|
||||||
colons--;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fill in the blanks
|
char *last_colon = strrchr(str, ':');
|
||||||
for(; i < 8 - colons; i++) {
|
|
||||||
x[i] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Scan the remaining numbers
|
if(last_colon && sscanf(last_colon, ":%hu.%hu.%hu.%hu%n", &x[0], &x[1], &x[2], &x[3], &consumed) >= 4 && !last_colon[consumed]) {
|
||||||
for(; i < 8; i++) {
|
/* Dotted quad suffix notation, convert to standard IPv6 notation */
|
||||||
x[i] = strtoul(p, &q, 0x10);
|
for(int i = 0; i < 4; i++)
|
||||||
|
if(x[i] > 255) {
|
||||||
if(!q || p == q) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(i == 7) {
|
snprintf(last_colon, sizeof(str) - (last_colon - str), ":%02x%02x:%02x%02x", x[0], x[1], x[2], x[3]);
|
||||||
p = q;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(*q != ':') {
|
char *double_colon = strstr(str, "::");
|
||||||
|
|
||||||
|
if(double_colon) {
|
||||||
|
/* Figure out how many zero groups we need to expand */
|
||||||
|
int zero_group_count = 8;
|
||||||
|
|
||||||
|
for(const char *cur = str; *cur; cur++)
|
||||||
|
if(*cur != ':') {
|
||||||
|
zero_group_count--;
|
||||||
|
|
||||||
|
while(cur[1] && cur[1] != ':') {
|
||||||
|
cur++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(zero_group_count < 1) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
p = ++q;
|
/* Split the double colon in the middle to make room for zero groups */
|
||||||
|
double_colon++;
|
||||||
|
memmove(double_colon + (zero_group_count * 2 - 1), double_colon, strlen(double_colon) + 1);
|
||||||
|
|
||||||
|
/* Write zero groups in the resulting gap, overwriting the second colon */
|
||||||
|
for(int i = 0; i < zero_group_count; i++) {
|
||||||
|
memcpy(&double_colon[i * 2], "0:", 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
l = 128;
|
/* Remove any leading or trailing colons */
|
||||||
|
if(str[0] == ':') {
|
||||||
if(*p == '/') {
|
memmove(&str[0], &str[1], strlen(&str[1]) + 1);
|
||||||
sscanf(p, "/%d#%d", &l, &weight);
|
|
||||||
} else if(*p == '#') {
|
|
||||||
sscanf(p, "#%d", &weight);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(l < 0 || l > 128) {
|
if(str[strlen(str) - 1] == ':') {
|
||||||
|
str[strlen(str) - 1] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(sscanf(str, "%hx:%hx:%hx:%hx:%hx:%hx:%hx:%hx%n",
|
||||||
|
&x[0], &x[1], &x[2], &x[3], &x[4], &x[5], &x[6], &x[7], &consumed) >= 8 && !str[consumed]) {
|
||||||
|
if(prefixlength == -1) {
|
||||||
|
prefixlength = 128;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(prefixlength > 128) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
subnet->type = SUBNET_IPV6;
|
subnet->type = SUBNET_IPV6;
|
||||||
subnet->net.ipv6.prefixlength = l;
|
subnet->net.ipv6.prefixlength = prefixlength;
|
||||||
subnet->weight = weight;
|
subnet->weight = weight;
|
||||||
|
|
||||||
for(i = 0; i < 8; i++) {
|
for(int i = 0; i < 8; i++) {
|
||||||
subnet->net.ipv6.address.x[i] = htons(x[i]);
|
subnet->net.ipv6.address.x[i] = htons(x[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -387,7 +372,7 @@ bool str2net(subnet_t *subnet, const char *subnetstr) {
|
||||||
|
|
||||||
bool net2str(char *netstr, int len, const subnet_t *subnet) {
|
bool net2str(char *netstr, int len, const subnet_t *subnet) {
|
||||||
if(!netstr || !subnet) {
|
if(!netstr || !subnet) {
|
||||||
logger(LOG_ERR, "net2str() was called with netstr=%p, subnet=%p!", netstr, subnet);
|
logger(LOG_ERR, "net2str() was called with netstr=%p, subnet=%p!", (void *)netstr, (void *)subnet);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -592,9 +577,9 @@ void subnet_update(node_t *owner, subnet_t *subnet, bool up) {
|
||||||
|
|
||||||
// Prepare environment variables to be passed to the script
|
// Prepare environment variables to be passed to the script
|
||||||
|
|
||||||
xasprintf(&envp[0], "NETNAME=%s", netname ? : "");
|
xasprintf(&envp[0], "NETNAME=%s", netname ? netname : "");
|
||||||
xasprintf(&envp[1], "DEVICE=%s", device ? : "");
|
xasprintf(&envp[1], "DEVICE=%s", device ? device : "");
|
||||||
xasprintf(&envp[2], "INTERFACE=%s", iface ? : "");
|
xasprintf(&envp[2], "INTERFACE=%s", iface ? iface : "");
|
||||||
xasprintf(&envp[3], "NODE=%s", owner->name);
|
xasprintf(&envp[3], "NODE=%s", owner->name);
|
||||||
xasprintf(&envp[4], "NAME=%s", myself->name);
|
xasprintf(&envp[4], "NAME=%s", myself->name);
|
||||||
|
|
||||||
|
|
@ -627,13 +612,8 @@ void subnet_update(node_t *owner, subnet_t *subnet, bool up) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prepare the SUBNET and WEIGHT variables
|
// Prepare the SUBNET and WEIGHT variables
|
||||||
if(envp[5]) {
|
|
||||||
free(envp[5]);
|
free(envp[5]);
|
||||||
}
|
|
||||||
|
|
||||||
if(envp[6]) {
|
|
||||||
free(envp[6]);
|
free(envp[6]);
|
||||||
}
|
|
||||||
|
|
||||||
xasprintf(&envp[5], "SUBNET=%s", netstr);
|
xasprintf(&envp[5], "SUBNET=%s", netstr);
|
||||||
xasprintf(&envp[6], "WEIGHT=%s", weight);
|
xasprintf(&envp[6], "WEIGHT=%s", weight);
|
||||||
|
|
@ -659,7 +639,7 @@ void subnet_update(node_t *owner, subnet_t *subnet, bool up) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for(i = 0; envp[i] && i < 9; i++) {
|
for(i = 0; i < 9; i++) {
|
||||||
free(envp[i]);
|
free(envp[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
38
src/tincd.c
38
src/tincd.c
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
tincd.c -- the main file for tincd
|
tincd.c -- the main file for tincd
|
||||||
Copyright (C) 1998-2005 Ivo Timmermans
|
Copyright (C) 1998-2005 Ivo Timmermans
|
||||||
2000-2017 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2019 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
2008 Max Rijevski <maksuf@gmail.com>
|
2008 Max Rijevski <maksuf@gmail.com>
|
||||||
2009 Michael Tokarev <mjt@tls.msk.ru>
|
2009 Michael Tokarev <mjt@tls.msk.ru>
|
||||||
2010 Julien Muchembled <jm@jmuchemb.eu>
|
2010 Julien Muchembled <jm@jmuchemb.eu>
|
||||||
|
|
@ -37,7 +37,10 @@
|
||||||
#include <openssl/rsa.h>
|
#include <openssl/rsa.h>
|
||||||
#include <openssl/pem.h>
|
#include <openssl/pem.h>
|
||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
#include <openssl/engine.h>
|
#include <openssl/engine.h>
|
||||||
|
#endif
|
||||||
|
#include <openssl/bn.h>
|
||||||
|
|
||||||
#ifdef HAVE_LZO
|
#ifdef HAVE_LZO
|
||||||
#include LZO1X_H
|
#include LZO1X_H
|
||||||
|
|
@ -434,7 +437,10 @@ static bool keygen(int bits) {
|
||||||
BN_GENCB_set(cb, indicator, NULL);
|
BN_GENCB_set(cb, indicator, NULL);
|
||||||
|
|
||||||
rsa_key = RSA_new();
|
rsa_key = RSA_new();
|
||||||
BN_hex2bn(&e, "10001");
|
|
||||||
|
if(BN_hex2bn(&e, "10001") == 0) {
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
|
||||||
if(!rsa_key || !e) {
|
if(!rsa_key || !e) {
|
||||||
abort();
|
abort();
|
||||||
|
|
@ -559,25 +565,11 @@ static void make_names(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void free_names() {
|
static void free_names() {
|
||||||
if(identname) {
|
|
||||||
free(identname);
|
free(identname);
|
||||||
}
|
|
||||||
|
|
||||||
if(netname) {
|
|
||||||
free(netname);
|
free(netname);
|
||||||
}
|
|
||||||
|
|
||||||
if(pidfilename) {
|
|
||||||
free(pidfilename);
|
free(pidfilename);
|
||||||
}
|
|
||||||
|
|
||||||
if(logfilename) {
|
|
||||||
free(logfilename);
|
free(logfilename);
|
||||||
}
|
|
||||||
|
|
||||||
if(confbase) {
|
|
||||||
free(confbase);
|
free(confbase);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool drop_privs() {
|
static bool drop_privs() {
|
||||||
|
|
@ -662,7 +654,7 @@ int main(int argc, char **argv) {
|
||||||
|
|
||||||
if(show_version) {
|
if(show_version) {
|
||||||
printf("%s version %s\n", PACKAGE, VERSION);
|
printf("%s version %s\n", PACKAGE, VERSION);
|
||||||
printf("Copyright (C) 1998-2017 Ivo Timmermans, Guus Sliepen and others.\n"
|
printf("Copyright (C) 1998-2019 Ivo Timmermans, Guus Sliepen and others.\n"
|
||||||
"See the AUTHORS file for a complete list.\n\n"
|
"See the AUTHORS file for a complete list.\n\n"
|
||||||
"tinc comes with ABSOLUTELY NO WARRANTY. This is free software,\n"
|
"tinc comes with ABSOLUTELY NO WARRANTY. This is free software,\n"
|
||||||
"and you are welcome to redistribute it under certain conditions;\n"
|
"and you are welcome to redistribute it under certain conditions;\n"
|
||||||
|
|
@ -696,14 +688,14 @@ int main(int argc, char **argv) {
|
||||||
|
|
||||||
init_configuration(&config_tree);
|
init_configuration(&config_tree);
|
||||||
|
|
||||||
/* Slllluuuuuuurrrrp! */
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
|
|
||||||
RAND_load_file("/dev/urandom", 1024);
|
|
||||||
|
|
||||||
ENGINE_load_builtin_engines();
|
ENGINE_load_builtin_engines();
|
||||||
ENGINE_register_all_complete();
|
ENGINE_register_all_complete();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
||||||
OpenSSL_add_all_algorithms();
|
OpenSSL_add_all_algorithms();
|
||||||
|
#endif
|
||||||
|
|
||||||
if(generate_keys) {
|
if(generate_keys) {
|
||||||
read_server_config();
|
read_server_config();
|
||||||
|
|
@ -822,9 +814,13 @@ end:
|
||||||
|
|
||||||
free(priority);
|
free(priority);
|
||||||
|
|
||||||
|
#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
||||||
EVP_cleanup();
|
EVP_cleanup();
|
||||||
ERR_free_strings();
|
ERR_free_strings();
|
||||||
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
ENGINE_cleanup();
|
ENGINE_cleanup();
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
exit_configuration(&config_tree);
|
exit_configuration(&config_tree);
|
||||||
list_delete_list(cmdline_conf);
|
list_delete_list(cmdline_conf);
|
||||||
|
|
|
||||||
|
|
@ -181,10 +181,7 @@ void close_device(void) {
|
||||||
unlink(device);
|
unlink(device);
|
||||||
|
|
||||||
free(device);
|
free(device);
|
||||||
|
|
||||||
if(iface) {
|
|
||||||
free(iface);
|
free(iface);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool read_packet(vpn_packet_t *packet) {
|
static bool read_packet(vpn_packet_t *packet) {
|
||||||
|
|
|
||||||
|
|
@ -24,8 +24,11 @@
|
||||||
extern bool hex2bin(char *src, char *dst, int length);
|
extern bool hex2bin(char *src, char *dst, int length);
|
||||||
extern void bin2hex(char *src, char *dst, int length);
|
extern void bin2hex(char *src, char *dst, int length);
|
||||||
|
|
||||||
#ifdef HAVE_MINGW
|
#if defined(HAVE_MINGW) || defined(HAVE_CYGWIN)
|
||||||
extern const char *winerror(int);
|
extern const char *winerror(int);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_MINGW
|
||||||
#define strerror(x) ((x)>0?strerror(x):winerror(GetLastError()))
|
#define strerror(x) ((x)>0?strerror(x):winerror(GetLastError()))
|
||||||
#define sockerrno WSAGetLastError()
|
#define sockerrno WSAGetLastError()
|
||||||
#define sockstrerror(x) winerror(x)
|
#define sockstrerror(x) winerror(x)
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
#define TINC_XALLOC_H
|
#define TINC_XALLOC_H
|
||||||
|
|
||||||
/*
|
/*
|
||||||
xalloc.h -- malloc and related fuctions with out of memory checking
|
xalloc.h -- malloc and related functions with out of memory checking
|
||||||
Copyright (C) 1990, 91, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
|
Copyright (C) 1990, 91, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
|
||||||
Copyright (C) 2011-2017 Guus Sliepen <guus@tinc-vpn.org>
|
Copyright (C) 2011-2017 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
|
|
|
||||||
18
systemd/Makefile.am
Normal file
18
systemd/Makefile.am
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
EXTRA_DIST = tinc.service.in tinc@.service.in
|
||||||
|
|
||||||
|
CLEANFILES = tinc.service tinc@.service
|
||||||
|
|
||||||
|
if WITH_SYSTEMD
|
||||||
|
systemddir = @systemd_path@
|
||||||
|
nodist_systemd_DATA = tinc.service tinc@.service
|
||||||
|
endif
|
||||||
|
|
||||||
|
substitute = sed \
|
||||||
|
-e s,'@sbindir\@',"$(sbindir)",g \
|
||||||
|
-e s,'@sysconfdir\@',"$(sysconfdir)",g
|
||||||
|
|
||||||
|
tinc.service: $(srcdir)/tinc.service.in
|
||||||
|
$(AM_V_GEN)$(substitute) $(srcdir)/tinc.service.in > $@
|
||||||
|
|
||||||
|
tinc@.service: $(srcdir)/tinc@.service.in
|
||||||
|
$(AM_V_GEN)$(substitute) $(srcdir)/tinc@.service.in > $@
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
# Makefile.in generated by automake 1.15.1 from Makefile.am.
|
# Makefile.in generated by automake 1.16.2 from Makefile.am.
|
||||||
# @configure_input@
|
# @configure_input@
|
||||||
|
|
||||||
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
# Copyright (C) 1994-2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
# This Makefile.in is free software; the Free Software Foundation
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
|
@ -88,7 +88,7 @@ PRE_UNINSTALL = :
|
||||||
POST_UNINSTALL = :
|
POST_UNINSTALL = :
|
||||||
build_triplet = @build@
|
build_triplet = @build@
|
||||||
host_triplet = @host@
|
host_triplet = @host@
|
||||||
subdir = distro
|
subdir = systemd
|
||||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \
|
am__aclocal_m4_deps = $(top_srcdir)/m4/attribute.m4 \
|
||||||
$(top_srcdir)/m4/ax_append_flag.m4 \
|
$(top_srcdir)/m4/ax_append_flag.m4 \
|
||||||
|
|
@ -151,8 +151,8 @@ am__uninstall_files_from_dir = { \
|
||||||
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
||||||
$(am__cd) "$$dir" && rm -f $$files; }; \
|
$(am__cd) "$$dir" && rm -f $$files; }; \
|
||||||
}
|
}
|
||||||
am__installdirs = "$(DESTDIR)$(systemdsystemunitdir)"
|
am__installdirs = "$(DESTDIR)$(systemddir)"
|
||||||
DATA = $(systemdsystemunit_DATA)
|
DATA = $(nodist_systemd_DATA)
|
||||||
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||||
am__DIST_COMMON = $(srcdir)/Makefile.in
|
am__DIST_COMMON = $(srcdir)/Makefile.in
|
||||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
|
@ -197,9 +197,6 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
PACKAGE_URL = @PACKAGE_URL@
|
PACKAGE_URL = @PACKAGE_URL@
|
||||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
PKG_CONFIG = @PKG_CONFIG@
|
|
||||||
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
|
||||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
|
||||||
SET_MAKE = @SET_MAKE@
|
SET_MAKE = @SET_MAKE@
|
||||||
SHELL = @SHELL@
|
SHELL = @SHELL@
|
||||||
STRIP = @STRIP@
|
STRIP = @STRIP@
|
||||||
|
|
@ -251,18 +248,18 @@ sbindir = @sbindir@
|
||||||
sharedstatedir = @sharedstatedir@
|
sharedstatedir = @sharedstatedir@
|
||||||
srcdir = @srcdir@
|
srcdir = @srcdir@
|
||||||
sysconfdir = @sysconfdir@
|
sysconfdir = @sysconfdir@
|
||||||
systemdsystemunitdir = @systemdsystemunitdir@
|
systemd_path = @systemd_path@
|
||||||
target_alias = @target_alias@
|
target_alias = @target_alias@
|
||||||
top_build_prefix = @top_build_prefix@
|
top_build_prefix = @top_build_prefix@
|
||||||
top_builddir = @top_builddir@
|
top_builddir = @top_builddir@
|
||||||
top_srcdir = @top_srcdir@
|
top_srcdir = @top_srcdir@
|
||||||
EXTRA_DIST = \
|
EXTRA_DIST = tinc.service.in tinc@.service.in
|
||||||
tinc.service \
|
CLEANFILES = tinc.service tinc@.service
|
||||||
tinc@.service
|
@WITH_SYSTEMD_TRUE@systemddir = @systemd_path@
|
||||||
|
@WITH_SYSTEMD_TRUE@nodist_systemd_DATA = tinc.service tinc@.service
|
||||||
@HAVE_SYSTEMD_TRUE@systemdsystemunit_DATA = \
|
substitute = sed \
|
||||||
@HAVE_SYSTEMD_TRUE@ tinc.service \
|
-e s,'@sbindir\@',"$(sbindir)",g \
|
||||||
@HAVE_SYSTEMD_TRUE@ tinc@.service
|
-e s,'@sysconfdir\@',"$(sysconfdir)",g
|
||||||
|
|
||||||
all: all-am
|
all: all-am
|
||||||
|
|
||||||
|
|
@ -276,16 +273,16 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||||
exit 1;; \
|
exit 1;; \
|
||||||
esac; \
|
esac; \
|
||||||
done; \
|
done; \
|
||||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu distro/Makefile'; \
|
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu systemd/Makefile'; \
|
||||||
$(am__cd) $(top_srcdir) && \
|
$(am__cd) $(top_srcdir) && \
|
||||||
$(AUTOMAKE) --gnu distro/Makefile
|
$(AUTOMAKE) --gnu systemd/Makefile
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||||
@case '$?' in \
|
@case '$?' in \
|
||||||
*config.status*) \
|
*config.status*) \
|
||||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||||
*) \
|
*) \
|
||||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
|
||||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
|
||||||
esac;
|
esac;
|
||||||
|
|
||||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||||
|
|
@ -296,27 +293,27 @@ $(top_srcdir)/configure: $(am__configure_deps)
|
||||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||||
$(am__aclocal_m4_deps):
|
$(am__aclocal_m4_deps):
|
||||||
install-systemdsystemunitDATA: $(systemdsystemunit_DATA)
|
install-nodist_systemdDATA: $(nodist_systemd_DATA)
|
||||||
@$(NORMAL_INSTALL)
|
@$(NORMAL_INSTALL)
|
||||||
@list='$(systemdsystemunit_DATA)'; test -n "$(systemdsystemunitdir)" || list=; \
|
@list='$(nodist_systemd_DATA)'; test -n "$(systemddir)" || list=; \
|
||||||
if test -n "$$list"; then \
|
if test -n "$$list"; then \
|
||||||
echo " $(MKDIR_P) '$(DESTDIR)$(systemdsystemunitdir)'"; \
|
echo " $(MKDIR_P) '$(DESTDIR)$(systemddir)'"; \
|
||||||
$(MKDIR_P) "$(DESTDIR)$(systemdsystemunitdir)" || exit 1; \
|
$(MKDIR_P) "$(DESTDIR)$(systemddir)" || exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
for p in $$list; do \
|
for p in $$list; do \
|
||||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||||
echo "$$d$$p"; \
|
echo "$$d$$p"; \
|
||||||
done | $(am__base_list) | \
|
done | $(am__base_list) | \
|
||||||
while read files; do \
|
while read files; do \
|
||||||
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(systemdsystemunitdir)'"; \
|
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(systemddir)'"; \
|
||||||
$(INSTALL_DATA) $$files "$(DESTDIR)$(systemdsystemunitdir)" || exit $$?; \
|
$(INSTALL_DATA) $$files "$(DESTDIR)$(systemddir)" || exit $$?; \
|
||||||
done
|
done
|
||||||
|
|
||||||
uninstall-systemdsystemunitDATA:
|
uninstall-nodist_systemdDATA:
|
||||||
@$(NORMAL_UNINSTALL)
|
@$(NORMAL_UNINSTALL)
|
||||||
@list='$(systemdsystemunit_DATA)'; test -n "$(systemdsystemunitdir)" || list=; \
|
@list='$(nodist_systemd_DATA)'; test -n "$(systemddir)" || list=; \
|
||||||
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||||
dir='$(DESTDIR)$(systemdsystemunitdir)'; $(am__uninstall_files_from_dir)
|
dir='$(DESTDIR)$(systemddir)'; $(am__uninstall_files_from_dir)
|
||||||
tags TAGS:
|
tags TAGS:
|
||||||
|
|
||||||
ctags CTAGS:
|
ctags CTAGS:
|
||||||
|
|
@ -324,7 +321,10 @@ ctags CTAGS:
|
||||||
cscope cscopelist:
|
cscope cscopelist:
|
||||||
|
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(BUILT_SOURCES)
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) distdir-am
|
||||||
|
|
||||||
|
distdir-am: $(DISTFILES)
|
||||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
list='$(DISTFILES)'; \
|
list='$(DISTFILES)'; \
|
||||||
|
|
@ -358,7 +358,7 @@ check-am: all-am
|
||||||
check: check-am
|
check: check-am
|
||||||
all-am: Makefile $(DATA)
|
all-am: Makefile $(DATA)
|
||||||
installdirs:
|
installdirs:
|
||||||
for dir in "$(DESTDIR)$(systemdsystemunitdir)"; do \
|
for dir in "$(DESTDIR)$(systemddir)"; do \
|
||||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||||
done
|
done
|
||||||
install: install-am
|
install: install-am
|
||||||
|
|
@ -383,6 +383,7 @@ install-strip:
|
||||||
mostlyclean-generic:
|
mostlyclean-generic:
|
||||||
|
|
||||||
clean-generic:
|
clean-generic:
|
||||||
|
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||||
|
|
||||||
distclean-generic:
|
distclean-generic:
|
||||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||||
|
|
@ -411,7 +412,7 @@ info: info-am
|
||||||
|
|
||||||
info-am:
|
info-am:
|
||||||
|
|
||||||
install-data-am: install-systemdsystemunitDATA
|
install-data-am: install-nodist_systemdDATA
|
||||||
|
|
||||||
install-dvi: install-dvi-am
|
install-dvi: install-dvi-am
|
||||||
|
|
||||||
|
|
@ -455,7 +456,7 @@ ps: ps-am
|
||||||
|
|
||||||
ps-am:
|
ps-am:
|
||||||
|
|
||||||
uninstall-am: uninstall-systemdsystemunitDATA
|
uninstall-am: uninstall-nodist_systemdDATA
|
||||||
|
|
||||||
.MAKE: install-am install-strip
|
.MAKE: install-am install-strip
|
||||||
|
|
||||||
|
|
@ -464,16 +465,22 @@ uninstall-am: uninstall-systemdsystemunitDATA
|
||||||
html-am info info-am install install-am install-data \
|
html-am info info-am install install-am install-data \
|
||||||
install-data-am install-dvi install-dvi-am install-exec \
|
install-data-am install-dvi install-dvi-am install-exec \
|
||||||
install-exec-am install-html install-html-am install-info \
|
install-exec-am install-html install-html-am install-info \
|
||||||
install-info-am install-man install-pdf install-pdf-am \
|
install-info-am install-man install-nodist_systemdDATA \
|
||||||
install-ps install-ps-am install-strip \
|
install-pdf install-pdf-am install-ps install-ps-am \
|
||||||
install-systemdsystemunitDATA installcheck installcheck-am \
|
install-strip installcheck installcheck-am installdirs \
|
||||||
installdirs maintainer-clean maintainer-clean-generic \
|
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||||
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags-am \
|
mostlyclean-generic pdf pdf-am ps ps-am tags-am uninstall \
|
||||||
uninstall uninstall-am uninstall-systemdsystemunitDATA
|
uninstall-am uninstall-nodist_systemdDATA
|
||||||
|
|
||||||
.PRECIOUS: Makefile
|
.PRECIOUS: Makefile
|
||||||
|
|
||||||
|
|
||||||
|
tinc.service: $(srcdir)/tinc.service.in
|
||||||
|
$(AM_V_GEN)$(substitute) $(srcdir)/tinc.service.in > $@
|
||||||
|
|
||||||
|
tinc@.service: $(srcdir)/tinc@.service.in
|
||||||
|
$(AM_V_GEN)$(substitute) $(srcdir)/tinc@.service.in > $@
|
||||||
|
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
.NOEXPORT:
|
.NOEXPORT:
|
||||||
|
|
@ -3,14 +3,18 @@
|
||||||
|
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Tinc VPN
|
Description=Tinc VPN
|
||||||
|
Documentation=info:tinc
|
||||||
|
Documentation=man:tinc(8) man:tinc.conf(5)
|
||||||
|
Documentation=http://tinc-vpn.org/docs/
|
||||||
After=network.target
|
After=network.target
|
||||||
|
Wants=network.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
RemainAfterExit=yes
|
RemainAfterExit=yes
|
||||||
ExecStart=/bin/true
|
ExecStart=/bin/true
|
||||||
ExecReload=/bin/true
|
ExecReload=/bin/true
|
||||||
WorkingDirectory=/etc/tinc
|
WorkingDirectory=@sysconfdir@/tinc
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
20
systemd/tinc@.service.in
Normal file
20
systemd/tinc@.service.in
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Tinc net %i
|
||||||
|
Documentation=info:tinc
|
||||||
|
Documentation=man:tinc(8) man:tinc.conf(5)
|
||||||
|
Documentation=http://tinc-vpn.org/docs/
|
||||||
|
PartOf=tinc.service
|
||||||
|
ReloadPropagatedFrom=tinc.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
WorkingDirectory=@sysconfdir@/tinc/%i
|
||||||
|
ExecStart=@sbindir@/tincd -n %i -D
|
||||||
|
ExecReload=@sbindir@/tincd -n %i -kHUP
|
||||||
|
KillMode=mixed
|
||||||
|
Restart=on-failure
|
||||||
|
RestartSec=5
|
||||||
|
TimeoutStopSec=5
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=tinc.service
|
||||||
Loading…
Add table
Add a link
Reference in a new issue