Import Upstream version 1.0.5
This commit is contained in:
parent
392ff555ea
commit
a18165833b
90 changed files with 7610 additions and 5088 deletions
2
AUTHORS
2
AUTHORS
|
@ -1,6 +1,6 @@
|
||||||
Main tinc authors:
|
Main tinc authors:
|
||||||
Guus Sliepen <guus@tinc-vpn.org>
|
Guus Sliepen <guus@tinc-vpn.org>
|
||||||
Ivo Timmermans <ivo@tinc-vpn.org>
|
Ivo Timmermans (inactive)
|
||||||
|
|
||||||
These files are from other sources:
|
These files are from other sources:
|
||||||
* lib/pidfile.h and lib/pidfile.c are by Martin Schulze, taken from
|
* lib/pidfile.h and lib/pidfile.c are by Martin Schulze, taken from
|
||||||
|
|
4
COPYING
4
COPYING
|
@ -2,7 +2,7 @@
|
||||||
Version 2, June 1991
|
Version 2, June 1991
|
||||||
|
|
||||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
of this license document, but changing it is not allowed.
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
@ -305,7 +305,7 @@ the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
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, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
176
ChangeLog
176
ChangeLog
|
@ -1,3 +1,179 @@
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1471 | guus | 2006-11-14 13:28:04 +0100 (di, 14 nov 2006) | 2 lines
|
||||||
|
|
||||||
|
EWOULDBLOCK does not exist on platforms without O_NONBLOCK
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1470 | guus | 2006-11-11 23:45:45 +0100 (za, 11 nov 2006) | 2 lines
|
||||||
|
|
||||||
|
When deleting an entire tree, start at head, not at root.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1469 | guus | 2006-11-11 23:44:15 +0100 (za, 11 nov 2006) | 1 line
|
||||||
|
|
||||||
|
Nodes use events, so event system should be initialised first and destroyed last.
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1468 | guus | 2006-11-11 22:37:22 +0100 (za, 11 nov 2006) | 2 lines
|
||||||
|
|
||||||
|
Update Dutch translation.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1467 | guus | 2006-11-11 21:37:58 +0100 (za, 11 nov 2006) | 2 lines
|
||||||
|
|
||||||
|
Document GraphDumpFile option.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1466 | guus | 2006-11-11 21:10:46 +0100 (za, 11 nov 2006) | 2 lines
|
||||||
|
|
||||||
|
Support and autodetect LZO version 2.0 and later.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1465 | guus | 2006-11-11 21:06:14 +0100 (za, 11 nov 2006) | 2 lines
|
||||||
|
|
||||||
|
Support and autodetect LZO version 2.0 and later.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1464 | guus | 2006-11-11 15:37:03 +0100 (za, 11 nov 2006) | 2 lines
|
||||||
|
|
||||||
|
popen() requires pclose().
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1463 | guus | 2006-11-11 15:11:16 +0100 (za, 11 nov 2006) | 2 lines
|
||||||
|
|
||||||
|
Added graph dumping ability based on Markus Goetz's patch.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1462 | guus | 2006-11-11 14:43:00 +0100 (za, 11 nov 2006) | 2 lines
|
||||||
|
|
||||||
|
The "active" bit in node.status is not used.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1461 | guus | 2006-08-10 00:31:10 +0200 (do, 10 aug 2006) | 3 lines
|
||||||
|
|
||||||
|
memcpy() addresses from packet headers before calling the lookup functions.
|
||||||
|
This probably fixes a problem on the ARM architecture that causes tinc to fail to lookup IPv4 addresses.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1460 | guus | 2006-08-08 15:50:58 +0200 (di, 08 aug 2006) | 2 lines
|
||||||
|
|
||||||
|
Remove unused variable.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1459 | guus | 2006-08-08 15:44:37 +0200 (di, 08 aug 2006) | 2 lines
|
||||||
|
|
||||||
|
Remove unused parameter from maskcmp().
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1458 | guus | 2006-08-08 15:44:19 +0200 (di, 08 aug 2006) | 2 lines
|
||||||
|
|
||||||
|
Remove unused variables.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1457 | guus | 2006-08-08 15:29:17 +0200 (di, 08 aug 2006) | 2 lines
|
||||||
|
|
||||||
|
Fix format string warnings.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1456 | guus | 2006-08-08 15:21:08 +0200 (di, 08 aug 2006) | 2 lines
|
||||||
|
|
||||||
|
Do not break strict aliasing of status_t structs.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1455 | guus | 2006-06-12 23:45:39 +0200 (ma, 12 jun 2006) | 3 lines
|
||||||
|
|
||||||
|
Add generic host-up and host-down scripts.
|
||||||
|
Thanks to Menno Smits for a patch.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1454 | guus | 2006-06-11 20:53:27 +0200 (zo, 11 jun 2006) | 3 lines
|
||||||
|
|
||||||
|
Use memcpy() to copy sockaddrs returned by getaddrinfo().
|
||||||
|
Thanks to Miles Nordin for spotting this.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1453 | guus | 2006-04-26 18:29:47 +0200 (wo, 26 apr 2006) | 2 lines
|
||||||
|
|
||||||
|
Restore length of the original packet in send_udppacket().
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1452 | guus | 2006-04-26 15:52:58 +0200 (wo, 26 apr 2006) | 2 lines
|
||||||
|
|
||||||
|
Update copyright notices, remove Ivo's email address.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1451 | guus | 2006-04-12 10:38:35 +0200 (wo, 12 apr 2006) | 3 lines
|
||||||
|
|
||||||
|
Fix a bug in handling prefixlengths that are not a multiple of 4.
|
||||||
|
Thanks to Sven-Haegar Koch for spotting the bug and providing the fix.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1450 | guus | 2006-03-19 14:06:21 +0100 (zo, 19 mrt 2006) | 2 lines
|
||||||
|
|
||||||
|
Fix signedness compiler warnings.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1449 | guus | 2006-03-19 13:43:45 +0100 (zo, 19 mrt 2006) | 2 lines
|
||||||
|
|
||||||
|
Export flush_meta().
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1448 | guus | 2006-03-19 13:43:28 +0100 (zo, 19 mrt 2006) | 2 lines
|
||||||
|
|
||||||
|
Missing #include.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1447 | guus | 2006-02-06 13:30:51 +0100 (ma, 06 feb 2006) | 2 lines
|
||||||
|
|
||||||
|
Make sure $NAME is set correctly when executing tinc-down script.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1446 | guus | 2006-01-19 18:13:18 +0100 (do, 19 jan 2006) | 4 lines
|
||||||
|
|
||||||
|
Apply patch from Scott Lamb adding an output buffer for the TCP sockets.
|
||||||
|
This helps coalescing multiple send_meta() commands into one TCP packet.
|
||||||
|
Also limit the size of the output buffer before dropping PACKETs.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1445 | guus | 2006-01-13 12:21:59 +0100 (vr, 13 jan 2006) | 2 lines
|
||||||
|
|
||||||
|
Apply patch from Scott Lamb unifying configuration of TCP socket options.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1444 | guus | 2006-01-13 12:09:19 +0100 (vr, 13 jan 2006) | 2 lines
|
||||||
|
|
||||||
|
EVP_Cleanup() when quitting.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1443 | guus | 2005-11-16 11:45:11 +0100 (wo, 16 nov 2005) | 2 lines
|
||||||
|
|
||||||
|
Enable OpenSSL ENGINE, so crypto hardware gets used. Thanks to Andreas van Cranenburgh.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1442 | guus | 2005-06-03 12:56:02 +0200 (vr, 03 jun 2005) | 2 lines
|
||||||
|
|
||||||
|
Add alloca.h to the list of necessary header files.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1441 | guus | 2005-06-03 12:16:03 +0200 (vr, 03 jun 2005) | 3 lines
|
||||||
|
|
||||||
|
Prevent possible buffer overflows when using very large (>= 8192 bit) RSA keys.
|
||||||
|
Thanks to Tonnerre Lombard for noticing!
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1440 | guus | 2005-05-04 21:38:28 +0200 (wo, 04 mei 2005) | 2 lines
|
||||||
|
|
||||||
|
Releasing 1.0.4.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1439 | guus | 2005-05-04 20:09:30 +0200 (wo, 04 mei 2005) | 2 lines
|
||||||
|
|
||||||
|
Update copyright notices.
|
||||||
|
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
r1438 | guus | 2005-05-04 18:53:11 +0200 (wo, 04 mei 2005) | 2 lines
|
||||||
|
|
||||||
|
Describe subnet-up/down scripts in documentation.
|
||||||
|
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
r1437 | guus | 2005-05-04 17:56:25 +0200 (wo, 04 mei 2005) | 2 lines
|
r1437 | guus | 2005-05-04 17:56:25 +0200 (wo, 04 mei 2005) | 2 lines
|
||||||
|
|
||||||
|
|
16
INSTALL
16
INSTALL
|
@ -102,16 +102,16 @@ for another architecture.
|
||||||
Installation Names
|
Installation Names
|
||||||
==================
|
==================
|
||||||
|
|
||||||
By default, `make install' will install the package's files in
|
By default, `make install' installs the package's commands under
|
||||||
`/usr/local/bin', `/usr/local/man', etc. You can specify an
|
`/usr/local/bin', include files under `/usr/local/include', etc. You
|
||||||
installation prefix other than `/usr/local' by giving `configure' the
|
can specify an installation prefix other than `/usr/local' by giving
|
||||||
option `--prefix=PREFIX'.
|
`configure' the option `--prefix=PREFIX'.
|
||||||
|
|
||||||
You can specify separate installation prefixes for
|
You can specify separate installation prefixes for
|
||||||
architecture-specific files and architecture-independent files. If you
|
architecture-specific files and architecture-independent files. If you
|
||||||
give `configure' the option `--exec-prefix=PREFIX', the package will
|
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
|
||||||
use PREFIX as the prefix for installing programs and libraries.
|
PREFIX as the prefix for installing programs and libraries.
|
||||||
Documentation and other data files will still use the regular prefix.
|
Documentation and other data files still use the regular prefix.
|
||||||
|
|
||||||
In addition, if you use an unusual directory layout you can give
|
In addition, if you use an unusual directory layout you can give
|
||||||
options like `--bindir=DIR' to specify different values for particular
|
options like `--bindir=DIR' to specify different values for particular
|
||||||
|
@ -159,7 +159,7 @@ where SYSTEM can have one of these forms:
|
||||||
need to know the machine type.
|
need to know the machine type.
|
||||||
|
|
||||||
If you are _building_ compiler tools for cross-compiling, you should
|
If you are _building_ compiler tools for cross-compiling, you should
|
||||||
use the `--target=TYPE' option to select the type of system they will
|
use the option `--target=TYPE' to select the type of system they will
|
||||||
produce code for.
|
produce code for.
|
||||||
|
|
||||||
If you want to _use_ a cross compiler, that generates code for a
|
If you want to _use_ a cross compiler, that generates code for a
|
||||||
|
|
27
Makefile.in
27
Makefile.in
|
@ -1,4 +1,4 @@
|
||||||
# Makefile.in generated by automake 1.9.5 from Makefile.am.
|
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||||
# @configure_input@
|
# @configure_input@
|
||||||
|
|
||||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||||
|
@ -44,13 +44,14 @@ subdir = .
|
||||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
|
am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
|
||||||
$(top_srcdir)/m4/attribute.m4 $(top_srcdir)/m4/gettext.m4 \
|
$(top_srcdir)/m4/attribute.m4 $(top_srcdir)/m4/gettext.m4 \
|
||||||
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
|
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/isc-posix.m4 \
|
||||||
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
|
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
|
||||||
$(top_srcdir)/m4/lzo.m4 $(top_srcdir)/m4/malloc.m4 \
|
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/lzo.m4 \
|
||||||
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/openssl.m4 \
|
$(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/nls.m4 \
|
||||||
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
|
$(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/po.m4 \
|
||||||
$(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/tuntap.m4 \
|
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/realloc.m4 \
|
||||||
$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/configure.in
|
$(top_srcdir)/m4/tuntap.m4 $(top_srcdir)/m4/zlib.m4 \
|
||||||
|
$(top_srcdir)/configure.in
|
||||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
$(ACLOCAL_M4)
|
$(ACLOCAL_M4)
|
||||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||||
|
@ -103,6 +104,7 @@ ECHO_T = @ECHO_T@
|
||||||
EGREP = @EGREP@
|
EGREP = @EGREP@
|
||||||
EXEEXT = @EXEEXT@
|
EXEEXT = @EXEEXT@
|
||||||
GMSGFMT = @GMSGFMT@
|
GMSGFMT = @GMSGFMT@
|
||||||
|
GREP = @GREP@
|
||||||
HAVE_TUNTAP = @HAVE_TUNTAP@
|
HAVE_TUNTAP = @HAVE_TUNTAP@
|
||||||
INCLUDES = @INCLUDES@
|
INCLUDES = @INCLUDES@
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
@ -144,8 +146,6 @@ USE_NLS = @USE_NLS@
|
||||||
VERSION = @VERSION@
|
VERSION = @VERSION@
|
||||||
XGETTEXT = @XGETTEXT@
|
XGETTEXT = @XGETTEXT@
|
||||||
ac_ct_CC = @ac_ct_CC@
|
ac_ct_CC = @ac_ct_CC@
|
||||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
|
||||||
ac_ct_STRIP = @ac_ct_STRIP@
|
|
||||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||||
am__include = @am__include@
|
am__include = @am__include@
|
||||||
|
@ -160,23 +160,30 @@ build_cpu = @build_cpu@
|
||||||
build_os = @build_os@
|
build_os = @build_os@
|
||||||
build_vendor = @build_vendor@
|
build_vendor = @build_vendor@
|
||||||
datadir = @datadir@
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
exec_prefix = @exec_prefix@
|
exec_prefix = @exec_prefix@
|
||||||
host = @host@
|
host = @host@
|
||||||
host_alias = @host_alias@
|
host_alias = @host_alias@
|
||||||
host_cpu = @host_cpu@
|
host_cpu = @host_cpu@
|
||||||
host_os = @host_os@
|
host_os = @host_os@
|
||||||
host_vendor = @host_vendor@
|
host_vendor = @host_vendor@
|
||||||
|
htmldir = @htmldir@
|
||||||
includedir = @includedir@
|
includedir = @includedir@
|
||||||
infodir = @infodir@
|
infodir = @infodir@
|
||||||
install_sh = @install_sh@
|
install_sh = @install_sh@
|
||||||
libdir = @libdir@
|
libdir = @libdir@
|
||||||
libexecdir = @libexecdir@
|
libexecdir = @libexecdir@
|
||||||
|
localedir = @localedir@
|
||||||
localstatedir = @localstatedir@
|
localstatedir = @localstatedir@
|
||||||
mandir = @mandir@
|
mandir = @mandir@
|
||||||
mkdir_p = @mkdir_p@
|
mkdir_p = @mkdir_p@
|
||||||
oldincludedir = @oldincludedir@
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
prefix = @prefix@
|
prefix = @prefix@
|
||||||
program_transform_name = @program_transform_name@
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
sbindir = @sbindir@
|
sbindir = @sbindir@
|
||||||
sharedstatedir = @sharedstatedir@
|
sharedstatedir = @sharedstatedir@
|
||||||
sysconfdir = @sysconfdir@
|
sysconfdir = @sysconfdir@
|
||||||
|
|
13
NEWS
13
NEWS
|
@ -1,3 +1,16 @@
|
||||||
|
version 1.0.5 Nov 14 2006
|
||||||
|
|
||||||
|
* Lots of small fixes.
|
||||||
|
|
||||||
|
* Broadcast packets no longer grow in size with each hop. This should
|
||||||
|
fix switch mode (again).
|
||||||
|
|
||||||
|
* Generic host-up and host-down scripts.
|
||||||
|
|
||||||
|
* Optionally dump graph in graphviz format to a file or a script.
|
||||||
|
|
||||||
|
* Support LZO 2.0 and later.
|
||||||
|
|
||||||
version 1.0.4 May 4 2005
|
version 1.0.4 May 4 2005
|
||||||
|
|
||||||
* Fix switch and hub modes.
|
* Fix switch and hub modes.
|
||||||
|
|
4
README
4
README
|
@ -1,9 +1,9 @@
|
||||||
This is the README file for tinc version 1.0.4. Installation
|
This is the README file for tinc version 1.0.4. Installation
|
||||||
instructions may be found in the INSTALL file.
|
instructions may be found in the INSTALL file.
|
||||||
|
|
||||||
tinc is Copyright (C) 1998-2005 by:
|
tinc is Copyright (C) 1998-2006 by:
|
||||||
|
|
||||||
Ivo Timmermans <ivo@tinc-vpn.org>,
|
Ivo Timmermans,
|
||||||
Guus Sliepen <guus@tinc-vpn.org>,
|
Guus Sliepen <guus@tinc-vpn.org>,
|
||||||
and others.
|
and others.
|
||||||
|
|
||||||
|
|
10
THANKS
10
THANKS
|
@ -2,6 +2,7 @@ We would like to thank the following people for their contributions to tinc:
|
||||||
|
|
||||||
* Alexander Reil and Gemeinde Berg
|
* Alexander Reil and Gemeinde Berg
|
||||||
* Allesandro Gatti
|
* Allesandro Gatti
|
||||||
|
* Andreas van Cranenburgh
|
||||||
* Armijn Hemel
|
* Armijn Hemel
|
||||||
* Cris van Pelt
|
* Cris van Pelt
|
||||||
* Enrique Zanardi
|
* Enrique Zanardi
|
||||||
|
@ -13,20 +14,25 @@ We would like to thank the following people for their contributions to tinc:
|
||||||
* Jason Harper
|
* Jason Harper
|
||||||
* Jeroen Ubbink
|
* Jeroen Ubbink
|
||||||
* Jerome Etienne
|
* Jerome Etienne
|
||||||
* Lubomír Bulej
|
* Lubomír Bulej
|
||||||
* Mads Kiilerich
|
* Mads Kiilerich
|
||||||
* Marc A. Lehmann
|
* Marc A. Lehmann
|
||||||
* Mark Glines
|
* Mark Glines
|
||||||
|
* Markus Goetz
|
||||||
* Martin Kihlgren
|
* Martin Kihlgren
|
||||||
* Matias Carrasco
|
* Matias Carrasco
|
||||||
|
* Miles Nordin
|
||||||
* Nick Patavalis
|
* Nick Patavalis
|
||||||
* Paul Littlefield
|
* Paul Littlefield
|
||||||
* Robert van der Meulen
|
* Robert van der Meulen
|
||||||
|
* Scott Lamb
|
||||||
|
* Sven-Haegar Koch
|
||||||
* Teemu Kiviniemi
|
* Teemu Kiviniemi
|
||||||
|
* Tonnerre Lombard
|
||||||
* Wessel Dankers
|
* Wessel Dankers
|
||||||
* Wouter van Heyst
|
* Wouter van Heyst
|
||||||
|
|
||||||
And everyone we forgot. Thank you guys!
|
And everyone we forgot. Thank you!
|
||||||
|
|
||||||
Ivo Timmermans
|
Ivo Timmermans
|
||||||
Guus Sliepen
|
Guus Sliepen
|
||||||
|
|
5
aclocal.m4
vendored
5
aclocal.m4
vendored
|
@ -1,4 +1,4 @@
|
||||||
# generated automatically by aclocal 1.9.5 -*- Autoconf -*-
|
# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
|
||||||
|
|
||||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||||
# 2005 Free Software Foundation, Inc.
|
# 2005 Free Software Foundation, Inc.
|
||||||
|
@ -28,7 +28,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
|
||||||
# Call AM_AUTOMAKE_VERSION so it can be traced.
|
# Call AM_AUTOMAKE_VERSION so it can be traced.
|
||||||
# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
|
# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
|
||||||
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
||||||
[AM_AUTOMAKE_VERSION([1.9.5])])
|
[AM_AUTOMAKE_VERSION([1.9.6])])
|
||||||
|
|
||||||
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
|
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
|
||||||
|
|
||||||
|
@ -881,6 +881,7 @@ m4_include([m4/aclocal-include.m4])
|
||||||
m4_include([m4/attribute.m4])
|
m4_include([m4/attribute.m4])
|
||||||
m4_include([m4/gettext.m4])
|
m4_include([m4/gettext.m4])
|
||||||
m4_include([m4/iconv.m4])
|
m4_include([m4/iconv.m4])
|
||||||
|
m4_include([m4/isc-posix.m4])
|
||||||
m4_include([m4/lib-ld.m4])
|
m4_include([m4/lib-ld.m4])
|
||||||
m4_include([m4/lib-link.m4])
|
m4_include([m4/lib-link.m4])
|
||||||
m4_include([m4/lib-prefix.m4])
|
m4_include([m4/lib-prefix.m4])
|
||||||
|
|
581
config.guess
vendored
581
config.guess
vendored
File diff suppressed because it is too large
Load diff
10
config.h.in
10
config.h.in
|
@ -113,6 +113,9 @@
|
||||||
/* Define to 1 if you have the <lzo1x.h> header file. */
|
/* Define to 1 if you have the <lzo1x.h> header file. */
|
||||||
#undef HAVE_LZO1X_H
|
#undef HAVE_LZO1X_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <lzo/lzo1x.h> header file. */
|
||||||
|
#undef HAVE_LZO_LZO1X_H
|
||||||
|
|
||||||
/* Define to 1 if you have the <memory.h> header file. */
|
/* Define to 1 if you have the <memory.h> header file. */
|
||||||
#undef HAVE_MEMORY_H
|
#undef HAVE_MEMORY_H
|
||||||
|
|
||||||
|
@ -176,6 +179,9 @@
|
||||||
/* OpenBSD */
|
/* OpenBSD */
|
||||||
#undef HAVE_OPENBSD
|
#undef HAVE_OPENBSD
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <openssl/engine.h> header file. */
|
||||||
|
#undef HAVE_OPENSSL_ENGINE_H
|
||||||
|
|
||||||
/* Define to 1 if you have the <openssl/err.h> header file. */
|
/* Define to 1 if you have the <openssl/err.h> header file. */
|
||||||
#undef HAVE_OPENSSL_ERR_H
|
#undef HAVE_OPENSSL_ERR_H
|
||||||
|
|
||||||
|
@ -358,7 +364,7 @@
|
||||||
|
|
||||||
/* If using the C implementation of alloca, define if you know the
|
/* If using the C implementation of alloca, define if you know the
|
||||||
direction of stack growth for your system; otherwise it will be
|
direction of stack growth for your system; otherwise it will be
|
||||||
automatically deduced at run-time.
|
automatically deduced at runtime.
|
||||||
STACK_DIRECTION > 0 => grows toward higher addresses
|
STACK_DIRECTION > 0 => grows toward higher addresses
|
||||||
STACK_DIRECTION < 0 => grows toward lower addresses
|
STACK_DIRECTION < 0 => grows toward lower addresses
|
||||||
STACK_DIRECTION = 0 => direction of growth unknown */
|
STACK_DIRECTION = 0 => direction of growth unknown */
|
||||||
|
@ -397,7 +403,7 @@
|
||||||
/* Replacement realloc() */
|
/* Replacement realloc() */
|
||||||
#undef realloc
|
#undef realloc
|
||||||
|
|
||||||
/* Define to `unsigned' if <sys/types.h> does not define. */
|
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||||
#undef size_t
|
#undef size_t
|
||||||
|
|
||||||
/* Define to empty if the keyword `volatile' does not work. Warning: valid
|
/* Define to empty if the keyword `volatile' does not work. Warning: valid
|
||||||
|
|
127
config.sub
vendored
127
config.sub
vendored
|
@ -1,9 +1,10 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Configuration validation subroutine script.
|
# Configuration validation subroutine script.
|
||||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||||
# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
|
||||||
|
# Inc.
|
||||||
|
|
||||||
timestamp='2005-04-22'
|
timestamp='2006-09-20'
|
||||||
|
|
||||||
# This file is (in principle) common to ALL GNU software.
|
# This file is (in principle) common to ALL GNU software.
|
||||||
# The presence of a machine in this file suggests that SOME GNU software
|
# The presence of a machine in this file suggests that SOME GNU software
|
||||||
|
@ -21,14 +22,15 @@ timestamp='2005-04-22'
|
||||||
#
|
#
|
||||||
# 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, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 59 Temple Place - Suite 330,
|
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
|
||||||
# Boston, MA 02111-1307, USA.
|
# 02110-1301, USA.
|
||||||
|
#
|
||||||
# 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
|
||||||
# configuration script generated by Autoconf, you may include it under
|
# configuration script generated by Autoconf, you may include it under
|
||||||
# the same distribution terms that you use for the rest of that program.
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
|
||||||
# Please send patches to <config-patches@gnu.org>. Submit a context
|
# Please send patches to <config-patches@gnu.org>. Submit a context
|
||||||
# diff and a properly formatted ChangeLog entry.
|
# diff and a properly formatted ChangeLog entry.
|
||||||
#
|
#
|
||||||
|
@ -83,11 +85,11 @@ Try \`$me --help' for more information."
|
||||||
while test $# -gt 0 ; do
|
while test $# -gt 0 ; do
|
||||||
case $1 in
|
case $1 in
|
||||||
--time-stamp | --time* | -t )
|
--time-stamp | --time* | -t )
|
||||||
echo "$timestamp" ; exit 0 ;;
|
echo "$timestamp" ; exit ;;
|
||||||
--version | -v )
|
--version | -v )
|
||||||
echo "$version" ; exit 0 ;;
|
echo "$version" ; exit ;;
|
||||||
--help | --h* | -h )
|
--help | --h* | -h )
|
||||||
echo "$usage"; exit 0 ;;
|
echo "$usage"; exit ;;
|
||||||
-- ) # Stop option processing
|
-- ) # Stop option processing
|
||||||
shift; break ;;
|
shift; break ;;
|
||||||
- ) # Use stdin as input.
|
- ) # Use stdin as input.
|
||||||
|
@ -99,7 +101,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 0;;
|
exit ;;
|
||||||
|
|
||||||
* )
|
* )
|
||||||
break ;;
|
break ;;
|
||||||
|
@ -118,8 +120,9 @@ esac
|
||||||
# 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-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
|
nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
|
||||||
kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
|
uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
|
||||||
|
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/'`
|
||||||
;;
|
;;
|
||||||
|
@ -170,6 +173,10 @@ case $os in
|
||||||
-hiux*)
|
-hiux*)
|
||||||
os=-hiuxwe2
|
os=-hiuxwe2
|
||||||
;;
|
;;
|
||||||
|
-sco6)
|
||||||
|
os=-sco5v6
|
||||||
|
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/'`
|
||||||
|
@ -186,6 +193,10 @@ case $os in
|
||||||
# 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*)
|
||||||
|
# Don't forget version if it is 3.2v4 or newer.
|
||||||
|
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/'`
|
||||||
|
@ -230,7 +241,7 @@ case $basic_machine in
|
||||||
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
|
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
|
||||||
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
|
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
|
||||||
| am33_2.0 \
|
| am33_2.0 \
|
||||||
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
|
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
|
||||||
| bfin \
|
| bfin \
|
||||||
| c4x | clipper \
|
| c4x | clipper \
|
||||||
| d10v | d30v | dlx | dsp16xx \
|
| d10v | d30v | dlx | dsp16xx \
|
||||||
|
@ -238,7 +249,8 @@ case $basic_machine in
|
||||||
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
|
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
|
||||||
| i370 | i860 | i960 | ia64 \
|
| i370 | i860 | i960 | ia64 \
|
||||||
| ip2k | iq2000 \
|
| ip2k | iq2000 \
|
||||||
| m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
|
| m32c | m32r | m32rle | m68000 | m68k | m88k \
|
||||||
|
| maxq | mb | microblaze | mcore \
|
||||||
| mips | mipsbe | mipseb | mipsel | mipsle \
|
| mips | mipsbe | mipseb | mipsel | mipsle \
|
||||||
| mips16 \
|
| mips16 \
|
||||||
| mips64 | mips64el \
|
| mips64 | mips64el \
|
||||||
|
@ -247,6 +259,7 @@ case $basic_machine in
|
||||||
| mips64vr4100 | mips64vr4100el \
|
| mips64vr4100 | mips64vr4100el \
|
||||||
| mips64vr4300 | mips64vr4300el \
|
| mips64vr4300 | mips64vr4300el \
|
||||||
| mips64vr5000 | mips64vr5000el \
|
| mips64vr5000 | mips64vr5000el \
|
||||||
|
| mips64vr5900 | mips64vr5900el \
|
||||||
| mipsisa32 | mipsisa32el \
|
| mipsisa32 | mipsisa32el \
|
||||||
| mipsisa32r2 | mipsisa32r2el \
|
| mipsisa32r2 | mipsisa32r2el \
|
||||||
| mipsisa64 | mipsisa64el \
|
| mipsisa64 | mipsisa64el \
|
||||||
|
@ -255,21 +268,24 @@ case $basic_machine in
|
||||||
| mipsisa64sr71k | mipsisa64sr71kel \
|
| mipsisa64sr71k | mipsisa64sr71kel \
|
||||||
| mipstx39 | mipstx39el \
|
| mipstx39 | mipstx39el \
|
||||||
| mn10200 | mn10300 \
|
| mn10200 | mn10300 \
|
||||||
|
| mt \
|
||||||
| msp430 \
|
| msp430 \
|
||||||
|
| nios | nios2 \
|
||||||
| ns16k | ns32k \
|
| ns16k | ns32k \
|
||||||
| openrisc | or32 \
|
| or32 \
|
||||||
| pdp10 | pdp11 | pj | pjl \
|
| pdp10 | pdp11 | pj | pjl \
|
||||||
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
|
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
|
||||||
| pyramid \
|
| pyramid \
|
||||||
| sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
|
| score \
|
||||||
|
| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
|
||||||
| sh64 | sh64le \
|
| sh64 | sh64le \
|
||||||
| sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
|
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
|
||||||
| sparcv8 | sparcv9 | sparcv9b \
|
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
|
||||||
| strongarm \
|
| spu | strongarm \
|
||||||
| tahoe | thumb | tic4x | tic80 | tron \
|
| tahoe | thumb | tic4x | tic80 | tron \
|
||||||
| v850 | v850e \
|
| v850 | v850e \
|
||||||
| we32k \
|
| we32k \
|
||||||
| x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
|
| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
|
||||||
| z8k)
|
| z8k)
|
||||||
basic_machine=$basic_machine-unknown
|
basic_machine=$basic_machine-unknown
|
||||||
;;
|
;;
|
||||||
|
@ -280,6 +296,9 @@ case $basic_machine in
|
||||||
;;
|
;;
|
||||||
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
|
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
|
||||||
;;
|
;;
|
||||||
|
ms1)
|
||||||
|
basic_machine=mt-unknown
|
||||||
|
;;
|
||||||
|
|
||||||
# We use `pc' rather than `unknown'
|
# We use `pc' rather than `unknown'
|
||||||
# because (1) that's what they normally are, and
|
# because (1) that's what they normally are, and
|
||||||
|
@ -299,7 +318,7 @@ case $basic_machine in
|
||||||
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
|
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
|
||||||
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
|
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
|
||||||
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
|
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
|
||||||
| avr-* \
|
| avr-* | avr32-* \
|
||||||
| bfin-* | bs2000-* \
|
| bfin-* | bs2000-* \
|
||||||
| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
|
| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
|
||||||
| clipper-* | craynv-* | cydra-* \
|
| clipper-* | craynv-* | cydra-* \
|
||||||
|
@ -310,7 +329,7 @@ case $basic_machine in
|
||||||
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
|
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
|
||||||
| i*86-* | i860-* | i960-* | ia64-* \
|
| i*86-* | i860-* | i960-* | ia64-* \
|
||||||
| ip2k-* | iq2000-* \
|
| ip2k-* | iq2000-* \
|
||||||
| m32r-* | m32rle-* \
|
| m32c-* | m32r-* | m32rle-* \
|
||||||
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
|
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
|
||||||
| m88110-* | m88k-* | maxq-* | mcore-* \
|
| m88110-* | m88k-* | maxq-* | mcore-* \
|
||||||
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
|
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
|
||||||
|
@ -321,6 +340,7 @@ case $basic_machine in
|
||||||
| mips64vr4100-* | mips64vr4100el-* \
|
| mips64vr4100-* | mips64vr4100el-* \
|
||||||
| mips64vr4300-* | mips64vr4300el-* \
|
| mips64vr4300-* | mips64vr4300el-* \
|
||||||
| mips64vr5000-* | mips64vr5000el-* \
|
| mips64vr5000-* | mips64vr5000el-* \
|
||||||
|
| mips64vr5900-* | mips64vr5900el-* \
|
||||||
| mipsisa32-* | mipsisa32el-* \
|
| mipsisa32-* | mipsisa32el-* \
|
||||||
| mipsisa32r2-* | mipsisa32r2el-* \
|
| mipsisa32r2-* | mipsisa32r2el-* \
|
||||||
| mipsisa64-* | mipsisa64el-* \
|
| mipsisa64-* | mipsisa64el-* \
|
||||||
|
@ -329,24 +349,26 @@ case $basic_machine in
|
||||||
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
|
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
|
||||||
| mipstx39-* | mipstx39el-* \
|
| mipstx39-* | mipstx39el-* \
|
||||||
| mmix-* \
|
| mmix-* \
|
||||||
|
| mt-* \
|
||||||
| msp430-* \
|
| msp430-* \
|
||||||
|
| nios-* | nios2-* \
|
||||||
| none-* | np1-* | ns16k-* | ns32k-* \
|
| none-* | np1-* | ns16k-* | ns32k-* \
|
||||||
| orion-* \
|
| orion-* \
|
||||||
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
|
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
|
||||||
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
|
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
|
||||||
| pyramid-* \
|
| pyramid-* \
|
||||||
| romp-* | rs6000-* \
|
| romp-* | rs6000-* \
|
||||||
| sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
|
| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
|
||||||
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
|
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
|
||||||
| sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
|
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
|
||||||
| sparclite-* \
|
| sparclite-* \
|
||||||
| sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
|
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
|
||||||
| tahoe-* | thumb-* \
|
| tahoe-* | thumb-* \
|
||||||
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
|
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
|
||||||
| tron-* \
|
| tron-* \
|
||||||
| v850-* | v850e-* | vax-* \
|
| v850-* | v850e-* | vax-* \
|
||||||
| we32k-* \
|
| we32k-* \
|
||||||
| x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
|
| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
|
||||||
| xstormy16-* | xtensa-* \
|
| xstormy16-* | xtensa-* \
|
||||||
| ymp-* \
|
| ymp-* \
|
||||||
| z8k-*)
|
| z8k-*)
|
||||||
|
@ -686,6 +708,9 @@ case $basic_machine in
|
||||||
basic_machine=i386-pc
|
basic_machine=i386-pc
|
||||||
os=-msdos
|
os=-msdos
|
||||||
;;
|
;;
|
||||||
|
ms1-*)
|
||||||
|
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
|
||||||
|
;;
|
||||||
mvs)
|
mvs)
|
||||||
basic_machine=i370-ibm
|
basic_machine=i370-ibm
|
||||||
os=-mvs
|
os=-mvs
|
||||||
|
@ -761,9 +786,8 @@ case $basic_machine in
|
||||||
basic_machine=hppa1.1-oki
|
basic_machine=hppa1.1-oki
|
||||||
os=-proelf
|
os=-proelf
|
||||||
;;
|
;;
|
||||||
or32 | or32-*)
|
openrisc | openrisc-*)
|
||||||
basic_machine=or32-unknown
|
basic_machine=or32-unknown
|
||||||
os=-coff
|
|
||||||
;;
|
;;
|
||||||
os400)
|
os400)
|
||||||
basic_machine=powerpc-ibm
|
basic_machine=powerpc-ibm
|
||||||
|
@ -794,6 +818,12 @@ case $basic_machine in
|
||||||
pc532 | pc532-*)
|
pc532 | pc532-*)
|
||||||
basic_machine=ns32k-pc532
|
basic_machine=ns32k-pc532
|
||||||
;;
|
;;
|
||||||
|
pc98)
|
||||||
|
basic_machine=i386-pc
|
||||||
|
;;
|
||||||
|
pc98-*)
|
||||||
|
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
|
||||||
;;
|
;;
|
||||||
|
@ -850,6 +880,10 @@ case $basic_machine in
|
||||||
basic_machine=i586-unknown
|
basic_machine=i586-unknown
|
||||||
os=-pw32
|
os=-pw32
|
||||||
;;
|
;;
|
||||||
|
rdos)
|
||||||
|
basic_machine=i386-pc
|
||||||
|
os=-rdos
|
||||||
|
;;
|
||||||
rom68k)
|
rom68k)
|
||||||
basic_machine=m68k-rom68k
|
basic_machine=m68k-rom68k
|
||||||
os=-coff
|
os=-coff
|
||||||
|
@ -876,6 +910,10 @@ case $basic_machine in
|
||||||
sb1el)
|
sb1el)
|
||||||
basic_machine=mipsisa64sb1el-unknown
|
basic_machine=mipsisa64sb1el-unknown
|
||||||
;;
|
;;
|
||||||
|
sde)
|
||||||
|
basic_machine=mipsisa32-sde
|
||||||
|
os=-elf
|
||||||
|
;;
|
||||||
sei)
|
sei)
|
||||||
basic_machine=mips-sei
|
basic_machine=mips-sei
|
||||||
os=-seiux
|
os=-seiux
|
||||||
|
@ -1089,13 +1127,10 @@ case $basic_machine in
|
||||||
we32k)
|
we32k)
|
||||||
basic_machine=we32k-att
|
basic_machine=we32k-att
|
||||||
;;
|
;;
|
||||||
sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
|
sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
|
||||||
basic_machine=sh-unknown
|
basic_machine=sh-unknown
|
||||||
;;
|
;;
|
||||||
sh64)
|
sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
|
||||||
basic_machine=sh64-unknown
|
|
||||||
;;
|
|
||||||
sparc | sparcv8 | sparcv9 | sparcv9b)
|
|
||||||
basic_machine=sparc-sun
|
basic_machine=sparc-sun
|
||||||
;;
|
;;
|
||||||
cydra)
|
cydra)
|
||||||
|
@ -1168,20 +1203,23 @@ case $os in
|
||||||
| -aos* \
|
| -aos* \
|
||||||
| -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* | -openbsd* \
|
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
|
||||||
|
| -openbsd* | -solidbsd* \
|
||||||
| -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* \
|
| -chorusos* | -chorusrdb* \
|
||||||
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
||||||
| -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
|
| -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
|
||||||
|
| -uxpv* | -beos* | -mpeix* | -udk* \
|
||||||
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
|
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
|
||||||
| -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* | -rtmk-nova* | -windiss* \
|
||||||
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*)
|
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
|
||||||
|
| -skyos* | -haiku* | -rdos* | -toppers*)
|
||||||
# Remember, each alternative MUST END IN *, to match a version number.
|
# Remember, each alternative MUST END IN *, to match a version number.
|
||||||
;;
|
;;
|
||||||
-qnx*)
|
-qnx*)
|
||||||
|
@ -1199,7 +1237,7 @@ case $os in
|
||||||
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 | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
|
||||||
| -windows* | -osx | -abug | -netware* | -os9* | -beos* \
|
| -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
|
||||||
| -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
|
| -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
|
||||||
;;
|
;;
|
||||||
-mac*)
|
-mac*)
|
||||||
|
@ -1333,6 +1371,12 @@ else
|
||||||
# system, and we'll never get to this point.
|
# system, and we'll never get to this point.
|
||||||
|
|
||||||
case $basic_machine in
|
case $basic_machine in
|
||||||
|
score-*)
|
||||||
|
os=-elf
|
||||||
|
;;
|
||||||
|
spu-*)
|
||||||
|
os=-elf
|
||||||
|
;;
|
||||||
*-acorn)
|
*-acorn)
|
||||||
os=-riscix1.2
|
os=-riscix1.2
|
||||||
;;
|
;;
|
||||||
|
@ -1342,9 +1386,9 @@ case $basic_machine in
|
||||||
arm*-semi)
|
arm*-semi)
|
||||||
os=-aout
|
os=-aout
|
||||||
;;
|
;;
|
||||||
c4x-* | tic4x-*)
|
c4x-* | tic4x-*)
|
||||||
os=-coff
|
os=-coff
|
||||||
;;
|
;;
|
||||||
# This must come before the *-dec entry.
|
# This must come before the *-dec entry.
|
||||||
pdp10-*)
|
pdp10-*)
|
||||||
os=-tops20
|
os=-tops20
|
||||||
|
@ -1388,6 +1432,9 @@ case $basic_machine in
|
||||||
*-be)
|
*-be)
|
||||||
os=-beos
|
os=-beos
|
||||||
;;
|
;;
|
||||||
|
*-haiku)
|
||||||
|
os=-haiku
|
||||||
|
;;
|
||||||
*-ibm)
|
*-ibm)
|
||||||
os=-aix
|
os=-aix
|
||||||
;;
|
;;
|
||||||
|
@ -1559,7 +1606,7 @@ case $basic_machine in
|
||||||
esac
|
esac
|
||||||
|
|
||||||
echo $basic_machine$os
|
echo $basic_machine$os
|
||||||
exit 0
|
exit
|
||||||
|
|
||||||
# Local variables:
|
# Local variables:
|
||||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
|
|
@ -5,7 +5,7 @@ dnl $Id: configure.in 1415 2004-11-10 23:20:59Z guus $
|
||||||
AC_PREREQ(2.59)
|
AC_PREREQ(2.59)
|
||||||
AC_INIT
|
AC_INIT
|
||||||
AC_CONFIG_SRCDIR([src/tincd.c])
|
AC_CONFIG_SRCDIR([src/tincd.c])
|
||||||
AM_INIT_AUTOMAKE(tinc, 1.0.4)
|
AM_INIT_AUTOMAKE(tinc, 1.0.5)
|
||||||
AC_CONFIG_HEADERS([config.h])
|
AC_CONFIG_HEADERS([config.h])
|
||||||
AM_MAINTAINER_MODE
|
AM_MAINTAINER_MODE
|
||||||
|
|
||||||
|
|
9
depcomp
9
depcomp
|
@ -1,7 +1,7 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# depcomp - compile a program generating dependencies as side-effects
|
# depcomp - compile a program generating dependencies as side-effects
|
||||||
|
|
||||||
scriptversion=2005-02-09.22
|
scriptversion=2005-07-09.11
|
||||||
|
|
||||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
|
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
@ -17,8 +17,8 @@ scriptversion=2005-02-09.22
|
||||||
|
|
||||||
# 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, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
# 02111-1307, USA.
|
# 02110-1301, USA.
|
||||||
|
|
||||||
# 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
|
||||||
|
@ -467,7 +467,8 @@ cpp)
|
||||||
done
|
done
|
||||||
|
|
||||||
"$@" -E |
|
"$@" -E |
|
||||||
sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
|
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
||||||
|
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
|
||||||
sed '$ s: \\$::' > "$tmpdepfile"
|
sed '$ s: \\$::' > "$tmpdepfile"
|
||||||
rm -f "$depfile"
|
rm -f "$depfile"
|
||||||
echo "$object : \\" > "$depfile"
|
echo "$object : \\" > "$depfile"
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Makefile.in generated by automake 1.9.5 from Makefile.am.
|
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||||
# @configure_input@
|
# @configure_input@
|
||||||
|
|
||||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||||
|
@ -39,13 +39,14 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in texinfo.tex
|
||||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
|
am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
|
||||||
$(top_srcdir)/m4/attribute.m4 $(top_srcdir)/m4/gettext.m4 \
|
$(top_srcdir)/m4/attribute.m4 $(top_srcdir)/m4/gettext.m4 \
|
||||||
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
|
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/isc-posix.m4 \
|
||||||
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
|
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
|
||||||
$(top_srcdir)/m4/lzo.m4 $(top_srcdir)/m4/malloc.m4 \
|
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/lzo.m4 \
|
||||||
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/openssl.m4 \
|
$(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/nls.m4 \
|
||||||
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
|
$(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/po.m4 \
|
||||||
$(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/tuntap.m4 \
|
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/realloc.m4 \
|
||||||
$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/configure.in
|
$(top_srcdir)/m4/tuntap.m4 $(top_srcdir)/m4/zlib.m4 \
|
||||||
|
$(top_srcdir)/configure.in
|
||||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
$(ACLOCAL_M4)
|
$(ACLOCAL_M4)
|
||||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||||
|
@ -100,6 +101,7 @@ ECHO_T = @ECHO_T@
|
||||||
EGREP = @EGREP@
|
EGREP = @EGREP@
|
||||||
EXEEXT = @EXEEXT@
|
EXEEXT = @EXEEXT@
|
||||||
GMSGFMT = @GMSGFMT@
|
GMSGFMT = @GMSGFMT@
|
||||||
|
GREP = @GREP@
|
||||||
HAVE_TUNTAP = @HAVE_TUNTAP@
|
HAVE_TUNTAP = @HAVE_TUNTAP@
|
||||||
INCLUDES = @INCLUDES@
|
INCLUDES = @INCLUDES@
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
@ -141,8 +143,6 @@ USE_NLS = @USE_NLS@
|
||||||
VERSION = @VERSION@
|
VERSION = @VERSION@
|
||||||
XGETTEXT = @XGETTEXT@
|
XGETTEXT = @XGETTEXT@
|
||||||
ac_ct_CC = @ac_ct_CC@
|
ac_ct_CC = @ac_ct_CC@
|
||||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
|
||||||
ac_ct_STRIP = @ac_ct_STRIP@
|
|
||||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||||
am__include = @am__include@
|
am__include = @am__include@
|
||||||
|
@ -157,23 +157,30 @@ build_cpu = @build_cpu@
|
||||||
build_os = @build_os@
|
build_os = @build_os@
|
||||||
build_vendor = @build_vendor@
|
build_vendor = @build_vendor@
|
||||||
datadir = @datadir@
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
exec_prefix = @exec_prefix@
|
exec_prefix = @exec_prefix@
|
||||||
host = @host@
|
host = @host@
|
||||||
host_alias = @host_alias@
|
host_alias = @host_alias@
|
||||||
host_cpu = @host_cpu@
|
host_cpu = @host_cpu@
|
||||||
host_os = @host_os@
|
host_os = @host_os@
|
||||||
host_vendor = @host_vendor@
|
host_vendor = @host_vendor@
|
||||||
|
htmldir = @htmldir@
|
||||||
includedir = @includedir@
|
includedir = @includedir@
|
||||||
infodir = @infodir@
|
infodir = @infodir@
|
||||||
install_sh = @install_sh@
|
install_sh = @install_sh@
|
||||||
libdir = @libdir@
|
libdir = @libdir@
|
||||||
libexecdir = @libexecdir@
|
libexecdir = @libexecdir@
|
||||||
|
localedir = @localedir@
|
||||||
localstatedir = @localstatedir@
|
localstatedir = @localstatedir@
|
||||||
mandir = @mandir@
|
mandir = @mandir@
|
||||||
mkdir_p = @mkdir_p@
|
mkdir_p = @mkdir_p@
|
||||||
oldincludedir = @oldincludedir@
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
prefix = @prefix@
|
prefix = @prefix@
|
||||||
program_transform_name = @program_transform_name@
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
sbindir = @sbindir@
|
sbindir = @sbindir@
|
||||||
sharedstatedir = @sharedstatedir@
|
sharedstatedir = @sharedstatedir@
|
||||||
sysconfdir = @sysconfdir@
|
sysconfdir = @sysconfdir@
|
||||||
|
@ -225,9 +232,11 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||||
tinc.info: tinc.texi
|
tinc.info: tinc.texi
|
||||||
restore=: && backupdir="$(am__leading_dot)am$$$$" && \
|
restore=: && backupdir="$(am__leading_dot)am$$$$" && \
|
||||||
rm -rf $$backupdir && mkdir $$backupdir && \
|
rm -rf $$backupdir && mkdir $$backupdir && \
|
||||||
for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
|
if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
|
||||||
if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
|
for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
|
||||||
done; \
|
if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
|
||||||
|
done; \
|
||||||
|
else :; fi && \
|
||||||
if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
|
if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
|
||||||
-o $@ `test -f 'tinc.texi' || echo '$(srcdir)/'`tinc.texi; \
|
-o $@ `test -f 'tinc.texi' || echo '$(srcdir)/'`tinc.texi; \
|
||||||
then \
|
then \
|
||||||
|
@ -262,6 +271,7 @@ tinc.html: tinc.texi
|
||||||
exit 1; \
|
exit 1; \
|
||||||
fi
|
fi
|
||||||
.dvi.ps:
|
.dvi.ps:
|
||||||
|
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
||||||
$(DVIPS) -o $@ $<
|
$(DVIPS) -o $@ $<
|
||||||
|
|
||||||
uninstall-info-am:
|
uninstall-info-am:
|
||||||
|
@ -294,10 +304,13 @@ dist-info: $(INFO_DEPS)
|
||||||
$(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \
|
$(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \
|
||||||
esac; \
|
esac; \
|
||||||
if test -f $$base; then d=.; else d=$(srcdir); fi; \
|
if test -f $$base; then d=.; else d=$(srcdir); fi; \
|
||||||
for file in $$d/$$base*; do \
|
base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \
|
||||||
relfile=`expr "$$file" : "$$d/\(.*\)"`; \
|
for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \
|
||||||
test -f $(distdir)/$$relfile || \
|
if test -f $$file; then \
|
||||||
cp -p $$file $(distdir)/$$relfile; \
|
relfile=`expr "$$file" : "$$d/\(.*\)"`; \
|
||||||
|
test -f $(distdir)/$$relfile || \
|
||||||
|
cp -p $$file $(distdir)/$$relfile; \
|
||||||
|
else :; fi; \
|
||||||
done; \
|
done; \
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
Binary file not shown.
696
doc/texinfo.tex
696
doc/texinfo.tex
File diff suppressed because it is too large
Load diff
|
@ -1,7 +1,7 @@
|
||||||
.Dd 2002-04-09
|
.Dd 2002-04-09
|
||||||
.Dt TINC.CONF 5
|
.Dt TINC.CONF 5
|
||||||
.\" Manual page created by:
|
.\" Manual page created by:
|
||||||
.\" Ivo Timmermans <ivo@tinc-vpn.org>
|
.\" Ivo Timmermans
|
||||||
.\" Guus Sliepen <guus@tinc-vpn.org>
|
.\" Guus Sliepen <guus@tinc-vpn.org>
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
.Nm tinc.conf
|
.Nm tinc.conf
|
||||||
|
@ -120,13 +120,6 @@ will by default listen on all of them for incoming connections.
|
||||||
It is possible to bind only to a single interface with this variable.
|
It is possible to bind only to a single interface with this variable.
|
||||||
.Pp
|
.Pp
|
||||||
This option may not work on all platforms.
|
This option may not work on all platforms.
|
||||||
.It Va BlockingTCP Li = yes | no Po no Pc Bq experimental
|
|
||||||
This options selects whether TCP connections, when established, should use blocking writes.
|
|
||||||
When turned off, tinc will never block when a TCP connection becomes congested, but will have to terminate that connection instead.
|
|
||||||
If turned on, tinc will not terminate connections but will block, thereby unable to process data to/from other connections.
|
|
||||||
Turn this option on if you also use
|
|
||||||
.Va TCPOnly
|
|
||||||
and tinc terminates connections frequently.
|
|
||||||
.It Va ConnectTo Li = Ar name
|
.It Va ConnectTo Li = Ar name
|
||||||
Specifies which other tinc daemon to connect to on startup.
|
Specifies which other tinc daemon to connect to on startup.
|
||||||
Multiple
|
Multiple
|
||||||
|
@ -154,6 +147,18 @@ instead of
|
||||||
.Va Device .
|
.Va Device .
|
||||||
The info pages of the tinc package contain more information
|
The info pages of the tinc package contain more information
|
||||||
about configuring the virtual network device.
|
about configuring the virtual network device.
|
||||||
|
.It Va GraphDumpFile Li = Ar filename Bq experimental
|
||||||
|
If this option is present,
|
||||||
|
.Nm tinc
|
||||||
|
will dump the current network graph to the file
|
||||||
|
.Ar filename
|
||||||
|
every minute, unless there were no changes to the graph.
|
||||||
|
The file is in a format that can be read by graphviz tools.
|
||||||
|
If
|
||||||
|
.Ar filename
|
||||||
|
starts with a pipe symbol |,
|
||||||
|
then the rest of the filename is interpreted as a shell command
|
||||||
|
that is executed, the graph is then sent to stdin.
|
||||||
.It Va Hostnames Li = yes | no Pq no
|
.It Va Hostnames Li = yes | no Pq no
|
||||||
This option selects whether IP addresses (both real and on the VPN) should
|
This option selects whether IP addresses (both real and on the VPN) should
|
||||||
be resolved. Since DNS lookups are blocking, it might affect tinc's
|
be resolved. Since DNS lookups are blocking, it might affect tinc's
|
||||||
|
@ -206,11 +211,13 @@ while no routing table is managed.
|
||||||
.It Va Name Li = Ar name Bq required
|
.It Va Name Li = Ar name Bq required
|
||||||
This is the name which identifies this tinc daemon.
|
This is the name which identifies this tinc daemon.
|
||||||
It must be unique for the virtual private network this daemon will connect to.
|
It must be unique for the virtual private network this daemon will connect to.
|
||||||
.It Va PingTimeout Li = Ar seconds Pq 60
|
.It Va PingInterval Li = Ar seconds Pq 60
|
||||||
The number of seconds of inactivity that
|
The number of seconds of inactivity that
|
||||||
.Nm tinc
|
.Nm tinc
|
||||||
will wait before sending a probe to the other end.
|
will wait before sending a probe to the other end.
|
||||||
If that other end doesn't answer within that same amount of time,
|
.It Va PingTimeout Li = Ar seconds Pq 5
|
||||||
|
The number of seconds to wait for a response to pings or to allow meta
|
||||||
|
connections to block. If the other end doesn't respond within this time,
|
||||||
the connection is terminated,
|
the connection is terminated,
|
||||||
and the others will be notified of this.
|
and the others will be notified of this.
|
||||||
.It Va PriorityInheritance Li = yes | no Po no Pc Bq experimental
|
.It Va PriorityInheritance Li = yes | no Po no Pc Bq experimental
|
||||||
|
@ -247,7 +254,7 @@ no secrets are revealed by sending out this information.
|
||||||
.Bl -tag -width indent
|
.Bl -tag -width indent
|
||||||
.It Va Address Li = Ar address Bq recommended
|
.It Va Address Li = Ar address Bq recommended
|
||||||
The IP address or hostname of this tinc daemon on the real network.
|
The IP address or hostname of this tinc daemon on the real network.
|
||||||
This wil only be used when trying to make an outgoing connection to this tinc daemon.
|
This will only be used when trying to make an outgoing connection to this tinc daemon.
|
||||||
Multiple
|
Multiple
|
||||||
.Va Address
|
.Va Address
|
||||||
variables can be specified, in which case each address will be tried until a working
|
variables can be specified, in which case each address will be tried until a working
|
||||||
|
@ -351,6 +358,10 @@ becomes reachable.
|
||||||
This script is started when the tinc daemon with name
|
This script is started when the tinc daemon with name
|
||||||
.Ar HOST
|
.Ar HOST
|
||||||
becomes unreachable.
|
becomes unreachable.
|
||||||
|
.It Pa @sysconfdir@/tinc/ Ns Ar NETNAME Ns Pa /host-up
|
||||||
|
This script is started when any host becomes reachable.
|
||||||
|
.It Pa @sysconfdir@/tinc/ Ns Ar NETNAME Ns Pa /host-down
|
||||||
|
This script is started when any host becomes unreachable.
|
||||||
.It Pa @sysconfdir@/tinc/ Ns Ar NETNAME Ns Pa /subnet-up
|
.It Pa @sysconfdir@/tinc/ Ns Ar NETNAME Ns Pa /subnet-up
|
||||||
This script is started when a Subnet becomes reachable.
|
This script is started when a Subnet becomes reachable.
|
||||||
The Subnet and the node it belongs to are passed in environment variables.
|
The Subnet and the node it belongs to are passed in environment variables.
|
||||||
|
|
225
doc/tinc.info
225
doc/tinc.info
|
@ -1,17 +1,17 @@
|
||||||
This is tinc.info, produced by makeinfo version 4.7 from tinc.texi.
|
This is tinc.info, produced by makeinfo version 4.8 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.4, a Virtual Private
|
This is the info manual for tinc version 1.0.5, a Virtual Private
|
||||||
Network daemon.
|
Network daemon.
|
||||||
|
|
||||||
Copyright (C) 1998-2005 Ivo Timmermans <ivo@tinc-vpn.org>, Guus
|
Copyright (C) 1998-2006 Ivo Timmermans, Guus Sliepen
|
||||||
Sliepen <guus@tinc-vpn.org> and Wessel Dankers <wsl@tinc-vpn.org>.
|
<guus@tinc-vpn.org> and Wessel Dankers <wsl@tinc-vpn.org>.
|
||||||
|
|
||||||
$Id: tinc.texi 1439 2005-05-04 18:09:30Z guus $
|
$Id: tinc.texi 1467 2006-11-11 20:37:58Z guus $
|
||||||
|
|
||||||
Permission is granted to make and distribute verbatim copies of this
|
Permission is granted to make and distribute verbatim copies of this
|
||||||
manual provided the copyright notice and this permission notice are
|
manual provided the copyright notice and this permission notice are
|
||||||
|
@ -760,15 +760,6 @@ BindToInterface = <INTERFACE> [experimental]
|
||||||
|
|
||||||
This option may not work on all platforms.
|
This option may not work on all platforms.
|
||||||
|
|
||||||
BlockingTCP = <yes|no> (no) [experimental]
|
|
||||||
This options selects whether TCP connections, when established,
|
|
||||||
should use blocking writes. When turned off, tinc will never
|
|
||||||
block when a TCP connection becomes congested, but will have to
|
|
||||||
terminate that connection instead. If turned on, tinc will not
|
|
||||||
terminate connections but will block, thereby unable to process
|
|
||||||
data to/from other connections. Turn this option on if you also
|
|
||||||
use TCPOnly and tinc terminates connections frequently.
|
|
||||||
|
|
||||||
ConnectTo = <NAME>
|
ConnectTo = <NAME>
|
||||||
Specifies which other tinc daemon to connect to on startup.
|
Specifies which other tinc daemon to connect to on startup.
|
||||||
Multiple ConnectTo variables may be specified, in which case
|
Multiple ConnectTo variables may be specified, in which case
|
||||||
|
@ -787,6 +778,14 @@ Device = <DEVICE> (`/dev/tap0', `/dev/net/tun' or other depending on platform)
|
||||||
that you can only use one device per daemon. See also *Note
|
that you can only use one device per daemon. See also *Note
|
||||||
Device files::.
|
Device files::.
|
||||||
|
|
||||||
|
GraphDumpFile = <FILENAME> [experimental]
|
||||||
|
If this option is present, tinc will dump the current network
|
||||||
|
graph to the file FILENAME every minute, unless there were no
|
||||||
|
changes to the graph. The file is in a format that can be read by
|
||||||
|
graphviz tools. If FILENAME starts with a pipe symbol |, then the
|
||||||
|
rest of the filename is interpreted as a shell command that is
|
||||||
|
executed, the graph is then sent to stdin.
|
||||||
|
|
||||||
Hostnames = <yes|no> (no)
|
Hostnames = <yes|no> (no)
|
||||||
This option selects whether IP addresses (both real and on the VPN)
|
This option selects whether IP addresses (both real and on the VPN)
|
||||||
should be resolved. Since DNS lookups are blocking, it might
|
should be resolved. Since DNS lookups are blocking, it might
|
||||||
|
@ -847,11 +846,15 @@ MACExpire = <SECONDS> (600)
|
||||||
Name = <NAME> [required]
|
Name = <NAME> [required]
|
||||||
This is a symbolic name for this connection. It can be anything
|
This is a symbolic name for this connection. It can be anything
|
||||||
|
|
||||||
PingTimeout = <SECONDS> (60)
|
PingInterval = <SECONDS> (60)
|
||||||
The number of seconds of inactivity that tinc will wait before
|
The number of seconds of inactivity that tinc will wait before
|
||||||
sending a probe to the other end. If that other end doesn't
|
sending a probe to the other end.
|
||||||
answer within that same amount of seconds, the connection is
|
|
||||||
terminated, and the others will be notified of this.
|
PingTimeout = <SECONDS> (5)
|
||||||
|
The number of seconds to wait for a response to pings or to allow
|
||||||
|
meta connections to block. If the other end doesn't respond within
|
||||||
|
this time, the connection is terminated, and the others will be
|
||||||
|
notified of this.
|
||||||
|
|
||||||
PriorityInheritance = <yes|no> (no) [experimental]
|
PriorityInheritance = <yes|no> (no) [experimental]
|
||||||
When this option is enabled the value of the TOS field of tunneled
|
When this option is enabled the value of the TOS field of tunneled
|
||||||
|
@ -998,6 +1001,12 @@ scripts should have the extension .bat.
|
||||||
This script is started when the tinc daemon with name HOST becomes
|
This script is started when the tinc daemon with name HOST becomes
|
||||||
unreachable.
|
unreachable.
|
||||||
|
|
||||||
|
`/usr/local/etc/tinc/NETNAME/host-up'
|
||||||
|
This script is started when any host becomes reachable.
|
||||||
|
|
||||||
|
`/usr/local/etc/tinc/NETNAME/host-down'
|
||||||
|
This script is started when any host becomes unreachable.
|
||||||
|
|
||||||
`/usr/local/etc/tinc/NETNAME/subnet-up'
|
`/usr/local/etc/tinc/NETNAME/subnet-up'
|
||||||
This script is started when a Subnet becomes reachable. The
|
This script is started when a Subnet becomes reachable. The
|
||||||
Subnet and the node it belongs to are passed in environment
|
Subnet and the node it belongs to are passed in environment
|
||||||
|
@ -2206,8 +2215,6 @@ Concept Index
|
||||||
(line 12)
|
(line 12)
|
||||||
* BindToInterface: Main configuration variables.
|
* BindToInterface: Main configuration variables.
|
||||||
(line 19)
|
(line 19)
|
||||||
* BlockingTCP: Main configuration variables.
|
|
||||||
(line 27)
|
|
||||||
* Cabal: Security. (line 6)
|
* Cabal: Security. (line 6)
|
||||||
* CHAL_REPLY: Authentication protocol.
|
* CHAL_REPLY: Authentication protocol.
|
||||||
(line 10)
|
(line 10)
|
||||||
|
@ -2224,109 +2231,113 @@ Concept Index
|
||||||
(line 17)
|
(line 17)
|
||||||
* connection: The connection. (line 6)
|
* connection: The connection. (line 6)
|
||||||
* ConnectTo: Main configuration variables.
|
* ConnectTo: Main configuration variables.
|
||||||
(line 36)
|
(line 27)
|
||||||
* daemon: Running tinc. (line 11)
|
* daemon: Running tinc. (line 11)
|
||||||
* data-protocol: The meta-connection. (line 18)
|
* data-protocol: The meta-connection. (line 18)
|
||||||
* debug level: Runtime options. (line 17)
|
* debug level: Runtime options. (line 17)
|
||||||
* debug levels: Debug levels. (line 6)
|
* debug levels: Debug levels. (line 6)
|
||||||
* DEL_EDGE: The meta-protocol. (line 47)
|
* DEL_EDGE: The meta-protocol. (line 47)
|
||||||
* DEL_SUBNET: The meta-protocol. (line 47)
|
* DEL_SUBNET: The meta-protocol. (line 47)
|
||||||
* DEVICE: Scripts. (line 49)
|
* DEVICE: Scripts. (line 55)
|
||||||
* Device: Main configuration variables.
|
* Device: Main configuration variables.
|
||||||
(line 47)
|
(line 38)
|
||||||
* device files: Device files. (line 6)
|
* device files: Device files. (line 6)
|
||||||
* Digest: Host configuration variables.
|
* Digest: Host configuration variables.
|
||||||
(line 22)
|
(line 22)
|
||||||
* encapsulating: The UDP tunnel. (line 30)
|
* encapsulating: The UDP tunnel. (line 30)
|
||||||
* encryption: Encryption of network packets.
|
* encryption: Encryption of network packets.
|
||||||
(line 6)
|
(line 6)
|
||||||
* environment variables: Scripts. (line 37)
|
* environment variables: Scripts. (line 43)
|
||||||
* ethertap: Configuration of Linux kernels 2.1.60 up to 2.4.0.
|
* ethertap: Configuration of Linux kernels 2.1.60 up to 2.4.0.
|
||||||
(line 6)
|
(line 6)
|
||||||
* example: Example configuration.
|
* example: Example configuration.
|
||||||
(line 6)
|
(line 6)
|
||||||
* frame type: The UDP tunnel. (line 6)
|
* frame type: The UDP tunnel. (line 6)
|
||||||
|
* GraphDumpFile: Main configuration variables.
|
||||||
|
(line 45)
|
||||||
* Hostnames: Main configuration variables.
|
* Hostnames: Main configuration variables.
|
||||||
(line 54)
|
(line 53)
|
||||||
* hub: Main configuration variables.
|
* hub: Main configuration variables.
|
||||||
(line 95)
|
(line 94)
|
||||||
* ID: Authentication protocol.
|
* ID: Authentication protocol.
|
||||||
(line 10)
|
(line 10)
|
||||||
* IndirectData: Host configuration variables.
|
* IndirectData: Host configuration variables.
|
||||||
(line 27)
|
(line 27)
|
||||||
* INTERFACE: Scripts. (line 52)
|
* INTERFACE: Scripts. (line 58)
|
||||||
* Interface: Main configuration variables.
|
* Interface: Main configuration variables.
|
||||||
(line 64)
|
(line 63)
|
||||||
* IRC: Contact information. (line 9)
|
* IRC: Contact information. (line 9)
|
||||||
* key generation: Generating keypairs. (line 6)
|
* key generation: Generating keypairs. (line 6)
|
||||||
* KEY_CHANGED: The meta-protocol. (line 64)
|
* KEY_CHANGED: The meta-protocol. (line 64)
|
||||||
* KeyExpire: Main configuration variables.
|
* KeyExpire: Main configuration variables.
|
||||||
(line 100)
|
(line 99)
|
||||||
* libraries: Libraries. (line 6)
|
* libraries: Libraries. (line 6)
|
||||||
* license: OpenSSL. (line 36)
|
* license: OpenSSL. (line 36)
|
||||||
* lzo: lzo. (line 6)
|
* lzo: lzo. (line 6)
|
||||||
* MACExpire: Main configuration variables.
|
* MACExpire: Main configuration variables.
|
||||||
(line 106)
|
(line 105)
|
||||||
* MACLength: Host configuration variables.
|
* MACLength: Host configuration variables.
|
||||||
(line 35)
|
(line 35)
|
||||||
* meta-protocol: The meta-connection. (line 18)
|
* meta-protocol: The meta-connection. (line 18)
|
||||||
* META_KEY: Authentication protocol.
|
* META_KEY: Authentication protocol.
|
||||||
(line 10)
|
(line 10)
|
||||||
* Mode: Main configuration variables.
|
* Mode: Main configuration variables.
|
||||||
(line 72)
|
(line 71)
|
||||||
* multiple networks: Multiple networks. (line 6)
|
* multiple networks: Multiple networks. (line 6)
|
||||||
* NAME: Scripts. (line 46)
|
* NAME: Scripts. (line 52)
|
||||||
* Name: Main configuration variables.
|
* Name: Main configuration variables.
|
||||||
(line 111)
|
(line 110)
|
||||||
* netmask: Network interfaces. (line 34)
|
* netmask: Network interfaces. (line 34)
|
||||||
* NETNAME: Scripts. (line 43)
|
* NETNAME: Scripts. (line 49)
|
||||||
* netname: Multiple networks. (line 6)
|
* netname: Multiple networks. (line 6)
|
||||||
* Network Administrators Guide: Configuration introduction.
|
* Network Administrators Guide: Configuration introduction.
|
||||||
(line 15)
|
(line 15)
|
||||||
* NODE: Scripts. (line 56)
|
* NODE: Scripts. (line 62)
|
||||||
* OpenSSL: OpenSSL. (line 6)
|
* OpenSSL: OpenSSL. (line 6)
|
||||||
* options: Runtime options. (line 9)
|
* options: Runtime options. (line 9)
|
||||||
* PEM format: Host configuration variables.
|
* PEM format: Host configuration variables.
|
||||||
(line 52)
|
(line 52)
|
||||||
* PING: The meta-protocol. (line 89)
|
* PING: The meta-protocol. (line 89)
|
||||||
|
* PingInterval: Main configuration variables.
|
||||||
|
(line 113)
|
||||||
* PingTimeout: Main configuration variables.
|
* PingTimeout: Main configuration variables.
|
||||||
(line 114)
|
(line 117)
|
||||||
* platforms: Supported platforms. (line 6)
|
* platforms: Supported platforms. (line 6)
|
||||||
* PONG: The meta-protocol. (line 89)
|
* PONG: The meta-protocol. (line 89)
|
||||||
* Port: Host configuration variables.
|
* Port: Host configuration variables.
|
||||||
(line 40)
|
(line 40)
|
||||||
* port numbers: Other files. (line 17)
|
* port numbers: Other files. (line 17)
|
||||||
* PriorityInheritance: Main configuration variables.
|
* PriorityInheritance: Main configuration variables.
|
||||||
(line 120)
|
(line 123)
|
||||||
* private: Virtual Private Networks.
|
* private: Virtual Private Networks.
|
||||||
(line 10)
|
(line 10)
|
||||||
* PrivateKey: Main configuration variables.
|
* PrivateKey: Main configuration variables.
|
||||||
(line 125)
|
(line 128)
|
||||||
* PrivateKeyFile: Main configuration variables.
|
* PrivateKeyFile: Main configuration variables.
|
||||||
(line 131)
|
(line 134)
|
||||||
* PublicKey: Host configuration variables.
|
* PublicKey: Host configuration variables.
|
||||||
(line 44)
|
(line 44)
|
||||||
* PublicKeyFile: Host configuration variables.
|
* PublicKeyFile: Host configuration variables.
|
||||||
(line 47)
|
(line 47)
|
||||||
* release: Supported platforms. (line 14)
|
* release: Supported platforms. (line 14)
|
||||||
* REMOTEADDRESS: Scripts. (line 61)
|
* REMOTEADDRESS: Scripts. (line 67)
|
||||||
* REMOTEPORT: Scripts. (line 64)
|
* REMOTEPORT: Scripts. (line 70)
|
||||||
* REQ_KEY: The meta-protocol. (line 64)
|
* REQ_KEY: The meta-protocol. (line 64)
|
||||||
* requirements: Libraries. (line 6)
|
* requirements: Libraries. (line 6)
|
||||||
* router: Main configuration variables.
|
* router: Main configuration variables.
|
||||||
(line 75)
|
(line 74)
|
||||||
* runtime options: Runtime options. (line 9)
|
* runtime options: Runtime options. (line 9)
|
||||||
* scalability: tinc. (line 19)
|
* scalability: tinc. (line 19)
|
||||||
* scripts: Scripts. (line 6)
|
* scripts: Scripts. (line 6)
|
||||||
* server: How connections work.
|
* server: How connections work.
|
||||||
(line 18)
|
(line 18)
|
||||||
* signals: Signals. (line 6)
|
* signals: Signals. (line 6)
|
||||||
* SUBNET: Scripts. (line 68)
|
* SUBNET: Scripts. (line 74)
|
||||||
* Subnet: Host configuration variables.
|
* Subnet: Host configuration variables.
|
||||||
(line 59)
|
(line 59)
|
||||||
* SVPN: Security. (line 11)
|
* SVPN: Security. (line 11)
|
||||||
* switch: Main configuration variables.
|
* switch: Main configuration variables.
|
||||||
(line 84)
|
(line 83)
|
||||||
* TCP: The meta-connection. (line 10)
|
* TCP: The meta-connection. (line 10)
|
||||||
* TCPonly: Host configuration variables.
|
* TCPonly: Host configuration variables.
|
||||||
(line 82)
|
(line 82)
|
||||||
|
@ -2338,7 +2349,7 @@ Concept Index
|
||||||
* tincd: tinc. (line 14)
|
* tincd: tinc. (line 14)
|
||||||
* traditional VPNs: tinc. (line 19)
|
* traditional VPNs: tinc. (line 19)
|
||||||
* TunnelServer: Main configuration variables.
|
* TunnelServer: Main configuration variables.
|
||||||
(line 139)
|
(line 142)
|
||||||
* UDP <1>: Encryption of network packets.
|
* UDP <1>: Encryption of network packets.
|
||||||
(line 12)
|
(line 12)
|
||||||
* UDP: The UDP tunnel. (line 30)
|
* UDP: The UDP tunnel. (line 30)
|
||||||
|
@ -2356,67 +2367,67 @@ Concept Index
|
||||||
|
|
||||||
|
|
||||||
Tag Table:
|
Tag Table:
|
||||||
Node: Top879
|
Node: Top860
|
||||||
Node: Introduction1178
|
Node: Introduction1159
|
||||||
Node: Virtual Private Networks1988
|
Node: Virtual Private Networks1969
|
||||||
Node: tinc3713
|
Node: tinc3694
|
||||||
Node: Supported platforms5240
|
Node: Supported platforms5221
|
||||||
Node: Preparations5938
|
Node: Preparations5919
|
||||||
Node: Configuring the kernel6194
|
Node: Configuring the kernel6175
|
||||||
Node: Configuration of Linux kernels 2.1.60 up to 2.4.06674
|
Node: Configuration of Linux kernels 2.1.60 up to 2.4.06655
|
||||||
Node: Configuration of Linux kernels 2.4.0 and higher8046
|
Node: Configuration of Linux kernels 2.4.0 and higher8027
|
||||||
Node: Configuration of FreeBSD kernels9286
|
Node: Configuration of FreeBSD kernels9267
|
||||||
Node: Configuration of OpenBSD kernels9693
|
Node: Configuration of OpenBSD kernels9674
|
||||||
Node: Configuration of NetBSD kernels10185
|
Node: Configuration of NetBSD kernels10166
|
||||||
Node: Configuration of Solaris kernels10590
|
Node: Configuration of Solaris kernels10571
|
||||||
Node: Configuration of Darwin (MacOS/X) kernels11251
|
Node: Configuration of Darwin (MacOS/X) kernels11232
|
||||||
Node: Configuration of Windows11954
|
Node: Configuration of Windows11935
|
||||||
Node: Libraries12468
|
Node: Libraries12449
|
||||||
Node: OpenSSL12856
|
Node: OpenSSL12837
|
||||||
Node: zlib15132
|
Node: zlib15113
|
||||||
Node: lzo15961
|
Node: lzo15942
|
||||||
Node: Installation16748
|
Node: Installation16729
|
||||||
Node: Building and installing tinc17763
|
Node: Building and installing tinc17744
|
||||||
Node: Darwin (MacOS/X) build environment18422
|
Node: Darwin (MacOS/X) build environment18403
|
||||||
Node: Cygwin (Windows) build environment18990
|
Node: Cygwin (Windows) build environment18971
|
||||||
Node: MinGW (Windows) build environment19578
|
Node: MinGW (Windows) build environment19559
|
||||||
Node: System files20102
|
Node: System files20083
|
||||||
Node: Device files20367
|
Node: Device files20348
|
||||||
Node: Other files21553
|
Node: Other files21534
|
||||||
Node: Configuration22166
|
Node: Configuration22147
|
||||||
Node: Configuration introduction22477
|
Node: Configuration introduction22458
|
||||||
Node: Multiple networks23750
|
Node: Multiple networks23731
|
||||||
Node: How connections work25226
|
Node: How connections work25207
|
||||||
Node: Configuration files26448
|
Node: Configuration files26429
|
||||||
Node: Main configuration variables27475
|
Node: Main configuration variables27456
|
||||||
Node: Host configuration variables33939
|
Node: Host configuration variables33953
|
||||||
Node: Scripts38235
|
Node: Scripts38249
|
||||||
Node: How to configure40790
|
Node: How to configure41008
|
||||||
Node: Generating keypairs42073
|
Node: Generating keypairs42291
|
||||||
Node: Network interfaces42572
|
Node: Network interfaces42790
|
||||||
Node: Example configuration44440
|
Node: Example configuration44658
|
||||||
Node: Running tinc49892
|
Node: Running tinc50110
|
||||||
Node: Runtime options50482
|
Node: Runtime options50700
|
||||||
Node: Signals52519
|
Node: Signals52737
|
||||||
Node: Debug levels53588
|
Node: Debug levels53806
|
||||||
Node: Solving problems54524
|
Node: Solving problems54742
|
||||||
Node: Error messages55954
|
Node: Error messages56172
|
||||||
Node: Sending bug reports60276
|
Node: Sending bug reports60494
|
||||||
Node: Technical information61228
|
Node: Technical information61446
|
||||||
Node: The connection61459
|
Node: The connection61677
|
||||||
Node: The UDP tunnel61771
|
Node: The UDP tunnel61989
|
||||||
Node: The meta-connection64832
|
Node: The meta-connection65050
|
||||||
Node: The meta-protocol66301
|
Node: The meta-protocol66519
|
||||||
Node: Security71310
|
Node: Security71528
|
||||||
Node: Authentication protocol72440
|
Node: Authentication protocol72658
|
||||||
Node: Encryption of network packets77444
|
Node: Encryption of network packets77662
|
||||||
Node: Security issues78817
|
Node: Security issues79035
|
||||||
Node: Platform specific information80434
|
Node: Platform specific information80652
|
||||||
Node: Interface configuration80662
|
Node: Interface configuration80880
|
||||||
Node: Routes82561
|
Node: Routes82779
|
||||||
Node: About us84477
|
Node: About us84695
|
||||||
Node: Contact information84652
|
Node: Contact information84870
|
||||||
Node: Authors85056
|
Node: Authors85274
|
||||||
Node: Concept Index85482
|
Node: Concept Index85700
|
||||||
|
|
||||||
End Tag Table
|
End Tag Table
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
\input texinfo @c -*-texinfo-*-
|
\input texinfo @c -*-texinfo-*-
|
||||||
@c $Id: tinc.texi 1439 2005-05-04 18:09:30Z guus $
|
@c $Id: tinc.texi 1467 2006-11-11 20:37:58Z guus $
|
||||||
@c %**start of header
|
@c %**start of header
|
||||||
@setfilename tinc.info
|
@setfilename tinc.info
|
||||||
@settitle tinc Manual
|
@settitle tinc Manual
|
||||||
|
@ -16,11 +16,11 @@
|
||||||
|
|
||||||
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-2005 Ivo Timmermans
|
Copyright @copyright{} 1998-2006 Ivo Timmermans,
|
||||||
<ivo@@tinc-vpn.org>, 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>.
|
||||||
|
|
||||||
$Id: tinc.texi 1439 2005-05-04 18:09:30Z guus $
|
$Id: tinc.texi 1467 2006-11-11 20:37:58Z guus $
|
||||||
|
|
||||||
Permission is granted to make and distribute verbatim copies of this
|
Permission is granted to make and distribute verbatim copies of this
|
||||||
manual provided the copyright notice and this permission notice are
|
manual provided the copyright notice and this permission notice are
|
||||||
|
@ -43,11 +43,11 @@ permission notice identical to this one.
|
||||||
@cindex copyright
|
@cindex copyright
|
||||||
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-2005 Ivo Timmermans
|
Copyright @copyright{} 1998-2006 Ivo Timmermans,
|
||||||
<ivo@@tinc-vpn.org>, 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>.
|
||||||
|
|
||||||
$Id: tinc.texi 1439 2005-05-04 18:09:30Z guus $
|
$Id: tinc.texi 1467 2006-11-11 20:37:58Z guus $
|
||||||
|
|
||||||
Permission is granted to make and distribute verbatim copies of this
|
Permission is granted to make and distribute verbatim copies of this
|
||||||
manual provided the copyright notice and this permission notice are
|
manual provided the copyright notice and this permission notice are
|
||||||
|
@ -841,15 +841,6 @@ variable.
|
||||||
|
|
||||||
This option may not work on all platforms.
|
This option may not work on all platforms.
|
||||||
|
|
||||||
@cindex BlockingTCP
|
|
||||||
@item BlockingTCP = <yes|no> (no) [experimental]
|
|
||||||
This options selects whether TCP connections, when established, should use blocking writes.
|
|
||||||
When turned off, tinc will never block when a TCP connection becomes congested,
|
|
||||||
but will have to terminate that connection instead.
|
|
||||||
If turned on, tinc will not terminate connections but will block,
|
|
||||||
thereby unable to process data to/from other connections.
|
|
||||||
Turn this option on if you also use TCPOnly and tinc terminates connections frequently.
|
|
||||||
|
|
||||||
@cindex ConnectTo
|
@cindex ConnectTo
|
||||||
@item ConnectTo = <@var{name}>
|
@item ConnectTo = <@var{name}>
|
||||||
Specifies which other tinc daemon to connect to on startup.
|
Specifies which other tinc daemon to connect to on startup.
|
||||||
|
@ -871,6 +862,16 @@ Under Windows, use @var{Interface} instead of @var{Device}.
|
||||||
Note that you can only use one device per daemon.
|
Note that you can only use one device per daemon.
|
||||||
See also @ref{Device files}.
|
See also @ref{Device files}.
|
||||||
|
|
||||||
|
@cindex GraphDumpFile
|
||||||
|
@item GraphDumpFile = <@var{filename}> [experimental]
|
||||||
|
If this option is present,
|
||||||
|
tinc will dump the current network graph to the file @var{filename}
|
||||||
|
every minute, unless there were no changes to the graph.
|
||||||
|
The file is in a format that can be read by graphviz tools.
|
||||||
|
If @var{filename} starts with a pipe symbol |,
|
||||||
|
then the rest of the filename is interpreted as a shell command
|
||||||
|
that is executed, the graph is then sent to stdin.
|
||||||
|
|
||||||
@cindex Hostnames
|
@cindex Hostnames
|
||||||
@item Hostnames = <yes|no> (no)
|
@item Hostnames = <yes|no> (no)
|
||||||
This option selects whether IP addresses (both real and on the VPN)
|
This option selects whether IP addresses (both real and on the VPN)
|
||||||
|
@ -933,12 +934,16 @@ This only has effect when Mode is set to "switch".
|
||||||
@item Name = <@var{name}> [required]
|
@item Name = <@var{name}> [required]
|
||||||
This is a symbolic name for this connection. It can be anything
|
This is a symbolic name for this connection. It can be anything
|
||||||
|
|
||||||
@cindex PingTimeout
|
@cindex PingInterval
|
||||||
@item PingTimeout = <@var{seconds}> (60)
|
@item PingInterval = <@var{seconds}> (60)
|
||||||
The number of seconds of inactivity that tinc will wait before sending a
|
The number of seconds of inactivity that tinc will wait before sending a
|
||||||
probe to the other end. If that other end doesn't answer within that
|
probe to the other end.
|
||||||
same amount of seconds, the connection is terminated, and the others
|
|
||||||
will be notified of this.
|
@cindex PingTimeout
|
||||||
|
@item PingTimeout = <@var{seconds}> (5)
|
||||||
|
The number of seconds to wait for a response to pings or to allow meta
|
||||||
|
connections to block. If the other end doesn't respond within this time,
|
||||||
|
the connection is terminated, and the others will be notified of this.
|
||||||
|
|
||||||
@cindex PriorityInheritance
|
@cindex PriorityInheritance
|
||||||
@item PriorityInheritance = <yes|no> (no) [experimental]
|
@item PriorityInheritance = <yes|no> (no) [experimental]
|
||||||
|
@ -1101,6 +1106,12 @@ This script is started when the tinc daemon with name @var{host} becomes reachab
|
||||||
@item @value{sysconfdir}/tinc/@var{netname}/hosts/@var{host}-down
|
@item @value{sysconfdir}/tinc/@var{netname}/hosts/@var{host}-down
|
||||||
This script is started when the tinc daemon with name @var{host} becomes unreachable.
|
This script is started when the tinc daemon with name @var{host} becomes unreachable.
|
||||||
|
|
||||||
|
@item @value{sysconfdir}/tinc/@var{netname}/host-up
|
||||||
|
This script is started when any host becomes reachable.
|
||||||
|
|
||||||
|
@item @value{sysconfdir}/tinc/@var{netname}/host-down
|
||||||
|
This script is started when any host becomes unreachable.
|
||||||
|
|
||||||
@item @value{sysconfdir}/tinc/@var{netname}/subnet-up
|
@item @value{sysconfdir}/tinc/@var{netname}/subnet-up
|
||||||
This script is started when a Subnet becomes reachable.
|
This script is started when a Subnet becomes reachable.
|
||||||
The Subnet and the node it belongs to are passed in environment variables.
|
The Subnet and the node it belongs to are passed in environment variables.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
.Dd 2002-03-25
|
.Dd 2002-03-25
|
||||||
.Dt TINCD 8
|
.Dt TINCD 8
|
||||||
.\" Manual page created by:
|
.\" Manual page created by:
|
||||||
.\" Ivo Timmermans <ivo@tinc-vpn.org>
|
.\" Ivo Timmermans
|
||||||
.\" Guus Sliepen <guus@tinc-vpn.org>
|
.\" Guus Sliepen <guus@tinc-vpn.org>
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
.Nm tincd
|
.Nm tincd
|
||||||
|
@ -181,7 +181,7 @@ tinc comes with ABSOLUTELY NO WARRANTY.
|
||||||
This is free software, and you are welcome to redistribute it under certain conditions;
|
This is free software, and you are welcome to redistribute it under certain conditions;
|
||||||
see the file COPYING for details.
|
see the file COPYING for details.
|
||||||
.Sh AUTHORS
|
.Sh AUTHORS
|
||||||
.An "Ivo Timmermans" Aq ivo@tinc-vpn.org
|
.An "Ivo Timmermans"
|
||||||
.An "Guus Sliepen" Aq guus@tinc-vpn.org
|
.An "Guus Sliepen" Aq guus@tinc-vpn.org
|
||||||
.Pp
|
.Pp
|
||||||
And thanks to many others for their contributions to tinc!
|
And thanks to many others for their contributions to tinc!
|
||||||
|
|
8
have.h
8
have.h
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
have.h -- include headers which are known to exist
|
have.h -- include headers which are known to exist
|
||||||
Copyright (C) 1998-2005 Ivo Timmermans <ivo@tinc-vpn.org>
|
Copyright (C) 1998-2005 Ivo Timmermans
|
||||||
2003-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2003-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -43,6 +43,10 @@
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_ALLOCA_H
|
||||||
|
#include <alloca.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Include system specific headers */
|
/* Include system specific headers */
|
||||||
|
|
||||||
#ifdef HAVE_SYSLOG_H
|
#ifdef HAVE_SYSLOG_H
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# install - install a program, script, or datafile
|
# install - install a program, script, or datafile
|
||||||
|
|
||||||
scriptversion=2005-02-02.21
|
scriptversion=2005-05-14.22
|
||||||
|
|
||||||
# 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
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Makefile.in generated by automake 1.9.5 from Makefile.am.
|
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||||
# @configure_input@
|
# @configure_input@
|
||||||
|
|
||||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||||
|
@ -17,8 +17,6 @@
|
||||||
# $Id: Makefile.am 1374 2004-03-21 14:21:22Z guus $
|
# $Id: Makefile.am 1374 2004-03-21 14:21:22Z guus $
|
||||||
|
|
||||||
|
|
||||||
SOURCES = $(libvpn_a_SOURCES)
|
|
||||||
|
|
||||||
srcdir = @srcdir@
|
srcdir = @srcdir@
|
||||||
top_srcdir = @top_srcdir@
|
top_srcdir = @top_srcdir@
|
||||||
VPATH = @srcdir@
|
VPATH = @srcdir@
|
||||||
|
@ -47,13 +45,14 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
|
||||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
|
am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
|
||||||
$(top_srcdir)/m4/attribute.m4 $(top_srcdir)/m4/gettext.m4 \
|
$(top_srcdir)/m4/attribute.m4 $(top_srcdir)/m4/gettext.m4 \
|
||||||
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
|
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/isc-posix.m4 \
|
||||||
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
|
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
|
||||||
$(top_srcdir)/m4/lzo.m4 $(top_srcdir)/m4/malloc.m4 \
|
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/lzo.m4 \
|
||||||
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/openssl.m4 \
|
$(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/nls.m4 \
|
||||||
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
|
$(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/po.m4 \
|
||||||
$(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/tuntap.m4 \
|
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/realloc.m4 \
|
||||||
$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/configure.in
|
$(top_srcdir)/m4/tuntap.m4 $(top_srcdir)/m4/zlib.m4 \
|
||||||
|
$(top_srcdir)/configure.in
|
||||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
$(ACLOCAL_M4)
|
$(ACLOCAL_M4)
|
||||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||||
|
@ -104,6 +103,7 @@ ECHO_T = @ECHO_T@
|
||||||
EGREP = @EGREP@
|
EGREP = @EGREP@
|
||||||
EXEEXT = @EXEEXT@
|
EXEEXT = @EXEEXT@
|
||||||
GMSGFMT = @GMSGFMT@
|
GMSGFMT = @GMSGFMT@
|
||||||
|
GREP = @GREP@
|
||||||
HAVE_TUNTAP = @HAVE_TUNTAP@
|
HAVE_TUNTAP = @HAVE_TUNTAP@
|
||||||
INCLUDES = @INCLUDES@ -I. -I$(top_builddir)
|
INCLUDES = @INCLUDES@ -I. -I$(top_builddir)
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
@ -145,8 +145,6 @@ USE_NLS = @USE_NLS@
|
||||||
VERSION = @VERSION@
|
VERSION = @VERSION@
|
||||||
XGETTEXT = @XGETTEXT@
|
XGETTEXT = @XGETTEXT@
|
||||||
ac_ct_CC = @ac_ct_CC@
|
ac_ct_CC = @ac_ct_CC@
|
||||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
|
||||||
ac_ct_STRIP = @ac_ct_STRIP@
|
|
||||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||||
am__include = @am__include@
|
am__include = @am__include@
|
||||||
|
@ -161,23 +159,30 @@ build_cpu = @build_cpu@
|
||||||
build_os = @build_os@
|
build_os = @build_os@
|
||||||
build_vendor = @build_vendor@
|
build_vendor = @build_vendor@
|
||||||
datadir = @datadir@
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
exec_prefix = @exec_prefix@
|
exec_prefix = @exec_prefix@
|
||||||
host = @host@
|
host = @host@
|
||||||
host_alias = @host_alias@
|
host_alias = @host_alias@
|
||||||
host_cpu = @host_cpu@
|
host_cpu = @host_cpu@
|
||||||
host_os = @host_os@
|
host_os = @host_os@
|
||||||
host_vendor = @host_vendor@
|
host_vendor = @host_vendor@
|
||||||
|
htmldir = @htmldir@
|
||||||
includedir = @includedir@
|
includedir = @includedir@
|
||||||
infodir = @infodir@
|
infodir = @infodir@
|
||||||
install_sh = @install_sh@
|
install_sh = @install_sh@
|
||||||
libdir = @libdir@
|
libdir = @libdir@
|
||||||
libexecdir = @libexecdir@
|
libexecdir = @libexecdir@
|
||||||
|
localedir = @localedir@
|
||||||
localstatedir = @localstatedir@
|
localstatedir = @localstatedir@
|
||||||
mandir = @mandir@
|
mandir = @mandir@
|
||||||
mkdir_p = @mkdir_p@
|
mkdir_p = @mkdir_p@
|
||||||
oldincludedir = @oldincludedir@
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
prefix = @prefix@
|
prefix = @prefix@
|
||||||
program_transform_name = @program_transform_name@
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
sbindir = @sbindir@
|
sbindir = @sbindir@
|
||||||
sharedstatedir = @sharedstatedir@
|
sharedstatedir = @sharedstatedir@
|
||||||
sysconfdir = @sysconfdir@
|
sysconfdir = @sysconfdir@
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
/*
|
/*
|
||||||
avl_tree.c -- avl_ tree and linked list convenience
|
avl_tree.c -- avl_ tree and linked list convenience
|
||||||
Copyright (C) 1998 Michael H. Buselli
|
Copyright (C) 1998 Michael H. Buselli
|
||||||
2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
|
2000-2005 Ivo Timmermans,
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
2000-2005 Wessel Dankers <wsl@tinc-vpn.org>
|
2000-2005 Wessel Dankers <wsl@tinc-vpn.org>
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
library for inclusion into tinc (http://www.tinc-vpn.org/) by
|
library for inclusion into tinc (http://www.tinc-vpn.org/) by
|
||||||
Guus Sliepen <guus@tinc-vpn.org>.
|
Guus Sliepen <guus@tinc-vpn.org>.
|
||||||
|
|
||||||
$Id: avl_tree.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: avl_tree.c 1470 2006-11-11 22:45:45Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
@ -656,7 +656,7 @@ void avl_delete_tree(avl_tree_t *tree)
|
||||||
{
|
{
|
||||||
avl_node_t *node, *next;
|
avl_node_t *node, *next;
|
||||||
|
|
||||||
for(node = tree->root; node; node = next) {
|
for(node = tree->head; node; node = next) {
|
||||||
next = node->next;
|
next = node->next;
|
||||||
avl_free_node(tree, node);
|
avl_free_node(tree, node);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
/*
|
/*
|
||||||
avl_tree.h -- header file for avl_tree.c
|
avl_tree.h -- header file for avl_tree.c
|
||||||
Copyright (C) 1998 Michael H. Buselli
|
Copyright (C) 1998 Michael H. Buselli
|
||||||
2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
|
2000-2005 Ivo Timmermans,
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
2000-2005 Wessel Dankers <wsl@tinc-vpn.org>
|
2000-2005 Wessel Dankers <wsl@tinc-vpn.org>
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
library for inclusion into tinc (http://www.tinc-vpn.org/) by
|
library for inclusion into tinc (http://www.tinc-vpn.org/) by
|
||||||
Guus Sliepen <guus@tinc-vpn.org>.
|
Guus Sliepen <guus@tinc-vpn.org>.
|
||||||
|
|
||||||
$Id: avl_tree.h 1439 2005-05-04 18:09:30Z guus $
|
$Id: avl_tree.h 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
dropin.c -- a set of drop-in replacements for libc functions
|
dropin.c -- a set of drop-in replacements for libc functions
|
||||||
Copyright (C) 2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
|
Copyright (C) 2000-2005 Ivo Timmermans,
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: dropin.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: dropin.c 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
dropin.h -- header file for dropin.c
|
dropin.h -- header file for dropin.c
|
||||||
Copyright (C) 2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
|
Copyright (C) 2000-2005 Ivo Timmermans,
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: dropin.h 1439 2005-05-04 18:09:30Z guus $
|
$Id: dropin.h 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __DROPIN_H__
|
#ifndef __DROPIN_H__
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
ethernet.h -- missing Ethernet related definitions
|
ethernet.h -- missing Ethernet related definitions
|
||||||
Copyright (C) 2005 Ivo Timmermans <ivo@tinc-vpn.org>
|
Copyright (C) 2005 Ivo Timmermans
|
||||||
2005 Guus Sliepen <guus@tinc-vpn.org>
|
2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: ethernet.h 1439 2005-05-04 18:09:30Z guus $
|
$Id: ethernet.h 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __TINC_ETHERNET_H__
|
#ifndef __TINC_ETHERNET_H__
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
ipv4.h -- missing IPv4 related definitions
|
ipv4.h -- missing IPv4 related definitions
|
||||||
Copyright (C) 2005 Ivo Timmermans <ivo@tinc-vpn.org>
|
Copyright (C) 2005 Ivo Timmermans
|
||||||
2005 Guus Sliepen <guus@tinc-vpn.org>
|
2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: ipv4.h 1439 2005-05-04 18:09:30Z guus $
|
$Id: ipv4.h 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __TINC_IPV4_H__
|
#ifndef __TINC_IPV4_H__
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
ipv6.h -- missing IPv6 related definitions
|
ipv6.h -- missing IPv6 related definitions
|
||||||
Copyright (C) 2005 Ivo Timmermans <ivo@tinc-vpn.org>
|
Copyright (C) 2005 Ivo Timmermans
|
||||||
2005 Guus Sliepen <guus@tinc-vpn.org>
|
2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: ipv6.h 1439 2005-05-04 18:09:30Z guus $
|
$Id: ipv6.h 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __TINC_IPV6_H__
|
#ifndef __TINC_IPV6_H__
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
list.c -- functions to deal with double linked lists
|
list.c -- functions to deal with double linked lists
|
||||||
Copyright (C) 2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>
|
Copyright (C) 2000-2005 Ivo Timmermans
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: list.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: list.c 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
list.h -- header file for list.c
|
list.h -- header file for list.c
|
||||||
Copyright (C) 2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>
|
Copyright (C) 2000-2005 Ivo Timmermans
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: list.h 1439 2005-05-04 18:09:30Z guus $
|
$Id: list.h 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __TINC_LIST_H__
|
#ifndef __TINC_LIST_H__
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
utils.c -- gathering of some stupid small functions
|
utils.c -- gathering of some stupid small functions
|
||||||
Copyright (C) 1999-2005 Ivo Timmermans <zarq@iname.com>
|
Copyright (C) 1999-2005 Ivo Timmermans <zarq@iname.com>
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
utils.h -- header file for utils.c
|
utils.h -- header file for utils.c
|
||||||
Copyright (C) 1999-2005 Ivo Timmermans <zarq@iname.com>
|
Copyright (C) 1999-2005 Ivo Timmermans <zarq@iname.com>
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Makefile.in generated by automake 1.9.5 from Makefile.am.
|
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||||
# @configure_input@
|
# @configure_input@
|
||||||
|
|
||||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||||
|
@ -40,13 +40,14 @@ DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
|
am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
|
||||||
$(top_srcdir)/m4/attribute.m4 $(top_srcdir)/m4/gettext.m4 \
|
$(top_srcdir)/m4/attribute.m4 $(top_srcdir)/m4/gettext.m4 \
|
||||||
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
|
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/isc-posix.m4 \
|
||||||
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
|
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
|
||||||
$(top_srcdir)/m4/lzo.m4 $(top_srcdir)/m4/malloc.m4 \
|
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/lzo.m4 \
|
||||||
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/openssl.m4 \
|
$(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/nls.m4 \
|
||||||
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
|
$(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/po.m4 \
|
||||||
$(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/tuntap.m4 \
|
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/realloc.m4 \
|
||||||
$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/configure.in
|
$(top_srcdir)/m4/tuntap.m4 $(top_srcdir)/m4/zlib.m4 \
|
||||||
|
$(top_srcdir)/configure.in
|
||||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
$(ACLOCAL_M4)
|
$(ACLOCAL_M4)
|
||||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||||
|
@ -78,6 +79,7 @@ ECHO_T = @ECHO_T@
|
||||||
EGREP = @EGREP@
|
EGREP = @EGREP@
|
||||||
EXEEXT = @EXEEXT@
|
EXEEXT = @EXEEXT@
|
||||||
GMSGFMT = @GMSGFMT@
|
GMSGFMT = @GMSGFMT@
|
||||||
|
GREP = @GREP@
|
||||||
HAVE_TUNTAP = @HAVE_TUNTAP@
|
HAVE_TUNTAP = @HAVE_TUNTAP@
|
||||||
INCLUDES = @INCLUDES@
|
INCLUDES = @INCLUDES@
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
@ -119,8 +121,6 @@ USE_NLS = @USE_NLS@
|
||||||
VERSION = @VERSION@
|
VERSION = @VERSION@
|
||||||
XGETTEXT = @XGETTEXT@
|
XGETTEXT = @XGETTEXT@
|
||||||
ac_ct_CC = @ac_ct_CC@
|
ac_ct_CC = @ac_ct_CC@
|
||||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
|
||||||
ac_ct_STRIP = @ac_ct_STRIP@
|
|
||||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||||
am__include = @am__include@
|
am__include = @am__include@
|
||||||
|
@ -135,23 +135,30 @@ build_cpu = @build_cpu@
|
||||||
build_os = @build_os@
|
build_os = @build_os@
|
||||||
build_vendor = @build_vendor@
|
build_vendor = @build_vendor@
|
||||||
datadir = @datadir@
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
exec_prefix = @exec_prefix@
|
exec_prefix = @exec_prefix@
|
||||||
host = @host@
|
host = @host@
|
||||||
host_alias = @host_alias@
|
host_alias = @host_alias@
|
||||||
host_cpu = @host_cpu@
|
host_cpu = @host_cpu@
|
||||||
host_os = @host_os@
|
host_os = @host_os@
|
||||||
host_vendor = @host_vendor@
|
host_vendor = @host_vendor@
|
||||||
|
htmldir = @htmldir@
|
||||||
includedir = @includedir@
|
includedir = @includedir@
|
||||||
infodir = @infodir@
|
infodir = @infodir@
|
||||||
install_sh = @install_sh@
|
install_sh = @install_sh@
|
||||||
libdir = @libdir@
|
libdir = @libdir@
|
||||||
libexecdir = @libexecdir@
|
libexecdir = @libexecdir@
|
||||||
|
localedir = @localedir@
|
||||||
localstatedir = @localstatedir@
|
localstatedir = @localstatedir@
|
||||||
mandir = @mandir@
|
mandir = @mandir@
|
||||||
mkdir_p = @mkdir_p@
|
mkdir_p = @mkdir_p@
|
||||||
oldincludedir = @oldincludedir@
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
prefix = @prefix@
|
prefix = @prefix@
|
||||||
program_transform_name = @program_transform_name@
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
sbindir = @sbindir@
|
sbindir = @sbindir@
|
||||||
sharedstatedir = @sharedstatedir@
|
sharedstatedir = @sharedstatedir@
|
||||||
sysconfdir = @sysconfdir@
|
sysconfdir = @sysconfdir@
|
||||||
|
|
20
m4/lzo.m4
20
m4/lzo.m4
|
@ -21,13 +21,17 @@ AC_DEFUN([tinc_LZO],
|
||||||
LDFLAGS="$LDFLAGS -L$withval"]
|
LDFLAGS="$LDFLAGS -L$withval"]
|
||||||
)
|
)
|
||||||
|
|
||||||
AC_CHECK_HEADERS(lzo1x.h,
|
AC_CHECK_LIB(lzo2, lzo1x_1_compress,
|
||||||
[],
|
[AC_CHECK_HEADERS(lzo/lzo1x.h,
|
||||||
[AC_MSG_ERROR("lzo header files not found."); break]
|
[LIBS="$LIBS -llzo2"],
|
||||||
)
|
[AC_MSG_ERROR("lzo2 header files not found."); break]
|
||||||
|
)],
|
||||||
AC_CHECK_LIB(lzo, lzo1x_1_compress,
|
[AC_CHECK_LIB(lzo, lzo1x_1_compress,
|
||||||
[LIBS="$LIBS -llzo"],
|
[AC_CHECK_HEADERS(lzo1x.h,
|
||||||
[AC_MSG_ERROR("lzo libraries not found.")]
|
[LIBS="$LIBS -llzo"],
|
||||||
|
[AC_MSG_ERROR("lzo1 header files not found."); break]
|
||||||
|
)],
|
||||||
|
[AC_MSG_ERROR("lzo libraries not found."); break]
|
||||||
|
)]
|
||||||
)
|
)
|
||||||
])
|
])
|
||||||
|
|
|
@ -21,7 +21,7 @@ AC_DEFUN([tinc_OPENSSL],
|
||||||
LDFLAGS="$LDFLAGS -L$withval"]
|
LDFLAGS="$LDFLAGS -L$withval"]
|
||||||
)
|
)
|
||||||
|
|
||||||
AC_CHECK_HEADERS(openssl/evp.h openssl/rsa.h openssl/rand.h openssl/err.h openssl/sha.h openssl/pem.h,
|
AC_CHECK_HEADERS(openssl/evp.h openssl/rsa.h openssl/rand.h openssl/err.h openssl/sha.h openssl/pem.h openssl/engine.h,
|
||||||
[],
|
[],
|
||||||
[AC_MSG_ERROR([OpenSSL header files not found.]); break]
|
[AC_MSG_ERROR([OpenSSL header files not found.]); break]
|
||||||
)
|
)
|
||||||
|
|
9
missing
9
missing
|
@ -1,7 +1,7 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Common stub for a few missing GNU programs while installing.
|
# Common stub for a few missing GNU programs while installing.
|
||||||
|
|
||||||
scriptversion=2005-02-08.22
|
scriptversion=2005-06-08.21
|
||||||
|
|
||||||
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
|
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
|
||||||
# Free Software Foundation, Inc.
|
# Free Software Foundation, Inc.
|
||||||
|
@ -19,8 +19,8 @@ scriptversion=2005-02-08.22
|
||||||
|
|
||||||
# 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, write to the Free Software
|
# along with this program; if not, write to the Free Software
|
||||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||||
# 02111-1307, USA.
|
# 02110-1301, USA.
|
||||||
|
|
||||||
# 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
|
||||||
|
@ -297,6 +297,9 @@ WARNING: \`$1' is $msg. You should only need it if
|
||||||
# ... or it is derived from the source name (dir/f.texi becomes f.info)
|
# ... or it is derived from the source name (dir/f.texi becomes f.info)
|
||||||
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
|
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
|
||||||
fi
|
fi
|
||||||
|
# If the file does not exist, the user really needs makeinfo;
|
||||||
|
# let's fail without touching anything.
|
||||||
|
test -f $file || exit 1
|
||||||
touch $file
|
touch $file
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# mkinstalldirs --- make directory hierarchy
|
# mkinstalldirs --- make directory hierarchy
|
||||||
|
|
||||||
scriptversion=2005-02-02.21
|
scriptversion=2005-06-29.22
|
||||||
|
|
||||||
# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
|
# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
|
||||||
# Created: 1993-05-16
|
# Created: 1993-05-16
|
||||||
|
@ -12,7 +12,7 @@ scriptversion=2005-02-02.21
|
||||||
# <automake-patches@gnu.org>.
|
# <automake-patches@gnu.org>.
|
||||||
|
|
||||||
errstatus=0
|
errstatus=0
|
||||||
dirmode=""
|
dirmode=
|
||||||
|
|
||||||
usage="\
|
usage="\
|
||||||
Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
|
Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
|
||||||
|
@ -103,13 +103,21 @@ esac
|
||||||
|
|
||||||
for file
|
for file
|
||||||
do
|
do
|
||||||
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
|
case $file in
|
||||||
|
/*) pathcomp=/ ;;
|
||||||
|
*) pathcomp= ;;
|
||||||
|
esac
|
||||||
|
oIFS=$IFS
|
||||||
|
IFS=/
|
||||||
|
set fnord $file
|
||||||
shift
|
shift
|
||||||
|
IFS=$oIFS
|
||||||
|
|
||||||
pathcomp=
|
|
||||||
for d
|
for d
|
||||||
do
|
do
|
||||||
pathcomp="$pathcomp$d"
|
test "x$d" = x && continue
|
||||||
|
|
||||||
|
pathcomp=$pathcomp$d
|
||||||
case $pathcomp in
|
case $pathcomp in
|
||||||
-*) pathcomp=./$pathcomp ;;
|
-*) pathcomp=./$pathcomp ;;
|
||||||
esac
|
esac
|
||||||
|
@ -124,7 +132,7 @@ do
|
||||||
else
|
else
|
||||||
if test ! -z "$dirmode"; then
|
if test ! -z "$dirmode"; then
|
||||||
echo "chmod $dirmode $pathcomp"
|
echo "chmod $dirmode $pathcomp"
|
||||||
lasterr=""
|
lasterr=
|
||||||
chmod "$dirmode" "$pathcomp" || lasterr=$?
|
chmod "$dirmode" "$pathcomp" || lasterr=$?
|
||||||
|
|
||||||
if test ! -z "$lasterr"; then
|
if test ! -z "$lasterr"; then
|
||||||
|
@ -134,7 +142,7 @@ do
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
pathcomp="$pathcomp/"
|
pathcomp=$pathcomp/
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
BIN
po/nl.gmo
BIN
po/nl.gmo
Binary file not shown.
361
po/nl.po
361
po/nl.po
|
@ -1,15 +1,15 @@
|
||||||
# Dutch messages for tinc
|
# Dutch messages for tinc
|
||||||
# Copyright (C) 1999-2004 Ivo Timmermans, Guus Sliepen.
|
# Copyright (C) 1999-2006 Ivo Timmermans, Guus Sliepen.
|
||||||
# Ivo Timmermans <ivo@tinc-vpn.org>, 1999-2004.
|
# Ivo Timmermans <ivo@tinc-vpn.org>, 1999-2006.
|
||||||
# Guus Sliepen <guus@tinc-vpn.org>, 2000-2004.
|
# Guus Sliepen <guus@tinc-vpn.org>, 2000-2006.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: tinc 1.0-svn\n"
|
"Project-Id-Version: tinc 1.0-svn\n"
|
||||||
"Report-Msgid-Bugs-To: tinc-devel@tinc-vpn.org\n"
|
"Report-Msgid-Bugs-To: tinc-devel@tinc-vpn.org\n"
|
||||||
"POT-Creation-Date: 2005-05-04 20:25+0200\n"
|
"POT-Creation-Date: 2006-11-14 13:46+0100\n"
|
||||||
"PO-Revision-Date: 2004-03-15 19:28+0100\n"
|
"PO-Revision-Date: 2006-11-11 16:26+0100\n"
|
||||||
"Last-Translator: Guus Sliepen <guus@tinc-vpn.org>\n"
|
"Last-Translator: Guus Sliepen <guus@tinc-vpn.org>\n"
|
||||||
"Language-Team: Dutch <vertaling@tinc-vpn.org>\n"
|
"Language-Team: Dutch\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
@ -18,30 +18,30 @@ msgstr ""
|
||||||
msgid "(unable to format errormessage)"
|
msgid "(unable to format errormessage)"
|
||||||
msgstr "(kon foutmelding niet samenstellen)"
|
msgstr "(kon foutmelding niet samenstellen)"
|
||||||
|
|
||||||
#: src/conf.c:159
|
#: src/conf.c:160
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "\"yes\" or \"no\" expected for configuration variable %s in %s line %d"
|
msgid "\"yes\" or \"no\" expected for configuration variable %s in %s line %d"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"\"ja\" of \"nee\" verwacht voor configuratievariabele %s in %s regel %d"
|
"\"ja\" of \"nee\" verwacht voor configuratievariabele %s in %s regel %d"
|
||||||
|
|
||||||
#: src/conf.c:175
|
#: src/conf.c:176
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Integer expected for configuration variable %s in %s line %d"
|
msgid "Integer expected for configuration variable %s in %s line %d"
|
||||||
msgstr "Geheel getal verwacht voor configuratievariabele %s in %s regel %d"
|
msgstr "Geheel getal verwacht voor configuratievariabele %s in %s regel %d"
|
||||||
|
|
||||||
#: src/conf.c:209
|
#: src/conf.c:210
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Hostname or IP address expected for configuration variable %s in %s line %d"
|
"Hostname or IP address expected for configuration variable %s in %s line %d"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Hostnaam of IP adres verwacht voor configuratievariabele %s in %s regel %d"
|
"Hostnaam of IP adres verwacht voor configuratievariabele %s in %s regel %d"
|
||||||
|
|
||||||
#: src/conf.c:225
|
#: src/conf.c:226
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Subnet expected for configuration variable %s in %s line %d"
|
msgid "Subnet expected for configuration variable %s in %s line %d"
|
||||||
msgstr "Subnet verwacht voor configuratievariabele %s in %s regel %d"
|
msgstr "Subnet verwacht voor configuratievariabele %s in %s regel %d"
|
||||||
|
|
||||||
#: src/conf.c:236
|
#: src/conf.c:237
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Network address and prefix length do not match for configuration variable %s "
|
"Network address and prefix length do not match for configuration variable %s "
|
||||||
|
@ -50,34 +50,34 @@ msgstr ""
|
||||||
"Netwerk adres en prefix lengte komen niet overeen bij configuratievariabele %"
|
"Netwerk adres en prefix lengte komen niet overeen bij configuratievariabele %"
|
||||||
"s in %s regel %d"
|
"s in %s regel %d"
|
||||||
|
|
||||||
#: src/conf.c:336
|
#: src/conf.c:337
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Cannot open config file %s: %s"
|
msgid "Cannot open config file %s: %s"
|
||||||
msgstr "Kan configuratie bestand %s niet openen: %s"
|
msgstr "Kan configuratie bestand %s niet openen: %s"
|
||||||
|
|
||||||
#: src/conf.c:390
|
#: src/conf.c:391
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "No value for variable `%s' on line %d while reading config file %s"
|
msgid "No value for variable `%s' on line %d while reading config file %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Geen waarde voor variabele `%s' op regel %d tijdens het lezen van "
|
"Geen waarde voor variabele `%s' op regel %d tijdens het lezen van "
|
||||||
"configuratie bestand %s"
|
"configuratie bestand %s"
|
||||||
|
|
||||||
#: src/conf.c:421
|
#: src/conf.c:422
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to read `%s': %s"
|
msgid "Failed to read `%s': %s"
|
||||||
msgstr "Lezen van `%s' mislukte: %s"
|
msgstr "Lezen van `%s' mislukte: %s"
|
||||||
|
|
||||||
#: src/conf.c:443
|
#: src/conf.c:444
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Please enter a file to save %s to [%s]: "
|
msgid "Please enter a file to save %s to [%s]: "
|
||||||
msgstr "Geef een bestand om de %s naar de schrijven [%s]: "
|
msgstr "Geef een bestand om de %s naar de schrijven [%s]: "
|
||||||
|
|
||||||
#: src/conf.c:450
|
#: src/conf.c:451
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error while reading stdin: %s\n"
|
msgid "Error while reading stdin: %s\n"
|
||||||
msgstr "Fout tijdens lezen van standaardinvoer: %s\n"
|
msgstr "Fout tijdens lezen van standaardinvoer: %s\n"
|
||||||
|
|
||||||
#: src/conf.c:482
|
#: src/conf.c:483
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error opening file `%s': %s\n"
|
msgid "Error opening file `%s': %s\n"
|
||||||
msgstr "Fout bij het openen van het bestand `%s': %s\n"
|
msgstr "Fout bij het openen van het bestand `%s': %s\n"
|
||||||
|
@ -96,44 +96,58 @@ msgstr "Verbindingen:"
|
||||||
|
|
||||||
#: src/connection.c:124
|
#: src/connection.c:124
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid " %s at %s options %lx socket %d status %04x"
|
msgid " %s at %s options %lx socket %d status %04x outbuf %d/%d/%d"
|
||||||
msgstr " %s op %s opties %lx socket %d status %04x"
|
msgstr " %s op %s opties %lx socket %d status %04x outbuf %d/%d/%d"
|
||||||
|
|
||||||
#: src/connection.c:128
|
#: src/connection.c:129
|
||||||
msgid "End of connections."
|
msgid "End of connections."
|
||||||
msgstr "Einde van verbindingen."
|
msgstr "Einde van verbindingen."
|
||||||
|
|
||||||
#: src/meta.c:45
|
#: src/meta.c:44
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Sending %d bytes of metadata to %s (%s)"
|
msgid "Sending %d bytes of metadata to %s (%s)"
|
||||||
msgstr "Verzenden van %d bytes metadata naar %s (%s)"
|
msgstr "Verzenden van %d bytes metadata naar %s (%s)"
|
||||||
|
|
||||||
#: src/meta.c:51
|
#: src/meta.c:66
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error while encrypting metadata to %s (%s): %s"
|
msgid "Error while encrypting metadata to %s (%s): %s"
|
||||||
msgstr "Fout tijdens versleutelen van metadata naar %s (%s): %s"
|
msgstr "Fout tijdens versleutelen van metadata naar %s (%s): %s"
|
||||||
|
|
||||||
#: src/meta.c:64 src/meta.c:117
|
#: src/meta.c:70
|
||||||
|
msgid "Encrypted data too long! Heap corrupted!"
|
||||||
|
msgstr "Versleutelde data te lang! Heap gecorrumpeerd!"
|
||||||
|
|
||||||
|
#: src/meta.c:86
|
||||||
|
#, c-format
|
||||||
|
msgid "Flushing %d bytes to %s (%s)"
|
||||||
|
msgstr "Wegschrijven %d bytes naar %s (%s)"
|
||||||
|
|
||||||
|
#: src/meta.c:93 src/meta.c:156
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Connection closed by %s (%s)"
|
msgid "Connection closed by %s (%s)"
|
||||||
msgstr "Verbinding beëindigd door %s (%s)"
|
msgstr "Verbinding beëindigd door %s (%s)"
|
||||||
|
|
||||||
#: src/meta.c:69
|
#: src/meta.c:99
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Sending meta data to %s (%s) failed: %s"
|
msgid "Flushing %d bytes to %s (%s) would block"
|
||||||
msgstr "Fout tijdens verzenden metadata naar %s (%s): %s"
|
msgstr "Wegschrijven %d bytes naar %s (%s) zou blokkeren"
|
||||||
|
|
||||||
#: src/meta.c:122
|
#: src/meta.c:104
|
||||||
|
#, c-format
|
||||||
|
msgid "Flushing meta data to %s (%s) failed: %s"
|
||||||
|
msgstr "Wegschrijven metadata naar %s (%s) faalde: %s"
|
||||||
|
|
||||||
|
#: src/meta.c:161
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Metadata socket read error for %s (%s): %s"
|
msgid "Metadata socket read error for %s (%s): %s"
|
||||||
msgstr "Fout op metadata socket voor %s (%s) tijdens lezen: %s"
|
msgstr "Fout op metadata socket voor %s (%s) tijdens lezen: %s"
|
||||||
|
|
||||||
#: src/meta.c:137
|
#: src/meta.c:176
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error while decrypting metadata from %s (%s): %s"
|
msgid "Error while decrypting metadata from %s (%s): %s"
|
||||||
msgstr "Fout tijdens ontsleutelen van metadata van %s (%s): %s"
|
msgstr "Fout tijdens ontsleutelen van metadata van %s (%s): %s"
|
||||||
|
|
||||||
#: src/meta.c:190
|
#: src/meta.c:229
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Metadata read buffer overflow for %s (%s)"
|
msgid "Metadata read buffer overflow for %s (%s)"
|
||||||
msgstr "Metadata leesbuffer overloop voor %s (%s)"
|
msgstr "Metadata leesbuffer overloop voor %s (%s)"
|
||||||
|
@ -147,130 +161,135 @@ msgstr "Verwijderen onbereikbare nodes"
|
||||||
msgid "Purging node %s (%s)"
|
msgid "Purging node %s (%s)"
|
||||||
msgstr "Verwijdering node %s (%s)"
|
msgstr "Verwijdering node %s (%s)"
|
||||||
|
|
||||||
#: src/net.c:170
|
#: src/net.c:173
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Closing connection with %s (%s)"
|
msgid "Closing connection with %s (%s)"
|
||||||
msgstr "Beëindigen verbinding met %s (%s)"
|
msgstr "Beëindigen verbinding met %s (%s)"
|
||||||
|
|
||||||
#: src/net.c:235
|
|
||||||
#, c-format
|
|
||||||
msgid "%s (%s) didn't respond to PING"
|
|
||||||
msgstr "%s (%s) antwoordde niet op ping"
|
|
||||||
|
|
||||||
#: src/net.c:244
|
#: src/net.c:244
|
||||||
#, c-format
|
#, c-format
|
||||||
|
msgid "%s (%s) didn't respond to PING in %ld seconds"
|
||||||
|
msgstr "%s (%s) antwoordde niet binnen %ld seconden op PING"
|
||||||
|
|
||||||
|
#: src/net.c:253
|
||||||
|
#, c-format
|
||||||
msgid "Old connection_t for %s (%s) status %04x still lingering, deleting..."
|
msgid "Old connection_t for %s (%s) status %04x still lingering, deleting..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Oude connection_t voor %s (%s) status %04x nog steeds aanwezig, wordt "
|
"Oude connection_t voor %s (%s) status %04x nog steeds aanwezig, wordt "
|
||||||
"verwijderd..."
|
"verwijderd..."
|
||||||
|
|
||||||
#: src/net.c:249
|
#: src/net.c:258
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Timeout from %s (%s) during authentication"
|
msgid "Timeout from %s (%s) during authentication"
|
||||||
msgstr "Timeout van %s (%s) tijdens authenticatie"
|
msgstr "Timeout van %s (%s) tijdens authenticatie"
|
||||||
|
|
||||||
#: src/net.c:297
|
#: src/net.c:273
|
||||||
|
#, c-format
|
||||||
|
msgid "%s (%s) could not flush for %ld seconds (%d bytes remaining)"
|
||||||
|
msgstr "%s (%s) kon niet binnen %ld seconden wegschrijven (%d bytes over)"
|
||||||
|
|
||||||
|
#: src/net.c:318
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error while connecting to %s (%s): %s"
|
msgid "Error while connecting to %s (%s): %s"
|
||||||
msgstr "Fout tijdens schrijven naar %s (%s): %s"
|
msgstr "Fout tijdens schrijven naar %s (%s): %s"
|
||||||
|
|
||||||
#: src/net.c:353
|
#: src/net.c:383
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error while waiting for input: %s"
|
msgid "Error while waiting for input: %s"
|
||||||
msgstr "Fout tijdens wachten op invoer: %s"
|
msgstr "Fout tijdens wachten op invoer: %s"
|
||||||
|
|
||||||
#: src/net.c:384
|
#: src/net.c:414
|
||||||
msgid "Regenerating symmetric key"
|
msgid "Regenerating symmetric key"
|
||||||
msgstr "Hergenereren symmetrische sleutel"
|
msgstr "Hergenereren symmetrische sleutel"
|
||||||
|
|
||||||
#: src/net.c:401
|
#: src/net.c:431
|
||||||
msgid "Flushing event queue"
|
msgid "Flushing event queue"
|
||||||
msgstr "Legen taakrij"
|
msgstr "Legen taakrij"
|
||||||
|
|
||||||
#: src/net.c:425
|
#: src/net.c:455
|
||||||
msgid "Unable to reread configuration file, exitting."
|
msgid "Unable to reread configuration file, exitting."
|
||||||
msgstr "Kan configuratiebestand niet herlezen, beëindigen."
|
msgstr "Kan configuratiebestand niet herlezen, beëindigen."
|
||||||
|
|
||||||
#: src/net_packet.c:75
|
#: src/net_packet.c:80
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "No response to MTU probes from %s (%s)"
|
msgid "No response to MTU probes from %s (%s)"
|
||||||
msgstr "Geen antwoord van %s (%s) op MTU probes"
|
msgstr "Geen antwoord van %s (%s) op MTU probes"
|
||||||
|
|
||||||
#: src/net_packet.c:82
|
#: src/net_packet.c:87
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Fixing MTU of %s (%s) to %d after %d probes"
|
msgid "Fixing MTU of %s (%s) to %d after %d probes"
|
||||||
msgstr "MTU van %s (%s) vastgezet op %d na %d probes"
|
msgstr "MTU van %s (%s) vastgezet op %d na %d probes"
|
||||||
|
|
||||||
#: src/net_packet.c:94
|
#: src/net_packet.c:99
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Sending MTU probe length %d to %s (%s)"
|
msgid "Sending MTU probe length %d to %s (%s)"
|
||||||
msgstr "Verzending MTU probe lengte %d naar %s (%s)"
|
msgstr "Verzending MTU probe lengte %d naar %s (%s)"
|
||||||
|
|
||||||
#: src/net_packet.c:107
|
#: src/net_packet.c:112
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Got MTU probe length %d from %s (%s)"
|
msgid "Got MTU probe length %d from %s (%s)"
|
||||||
msgstr "Kreeg MTU probe met verkeerde lengte %d van %s (%s)"
|
msgstr "Kreeg MTU probe met verkeerde lengte %d van %s (%s)"
|
||||||
|
|
||||||
#: src/net_packet.c:164
|
#: src/net_packet.c:169
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Received packet of %d bytes from %s (%s)"
|
msgid "Received packet of %d bytes from %s (%s)"
|
||||||
msgstr "Ontvangst pakket van %d bytes van %s (%s)"
|
msgstr "Ontvangst pakket van %d bytes van %s (%s)"
|
||||||
|
|
||||||
#: src/net_packet.c:185 src/route.c:92
|
#: src/net_packet.c:190 src/route.c:92
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Got too short packet from %s (%s)"
|
msgid "Got too short packet from %s (%s)"
|
||||||
msgstr "Kreeg te kort pakket van %s (%s)"
|
msgstr "Kreeg te kort pakket van %s (%s)"
|
||||||
|
|
||||||
#: src/net_packet.c:198
|
#: src/net_packet.c:203
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Got unauthenticated packet from %s (%s)"
|
msgid "Got unauthenticated packet from %s (%s)"
|
||||||
msgstr "Kreeg niet-geauthenticeerd pakket van %s (%s)"
|
msgstr "Kreeg niet-geauthenticeerd pakket van %s (%s)"
|
||||||
|
|
||||||
#: src/net_packet.c:213
|
#: src/net_packet.c:218
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error decrypting packet from %s (%s): %s"
|
msgid "Error decrypting packet from %s (%s): %s"
|
||||||
msgstr "Fout tijdens ontsleutelen pakket van %s (%s): %s"
|
msgstr "Fout tijdens ontsleutelen pakket van %s (%s): %s"
|
||||||
|
|
||||||
#: src/net_packet.c:229
|
#: src/net_packet.c:234
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Lost %d packets from %s (%s)"
|
msgid "Lost %d packets from %s (%s)"
|
||||||
msgstr "%d pakketten van %s (%s) verloren"
|
msgstr "%d pakketten van %s (%s) verloren"
|
||||||
|
|
||||||
#: src/net_packet.c:235
|
#: src/net_packet.c:240
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Got late or replayed packet from %s (%s), seqno %d, last received %d"
|
msgid "Got late or replayed packet from %s (%s), seqno %d, last received %d"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Kreeg laat of gedupliceerd pakket van %s (%s), seqno %d, laatste ontvangen %d"
|
"Kreeg laat of gedupliceerd pakket van %s (%s), seqno %d, laatste ontvangen %d"
|
||||||
|
|
||||||
#: src/net_packet.c:259
|
#: src/net_packet.c:264
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error while uncompressing packet from %s (%s)"
|
msgid "Error while uncompressing packet from %s (%s)"
|
||||||
msgstr "Fout tijdens decomprimeren pakket van %s (%s)"
|
msgstr "Fout tijdens decomprimeren pakket van %s (%s)"
|
||||||
|
|
||||||
#: src/net_packet.c:307
|
#: src/net_packet.c:313
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "No valid key known yet for %s (%s), queueing packet"
|
msgid "No valid key known yet for %s (%s), queueing packet"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Nog geen geldige sleutel bekend voor %s (%s), pakket wordt in wachtrij gezet"
|
"Nog geen geldige sleutel bekend voor %s (%s), pakket wordt in wachtrij gezet"
|
||||||
|
|
||||||
#: src/net_packet.c:336
|
#: src/net_packet.c:342
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error while compressing packet to %s (%s)"
|
msgid "Error while compressing packet to %s (%s)"
|
||||||
msgstr "Fout tijdens comprimeren pakket naar %s (%s)"
|
msgstr "Fout tijdens comprimeren pakket naar %s (%s)"
|
||||||
|
|
||||||
#: src/net_packet.c:358
|
#: src/net_packet.c:364
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error while encrypting packet to %s (%s): %s"
|
msgid "Error while encrypting packet to %s (%s): %s"
|
||||||
msgstr "Fout tijdens versleutelen pakket naar %s (%s): %s"
|
msgstr "Fout tijdens versleutelen pakket naar %s (%s): %s"
|
||||||
|
|
||||||
#: src/net_packet.c:390
|
#: src/net_packet.c:396
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Setting outgoing packet priority to %d"
|
msgid "Setting outgoing packet priority to %d"
|
||||||
msgstr "Instellen prioriteit uitgaand pakket op %d"
|
msgstr "Instellen prioriteit uitgaand pakket op %d"
|
||||||
|
|
||||||
#: src/net_packet.c:392 src/net_setup.c:481 src/net_socket.c:73
|
#: src/net_packet.c:398 src/net_setup.c:478 src/net_socket.c:129
|
||||||
#: src/net_socket.c:124 src/net_socket.c:153 src/tincd.c:434 src/tincd.c:468
|
#: src/net_socket.c:158 src/tincd.c:440 src/tincd.c:477 src/process.c:198
|
||||||
#: src/process.c:198 src/process.c:231 src/process.c:428 src/bsd/device.c:93
|
#: src/process.c:231 src/process.c:428 src/bsd/device.c:93
|
||||||
#: src/bsd/device.c:112 src/cygwin/device.c:140 src/cygwin/device.c:171
|
#: src/bsd/device.c:112 src/cygwin/device.c:140 src/cygwin/device.c:171
|
||||||
#: src/mingw/device.c:66 src/mingw/device.c:75 src/mingw/device.c:80
|
#: src/mingw/device.c:66 src/mingw/device.c:75 src/mingw/device.c:80
|
||||||
#: src/mingw/device.c:236 src/mingw/device.c:243 src/mingw/device.c:248
|
#: src/mingw/device.c:236 src/mingw/device.c:243 src/mingw/device.c:248
|
||||||
|
@ -281,42 +300,42 @@ msgstr "Instellen prioriteit uitgaand pakket op %d"
|
||||||
msgid "System call `%s' failed: %s"
|
msgid "System call `%s' failed: %s"
|
||||||
msgstr "Systeemaanroep `%s' mislukte: %s"
|
msgstr "Systeemaanroep `%s' mislukte: %s"
|
||||||
|
|
||||||
#: src/net_packet.c:403
|
#: src/net_packet.c:409
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error sending packet to %s (%s): %s"
|
msgid "Error sending packet to %s (%s): %s"
|
||||||
msgstr "Fout tijdens verzenden pakket naar %s (%s): %s"
|
msgstr "Fout tijdens verzenden pakket naar %s (%s): %s"
|
||||||
|
|
||||||
#: src/net_packet.c:426
|
#: src/net_packet.c:432
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Sending packet of %d bytes to %s (%s)"
|
msgid "Sending packet of %d bytes to %s (%s)"
|
||||||
msgstr "Verzending pakket van %d bytes naar %s (%s)"
|
msgstr "Verzending pakket van %d bytes naar %s (%s)"
|
||||||
|
|
||||||
#: src/net_packet.c:430
|
#: src/net_packet.c:436
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Node %s (%s) is not reachable"
|
msgid "Node %s (%s) is not reachable"
|
||||||
msgstr "Node %s (%s) is niet bereikbaar"
|
msgstr "Node %s (%s) is niet bereikbaar"
|
||||||
|
|
||||||
#: src/net_packet.c:438
|
#: src/net_packet.c:444
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Sending packet to %s via %s (%s)"
|
msgid "Sending packet to %s via %s (%s)"
|
||||||
msgstr "Verzending pakket naar %s via %s (%s)"
|
msgstr "Verzending pakket naar %s via %s (%s)"
|
||||||
|
|
||||||
#: src/net_packet.c:457
|
#: src/net_packet.c:463
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Broadcasting packet of %d bytes from %s (%s)"
|
msgid "Broadcasting packet of %d bytes from %s (%s)"
|
||||||
msgstr "Verspreiding pakket van %d bytes van %s (%s)"
|
msgstr "Verspreiding pakket van %d bytes van %s (%s)"
|
||||||
|
|
||||||
#: src/net_packet.c:480
|
#: src/net_packet.c:483
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Flushing queue for %s (%s)"
|
msgid "Flushing queue for %s (%s)"
|
||||||
msgstr "Legen van wachtrij voor %s (%s)"
|
msgstr "Legen van wachtrij voor %s (%s)"
|
||||||
|
|
||||||
#: src/net_packet.c:502
|
#: src/net_packet.c:505
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Receiving packet failed: %s"
|
msgid "Receiving packet failed: %s"
|
||||||
msgstr "Ontvangst pakket mislukt: %s"
|
msgstr "Ontvangst pakket mislukt: %s"
|
||||||
|
|
||||||
#: src/net_packet.c:512
|
#: src/net_packet.c:515
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Received UDP packet from unknown source %s"
|
msgid "Received UDP packet from unknown source %s"
|
||||||
msgstr "Ontvangst UDP pakket van onbekende oorsprong %s"
|
msgstr "Ontvangst UDP pakket van onbekende oorsprong %s"
|
||||||
|
@ -377,145 +396,145 @@ msgstr "Ongeldige naam voor mijzelf!"
|
||||||
msgid "Cannot open host configuration file for myself!"
|
msgid "Cannot open host configuration file for myself!"
|
||||||
msgstr "Kan host configuratie bestand voor mijzelf niet openen!"
|
msgstr "Kan host configuratie bestand voor mijzelf niet openen!"
|
||||||
|
|
||||||
#: src/net_setup.c:307
|
#: src/net_setup.c:305
|
||||||
msgid "Invalid routing mode!"
|
msgid "Invalid routing mode!"
|
||||||
msgstr "Ongeldige routing modus!"
|
msgstr "Ongeldige routing modus!"
|
||||||
|
|
||||||
#: src/net_setup.c:318
|
#: src/net_setup.c:316
|
||||||
msgid "PriorityInheritance not supported on this platform"
|
msgid "PriorityInheritance not supported on this platform"
|
||||||
msgstr "PriorityInheritance wordt niet ondersteund op dit platform"
|
msgstr "PriorityInheritance wordt niet ondersteund op dit platform"
|
||||||
|
|
||||||
#: src/net_setup.c:326
|
#: src/net_setup.c:324
|
||||||
msgid "Bogus maximum timeout!"
|
msgid "Bogus maximum timeout!"
|
||||||
msgstr "Onzinnige maximum timeout!"
|
msgstr "Onzinnige maximum timeout!"
|
||||||
|
|
||||||
#: src/net_setup.c:340
|
#: src/net_setup.c:338
|
||||||
msgid "Invalid address family!"
|
msgid "Invalid address family!"
|
||||||
msgstr "Ongeldige adresfamilie!"
|
msgstr "Ongeldige adresfamilie!"
|
||||||
|
|
||||||
#: src/net_setup.c:358
|
#: src/net_setup.c:356
|
||||||
msgid "Unrecognized cipher type!"
|
msgid "Unrecognized cipher type!"
|
||||||
msgstr "Onbekend cipher type!"
|
msgstr "Onbekend cipher type!"
|
||||||
|
|
||||||
#: src/net_setup.c:383 src/protocol_auth.c:192
|
#: src/net_setup.c:381 src/protocol_auth.c:194
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error during initialisation of cipher for %s (%s): %s"
|
msgid "Error during initialisation of cipher for %s (%s): %s"
|
||||||
msgstr "Fout tijdens initialisatie van cipher voor %s (%s): %s"
|
msgstr "Fout tijdens initialisatie van cipher voor %s (%s): %s"
|
||||||
|
|
||||||
#: src/net_setup.c:400
|
#: src/net_setup.c:398
|
||||||
msgid "Unrecognized digest type!"
|
msgid "Unrecognized digest type!"
|
||||||
msgstr "Onbekend digest type!"
|
msgstr "Onbekend digest type!"
|
||||||
|
|
||||||
#: src/net_setup.c:413
|
#: src/net_setup.c:411
|
||||||
msgid "MAC length exceeds size of digest!"
|
msgid "MAC length exceeds size of digest!"
|
||||||
msgstr "MAC lengte is groter dan dat van digest!"
|
msgstr "MAC lengte is groter dan dat van digest!"
|
||||||
|
|
||||||
#: src/net_setup.c:416
|
#: src/net_setup.c:414
|
||||||
msgid "Bogus MAC length!"
|
msgid "Bogus MAC length!"
|
||||||
msgstr "Onzinnige MAC lengte!"
|
msgstr "Onzinnige MAC lengte!"
|
||||||
|
|
||||||
#: src/net_setup.c:430
|
#: src/net_setup.c:428
|
||||||
msgid "Bogus compression level!"
|
msgid "Bogus compression level!"
|
||||||
msgstr "Onzinnig compressieniveau!"
|
msgstr "Onzinnig compressieniveau!"
|
||||||
|
|
||||||
#: src/net_setup.c:503
|
#: src/net_setup.c:500
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Listening on %s"
|
msgid "Listening on %s"
|
||||||
msgstr "Luisterend op %s"
|
msgstr "Luisterend op %s"
|
||||||
|
|
||||||
#: src/net_setup.c:514
|
#: src/net_setup.c:511
|
||||||
msgid "Ready"
|
msgid "Ready"
|
||||||
msgstr "Gereed"
|
msgstr "Gereed"
|
||||||
|
|
||||||
#: src/net_setup.c:516
|
#: src/net_setup.c:513
|
||||||
msgid "Unable to create any listening socket!"
|
msgid "Unable to create any listening socket!"
|
||||||
msgstr "Kon geen enkele luistersocket aanmaken!"
|
msgstr "Kon geen enkele luistersocket aanmaken!"
|
||||||
|
|
||||||
#: src/net_socket.c:63
|
#: src/net_socket.c:63
|
||||||
#, c-format
|
#, c-format
|
||||||
|
msgid "fcntl for %s: %s"
|
||||||
|
msgstr "fcntl voor %s: %s"
|
||||||
|
|
||||||
|
#: src/net_socket.c:90
|
||||||
|
#, c-format
|
||||||
msgid "Creating metasocket failed: %s"
|
msgid "Creating metasocket failed: %s"
|
||||||
msgstr "Aanmaak van metasocket mislukt: %s"
|
msgstr "Aanmaak van metasocket mislukt: %s"
|
||||||
|
|
||||||
#: src/net_socket.c:104 src/net_socket.c:196
|
#: src/net_socket.c:109 src/net_socket.c:201
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Can't bind to interface %s: %s"
|
msgid "Can't bind to interface %s: %s"
|
||||||
msgstr "Kan niet aan interface %s binden: %s"
|
msgstr "Kan niet aan interface %s binden: %s"
|
||||||
|
|
||||||
#: src/net_socket.c:109
|
#: src/net_socket.c:114
|
||||||
msgid "BindToInterface not supported on this platform"
|
msgid "BindToInterface not supported on this platform"
|
||||||
msgstr "BindToInterface wordt niet ondersteund op dit platform"
|
msgstr "BindToInterface wordt niet ondersteund op dit platform"
|
||||||
|
|
||||||
#: src/net_socket.c:116
|
#: src/net_socket.c:121
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Can't bind to %s/tcp: %s"
|
msgid "Can't bind to %s/tcp: %s"
|
||||||
msgstr "Kan niet aan %s/tcp binden: %s"
|
msgstr "Kan niet aan %s/tcp binden: %s"
|
||||||
|
|
||||||
#: src/net_socket.c:143
|
#: src/net_socket.c:148
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Creating UDP socket failed: %s"
|
msgid "Creating UDP socket failed: %s"
|
||||||
msgstr "Aanmaak UDP socket mislukte: %s"
|
msgstr "Aanmaak UDP socket mislukte: %s"
|
||||||
|
|
||||||
#: src/net_socket.c:207
|
#: src/net_socket.c:212
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Can't bind to %s/udp: %s"
|
msgid "Can't bind to %s/udp: %s"
|
||||||
msgstr "Kan niet aan %s/udp binden: %s"
|
msgstr "Kan niet aan %s/udp binden: %s"
|
||||||
|
|
||||||
#: src/net_socket.c:234
|
#: src/net_socket.c:239
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Trying to re-establish outgoing connection in %d seconds"
|
msgid "Trying to re-establish outgoing connection in %d seconds"
|
||||||
msgstr "Poging tot herstellen van uitgaande verbinding over %d seconden"
|
msgstr "Poging tot herstellen van uitgaande verbinding over %d seconden"
|
||||||
|
|
||||||
#: src/net_socket.c:242
|
#: src/net_socket.c:247
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Connected to %s (%s)"
|
msgid "Connected to %s (%s)"
|
||||||
msgstr "Verbonden met %s (%s)"
|
msgstr "Verbonden met %s (%s)"
|
||||||
|
|
||||||
#: src/net_socket.c:249 src/net_socket.c:333 src/net_socket.c:445
|
#: src/net_socket.c:266
|
||||||
#, c-format
|
|
||||||
msgid "fcntl for %s: %s"
|
|
||||||
msgstr "fcntl voor %s: %s"
|
|
||||||
|
|
||||||
#: src/net_socket.c:269
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not set up a meta connection to %s"
|
msgid "Could not set up a meta connection to %s"
|
||||||
msgstr "Kon geen metaverbinding aangaan met %s"
|
msgstr "Kon geen metaverbinding aangaan met %s"
|
||||||
|
|
||||||
#: src/net_socket.c:303
|
#: src/net_socket.c:300
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Trying to connect to %s (%s)"
|
msgid "Trying to connect to %s (%s)"
|
||||||
msgstr "Poging tot verbinden met %s (%s)"
|
msgstr "Poging tot verbinden met %s (%s)"
|
||||||
|
|
||||||
#: src/net_socket.c:309
|
#: src/net_socket.c:306
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Creating socket for %s failed: %s"
|
msgid "Creating socket for %s failed: %s"
|
||||||
msgstr "Aanmaken socket voor %s mislukt: %s"
|
msgstr "Aanmaken socket voor %s mislukt: %s"
|
||||||
|
|
||||||
#: src/net_socket.c:349
|
#: src/net_socket.c:328
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: %s"
|
msgid "%s: %s"
|
||||||
msgstr "%s: %s"
|
msgstr "%s: %s"
|
||||||
|
|
||||||
#: src/net_socket.c:370
|
#: src/net_socket.c:349
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Already connected to %s"
|
msgid "Already connected to %s"
|
||||||
msgstr "Reeds verbonden met %s"
|
msgstr "Reeds verbonden met %s"
|
||||||
|
|
||||||
#: src/net_socket.c:389
|
#: src/net_socket.c:368
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "No address specified for %s"
|
msgid "No address specified for %s"
|
||||||
msgstr "Geen adres gespecificeerd voor %s"
|
msgstr "Geen adres gespecificeerd voor %s"
|
||||||
|
|
||||||
#: src/net_socket.c:419
|
#: src/net_socket.c:399
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Accepting a new connection failed: %s"
|
msgid "Accepting a new connection failed: %s"
|
||||||
msgstr "Aanname van nieuwe verbinding is mislukt: %s"
|
msgstr "Aanname van nieuwe verbinding is mislukt: %s"
|
||||||
|
|
||||||
#: src/net_socket.c:438
|
#: src/net_socket.c:418
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Connection from %s"
|
msgid "Connection from %s"
|
||||||
msgstr "Verbinding van %s"
|
msgstr "Verbinding van %s"
|
||||||
|
|
||||||
#: src/net_socket.c:471
|
#: src/net_socket.c:443
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invalid name for outgoing connection in %s line %d"
|
msgid "Invalid name for outgoing connection in %s line %d"
|
||||||
msgstr "Ongeldige naam voor uitgaande verbinding in %s regel %d"
|
msgstr "Ongeldige naam voor uitgaande verbinding in %s regel %d"
|
||||||
|
@ -615,11 +634,11 @@ msgstr "Verzoek reeds gezien"
|
||||||
msgid "Aging past requests: deleted %d, left %d"
|
msgid "Aging past requests: deleted %d, left %d"
|
||||||
msgstr "Veroudering vorige verzoeken: %d gewist, %d overgebleven"
|
msgstr "Veroudering vorige verzoeken: %d gewist, %d overgebleven"
|
||||||
|
|
||||||
#: src/protocol_auth.c:58 src/protocol_auth.c:212 src/protocol_auth.c:341
|
#: src/protocol_auth.c:58 src/protocol_auth.c:214 src/protocol_auth.c:345
|
||||||
#: src/protocol_auth.c:408 src/protocol_auth.c:534 src/protocol_edge.c:73
|
#: src/protocol_auth.c:412 src/protocol_auth.c:538 src/protocol_edge.c:73
|
||||||
#: src/protocol_edge.c:188 src/protocol_key.c:62 src/protocol_key.c:105
|
#: src/protocol_edge.c:188 src/protocol_key.c:62 src/protocol_key.c:105
|
||||||
#: src/protocol_key.c:172 src/protocol_misc.c:54 src/protocol_misc.c:83
|
#: src/protocol_key.c:173 src/protocol_misc.c:56 src/protocol_misc.c:85
|
||||||
#: src/protocol_misc.c:171 src/protocol_subnet.c:58 src/protocol_subnet.c:170
|
#: src/protocol_misc.c:176 src/protocol_subnet.c:58 src/protocol_subnet.c:170
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Got bad %s from %s (%s)"
|
msgid "Got bad %s from %s (%s)"
|
||||||
msgstr "Kreeg verkeerde %s van %s (%s)"
|
msgstr "Kreeg verkeerde %s van %s (%s)"
|
||||||
|
@ -647,76 +666,76 @@ msgstr "Ander %s (%s) gebruikt incompatibele versie %d"
|
||||||
msgid "Peer %s had unknown identity (%s)"
|
msgid "Peer %s had unknown identity (%s)"
|
||||||
msgstr "Ander %s heeft onbekende identiteit (%s)"
|
msgstr "Ander %s heeft onbekende identiteit (%s)"
|
||||||
|
|
||||||
#: src/protocol_auth.c:156
|
#: src/protocol_auth.c:158
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Generated random meta key (unencrypted): %s"
|
msgid "Generated random meta key (unencrypted): %s"
|
||||||
msgstr "Willekeurige meta sleutel aangemaakt (niet versleuteld): %s"
|
msgstr "Willekeurige meta sleutel aangemaakt (niet versleuteld): %s"
|
||||||
|
|
||||||
#: src/protocol_auth.c:168 src/protocol_auth.c:241
|
#: src/protocol_auth.c:170 src/protocol_auth.c:243
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error during encryption of meta key for %s (%s)"
|
msgid "Error during encryption of meta key for %s (%s)"
|
||||||
msgstr "Fout tijdens versleutelen van meta key voor %s (%s)"
|
msgstr "Fout tijdens versleutelen van meta key voor %s (%s)"
|
||||||
|
|
||||||
#: src/protocol_auth.c:222 src/protocol_auth.c:351 src/protocol_auth.c:416
|
#: src/protocol_auth.c:224 src/protocol_auth.c:355 src/protocol_auth.c:420
|
||||||
#: src/protocol_auth.c:438
|
#: src/protocol_auth.c:442
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Possible intruder %s (%s): %s"
|
msgid "Possible intruder %s (%s): %s"
|
||||||
msgstr "Mogelijke indringer %s (%s): %s"
|
msgstr "Mogelijke indringer %s (%s): %s"
|
||||||
|
|
||||||
#: src/protocol_auth.c:249
|
#: src/protocol_auth.c:251
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Received random meta key (unencrypted): %s"
|
msgid "Received random meta key (unencrypted): %s"
|
||||||
msgstr "Ontving willekeurige meta key (niet versleuteld): %s"
|
msgstr "Ontving willekeurige meta key (niet versleuteld): %s"
|
||||||
|
|
||||||
#: src/protocol_auth.c:260
|
#: src/protocol_auth.c:262
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (%s) uses unknown cipher!"
|
msgid "%s (%s) uses unknown cipher!"
|
||||||
msgstr "%s (%s) gebruikt onbekende cipher!"
|
msgstr "%s (%s) gebruikt onbekende cipher!"
|
||||||
|
|
||||||
#: src/protocol_auth.c:268
|
#: src/protocol_auth.c:270
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error during initialisation of cipher from %s (%s): %s"
|
msgid "Error during initialisation of cipher from %s (%s): %s"
|
||||||
msgstr "Fout tijdens initalisatie van cipher van %s (%s): %s"
|
msgstr "Fout tijdens initalisatie van cipher van %s (%s): %s"
|
||||||
|
|
||||||
#: src/protocol_auth.c:284 src/protocol_key.c:242
|
#: src/protocol_auth.c:286 src/protocol_key.c:243
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Node %s (%s) uses unknown digest!"
|
msgid "Node %s (%s) uses unknown digest!"
|
||||||
msgstr "Node %s (%s) gebruikt onbekende digest!"
|
msgstr "Node %s (%s) gebruikt onbekende digest!"
|
||||||
|
|
||||||
#: src/protocol_auth.c:289
|
#: src/protocol_auth.c:291
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (%s) uses bogus MAC length!"
|
msgid "%s (%s) uses bogus MAC length!"
|
||||||
msgstr "%s (%s) gebruikt onzinnige MAC lengte!"
|
msgstr "%s (%s) gebruikt onzinnige MAC lengte!"
|
||||||
|
|
||||||
#: src/protocol_auth.c:384
|
#: src/protocol_auth.c:388
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error during calculation of response for %s (%s): %s"
|
msgid "Error during calculation of response for %s (%s): %s"
|
||||||
msgstr "Fout tijdens berekenen van antwoord voor %s (%s): %s"
|
msgstr "Fout tijdens berekenen van antwoord voor %s (%s): %s"
|
||||||
|
|
||||||
#: src/protocol_auth.c:417
|
#: src/protocol_auth.c:421
|
||||||
msgid "wrong challenge reply length"
|
msgid "wrong challenge reply length"
|
||||||
msgstr "verkeerde lengte antwoord op uitdaging"
|
msgstr "verkeerde lengte antwoord op uitdaging"
|
||||||
|
|
||||||
#: src/protocol_auth.c:430
|
#: src/protocol_auth.c:434
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error during calculation of response from %s (%s): %s"
|
msgid "Error during calculation of response from %s (%s): %s"
|
||||||
msgstr "Fout tijdens narekenen van antwoord van %s (%s): %s"
|
msgstr "Fout tijdens narekenen van antwoord van %s (%s): %s"
|
||||||
|
|
||||||
#: src/protocol_auth.c:439
|
#: src/protocol_auth.c:443
|
||||||
msgid "wrong challenge reply"
|
msgid "wrong challenge reply"
|
||||||
msgstr "verkeerd antwoord op uitdaging"
|
msgstr "verkeerd antwoord op uitdaging"
|
||||||
|
|
||||||
#: src/protocol_auth.c:444
|
#: src/protocol_auth.c:448
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Expected challenge reply: %s"
|
msgid "Expected challenge reply: %s"
|
||||||
msgstr "Verwachtte antwoord op uitdaging: %s"
|
msgstr "Verwachtte antwoord op uitdaging: %s"
|
||||||
|
|
||||||
#: src/protocol_auth.c:550
|
#: src/protocol_auth.c:554
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Established a second connection with %s (%s), closing old connection"
|
msgid "Established a second connection with %s (%s), closing old connection"
|
||||||
msgstr "Tweede verbinding met %s (%s) gemaakt, oude verbinding wordt gesloten"
|
msgstr "Tweede verbinding met %s (%s) gemaakt, oude verbinding wordt gesloten"
|
||||||
|
|
||||||
#: src/protocol_auth.c:573
|
#: src/protocol_auth.c:577
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Connection with %s (%s) activated"
|
msgid "Connection with %s (%s) activated"
|
||||||
msgstr "Verbinding met %s (%s) geactiveerd"
|
msgstr "Verbinding met %s (%s) geactiveerd"
|
||||||
|
@ -757,14 +776,14 @@ msgstr "Kreeg %s van %s (%s) voor onszelf"
|
||||||
msgid "Got %s from %s (%s) origin %s which does not exist"
|
msgid "Got %s from %s (%s) origin %s which does not exist"
|
||||||
msgstr "Kreeg %s van %s (%s) herkomst %s welke niet bestaat"
|
msgstr "Kreeg %s van %s (%s) herkomst %s welke niet bestaat"
|
||||||
|
|
||||||
#: src/protocol_key.c:113 src/protocol_key.c:180
|
#: src/protocol_key.c:113 src/protocol_key.c:181
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Got %s from %s (%s) origin %s which does not exist in our connection list"
|
"Got %s from %s (%s) origin %s which does not exist in our connection list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Kreeg %s van %s (%s) herkomst %s welke niet voorkomt in de verbindingslijst"
|
"Kreeg %s van %s (%s) herkomst %s welke niet voorkomt in de verbindingslijst"
|
||||||
|
|
||||||
#: src/protocol_key.c:121 src/protocol_key.c:188
|
#: src/protocol_key.c:121 src/protocol_key.c:189
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Got %s from %s (%s) destination %s which does not exist in our connection "
|
"Got %s from %s (%s) destination %s which does not exist in our connection "
|
||||||
|
@ -772,37 +791,37 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Kreeg %s van %s (%s) doel %s welke niet voorkomt in de verbindingslijst"
|
"Kreeg %s van %s (%s) doel %s welke niet voorkomt in de verbindingslijst"
|
||||||
|
|
||||||
#: src/protocol_key.c:222
|
#: src/protocol_key.c:223
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Node %s (%s) uses unknown cipher!"
|
msgid "Node %s (%s) uses unknown cipher!"
|
||||||
msgstr "Node %s (%s) gebruikt onbekende cipher!"
|
msgstr "Node %s (%s) gebruikt onbekende cipher!"
|
||||||
|
|
||||||
#: src/protocol_key.c:228
|
#: src/protocol_key.c:229
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Node %s (%s) uses wrong keylength!"
|
msgid "Node %s (%s) uses wrong keylength!"
|
||||||
msgstr "Node %s (%s) gebruikt verkeerde lengte sleutel!"
|
msgstr "Node %s (%s) gebruikt verkeerde lengte sleutel!"
|
||||||
|
|
||||||
#: src/protocol_key.c:248
|
#: src/protocol_key.c:249
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Node %s (%s) uses bogus MAC length!"
|
msgid "Node %s (%s) uses bogus MAC length!"
|
||||||
msgstr "Node %s (%s) gebruikt onzinnige MAC lengte!"
|
msgstr "Node %s (%s) gebruikt onzinnige MAC lengte!"
|
||||||
|
|
||||||
#: src/protocol_key.c:257
|
#: src/protocol_key.c:258
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Node %s (%s) uses bogus compression level!"
|
msgid "Node %s (%s) uses bogus compression level!"
|
||||||
msgstr "Node %s (%s) gebruikt onzinnig compressieniveau!"
|
msgstr "Node %s (%s) gebruikt onzinnig compressieniveau!"
|
||||||
|
|
||||||
#: src/protocol_key.c:265
|
#: src/protocol_key.c:266
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error during initialisation of key from %s (%s): %s"
|
msgid "Error during initialisation of key from %s (%s): %s"
|
||||||
msgstr "Fout tijdens initialisatie van sleutel van %s (%s): %s"
|
msgstr "Fout tijdens initialisatie van sleutel van %s (%s): %s"
|
||||||
|
|
||||||
#: src/protocol_misc.c:59
|
#: src/protocol_misc.c:61
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Status message from %s (%s): %d: %s"
|
msgid "Status message from %s (%s): %d: %s"
|
||||||
msgstr "Statusmelding van %s (%s): %d: %s"
|
msgstr "Statusmelding van %s (%s): %d: %s"
|
||||||
|
|
||||||
#: src/protocol_misc.c:88
|
#: src/protocol_misc.c:90
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error message from %s (%s): %d: %s"
|
msgid "Error message from %s (%s): %d: %s"
|
||||||
msgstr "Foutmelding van %s (%s): %d: %s"
|
msgstr "Foutmelding van %s (%s): %d: %s"
|
||||||
|
@ -850,12 +869,12 @@ msgstr " %s eigenaar %s"
|
||||||
msgid "End of subnet list."
|
msgid "End of subnet list."
|
||||||
msgstr "Einde van subnet lijst."
|
msgstr "Einde van subnet lijst."
|
||||||
|
|
||||||
#: src/tincd.c:108
|
#: src/tincd.c:114
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Try `%s --help' for more information.\n"
|
msgid "Try `%s --help' for more information.\n"
|
||||||
msgstr "Probeer `%s --help' voor meer informatie.\n"
|
msgstr "Probeer `%s --help' voor meer informatie.\n"
|
||||||
|
|
||||||
#: src/tincd.c:111
|
#: src/tincd.c:117
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Usage: %s [option]...\n"
|
"Usage: %s [option]...\n"
|
||||||
|
@ -864,7 +883,7 @@ msgstr ""
|
||||||
"Gebruik: %s [optie]...\n"
|
"Gebruik: %s [optie]...\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
|
||||||
#: src/tincd.c:112
|
#: src/tincd.c:118
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
" -c, --config=DIR Read configuration options from DIR.\n"
|
" -c, --config=DIR Read configuration options from DIR.\n"
|
||||||
|
@ -894,14 +913,14 @@ msgstr ""
|
||||||
" --version Geef versie informatie en beëindig.\n"
|
" --version Geef versie informatie en beëindig.\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
|
||||||
#: src/tincd.c:123
|
#: src/tincd.c:129
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Report bugs to tinc@tinc-vpn.org.\n"
|
msgid "Report bugs to tinc@tinc-vpn.org.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Meld fouten in het programma aan tinc@tinc-vpn.org;\n"
|
"Meld fouten in het programma aan tinc@tinc-vpn.org;\n"
|
||||||
"Meld fouten in de vertaling aan vertaling@nl.linux.org.\n"
|
"Meld fouten in de vertaling aan vertaling@nl.linux.org.\n"
|
||||||
|
|
||||||
#: src/tincd.c:179
|
#: src/tincd.c:185
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Invalid argument `%s'; SIGNAL must be a number or one of HUP, TERM, KILL, "
|
"Invalid argument `%s'; SIGNAL must be a number or one of HUP, TERM, KILL, "
|
||||||
|
@ -910,7 +929,7 @@ msgstr ""
|
||||||
"Ongeldig argument `%s'; SIGNAAL moet een getal zijn of één van HUP, TERM, "
|
"Ongeldig argument `%s'; SIGNAAL moet een getal zijn of één van HUP, TERM, "
|
||||||
"KILL, USR1, USR2, WINCH, INT of ALRM.\n"
|
"KILL, USR1, USR2, WINCH, INT of ALRM.\n"
|
||||||
|
|
||||||
#: src/tincd.c:201
|
#: src/tincd.c:207
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Invalid argument `%s'; BITS must be a number equal to or greater than 512.\n"
|
"Invalid argument `%s'; BITS must be a number equal to or greater than 512.\n"
|
||||||
|
@ -918,26 +937,26 @@ msgstr ""
|
||||||
"Ongeldig argument `%s'; BITS moet een nummer zijn gelijk aan of groter dan "
|
"Ongeldig argument `%s'; BITS moet een nummer zijn gelijk aan of groter dan "
|
||||||
"512.\n"
|
"512.\n"
|
||||||
|
|
||||||
#: src/tincd.c:294
|
#: src/tincd.c:300
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Generating %d bits keys:\n"
|
msgid "Generating %d bits keys:\n"
|
||||||
msgstr "Bezig met genereren van een %d bits sleutel:\n"
|
msgstr "Bezig met genereren van een %d bits sleutel:\n"
|
||||||
|
|
||||||
#: src/tincd.c:298
|
#: src/tincd.c:304
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error during key generation!\n"
|
msgid "Error during key generation!\n"
|
||||||
msgstr "Fout tijdens genereren sleutel!\n"
|
msgstr "Fout tijdens genereren sleutel!\n"
|
||||||
|
|
||||||
#: src/tincd.c:301
|
#: src/tincd.c:307
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Done.\n"
|
msgid "Done.\n"
|
||||||
msgstr "Klaar.\n"
|
msgstr "Klaar.\n"
|
||||||
|
|
||||||
#: src/tincd.c:304
|
#: src/tincd.c:310
|
||||||
msgid "private RSA key"
|
msgid "private RSA key"
|
||||||
msgstr "geheime RSA sleutel"
|
msgstr "geheime RSA sleutel"
|
||||||
|
|
||||||
#: src/tincd.c:315 src/tincd.c:334
|
#: src/tincd.c:321 src/tincd.c:340
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Appending key to existing contents.\n"
|
"Appending key to existing contents.\n"
|
||||||
|
@ -946,31 +965,31 @@ msgstr ""
|
||||||
"Sleutel wordt toegevoegd aan bestaande inhoud.\n"
|
"Sleutel wordt toegevoegd aan bestaande inhoud.\n"
|
||||||
"Let er op dat er slechts één sleutel in het bestand is.\n"
|
"Let er op dat er slechts één sleutel in het bestand is.\n"
|
||||||
|
|
||||||
#: src/tincd.c:328
|
#: src/tincd.c:334
|
||||||
msgid "public RSA key"
|
msgid "public RSA key"
|
||||||
msgstr "openbare RSA sleutel"
|
msgstr "openbare RSA sleutel"
|
||||||
|
|
||||||
#: src/tincd.c:387
|
#: src/tincd.c:393
|
||||||
msgid "Both netname and configuration directory given, using the latter..."
|
msgid "Both netname and configuration directory given, using the latter..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Zowel netnaam als configuratiemap zijn gegeven, laatste wordt gebruikt..."
|
"Zowel netnaam als configuratiemap zijn gegeven, laatste wordt gebruikt..."
|
||||||
|
|
||||||
#: src/tincd.c:408
|
#: src/tincd.c:414
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s version %s (built %s %s, protocol %d)\n"
|
msgid "%s version %s (built %s %s, protocol %d)\n"
|
||||||
msgstr "%s versie %s (gemaakt %s %s, protocol %d)\n"
|
msgstr "%s versie %s (gemaakt %s %s, protocol %d)\n"
|
||||||
|
|
||||||
#: src/tincd.c:410
|
#: src/tincd.c:416
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Copyright (C) 1998-2005 Ivo Timmermans, Guus Sliepen and others.\n"
|
"Copyright (C) 1998-2006 Ivo Timmermans, Guus Sliepen and others.\n"
|
||||||
"See the AUTHORS file for a complete list.\n"
|
"See the AUTHORS file for a complete list.\n"
|
||||||
"\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"
|
||||||
"see the file COPYING for details.\n"
|
"see the file COPYING for details.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Copyright (C) 1998-2005 Ivo Timmermans, Guus Sliepen en anderen.\n"
|
"Copyright (C) 1998-2006 Ivo Timmermans, Guus Sliepen en anderen.\n"
|
||||||
"Zie het bestand AUTHORS voor een volledige lijst.\n"
|
"Zie het bestand AUTHORS voor een volledige lijst.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"tinc wordt gedistribueerd ZONDER ENIGE GARANTIE. Dit is vrije "
|
"tinc wordt gedistribueerd ZONDER ENIGE GARANTIE. Dit is vrije "
|
||||||
|
@ -978,15 +997,15 @@ msgstr ""
|
||||||
"en je bent welkom om het te distribueren onder bepaalde voorwaarden;\n"
|
"en je bent welkom om het te distribueren onder bepaalde voorwaarden;\n"
|
||||||
"zie het bestand COPYING voor details.\n"
|
"zie het bestand COPYING voor details.\n"
|
||||||
|
|
||||||
#: src/tincd.c:438
|
#: src/tincd.c:444
|
||||||
msgid "mlockall() not supported on this platform!"
|
msgid "mlockall() not supported on this platform!"
|
||||||
msgstr "mlockall() wordt niet ondersteund op dit platform!"
|
msgstr "mlockall() wordt niet ondersteund op dit platform!"
|
||||||
|
|
||||||
#: src/tincd.c:462
|
#: src/tincd.c:471
|
||||||
msgid "Error initializing LZO compressor!"
|
msgid "Error initializing LZO compressor!"
|
||||||
msgstr "Fout tijdens initialiseren LZO compressor!"
|
msgstr "Fout tijdens initialiseren LZO compressor!"
|
||||||
|
|
||||||
#: src/tincd.c:503
|
#: src/tincd.c:512
|
||||||
msgid "Terminating"
|
msgid "Terminating"
|
||||||
msgstr "Beëindigen"
|
msgstr "Beëindigen"
|
||||||
|
|
||||||
|
@ -1193,23 +1212,23 @@ msgstr "Nieuw MAC adres %hx:%hx:%hx:%hx:%hx:%hx geleerd"
|
||||||
msgid "Subnet %s expired"
|
msgid "Subnet %s expired"
|
||||||
msgstr "Subnet %s is verlopen"
|
msgstr "Subnet %s is verlopen"
|
||||||
|
|
||||||
#: src/route.c:184 src/route.c:337 src/route.c:479
|
#: src/route.c:190 src/route.c:345 src/route.c:489
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Packet looping back to %s (%s)!"
|
msgid "Packet looping back to %s (%s)!"
|
||||||
msgstr "Pakket komt terug naar %s (%s)!"
|
msgstr "Pakket komt terug naar %s (%s)!"
|
||||||
|
|
||||||
#: src/route.c:283
|
#: src/route.c:289
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Length of packet (%d) doesn't match length in IPv4 header (%d)"
|
msgid "Length of packet (%d) doesn't match length in IPv4 header (%zd)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Lengte van pakket (%d) komt niet overeen met lengte in IPv4 header (%d)"
|
"Lengte van pakket (%d) komt niet overeen met lengte in IPv4 header (%zd)"
|
||||||
|
|
||||||
#: src/route.c:287
|
#: src/route.c:293
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Fragmenting packet of %d bytes to %s (%s)"
|
msgid "Fragmenting packet of %d bytes to %s (%s)"
|
||||||
msgstr "Fragmentatie pakket van %d bytes naar %s (%s)"
|
msgstr "Fragmentatie pakket van %d bytes naar %s (%s)"
|
||||||
|
|
||||||
#: src/route.c:325
|
#: src/route.c:333
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Cannot route packet from %s (%s): unknown IPv4 destination address %d.%d.%d.%"
|
"Cannot route packet from %s (%s): unknown IPv4 destination address %d.%d.%d.%"
|
||||||
|
@ -1217,12 +1236,12 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Kan pakket van %s (%s) niet routeren: onbekend IPv4 doeladres %d.%d.%d.%d"
|
"Kan pakket van %s (%s) niet routeren: onbekend IPv4 doeladres %d.%d.%d.%d"
|
||||||
|
|
||||||
#: src/route.c:350 src/route.c:489
|
#: src/route.c:358 src/route.c:499
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Packet for %s (%s) length %d larger than MTU %d"
|
msgid "Packet for %s (%s) length %d larger than MTU %d"
|
||||||
msgstr "Packet voor %s (%s) lengte %d groter dan MTU %d"
|
msgstr "Packet voor %s (%s) lengte %d groter dan MTU %d"
|
||||||
|
|
||||||
#: src/route.c:463
|
#: src/route.c:473
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Cannot route packet from %s (%s): unknown IPv6 destination address %hx:%hx:%"
|
"Cannot route packet from %s (%s): unknown IPv6 destination address %hx:%hx:%"
|
||||||
|
@ -1231,26 +1250,26 @@ msgstr ""
|
||||||
"Kan pakket van %s (%s) niet routeren: onbekend IPv6 doeladres %hx:%hx:%hx:%"
|
"Kan pakket van %s (%s) niet routeren: onbekend IPv6 doeladres %hx:%hx:%hx:%"
|
||||||
"hx:%hx:%hx:%hx:%hx"
|
"hx:%hx:%hx:%hx:%hx"
|
||||||
|
|
||||||
#: src/route.c:521
|
#: src/route.c:531
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Got neighbor solicitation request from %s (%s) while in router mode!"
|
msgid "Got neighbor solicitation request from %s (%s) while in router mode!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Kreeg neighbor solicitation request van %s (%s) terwijl we in router mode "
|
"Kreeg neighbor solicitation request van %s (%s) terwijl we in router mode "
|
||||||
"werken!"
|
"werken!"
|
||||||
|
|
||||||
#: src/route.c:540
|
#: src/route.c:550
|
||||||
msgid ""
|
msgid ""
|
||||||
"Cannot route packet: received unknown type neighbor solicitation request"
|
"Cannot route packet: received unknown type neighbor solicitation request"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Kan pakket niet routeren: ontvangst van onbekend type neighbor solicitation "
|
"Kan pakket niet routeren: ontvangst van onbekend type neighbor solicitation "
|
||||||
"verzoek"
|
"verzoek"
|
||||||
|
|
||||||
#: src/route.c:559
|
#: src/route.c:569
|
||||||
msgid "Cannot route packet: checksum error for neighbor solicitation request"
|
msgid "Cannot route packet: checksum error for neighbor solicitation request"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Kan pakket niet routeren: checksum fout voor neighbor solicitation verzoek"
|
"Kan pakket niet routeren: checksum fout voor neighbor solicitation verzoek"
|
||||||
|
|
||||||
#: src/route.c:568
|
#: src/route.c:578
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Cannot route packet: neighbor solicitation request for unknown address %hx:%"
|
"Cannot route packet: neighbor solicitation request for unknown address %hx:%"
|
||||||
|
@ -1259,30 +1278,30 @@ msgstr ""
|
||||||
"Kan pakket niet routeren: neighbor solicitation verzoek voor onbekend adres %"
|
"Kan pakket niet routeren: neighbor solicitation verzoek voor onbekend adres %"
|
||||||
"hx:%hx:%hx:%hx:%hx:%hx:%hx:%hx"
|
"hx:%hx:%hx:%hx:%hx:%hx:%hx:%hx"
|
||||||
|
|
||||||
#: src/route.c:655
|
#: src/route.c:665
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Got ARP request from %s (%s) while in router mode!"
|
msgid "Got ARP request from %s (%s) while in router mode!"
|
||||||
msgstr "Kreeg ARP request van %s (%s) terwijl we in router mode werken!"
|
msgstr "Kreeg ARP request van %s (%s) terwijl we in router mode werken!"
|
||||||
|
|
||||||
#: src/route.c:672
|
#: src/route.c:682
|
||||||
msgid "Cannot route packet: received unknown type ARP request"
|
msgid "Cannot route packet: received unknown type ARP request"
|
||||||
msgstr "Kan pakket niet routeren: ontvangst van onbekend type ARP verzoek"
|
msgstr "Kan pakket niet routeren: ontvangst van onbekend type ARP verzoek"
|
||||||
|
|
||||||
#: src/route.c:681
|
#: src/route.c:691
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Cannot route packet: ARP request for unknown address %d.%d.%d.%d"
|
msgid "Cannot route packet: ARP request for unknown address %d.%d.%d.%d"
|
||||||
msgstr "Kan pakket niet routeren: ARP verzoek voor onbekend adres %d.%d.%d.%d"
|
msgstr "Kan pakket niet routeren: ARP verzoek voor onbekend adres %d.%d.%d.%d"
|
||||||
|
|
||||||
#: src/route.c:737
|
#: src/route.c:747
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Cannot route packet from %s (%s): unknown type %hx"
|
msgid "Cannot route packet from %s (%s): unknown type %hx"
|
||||||
msgstr "Kan pakket van %s (%s) niet routeren: onbekend type %hx"
|
msgstr "Kan pakket van %s (%s) niet routeren: onbekend type %hx"
|
||||||
|
|
||||||
#: src/node.c:181
|
#: src/node.c:183
|
||||||
msgid "Nodes:"
|
msgid "Nodes:"
|
||||||
msgstr "Nodes:"
|
msgstr "Nodes:"
|
||||||
|
|
||||||
#: src/node.c:185
|
#: src/node.c:187
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
" %s at %s cipher %d digest %d maclength %d compression %d options %lx status "
|
" %s at %s cipher %d digest %d maclength %d compression %d options %lx status "
|
||||||
|
@ -1291,7 +1310,7 @@ msgstr ""
|
||||||
" %s op %s cipher %d digest %d maclengte %d compressie %d opties %lx status %"
|
" %s op %s cipher %d digest %d maclengte %d compressie %d opties %lx status %"
|
||||||
"04x nexthop %s via %s pmtu %d (min %d max %d)"
|
"04x nexthop %s via %s pmtu %d (min %d max %d)"
|
||||||
|
|
||||||
#: src/node.c:192
|
#: src/node.c:194
|
||||||
msgid "End of nodes."
|
msgid "End of nodes."
|
||||||
msgstr "Einde van nodes."
|
msgstr "Einde van nodes."
|
||||||
|
|
||||||
|
@ -1308,12 +1327,12 @@ msgstr " %s naar %s op %s opties %lx gewicht %d"
|
||||||
msgid "End of edges."
|
msgid "End of edges."
|
||||||
msgstr "Einde van edges."
|
msgstr "Einde van edges."
|
||||||
|
|
||||||
#: src/graph.c:261
|
#: src/graph.c:264
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Node %s (%s) became reachable"
|
msgid "Node %s (%s) became reachable"
|
||||||
msgstr "Node %s (%s) werd bereikbaar"
|
msgstr "Node %s (%s) werd bereikbaar"
|
||||||
|
|
||||||
#: src/graph.c:265
|
#: src/graph.c:268
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Node %s (%s) became unreachable"
|
msgid "Node %s (%s) became unreachable"
|
||||||
msgstr "Node %s (%s) is niet meer bereikbaar"
|
msgstr "Node %s (%s) is niet meer bereikbaar"
|
||||||
|
|
339
po/tinc.pot
339
po/tinc.pot
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: tinc-devel@tinc-vpn.org\n"
|
"Report-Msgid-Bugs-To: tinc-devel@tinc-vpn.org\n"
|
||||||
"POT-Creation-Date: 2005-05-04 20:25+0200\n"
|
"POT-Creation-Date: 2006-11-14 13:46+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -20,60 +20,60 @@ msgstr ""
|
||||||
msgid "(unable to format errormessage)"
|
msgid "(unable to format errormessage)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/conf.c:159
|
#: src/conf.c:160
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "\"yes\" or \"no\" expected for configuration variable %s in %s line %d"
|
msgid "\"yes\" or \"no\" expected for configuration variable %s in %s line %d"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/conf.c:175
|
#: src/conf.c:176
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Integer expected for configuration variable %s in %s line %d"
|
msgid "Integer expected for configuration variable %s in %s line %d"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/conf.c:209
|
#: src/conf.c:210
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Hostname or IP address expected for configuration variable %s in %s line %d"
|
"Hostname or IP address expected for configuration variable %s in %s line %d"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/conf.c:225
|
#: src/conf.c:226
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Subnet expected for configuration variable %s in %s line %d"
|
msgid "Subnet expected for configuration variable %s in %s line %d"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/conf.c:236
|
#: src/conf.c:237
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Network address and prefix length do not match for configuration variable %s "
|
"Network address and prefix length do not match for configuration variable %s "
|
||||||
"in %s line %d"
|
"in %s line %d"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/conf.c:336
|
#: src/conf.c:337
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Cannot open config file %s: %s"
|
msgid "Cannot open config file %s: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/conf.c:390
|
#: src/conf.c:391
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "No value for variable `%s' on line %d while reading config file %s"
|
msgid "No value for variable `%s' on line %d while reading config file %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/conf.c:421
|
#: src/conf.c:422
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to read `%s': %s"
|
msgid "Failed to read `%s': %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/conf.c:443
|
#: src/conf.c:444
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Please enter a file to save %s to [%s]: "
|
msgid "Please enter a file to save %s to [%s]: "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/conf.c:450
|
#: src/conf.c:451
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error while reading stdin: %s\n"
|
msgid "Error while reading stdin: %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/conf.c:482
|
#: src/conf.c:483
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error opening file `%s': %s\n"
|
msgid "Error opening file `%s': %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -92,44 +92,58 @@ msgstr ""
|
||||||
|
|
||||||
#: src/connection.c:124
|
#: src/connection.c:124
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid " %s at %s options %lx socket %d status %04x"
|
msgid " %s at %s options %lx socket %d status %04x outbuf %d/%d/%d"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/connection.c:128
|
#: src/connection.c:129
|
||||||
msgid "End of connections."
|
msgid "End of connections."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/meta.c:45
|
#: src/meta.c:44
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Sending %d bytes of metadata to %s (%s)"
|
msgid "Sending %d bytes of metadata to %s (%s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/meta.c:51
|
#: src/meta.c:66
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error while encrypting metadata to %s (%s): %s"
|
msgid "Error while encrypting metadata to %s (%s): %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/meta.c:64 src/meta.c:117
|
#: src/meta.c:70
|
||||||
|
msgid "Encrypted data too long! Heap corrupted!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/meta.c:86
|
||||||
|
#, c-format
|
||||||
|
msgid "Flushing %d bytes to %s (%s)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/meta.c:93 src/meta.c:156
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Connection closed by %s (%s)"
|
msgid "Connection closed by %s (%s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/meta.c:69
|
#: src/meta.c:99
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Sending meta data to %s (%s) failed: %s"
|
msgid "Flushing %d bytes to %s (%s) would block"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/meta.c:122
|
#: src/meta.c:104
|
||||||
|
#, c-format
|
||||||
|
msgid "Flushing meta data to %s (%s) failed: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/meta.c:161
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Metadata socket read error for %s (%s): %s"
|
msgid "Metadata socket read error for %s (%s): %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/meta.c:137
|
#: src/meta.c:176
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error while decrypting metadata from %s (%s): %s"
|
msgid "Error while decrypting metadata from %s (%s): %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/meta.c:190
|
#: src/meta.c:229
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Metadata read buffer overflow for %s (%s)"
|
msgid "Metadata read buffer overflow for %s (%s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -143,126 +157,131 @@ msgstr ""
|
||||||
msgid "Purging node %s (%s)"
|
msgid "Purging node %s (%s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net.c:170
|
#: src/net.c:173
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Closing connection with %s (%s)"
|
msgid "Closing connection with %s (%s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net.c:235
|
#: src/net.c:244
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (%s) didn't respond to PING"
|
msgid "%s (%s) didn't respond to PING in %ld seconds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net.c:244
|
#: src/net.c:253
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Old connection_t for %s (%s) status %04x still lingering, deleting..."
|
msgid "Old connection_t for %s (%s) status %04x still lingering, deleting..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net.c:249
|
#: src/net.c:258
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Timeout from %s (%s) during authentication"
|
msgid "Timeout from %s (%s) during authentication"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net.c:297
|
#: src/net.c:273
|
||||||
|
#, c-format
|
||||||
|
msgid "%s (%s) could not flush for %ld seconds (%d bytes remaining)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/net.c:318
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error while connecting to %s (%s): %s"
|
msgid "Error while connecting to %s (%s): %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net.c:353
|
#: src/net.c:383
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error while waiting for input: %s"
|
msgid "Error while waiting for input: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net.c:384
|
#: src/net.c:414
|
||||||
msgid "Regenerating symmetric key"
|
msgid "Regenerating symmetric key"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net.c:401
|
#: src/net.c:431
|
||||||
msgid "Flushing event queue"
|
msgid "Flushing event queue"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net.c:425
|
#: src/net.c:455
|
||||||
msgid "Unable to reread configuration file, exitting."
|
msgid "Unable to reread configuration file, exitting."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_packet.c:75
|
#: src/net_packet.c:80
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "No response to MTU probes from %s (%s)"
|
msgid "No response to MTU probes from %s (%s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_packet.c:82
|
#: src/net_packet.c:87
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Fixing MTU of %s (%s) to %d after %d probes"
|
msgid "Fixing MTU of %s (%s) to %d after %d probes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_packet.c:94
|
#: src/net_packet.c:99
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Sending MTU probe length %d to %s (%s)"
|
msgid "Sending MTU probe length %d to %s (%s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_packet.c:107
|
#: src/net_packet.c:112
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Got MTU probe length %d from %s (%s)"
|
msgid "Got MTU probe length %d from %s (%s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_packet.c:164
|
#: src/net_packet.c:169
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Received packet of %d bytes from %s (%s)"
|
msgid "Received packet of %d bytes from %s (%s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_packet.c:185 src/route.c:92
|
#: src/net_packet.c:190 src/route.c:92
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Got too short packet from %s (%s)"
|
msgid "Got too short packet from %s (%s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_packet.c:198
|
#: src/net_packet.c:203
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Got unauthenticated packet from %s (%s)"
|
msgid "Got unauthenticated packet from %s (%s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_packet.c:213
|
#: src/net_packet.c:218
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error decrypting packet from %s (%s): %s"
|
msgid "Error decrypting packet from %s (%s): %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_packet.c:229
|
#: src/net_packet.c:234
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Lost %d packets from %s (%s)"
|
msgid "Lost %d packets from %s (%s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_packet.c:235
|
#: src/net_packet.c:240
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Got late or replayed packet from %s (%s), seqno %d, last received %d"
|
msgid "Got late or replayed packet from %s (%s), seqno %d, last received %d"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_packet.c:259
|
#: src/net_packet.c:264
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error while uncompressing packet from %s (%s)"
|
msgid "Error while uncompressing packet from %s (%s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_packet.c:307
|
#: src/net_packet.c:313
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "No valid key known yet for %s (%s), queueing packet"
|
msgid "No valid key known yet for %s (%s), queueing packet"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_packet.c:336
|
#: src/net_packet.c:342
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error while compressing packet to %s (%s)"
|
msgid "Error while compressing packet to %s (%s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_packet.c:358
|
#: src/net_packet.c:364
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error while encrypting packet to %s (%s): %s"
|
msgid "Error while encrypting packet to %s (%s): %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_packet.c:390
|
#: src/net_packet.c:396
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Setting outgoing packet priority to %d"
|
msgid "Setting outgoing packet priority to %d"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_packet.c:392 src/net_setup.c:481 src/net_socket.c:73
|
#: src/net_packet.c:398 src/net_setup.c:478 src/net_socket.c:129
|
||||||
#: src/net_socket.c:124 src/net_socket.c:153 src/tincd.c:434 src/tincd.c:468
|
#: src/net_socket.c:158 src/tincd.c:440 src/tincd.c:477 src/process.c:198
|
||||||
#: src/process.c:198 src/process.c:231 src/process.c:428 src/bsd/device.c:93
|
#: src/process.c:231 src/process.c:428 src/bsd/device.c:93
|
||||||
#: src/bsd/device.c:112 src/cygwin/device.c:140 src/cygwin/device.c:171
|
#: src/bsd/device.c:112 src/cygwin/device.c:140 src/cygwin/device.c:171
|
||||||
#: src/mingw/device.c:66 src/mingw/device.c:75 src/mingw/device.c:80
|
#: src/mingw/device.c:66 src/mingw/device.c:75 src/mingw/device.c:80
|
||||||
#: src/mingw/device.c:236 src/mingw/device.c:243 src/mingw/device.c:248
|
#: src/mingw/device.c:236 src/mingw/device.c:243 src/mingw/device.c:248
|
||||||
|
@ -273,42 +292,42 @@ msgstr ""
|
||||||
msgid "System call `%s' failed: %s"
|
msgid "System call `%s' failed: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_packet.c:403
|
#: src/net_packet.c:409
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error sending packet to %s (%s): %s"
|
msgid "Error sending packet to %s (%s): %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_packet.c:426
|
#: src/net_packet.c:432
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Sending packet of %d bytes to %s (%s)"
|
msgid "Sending packet of %d bytes to %s (%s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_packet.c:430
|
#: src/net_packet.c:436
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Node %s (%s) is not reachable"
|
msgid "Node %s (%s) is not reachable"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_packet.c:438
|
#: src/net_packet.c:444
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Sending packet to %s via %s (%s)"
|
msgid "Sending packet to %s via %s (%s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_packet.c:457
|
#: src/net_packet.c:463
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Broadcasting packet of %d bytes from %s (%s)"
|
msgid "Broadcasting packet of %d bytes from %s (%s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_packet.c:480
|
#: src/net_packet.c:483
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Flushing queue for %s (%s)"
|
msgid "Flushing queue for %s (%s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_packet.c:502
|
#: src/net_packet.c:505
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Receiving packet failed: %s"
|
msgid "Receiving packet failed: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_packet.c:512
|
#: src/net_packet.c:515
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Received UDP packet from unknown source %s"
|
msgid "Received UDP packet from unknown source %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -368,145 +387,145 @@ msgstr ""
|
||||||
msgid "Cannot open host configuration file for myself!"
|
msgid "Cannot open host configuration file for myself!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_setup.c:307
|
#: src/net_setup.c:305
|
||||||
msgid "Invalid routing mode!"
|
msgid "Invalid routing mode!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_setup.c:318
|
#: src/net_setup.c:316
|
||||||
msgid "PriorityInheritance not supported on this platform"
|
msgid "PriorityInheritance not supported on this platform"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_setup.c:326
|
#: src/net_setup.c:324
|
||||||
msgid "Bogus maximum timeout!"
|
msgid "Bogus maximum timeout!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_setup.c:340
|
#: src/net_setup.c:338
|
||||||
msgid "Invalid address family!"
|
msgid "Invalid address family!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_setup.c:358
|
#: src/net_setup.c:356
|
||||||
msgid "Unrecognized cipher type!"
|
msgid "Unrecognized cipher type!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_setup.c:383 src/protocol_auth.c:192
|
#: src/net_setup.c:381 src/protocol_auth.c:194
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error during initialisation of cipher for %s (%s): %s"
|
msgid "Error during initialisation of cipher for %s (%s): %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_setup.c:400
|
#: src/net_setup.c:398
|
||||||
msgid "Unrecognized digest type!"
|
msgid "Unrecognized digest type!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_setup.c:413
|
#: src/net_setup.c:411
|
||||||
msgid "MAC length exceeds size of digest!"
|
msgid "MAC length exceeds size of digest!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_setup.c:416
|
#: src/net_setup.c:414
|
||||||
msgid "Bogus MAC length!"
|
msgid "Bogus MAC length!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_setup.c:430
|
#: src/net_setup.c:428
|
||||||
msgid "Bogus compression level!"
|
msgid "Bogus compression level!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_setup.c:503
|
#: src/net_setup.c:500
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Listening on %s"
|
msgid "Listening on %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_setup.c:514
|
#: src/net_setup.c:511
|
||||||
msgid "Ready"
|
msgid "Ready"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_setup.c:516
|
#: src/net_setup.c:513
|
||||||
msgid "Unable to create any listening socket!"
|
msgid "Unable to create any listening socket!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_socket.c:63
|
#: src/net_socket.c:63
|
||||||
#, c-format
|
#, c-format
|
||||||
|
msgid "fcntl for %s: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/net_socket.c:90
|
||||||
|
#, c-format
|
||||||
msgid "Creating metasocket failed: %s"
|
msgid "Creating metasocket failed: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_socket.c:104 src/net_socket.c:196
|
#: src/net_socket.c:109 src/net_socket.c:201
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Can't bind to interface %s: %s"
|
msgid "Can't bind to interface %s: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_socket.c:109
|
#: src/net_socket.c:114
|
||||||
msgid "BindToInterface not supported on this platform"
|
msgid "BindToInterface not supported on this platform"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_socket.c:116
|
#: src/net_socket.c:121
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Can't bind to %s/tcp: %s"
|
msgid "Can't bind to %s/tcp: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_socket.c:143
|
#: src/net_socket.c:148
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Creating UDP socket failed: %s"
|
msgid "Creating UDP socket failed: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_socket.c:207
|
#: src/net_socket.c:212
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Can't bind to %s/udp: %s"
|
msgid "Can't bind to %s/udp: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_socket.c:234
|
#: src/net_socket.c:239
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Trying to re-establish outgoing connection in %d seconds"
|
msgid "Trying to re-establish outgoing connection in %d seconds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_socket.c:242
|
#: src/net_socket.c:247
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Connected to %s (%s)"
|
msgid "Connected to %s (%s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_socket.c:249 src/net_socket.c:333 src/net_socket.c:445
|
#: src/net_socket.c:266
|
||||||
#, c-format
|
|
||||||
msgid "fcntl for %s: %s"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/net_socket.c:269
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not set up a meta connection to %s"
|
msgid "Could not set up a meta connection to %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_socket.c:303
|
#: src/net_socket.c:300
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Trying to connect to %s (%s)"
|
msgid "Trying to connect to %s (%s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_socket.c:309
|
#: src/net_socket.c:306
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Creating socket for %s failed: %s"
|
msgid "Creating socket for %s failed: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_socket.c:349
|
#: src/net_socket.c:328
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: %s"
|
msgid "%s: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_socket.c:370
|
#: src/net_socket.c:349
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Already connected to %s"
|
msgid "Already connected to %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_socket.c:389
|
#: src/net_socket.c:368
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "No address specified for %s"
|
msgid "No address specified for %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_socket.c:419
|
#: src/net_socket.c:399
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Accepting a new connection failed: %s"
|
msgid "Accepting a new connection failed: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_socket.c:438
|
#: src/net_socket.c:418
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Connection from %s"
|
msgid "Connection from %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/net_socket.c:471
|
#: src/net_socket.c:443
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invalid name for outgoing connection in %s line %d"
|
msgid "Invalid name for outgoing connection in %s line %d"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -605,11 +624,11 @@ msgstr ""
|
||||||
msgid "Aging past requests: deleted %d, left %d"
|
msgid "Aging past requests: deleted %d, left %d"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/protocol_auth.c:58 src/protocol_auth.c:212 src/protocol_auth.c:341
|
#: src/protocol_auth.c:58 src/protocol_auth.c:214 src/protocol_auth.c:345
|
||||||
#: src/protocol_auth.c:408 src/protocol_auth.c:534 src/protocol_edge.c:73
|
#: src/protocol_auth.c:412 src/protocol_auth.c:538 src/protocol_edge.c:73
|
||||||
#: src/protocol_edge.c:188 src/protocol_key.c:62 src/protocol_key.c:105
|
#: src/protocol_edge.c:188 src/protocol_key.c:62 src/protocol_key.c:105
|
||||||
#: src/protocol_key.c:172 src/protocol_misc.c:54 src/protocol_misc.c:83
|
#: src/protocol_key.c:173 src/protocol_misc.c:56 src/protocol_misc.c:85
|
||||||
#: src/protocol_misc.c:171 src/protocol_subnet.c:58 src/protocol_subnet.c:170
|
#: src/protocol_misc.c:176 src/protocol_subnet.c:58 src/protocol_subnet.c:170
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Got bad %s from %s (%s)"
|
msgid "Got bad %s from %s (%s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -637,76 +656,76 @@ msgstr ""
|
||||||
msgid "Peer %s had unknown identity (%s)"
|
msgid "Peer %s had unknown identity (%s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/protocol_auth.c:156
|
#: src/protocol_auth.c:158
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Generated random meta key (unencrypted): %s"
|
msgid "Generated random meta key (unencrypted): %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/protocol_auth.c:168 src/protocol_auth.c:241
|
#: src/protocol_auth.c:170 src/protocol_auth.c:243
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error during encryption of meta key for %s (%s)"
|
msgid "Error during encryption of meta key for %s (%s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/protocol_auth.c:222 src/protocol_auth.c:351 src/protocol_auth.c:416
|
#: src/protocol_auth.c:224 src/protocol_auth.c:355 src/protocol_auth.c:420
|
||||||
#: src/protocol_auth.c:438
|
#: src/protocol_auth.c:442
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Possible intruder %s (%s): %s"
|
msgid "Possible intruder %s (%s): %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/protocol_auth.c:249
|
#: src/protocol_auth.c:251
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Received random meta key (unencrypted): %s"
|
msgid "Received random meta key (unencrypted): %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/protocol_auth.c:260
|
#: src/protocol_auth.c:262
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (%s) uses unknown cipher!"
|
msgid "%s (%s) uses unknown cipher!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/protocol_auth.c:268
|
#: src/protocol_auth.c:270
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error during initialisation of cipher from %s (%s): %s"
|
msgid "Error during initialisation of cipher from %s (%s): %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/protocol_auth.c:284 src/protocol_key.c:242
|
#: src/protocol_auth.c:286 src/protocol_key.c:243
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Node %s (%s) uses unknown digest!"
|
msgid "Node %s (%s) uses unknown digest!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/protocol_auth.c:289
|
#: src/protocol_auth.c:291
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (%s) uses bogus MAC length!"
|
msgid "%s (%s) uses bogus MAC length!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/protocol_auth.c:384
|
#: src/protocol_auth.c:388
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error during calculation of response for %s (%s): %s"
|
msgid "Error during calculation of response for %s (%s): %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/protocol_auth.c:417
|
#: src/protocol_auth.c:421
|
||||||
msgid "wrong challenge reply length"
|
msgid "wrong challenge reply length"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/protocol_auth.c:430
|
#: src/protocol_auth.c:434
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error during calculation of response from %s (%s): %s"
|
msgid "Error during calculation of response from %s (%s): %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/protocol_auth.c:439
|
#: src/protocol_auth.c:443
|
||||||
msgid "wrong challenge reply"
|
msgid "wrong challenge reply"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/protocol_auth.c:444
|
#: src/protocol_auth.c:448
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Expected challenge reply: %s"
|
msgid "Expected challenge reply: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/protocol_auth.c:550
|
#: src/protocol_auth.c:554
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Established a second connection with %s (%s), closing old connection"
|
msgid "Established a second connection with %s (%s), closing old connection"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/protocol_auth.c:573
|
#: src/protocol_auth.c:577
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Connection with %s (%s) activated"
|
msgid "Connection with %s (%s) activated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -746,50 +765,50 @@ msgstr ""
|
||||||
msgid "Got %s from %s (%s) origin %s which does not exist"
|
msgid "Got %s from %s (%s) origin %s which does not exist"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/protocol_key.c:113 src/protocol_key.c:180
|
#: src/protocol_key.c:113 src/protocol_key.c:181
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Got %s from %s (%s) origin %s which does not exist in our connection list"
|
"Got %s from %s (%s) origin %s which does not exist in our connection list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/protocol_key.c:121 src/protocol_key.c:188
|
#: src/protocol_key.c:121 src/protocol_key.c:189
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Got %s from %s (%s) destination %s which does not exist in our connection "
|
"Got %s from %s (%s) destination %s which does not exist in our connection "
|
||||||
"list"
|
"list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/protocol_key.c:222
|
#: src/protocol_key.c:223
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Node %s (%s) uses unknown cipher!"
|
msgid "Node %s (%s) uses unknown cipher!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/protocol_key.c:228
|
#: src/protocol_key.c:229
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Node %s (%s) uses wrong keylength!"
|
msgid "Node %s (%s) uses wrong keylength!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/protocol_key.c:248
|
#: src/protocol_key.c:249
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Node %s (%s) uses bogus MAC length!"
|
msgid "Node %s (%s) uses bogus MAC length!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/protocol_key.c:257
|
#: src/protocol_key.c:258
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Node %s (%s) uses bogus compression level!"
|
msgid "Node %s (%s) uses bogus compression level!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/protocol_key.c:265
|
#: src/protocol_key.c:266
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error during initialisation of key from %s (%s): %s"
|
msgid "Error during initialisation of key from %s (%s): %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/protocol_misc.c:59
|
#: src/protocol_misc.c:61
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Status message from %s (%s): %d: %s"
|
msgid "Status message from %s (%s): %d: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/protocol_misc.c:88
|
#: src/protocol_misc.c:90
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error message from %s (%s): %d: %s"
|
msgid "Error message from %s (%s): %d: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -836,19 +855,19 @@ msgstr ""
|
||||||
msgid "End of subnet list."
|
msgid "End of subnet list."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/tincd.c:108
|
#: src/tincd.c:114
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Try `%s --help' for more information.\n"
|
msgid "Try `%s --help' for more information.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/tincd.c:111
|
#: src/tincd.c:117
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Usage: %s [option]...\n"
|
"Usage: %s [option]...\n"
|
||||||
"\n"
|
"\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/tincd.c:112
|
#: src/tincd.c:118
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
" -c, --config=DIR Read configuration options from DIR.\n"
|
" -c, --config=DIR Read configuration options from DIR.\n"
|
||||||
|
@ -865,67 +884,67 @@ msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/tincd.c:123
|
#: src/tincd.c:129
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Report bugs to tinc@tinc-vpn.org.\n"
|
msgid "Report bugs to tinc@tinc-vpn.org.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/tincd.c:179
|
#: src/tincd.c:185
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Invalid argument `%s'; SIGNAL must be a number or one of HUP, TERM, KILL, "
|
"Invalid argument `%s'; SIGNAL must be a number or one of HUP, TERM, KILL, "
|
||||||
"USR1, USR2, WINCH, INT or ALRM.\n"
|
"USR1, USR2, WINCH, INT or ALRM.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/tincd.c:201
|
#: src/tincd.c:207
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Invalid argument `%s'; BITS must be a number equal to or greater than 512.\n"
|
"Invalid argument `%s'; BITS must be a number equal to or greater than 512.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/tincd.c:294
|
#: src/tincd.c:300
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Generating %d bits keys:\n"
|
msgid "Generating %d bits keys:\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/tincd.c:298
|
#: src/tincd.c:304
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Error during key generation!\n"
|
msgid "Error during key generation!\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/tincd.c:301
|
#: src/tincd.c:307
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Done.\n"
|
msgid "Done.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/tincd.c:304
|
#: src/tincd.c:310
|
||||||
msgid "private RSA key"
|
msgid "private RSA key"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/tincd.c:315 src/tincd.c:334
|
#: src/tincd.c:321 src/tincd.c:340
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Appending key to existing contents.\n"
|
"Appending key to existing contents.\n"
|
||||||
"Make sure only one key is stored in the file.\n"
|
"Make sure only one key is stored in the file.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/tincd.c:328
|
#: src/tincd.c:334
|
||||||
msgid "public RSA key"
|
msgid "public RSA key"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/tincd.c:387
|
#: src/tincd.c:393
|
||||||
msgid "Both netname and configuration directory given, using the latter..."
|
msgid "Both netname and configuration directory given, using the latter..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/tincd.c:408
|
#: src/tincd.c:414
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s version %s (built %s %s, protocol %d)\n"
|
msgid "%s version %s (built %s %s, protocol %d)\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/tincd.c:410
|
#: src/tincd.c:416
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Copyright (C) 1998-2005 Ivo Timmermans, Guus Sliepen and others.\n"
|
"Copyright (C) 1998-2006 Ivo Timmermans, Guus Sliepen and others.\n"
|
||||||
"See the AUTHORS file for a complete list.\n"
|
"See the AUTHORS file for a complete list.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"tinc comes with ABSOLUTELY NO WARRANTY. This is free software,\n"
|
"tinc comes with ABSOLUTELY NO WARRANTY. This is free software,\n"
|
||||||
|
@ -933,15 +952,15 @@ msgid ""
|
||||||
"see the file COPYING for details.\n"
|
"see the file COPYING for details.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/tincd.c:438
|
#: src/tincd.c:444
|
||||||
msgid "mlockall() not supported on this platform!"
|
msgid "mlockall() not supported on this platform!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/tincd.c:462
|
#: src/tincd.c:471
|
||||||
msgid "Error initializing LZO compressor!"
|
msgid "Error initializing LZO compressor!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/tincd.c:503
|
#: src/tincd.c:512
|
||||||
msgid "Terminating"
|
msgid "Terminating"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -1146,92 +1165,92 @@ msgstr ""
|
||||||
msgid "Subnet %s expired"
|
msgid "Subnet %s expired"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/route.c:184 src/route.c:337 src/route.c:479
|
#: src/route.c:190 src/route.c:345 src/route.c:489
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Packet looping back to %s (%s)!"
|
msgid "Packet looping back to %s (%s)!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/route.c:283
|
#: src/route.c:289
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Length of packet (%d) doesn't match length in IPv4 header (%d)"
|
msgid "Length of packet (%d) doesn't match length in IPv4 header (%zd)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/route.c:287
|
#: src/route.c:293
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Fragmenting packet of %d bytes to %s (%s)"
|
msgid "Fragmenting packet of %d bytes to %s (%s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/route.c:325
|
#: src/route.c:333
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Cannot route packet from %s (%s): unknown IPv4 destination address %d.%d.%d.%"
|
"Cannot route packet from %s (%s): unknown IPv4 destination address %d.%d.%d.%"
|
||||||
"d"
|
"d"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/route.c:350 src/route.c:489
|
#: src/route.c:358 src/route.c:499
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Packet for %s (%s) length %d larger than MTU %d"
|
msgid "Packet for %s (%s) length %d larger than MTU %d"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/route.c:463
|
#: src/route.c:473
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Cannot route packet from %s (%s): unknown IPv6 destination address %hx:%hx:%"
|
"Cannot route packet from %s (%s): unknown IPv6 destination address %hx:%hx:%"
|
||||||
"hx:%hx:%hx:%hx:%hx:%hx"
|
"hx:%hx:%hx:%hx:%hx:%hx"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/route.c:521
|
#: src/route.c:531
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Got neighbor solicitation request from %s (%s) while in router mode!"
|
msgid "Got neighbor solicitation request from %s (%s) while in router mode!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/route.c:540
|
#: src/route.c:550
|
||||||
msgid ""
|
msgid ""
|
||||||
"Cannot route packet: received unknown type neighbor solicitation request"
|
"Cannot route packet: received unknown type neighbor solicitation request"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/route.c:559
|
#: src/route.c:569
|
||||||
msgid "Cannot route packet: checksum error for neighbor solicitation request"
|
msgid "Cannot route packet: checksum error for neighbor solicitation request"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/route.c:568
|
#: src/route.c:578
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Cannot route packet: neighbor solicitation request for unknown address %hx:%"
|
"Cannot route packet: neighbor solicitation request for unknown address %hx:%"
|
||||||
"hx:%hx:%hx:%hx:%hx:%hx:%hx"
|
"hx:%hx:%hx:%hx:%hx:%hx:%hx"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/route.c:655
|
#: src/route.c:665
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Got ARP request from %s (%s) while in router mode!"
|
msgid "Got ARP request from %s (%s) while in router mode!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/route.c:672
|
#: src/route.c:682
|
||||||
msgid "Cannot route packet: received unknown type ARP request"
|
msgid "Cannot route packet: received unknown type ARP request"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/route.c:681
|
#: src/route.c:691
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Cannot route packet: ARP request for unknown address %d.%d.%d.%d"
|
msgid "Cannot route packet: ARP request for unknown address %d.%d.%d.%d"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/route.c:737
|
#: src/route.c:747
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Cannot route packet from %s (%s): unknown type %hx"
|
msgid "Cannot route packet from %s (%s): unknown type %hx"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/node.c:181
|
#: src/node.c:183
|
||||||
msgid "Nodes:"
|
msgid "Nodes:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/node.c:185
|
#: src/node.c:187
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
" %s at %s cipher %d digest %d maclength %d compression %d options %lx status "
|
" %s at %s cipher %d digest %d maclength %d compression %d options %lx status "
|
||||||
"%04x nexthop %s via %s pmtu %d (min %d max %d)"
|
"%04x nexthop %s via %s pmtu %d (min %d max %d)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/node.c:192
|
#: src/node.c:194
|
||||||
msgid "End of nodes."
|
msgid "End of nodes."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -1248,12 +1267,12 @@ msgstr ""
|
||||||
msgid "End of edges."
|
msgid "End of edges."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/graph.c:261
|
#: src/graph.c:264
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Node %s (%s) became reachable"
|
msgid "Node %s (%s) became reachable"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/graph.c:265
|
#: src/graph.c:268
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Node %s (%s) became unreachable"
|
msgid "Node %s (%s) became unreachable"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Makefile.in generated by automake 1.9.5 from Makefile.am.
|
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||||
# @configure_input@
|
# @configure_input@
|
||||||
|
|
||||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||||
|
@ -17,8 +17,6 @@
|
||||||
# $Id: Makefile.am,v 1.4.4.33 2003/08/02 15:13:08 guus Exp $
|
# $Id: Makefile.am,v 1.4.4.33 2003/08/02 15:13:08 guus Exp $
|
||||||
|
|
||||||
|
|
||||||
SOURCES = $(tincd_SOURCES) $(nodist_tincd_SOURCES)
|
|
||||||
|
|
||||||
srcdir = @srcdir@
|
srcdir = @srcdir@
|
||||||
top_srcdir = @top_srcdir@
|
top_srcdir = @top_srcdir@
|
||||||
VPATH = @srcdir@
|
VPATH = @srcdir@
|
||||||
|
@ -48,13 +46,14 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
|
||||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
|
am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.m4 \
|
||||||
$(top_srcdir)/m4/attribute.m4 $(top_srcdir)/m4/gettext.m4 \
|
$(top_srcdir)/m4/attribute.m4 $(top_srcdir)/m4/gettext.m4 \
|
||||||
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
|
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/isc-posix.m4 \
|
||||||
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
|
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
|
||||||
$(top_srcdir)/m4/lzo.m4 $(top_srcdir)/m4/malloc.m4 \
|
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/lzo.m4 \
|
||||||
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/openssl.m4 \
|
$(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/nls.m4 \
|
||||||
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
|
$(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/po.m4 \
|
||||||
$(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/tuntap.m4 \
|
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/realloc.m4 \
|
||||||
$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/configure.in
|
$(top_srcdir)/m4/tuntap.m4 $(top_srcdir)/m4/zlib.m4 \
|
||||||
|
$(top_srcdir)/configure.in
|
||||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
$(ACLOCAL_M4)
|
$(ACLOCAL_M4)
|
||||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||||
|
@ -110,6 +109,7 @@ ECHO_T = @ECHO_T@
|
||||||
EGREP = @EGREP@
|
EGREP = @EGREP@
|
||||||
EXEEXT = @EXEEXT@
|
EXEEXT = @EXEEXT@
|
||||||
GMSGFMT = @GMSGFMT@
|
GMSGFMT = @GMSGFMT@
|
||||||
|
GREP = @GREP@
|
||||||
HAVE_TUNTAP = @HAVE_TUNTAP@
|
HAVE_TUNTAP = @HAVE_TUNTAP@
|
||||||
INCLUDES = @INCLUDES@ -I$(top_builddir) -I$(top_srcdir)/lib
|
INCLUDES = @INCLUDES@ -I$(top_builddir) -I$(top_srcdir)/lib
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
@ -151,8 +151,6 @@ USE_NLS = @USE_NLS@
|
||||||
VERSION = @VERSION@
|
VERSION = @VERSION@
|
||||||
XGETTEXT = @XGETTEXT@
|
XGETTEXT = @XGETTEXT@
|
||||||
ac_ct_CC = @ac_ct_CC@
|
ac_ct_CC = @ac_ct_CC@
|
||||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
|
||||||
ac_ct_STRIP = @ac_ct_STRIP@
|
|
||||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||||
am__include = @am__include@
|
am__include = @am__include@
|
||||||
|
@ -167,23 +165,30 @@ build_cpu = @build_cpu@
|
||||||
build_os = @build_os@
|
build_os = @build_os@
|
||||||
build_vendor = @build_vendor@
|
build_vendor = @build_vendor@
|
||||||
datadir = @datadir@
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
exec_prefix = @exec_prefix@
|
exec_prefix = @exec_prefix@
|
||||||
host = @host@
|
host = @host@
|
||||||
host_alias = @host_alias@
|
host_alias = @host_alias@
|
||||||
host_cpu = @host_cpu@
|
host_cpu = @host_cpu@
|
||||||
host_os = @host_os@
|
host_os = @host_os@
|
||||||
host_vendor = @host_vendor@
|
host_vendor = @host_vendor@
|
||||||
|
htmldir = @htmldir@
|
||||||
includedir = @includedir@
|
includedir = @includedir@
|
||||||
infodir = @infodir@
|
infodir = @infodir@
|
||||||
install_sh = @install_sh@
|
install_sh = @install_sh@
|
||||||
libdir = @libdir@
|
libdir = @libdir@
|
||||||
libexecdir = @libexecdir@
|
libexecdir = @libexecdir@
|
||||||
|
localedir = $(datadir)/locale
|
||||||
localstatedir = @localstatedir@
|
localstatedir = @localstatedir@
|
||||||
mandir = @mandir@
|
mandir = @mandir@
|
||||||
mkdir_p = @mkdir_p@
|
mkdir_p = @mkdir_p@
|
||||||
oldincludedir = @oldincludedir@
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
prefix = @prefix@
|
prefix = @prefix@
|
||||||
program_transform_name = @program_transform_name@
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
sbindir = @sbindir@
|
sbindir = @sbindir@
|
||||||
sharedstatedir = @sharedstatedir@
|
sharedstatedir = @sharedstatedir@
|
||||||
sysconfdir = @sysconfdir@
|
sysconfdir = @sysconfdir@
|
||||||
|
@ -201,7 +206,6 @@ noinst_HEADERS = conf.h connection.h device.h edge.h event.h graph.h logger.h me
|
||||||
tincd_LDADD = \
|
tincd_LDADD = \
|
||||||
$(top_builddir)/lib/libvpn.a
|
$(top_builddir)/lib/libvpn.a
|
||||||
|
|
||||||
localedir = $(datadir)/locale
|
|
||||||
AM_CFLAGS = @CFLAGS@ -DCONFDIR=\"$(sysconfdir)\" -DLOCALEDIR=\"$(localedir)\" -DLOCALSTATEDIR=\"$(localstatedir)\"
|
AM_CFLAGS = @CFLAGS@ -DCONFDIR=\"$(sysconfdir)\" -DLOCALEDIR=\"$(localedir)\" -DLOCALSTATEDIR=\"$(localstatedir)\"
|
||||||
all: all-am
|
all: all-am
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
device.c -- Interaction BSD tun/tap device
|
device.c -- Interaction BSD tun/tap device
|
||||||
Copyright (C) 2001-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
|
Copyright (C) 2001-2005 Ivo Timmermans,
|
||||||
2001-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2001-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
|
11
src/conf.c
11
src/conf.c
|
@ -1,9 +1,9 @@
|
||||||
/*
|
/*
|
||||||
conf.c -- configuration code
|
conf.c -- configuration code
|
||||||
Copyright (C) 1998 Robert van der Meulen
|
Copyright (C) 1998 Robert van der Meulen
|
||||||
1998-2005 Ivo Timmermans <ivo@tinc-vpn.org>
|
1998-2005 Ivo Timmermans
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
2000 Cris van Pelt <tribbel@arise.dhs.org>
|
2000 Cris van Pelt
|
||||||
|
|
||||||
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
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: conf.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: conf.c 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
@ -33,7 +33,8 @@
|
||||||
|
|
||||||
avl_tree_t *config_tree;
|
avl_tree_t *config_tree;
|
||||||
|
|
||||||
int pingtimeout = 0; /* seconds before timeout */
|
int pinginterval = 0; /* seconds between pings */
|
||||||
|
int pingtimeout = 0; /* seconds to wait for response */
|
||||||
char *confbase = NULL; /* directory in which all config files are */
|
char *confbase = NULL; /* directory in which all config files are */
|
||||||
char *netname = NULL; /* name of the vpn network */
|
char *netname = NULL; /* name of the vpn network */
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
conf.h -- header for conf.c
|
conf.h -- header for conf.c
|
||||||
Copyright (C) 1998-2005 Ivo Timmermans <ivo@tinc-vpn.org>
|
Copyright (C) 1998-2005 Ivo Timmermans
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: conf.h 1439 2005-05-04 18:09:30Z guus $
|
$Id: conf.h 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __TINC_CONF_H__
|
#ifndef __TINC_CONF_H__
|
||||||
|
@ -36,6 +36,7 @@ typedef struct config_t {
|
||||||
|
|
||||||
extern avl_tree_t *config_tree;
|
extern avl_tree_t *config_tree;
|
||||||
|
|
||||||
|
extern int pinginterval;
|
||||||
extern int pingtimeout;
|
extern int pingtimeout;
|
||||||
extern int maxtimeout;
|
extern int maxtimeout;
|
||||||
extern bool bypass_security;
|
extern bool bypass_security;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
connection.c -- connection list management
|
connection.c -- connection list management
|
||||||
Copyright (C) 2000-2005 Guus Sliepen <guus@tinc-vpn.org>,
|
Copyright (C) 2000-2006 Guus Sliepen <guus@tinc-vpn.org>,
|
||||||
2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>
|
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
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: connection.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: connection.c 1456 2006-08-08 13:21:08Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
@ -121,8 +121,9 @@ void dump_connections(void)
|
||||||
|
|
||||||
for(node = connection_tree->head; node; node = node->next) {
|
for(node = connection_tree->head; node; node = node->next) {
|
||||||
c = node->data;
|
c = node->data;
|
||||||
logger(LOG_DEBUG, _(" %s at %s options %lx socket %d status %04x"),
|
logger(LOG_DEBUG, _(" %s at %s options %lx socket %d status %04x outbuf %d/%d/%d"),
|
||||||
c->name, c->hostname, c->options, c->socket, *(uint32_t *)&c->status);
|
c->name, c->hostname, c->options, c->socket, c->status.value,
|
||||||
|
c->outbufsize, c->outbufstart, c->outbuflen);
|
||||||
}
|
}
|
||||||
|
|
||||||
logger(LOG_DEBUG, _("End of connections."));
|
logger(LOG_DEBUG, _("End of connections."));
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
connection.h -- header for connection.c
|
connection.h -- header for connection.c
|
||||||
Copyright (C) 2000-2005 Guus Sliepen <guus@tinc-vpn.org>,
|
Copyright (C) 2000-2006 Guus Sliepen <guus@tinc-vpn.org>,
|
||||||
2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>
|
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
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: connection.h 1439 2005-05-04 18:09:30Z guus $
|
$Id: connection.h 1456 2006-08-08 13:21:08Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __TINC_CONNECTION_H__
|
#ifndef __TINC_CONNECTION_H__
|
||||||
|
@ -32,17 +32,20 @@
|
||||||
#define OPTION_TCPONLY 0x0002
|
#define OPTION_TCPONLY 0x0002
|
||||||
#define OPTION_PMTU_DISCOVERY 0x0004
|
#define OPTION_PMTU_DISCOVERY 0x0004
|
||||||
|
|
||||||
typedef struct connection_status_t {
|
typedef union connection_status_t {
|
||||||
int pinged:1; /* sent ping */
|
struct {
|
||||||
int active:1; /* 1 if active.. */
|
int pinged:1; /* sent ping */
|
||||||
int connecting:1; /* 1 if we are waiting for a non-blocking connect() to finish */
|
int active:1; /* 1 if active.. */
|
||||||
int termreq:1; /* the termination of this connection was requested */
|
int connecting:1; /* 1 if we are waiting for a non-blocking connect() to finish */
|
||||||
int remove:1; /* Set to 1 if you want this connection removed */
|
int termreq:1; /* the termination of this connection was requested */
|
||||||
int timeout:1; /* 1 if gotten timeout */
|
int remove:1; /* Set to 1 if you want this connection removed */
|
||||||
int encryptout:1; /* 1 if we can encrypt outgoing traffic */
|
int timeout:1; /* 1 if gotten timeout */
|
||||||
int decryptin:1; /* 1 if we have to decrypt incoming traffic */
|
int encryptout:1; /* 1 if we can encrypt outgoing traffic */
|
||||||
int mst:1; /* 1 if this connection is part of a minimum spanning tree */
|
int decryptin:1; /* 1 if we have to decrypt incoming traffic */
|
||||||
int unused:23;
|
int mst:1; /* 1 if this connection is part of a minimum spanning tree */
|
||||||
|
int unused:23;
|
||||||
|
};
|
||||||
|
uint32_t value;
|
||||||
} connection_status_t;
|
} connection_status_t;
|
||||||
|
|
||||||
#include "edge.h"
|
#include "edge.h"
|
||||||
|
@ -59,7 +62,7 @@ typedef struct connection_t {
|
||||||
|
|
||||||
int socket; /* socket used for this connection */
|
int socket; /* socket used for this connection */
|
||||||
long int options; /* options for this connection */
|
long int options; /* options for this connection */
|
||||||
struct connection_status_t status; /* status info */
|
connection_status_t status; /* status info */
|
||||||
int estimated_weight; /* estimation for the weight of the edge for this connection */
|
int estimated_weight; /* estimation for the weight of the edge for this connection */
|
||||||
struct timeval start; /* time this connection was started, used for above estimation */
|
struct timeval start; /* time this connection was started, used for above estimation */
|
||||||
struct outgoing_t *outgoing; /* used to keep track of outgoing connections */
|
struct outgoing_t *outgoing; /* used to keep track of outgoing connections */
|
||||||
|
@ -91,7 +94,13 @@ typedef struct connection_t {
|
||||||
int tcplen; /* length of incoming TCPpacket */
|
int tcplen; /* length of incoming TCPpacket */
|
||||||
int allow_request; /* defined if there's only one request possible */
|
int allow_request; /* defined if there's only one request possible */
|
||||||
|
|
||||||
time_t last_ping_time; /* last time we saw some activity from the other end */
|
char *outbuf; /* metadata output buffer */
|
||||||
|
int outbufstart; /* index of first meaningful byte in output buffer */
|
||||||
|
int outbuflen; /* number of meaningful bytes in output buffer */
|
||||||
|
int outbufsize; /* number of bytes allocated to output buffer */
|
||||||
|
|
||||||
|
time_t last_ping_time; /* last time we saw some activity from the other end or pinged them */
|
||||||
|
time_t last_flushed_time; /* last time buffer was empty. Only meaningful if outbuflen > 0 */
|
||||||
|
|
||||||
avl_tree_t *config_tree; /* Pointer to configuration tree belonging to him */
|
avl_tree_t *config_tree; /* Pointer to configuration tree belonging to him */
|
||||||
} connection_t;
|
} connection_t;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
device.c -- Interaction with Windows tap driver in a Cygwin environment
|
device.c -- Interaction with Windows tap driver in a Cygwin environment
|
||||||
Copyright (C) 2002-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
|
Copyright (C) 2002-2005 Ivo Timmermans,
|
||||||
2002-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2002-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: device.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: device.c 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
net.h -- generic header for device.c
|
net.h -- generic header for device.c
|
||||||
Copyright (C) 2001-2005 Ivo Timmermans <zarq@iname.com>
|
Copyright (C) 2001-2005 Ivo Timmermans <zarq@iname.com>
|
||||||
2001-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2001-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: device.h 1439 2005-05-04 18:09:30Z guus $
|
$Id: device.h 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __TINC_DEVICE_H__
|
#ifndef __TINC_DEVICE_H__
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
edge.c -- edge tree management
|
edge.c -- edge tree management
|
||||||
Copyright (C) 2000-2005 Guus Sliepen <guus@tinc-vpn.org>,
|
Copyright (C) 2000-2006 Guus Sliepen <guus@tinc-vpn.org>,
|
||||||
2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>
|
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
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: edge.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: edge.c 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
edge.h -- header for edge.c
|
edge.h -- header for edge.c
|
||||||
Copyright (C) 2001-2005 Guus Sliepen <guus@tinc-vpn.org>,
|
Copyright (C) 2001-2006 Guus Sliepen <guus@tinc-vpn.org>,
|
||||||
2001-2005 Ivo Timmermans <ivo@tinc-vpn.org>
|
2001-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
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: edge.h 1439 2005-05-04 18:09:30Z guus $
|
$Id: edge.h 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __TINC_EDGE_H__
|
#ifndef __TINC_EDGE_H__
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
event.c -- event queue
|
event.c -- event queue
|
||||||
Copyright (C) 2002-2005 Guus Sliepen <guus@tinc-vpn.org>,
|
Copyright (C) 2002-2006 Guus Sliepen <guus@tinc-vpn.org>,
|
||||||
2002-2005 Ivo Timmermans <ivo@tinc-vpn.org>
|
2002-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
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: event.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: event.c 1469 2006-11-11 22:44:15Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
@ -96,7 +96,7 @@ event_t *get_expired_event(void)
|
||||||
event = event_tree->head->data;
|
event = event_tree->head->data;
|
||||||
|
|
||||||
if(event->time < now) {
|
if(event->time < now) {
|
||||||
avl_delete(event_tree, event);
|
event_del(event);
|
||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
event.h -- header for event.c
|
event.h -- header for event.c
|
||||||
Copyright (C) 2002-2005 Guus Sliepen <guus@tinc-vpn.org>,
|
Copyright (C) 2002-2006 Guus Sliepen <guus@tinc-vpn.org>,
|
||||||
2002-2005 Ivo Timmermans <ivo@tinc-vpn.org>
|
2002-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
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: event.h 1439 2005-05-04 18:09:30Z guus $
|
$Id: event.h 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __TINC_EVENT_H__
|
#ifndef __TINC_EVENT_H__
|
||||||
|
|
73
src/graph.c
73
src/graph.c
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
graph.c -- graph algorithms
|
graph.c -- graph algorithms
|
||||||
Copyright (C) 2001-2005 Guus Sliepen <guus@tinc-vpn.org>,
|
Copyright (C) 2001-2006 Guus Sliepen <guus@tinc-vpn.org>,
|
||||||
2001-2005 Ivo Timmermans <ivo@tinc-vpn.org>
|
2001-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
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: graph.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: graph.c 1464 2006-11-11 14:37:03Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* We need to generate two trees from the graph:
|
/* We need to generate two trees from the graph:
|
||||||
|
@ -47,6 +47,7 @@
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
|
||||||
#include "avl_tree.h"
|
#include "avl_tree.h"
|
||||||
|
#include "config.h"
|
||||||
#include "connection.h"
|
#include "connection.h"
|
||||||
#include "device.h"
|
#include "device.h"
|
||||||
#include "edge.h"
|
#include "edge.h"
|
||||||
|
@ -57,6 +58,8 @@
|
||||||
#include "subnet.h"
|
#include "subnet.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
|
||||||
|
static bool graph_changed = true;
|
||||||
|
|
||||||
/* Implementation of Kruskal's algorithm.
|
/* Implementation of Kruskal's algorithm.
|
||||||
Running time: O(EN)
|
Running time: O(EN)
|
||||||
Please note that sorting on weight is already done by add_edge().
|
Please note that sorting on weight is already done by add_edge().
|
||||||
|
@ -283,6 +286,8 @@ void sssp_bfs(void)
|
||||||
asprintf(&envp[5], "REMOTEPORT=%s", port);
|
asprintf(&envp[5], "REMOTEPORT=%s", port);
|
||||||
envp[6] = NULL;
|
envp[6] = NULL;
|
||||||
|
|
||||||
|
execute_script(n->status.reachable ? "host-up" : "host-down", envp);
|
||||||
|
|
||||||
asprintf(&name,
|
asprintf(&name,
|
||||||
n->status.reachable ? "hosts/%s-up" : "hosts/%s-down",
|
n->status.reachable ? "hosts/%s-up" : "hosts/%s-down",
|
||||||
n->name);
|
n->name);
|
||||||
|
@ -304,4 +309,66 @@ void graph(void)
|
||||||
{
|
{
|
||||||
mst_kruskal();
|
mst_kruskal();
|
||||||
sssp_bfs();
|
sssp_bfs();
|
||||||
|
graph_changed = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Dump nodes and edges to a graphviz file.
|
||||||
|
|
||||||
|
The file can be converted to an image with
|
||||||
|
dot -Tpng graph_filename -o image_filename.png -Gconcentrate=true
|
||||||
|
*/
|
||||||
|
|
||||||
|
void dump_graph(void)
|
||||||
|
{
|
||||||
|
avl_node_t *node;
|
||||||
|
node_t *n;
|
||||||
|
edge_t *e;
|
||||||
|
char *filename = NULL, *tmpname = NULL;
|
||||||
|
FILE *file;
|
||||||
|
|
||||||
|
if(!graph_changed || !get_config_string(lookup_config(config_tree, "GraphDumpFile"), &filename))
|
||||||
|
return;
|
||||||
|
|
||||||
|
graph_changed = false;
|
||||||
|
|
||||||
|
ifdebug(PROTOCOL) logger(LOG_NOTICE, "Dumping graph");
|
||||||
|
|
||||||
|
if(filename[0] == '|') {
|
||||||
|
file = popen(filename + 1, "w");
|
||||||
|
} else {
|
||||||
|
asprintf(&tmpname, "%s.new", filename);
|
||||||
|
file = fopen(tmpname, "w");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!file) {
|
||||||
|
logger(LOG_ERR, "Unable to open graph dump file %s: %s", filename, strerror(errno));
|
||||||
|
free(tmpname);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf(file, "digraph {\n");
|
||||||
|
|
||||||
|
/* dump all nodes first */
|
||||||
|
for(node = node_tree->head; node; node = node->next) {
|
||||||
|
n = node->data;
|
||||||
|
fprintf(file, " %s [label = \"%s\"];\n", n->name, n->name);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* now dump all edges */
|
||||||
|
for(node = edge_weight_tree->head; node; node = node->next) {
|
||||||
|
e = node->data;
|
||||||
|
fprintf(file, " %s -> %s;\n", e->from->name, e->to->name);
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf(file, "}\n");
|
||||||
|
|
||||||
|
if(filename[0] == '|') {
|
||||||
|
pclose(file);
|
||||||
|
} else {
|
||||||
|
fclose(file);
|
||||||
|
rename(tmpname, filename);
|
||||||
|
free(tmpname);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
graph.h -- header for graph.c
|
graph.h -- header for graph.c
|
||||||
Copyright (C) 2001-2005 Guus Sliepen <guus@tinc-vpn.org>,
|
Copyright (C) 2001-2006 Guus Sliepen <guus@tinc-vpn.org>,
|
||||||
2001-2005 Ivo Timmermans <ivo@tinc-vpn.org>
|
2001-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
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: graph.h 1439 2005-05-04 18:09:30Z guus $
|
$Id: graph.h 1463 2006-11-11 14:11:16Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __TINC_GRAPH_H__
|
#ifndef __TINC_GRAPH_H__
|
||||||
|
@ -26,5 +26,6 @@
|
||||||
extern void graph(void);
|
extern void graph(void);
|
||||||
extern void mst_kruskal(void);
|
extern void mst_kruskal(void);
|
||||||
extern void sssp_bfs(void);
|
extern void sssp_bfs(void);
|
||||||
|
extern void dump_graph(void);
|
||||||
|
|
||||||
#endif /* __TINC_GRAPH_H__ */
|
#endif /* __TINC_GRAPH_H__ */
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
device.c -- Interaction with Linux ethertap and tun/tap device
|
device.c -- Interaction with Linux ethertap and tun/tap device
|
||||||
Copyright (C) 2001-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
|
Copyright (C) 2001-2005 Ivo Timmermans,
|
||||||
2001-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2001-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: device.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: device.c 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
logger.c -- logging code
|
logger.c -- logging code
|
||||||
Copyright (C) 2004-2005 Guus Sliepen <guus@tinc-vpn.org>
|
Copyright (C) 2004-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
2004-2005 Ivo Timmermans <ivo@tinc-vpn.org>
|
2004-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
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: logger.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: logger.c 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
|
79
src/meta.c
79
src/meta.c
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
meta.c -- handle the meta communication
|
meta.c -- handle the meta communication
|
||||||
Copyright (C) 2000-2005 Guus Sliepen <guus@tinc-vpn.org>,
|
Copyright (C) 2000-2006 Guus Sliepen <guus@tinc-vpn.org>,
|
||||||
2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>
|
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
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: meta.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: meta.c 1471 2006-11-14 12:28:04Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
@ -32,12 +32,11 @@
|
||||||
#include "net.h"
|
#include "net.h"
|
||||||
#include "protocol.h"
|
#include "protocol.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
#include "xalloc.h"
|
||||||
|
|
||||||
bool send_meta(connection_t *c, const char *buffer, int length)
|
bool send_meta(connection_t *c, const char *buffer, int length)
|
||||||
{
|
{
|
||||||
const char *bufp;
|
|
||||||
int outlen;
|
int outlen;
|
||||||
char outbuf[MAXBUFSIZE];
|
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
cp();
|
cp();
|
||||||
|
@ -45,35 +44,75 @@ bool send_meta(connection_t *c, const char *buffer, int length)
|
||||||
ifdebug(META) logger(LOG_DEBUG, _("Sending %d bytes of metadata to %s (%s)"), length,
|
ifdebug(META) logger(LOG_DEBUG, _("Sending %d bytes of metadata to %s (%s)"), length,
|
||||||
c->name, c->hostname);
|
c->name, c->hostname);
|
||||||
|
|
||||||
|
if(!c->outbuflen)
|
||||||
|
c->last_flushed_time = now;
|
||||||
|
|
||||||
|
/* Find room in connection's buffer */
|
||||||
|
if(length + c->outbuflen > c->outbufsize) {
|
||||||
|
c->outbufsize = length + c->outbuflen;
|
||||||
|
c->outbuf = xrealloc(c->outbuf, c->outbufsize);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(length + c->outbuflen + c->outbufstart > c->outbufsize) {
|
||||||
|
memmove(c->outbuf, c->outbuf + c->outbufstart, c->outbuflen);
|
||||||
|
c->outbufstart = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Add our data to buffer */
|
||||||
if(c->status.encryptout) {
|
if(c->status.encryptout) {
|
||||||
result = EVP_EncryptUpdate(c->outctx, outbuf, &outlen, buffer, length);
|
result = EVP_EncryptUpdate(c->outctx, (unsigned char *)c->outbuf + c->outbufstart + c->outbuflen,
|
||||||
if(!result || outlen != length) {
|
&outlen, (unsigned char *)buffer, length);
|
||||||
|
if(!result || outlen < length) {
|
||||||
logger(LOG_ERR, _("Error while encrypting metadata to %s (%s): %s"),
|
logger(LOG_ERR, _("Error while encrypting metadata to %s (%s): %s"),
|
||||||
c->name, c->hostname, ERR_error_string(ERR_get_error(), NULL));
|
c->name, c->hostname, ERR_error_string(ERR_get_error(), NULL));
|
||||||
return false;
|
return false;
|
||||||
|
} else if(outlen > length) {
|
||||||
|
logger(LOG_EMERG, _("Encrypted data too long! Heap corrupted!"));
|
||||||
|
abort();
|
||||||
}
|
}
|
||||||
bufp = outbuf;
|
c->outbuflen += outlen;
|
||||||
length = outlen;
|
} else {
|
||||||
} else
|
memcpy(c->outbuf + c->outbufstart + c->outbuflen, buffer, length);
|
||||||
bufp = buffer;
|
c->outbuflen += length;
|
||||||
|
}
|
||||||
|
|
||||||
while(length) {
|
return true;
|
||||||
result = send(c->socket, bufp, length, 0);
|
}
|
||||||
|
|
||||||
|
bool flush_meta(connection_t *c)
|
||||||
|
{
|
||||||
|
int result;
|
||||||
|
|
||||||
|
ifdebug(META) logger(LOG_DEBUG, _("Flushing %d bytes to %s (%s)"),
|
||||||
|
c->outbuflen, c->name, c->hostname);
|
||||||
|
|
||||||
|
while(c->outbuflen) {
|
||||||
|
result = send(c->socket, c->outbuf + c->outbufstart, c->outbuflen, 0);
|
||||||
if(result <= 0) {
|
if(result <= 0) {
|
||||||
if(!errno || errno == EPIPE) {
|
if(!errno || errno == EPIPE) {
|
||||||
ifdebug(CONNECTIONS) logger(LOG_NOTICE, _("Connection closed by %s (%s)"),
|
ifdebug(CONNECTIONS) logger(LOG_NOTICE, _("Connection closed by %s (%s)"),
|
||||||
c->name, c->hostname);
|
c->name, c->hostname);
|
||||||
} else if(errno == EINTR)
|
} else if(errno == EINTR) {
|
||||||
continue;
|
continue;
|
||||||
else
|
#ifdef EWOULDBLOCK
|
||||||
logger(LOG_ERR, _("Sending meta data to %s (%s) failed: %s"), c->name,
|
} else if(errno == EWOULDBLOCK) {
|
||||||
|
ifdebug(CONNECTIONS) logger(LOG_DEBUG, _("Flushing %d bytes to %s (%s) would block"),
|
||||||
|
c->outbuflen, c->name, c->hostname);
|
||||||
|
return true;
|
||||||
|
#endif
|
||||||
|
} else {
|
||||||
|
logger(LOG_ERR, _("Flushing meta data to %s (%s) failed: %s"), c->name,
|
||||||
c->hostname, strerror(errno));
|
c->hostname, strerror(errno));
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
bufp += result;
|
|
||||||
length -= result;
|
c->outbufstart += result;
|
||||||
|
c->outbuflen -= result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
c->outbufstart = 0; /* avoid unnecessary memmoves */
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -132,7 +171,7 @@ bool receive_meta(connection_t *c)
|
||||||
/* Decrypt */
|
/* Decrypt */
|
||||||
|
|
||||||
if(c->status.decryptin && !decrypted) {
|
if(c->status.decryptin && !decrypted) {
|
||||||
result = EVP_DecryptUpdate(c->inctx, inbuf, &lenout, c->buffer + oldlen, lenin);
|
result = EVP_DecryptUpdate(c->inctx, (unsigned char *)inbuf, &lenout, (unsigned char *)c->buffer + oldlen, lenin);
|
||||||
if(!result || lenout != lenin) {
|
if(!result || lenout != lenin) {
|
||||||
logger(LOG_ERR, _("Error while decrypting metadata from %s (%s): %s"),
|
logger(LOG_ERR, _("Error while decrypting metadata from %s (%s): %s"),
|
||||||
c->name, c->hostname, ERR_error_string(ERR_get_error(), NULL));
|
c->name, c->hostname, ERR_error_string(ERR_get_error(), NULL));
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
meta.h -- header for meta.c
|
meta.h -- header for meta.c
|
||||||
Copyright (C) 2000-2005 Guus Sliepen <guus@tinc-vpn.org>,
|
Copyright (C) 2000-2006 Guus Sliepen <guus@tinc-vpn.org>,
|
||||||
2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>
|
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
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: meta.h 1439 2005-05-04 18:09:30Z guus $
|
$Id: meta.h 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __TINC_META_H__
|
#ifndef __TINC_META_H__
|
||||||
|
@ -27,6 +27,7 @@
|
||||||
|
|
||||||
extern bool send_meta(struct connection_t *, const char *, int);
|
extern bool send_meta(struct connection_t *, const char *, int);
|
||||||
extern void broadcast_meta(struct connection_t *, const char *, int);
|
extern void broadcast_meta(struct connection_t *, const char *, int);
|
||||||
|
extern bool flush_meta(struct connection_t *);
|
||||||
extern bool receive_meta(struct connection_t *);
|
extern bool receive_meta(struct connection_t *);
|
||||||
|
|
||||||
#endif /* __TINC_META_H__ */
|
#endif /* __TINC_META_H__ */
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
device.c -- Interaction with Windows tap driver in a MinGW environment
|
device.c -- Interaction with Windows tap driver in a MinGW environment
|
||||||
Copyright (C) 2002-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
|
Copyright (C) 2002-2005 Ivo Timmermans,
|
||||||
2002-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2002-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: device.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: device.c 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
|
91
src/net.c
91
src/net.c
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
net.c -- most of the network code
|
net.c -- most of the network code
|
||||||
Copyright (C) 1998-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
|
Copyright (C) 1998-2005 Ivo Timmermans,
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: net.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: net.c 1469 2006-11-11 22:44:15Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
@ -112,7 +112,7 @@ static void purge(void)
|
||||||
put all file descriptors in an fd_set array
|
put all file descriptors in an fd_set array
|
||||||
While we're at it, purge stuff that needs to be removed.
|
While we're at it, purge stuff that needs to be removed.
|
||||||
*/
|
*/
|
||||||
static int build_fdset(fd_set * fs)
|
static int build_fdset(fd_set *readset, fd_set *writeset)
|
||||||
{
|
{
|
||||||
avl_node_t *node, *next;
|
avl_node_t *node, *next;
|
||||||
connection_t *c;
|
connection_t *c;
|
||||||
|
@ -120,7 +120,8 @@ static int build_fdset(fd_set * fs)
|
||||||
|
|
||||||
cp();
|
cp();
|
||||||
|
|
||||||
FD_ZERO(fs);
|
FD_ZERO(readset);
|
||||||
|
FD_ZERO(writeset);
|
||||||
|
|
||||||
for(node = connection_tree->head; node; node = next) {
|
for(node = connection_tree->head; node; node = next) {
|
||||||
next = node->next;
|
next = node->next;
|
||||||
|
@ -131,22 +132,24 @@ static int build_fdset(fd_set * fs)
|
||||||
if(!connection_tree->head)
|
if(!connection_tree->head)
|
||||||
purge();
|
purge();
|
||||||
} else {
|
} else {
|
||||||
FD_SET(c->socket, fs);
|
FD_SET(c->socket, readset);
|
||||||
|
if(c->outbuflen > 0)
|
||||||
|
FD_SET(c->socket, writeset);
|
||||||
if(c->socket > max)
|
if(c->socket > max)
|
||||||
max = c->socket;
|
max = c->socket;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for(i = 0; i < listen_sockets; i++) {
|
for(i = 0; i < listen_sockets; i++) {
|
||||||
FD_SET(listen_socket[i].tcp, fs);
|
FD_SET(listen_socket[i].tcp, readset);
|
||||||
if(listen_socket[i].tcp > max)
|
if(listen_socket[i].tcp > max)
|
||||||
max = listen_socket[i].tcp;
|
max = listen_socket[i].tcp;
|
||||||
FD_SET(listen_socket[i].udp, fs);
|
FD_SET(listen_socket[i].udp, readset);
|
||||||
if(listen_socket[i].udp > max)
|
if(listen_socket[i].udp > max)
|
||||||
max = listen_socket[i].udp;
|
max = listen_socket[i].udp;
|
||||||
}
|
}
|
||||||
|
|
||||||
FD_SET(device_fd, fs);
|
FD_SET(device_fd, readset);
|
||||||
if(device_fd > max)
|
if(device_fd > max)
|
||||||
max = device_fd;
|
max = device_fd;
|
||||||
|
|
||||||
|
@ -208,6 +211,12 @@ void terminate_connection(connection_t *c, bool report)
|
||||||
retry_outgoing(c->outgoing);
|
retry_outgoing(c->outgoing);
|
||||||
c->outgoing = NULL;
|
c->outgoing = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
free(c->outbuf);
|
||||||
|
c->outbuf = NULL;
|
||||||
|
c->outbuflen = 0;
|
||||||
|
c->outbufsize = 0;
|
||||||
|
c->outbufstart = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -232,17 +241,17 @@ static void check_dead_connections(void)
|
||||||
if(c->last_ping_time + pingtimeout < now) {
|
if(c->last_ping_time + pingtimeout < now) {
|
||||||
if(c->status.active) {
|
if(c->status.active) {
|
||||||
if(c->status.pinged) {
|
if(c->status.pinged) {
|
||||||
ifdebug(CONNECTIONS) logger(LOG_INFO, _("%s (%s) didn't respond to PING"),
|
ifdebug(CONNECTIONS) logger(LOG_INFO, _("%s (%s) didn't respond to PING in %ld seconds"),
|
||||||
c->name, c->hostname);
|
c->name, c->hostname, now - c->last_ping_time);
|
||||||
c->status.timeout = true;
|
c->status.timeout = true;
|
||||||
terminate_connection(c, true);
|
terminate_connection(c, true);
|
||||||
} else {
|
} else if(c->last_ping_time + pinginterval < now) {
|
||||||
send_ping(c);
|
send_ping(c);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if(c->status.remove) {
|
if(c->status.remove) {
|
||||||
logger(LOG_WARNING, _("Old connection_t for %s (%s) status %04x still lingering, deleting..."),
|
logger(LOG_WARNING, _("Old connection_t for %s (%s) status %04x still lingering, deleting..."),
|
||||||
c->name, c->hostname, *(uint32_t *)&c->status);
|
c->name, c->hostname, c->status.value);
|
||||||
connection_del(c);
|
connection_del(c);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -257,6 +266,16 @@ static void check_dead_connections(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(c->outbuflen > 0 && c->last_flushed_time + pingtimeout < now) {
|
||||||
|
if(c->status.active) {
|
||||||
|
ifdebug(CONNECTIONS) logger(LOG_INFO,
|
||||||
|
_("%s (%s) could not flush for %ld seconds (%d bytes remaining)"),
|
||||||
|
c->name, c->hostname, now - c->last_flushed_time, c->outbuflen);
|
||||||
|
c->status.timeout = true;
|
||||||
|
terminate_connection(c, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -264,28 +283,30 @@ static void check_dead_connections(void)
|
||||||
check all connections to see if anything
|
check all connections to see if anything
|
||||||
happened on their sockets
|
happened on their sockets
|
||||||
*/
|
*/
|
||||||
static void check_network_activity(fd_set * f)
|
static void check_network_activity(fd_set * readset, fd_set * writeset)
|
||||||
{
|
{
|
||||||
connection_t *c;
|
connection_t *c;
|
||||||
avl_node_t *node;
|
avl_node_t *node;
|
||||||
int result, i;
|
int result, i;
|
||||||
int len = sizeof(result);
|
socklen_t len = sizeof(result);
|
||||||
vpn_packet_t packet;
|
vpn_packet_t packet;
|
||||||
|
|
||||||
cp();
|
cp();
|
||||||
|
|
||||||
if(FD_ISSET(device_fd, f)) {
|
/* check input from kernel */
|
||||||
|
if(FD_ISSET(device_fd, readset)) {
|
||||||
if(read_packet(&packet))
|
if(read_packet(&packet))
|
||||||
route(myself, &packet);
|
route(myself, &packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* check meta connections */
|
||||||
for(node = connection_tree->head; node; node = node->next) {
|
for(node = connection_tree->head; node; node = node->next) {
|
||||||
c = node->data;
|
c = node->data;
|
||||||
|
|
||||||
if(c->status.remove)
|
if(c->status.remove)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if(FD_ISSET(c->socket, f)) {
|
if(FD_ISSET(c->socket, readset)) {
|
||||||
if(c->status.connecting) {
|
if(c->status.connecting) {
|
||||||
c->status.connecting = false;
|
c->status.connecting = false;
|
||||||
getsockopt(c->socket, SOL_SOCKET, SO_ERROR, &result, &len);
|
getsockopt(c->socket, SOL_SOCKET, SO_ERROR, &result, &len);
|
||||||
|
@ -307,13 +328,20 @@ static void check_network_activity(fd_set * f)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(FD_ISSET(c->socket, writeset)) {
|
||||||
|
if(!flush_meta(c)) {
|
||||||
|
terminate_connection(c, c->status.active);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for(i = 0; i < listen_sockets; i++) {
|
for(i = 0; i < listen_sockets; i++) {
|
||||||
if(FD_ISSET(listen_socket[i].udp, f))
|
if(FD_ISSET(listen_socket[i].udp, readset))
|
||||||
handle_incoming_vpn_data(listen_socket[i].udp);
|
handle_incoming_vpn_data(listen_socket[i].udp);
|
||||||
|
|
||||||
if(FD_ISSET(listen_socket[i].tcp, f))
|
if(FD_ISSET(listen_socket[i].tcp, readset))
|
||||||
handle_new_meta_connection(listen_socket[i].tcp);
|
handle_new_meta_connection(listen_socket[i].tcp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -323,16 +351,18 @@ static void check_network_activity(fd_set * f)
|
||||||
*/
|
*/
|
||||||
int main_loop(void)
|
int main_loop(void)
|
||||||
{
|
{
|
||||||
fd_set fset;
|
fd_set readset, writeset;
|
||||||
struct timeval tv;
|
struct timeval tv;
|
||||||
int r, maxfd;
|
int r, maxfd;
|
||||||
time_t last_ping_check, last_config_check;
|
time_t last_ping_check, last_config_check, last_graph_dump;
|
||||||
event_t *event;
|
event_t *event;
|
||||||
|
|
||||||
cp();
|
cp();
|
||||||
|
|
||||||
last_ping_check = now;
|
last_ping_check = now;
|
||||||
last_config_check = now;
|
last_config_check = now;
|
||||||
|
last_graph_dump = now;
|
||||||
|
|
||||||
srand(now);
|
srand(now);
|
||||||
|
|
||||||
running = true;
|
running = true;
|
||||||
|
@ -344,9 +374,9 @@ int main_loop(void)
|
||||||
tv.tv_sec = 1;
|
tv.tv_sec = 1;
|
||||||
tv.tv_usec = 0;
|
tv.tv_usec = 0;
|
||||||
|
|
||||||
maxfd = build_fdset(&fset);
|
maxfd = build_fdset(&readset, &writeset);
|
||||||
|
|
||||||
r = select(maxfd + 1, &fset, NULL, NULL, &tv);
|
r = select(maxfd + 1, &readset, &writeset, NULL, &tv);
|
||||||
|
|
||||||
if(r < 0) {
|
if(r < 0) {
|
||||||
if(errno != EINTR && errno != EAGAIN) {
|
if(errno != EINTR && errno != EAGAIN) {
|
||||||
|
@ -360,7 +390,7 @@ int main_loop(void)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
check_network_activity(&fset);
|
check_network_activity(&readset, &writeset);
|
||||||
|
|
||||||
if(do_purge) {
|
if(do_purge) {
|
||||||
purge();
|
purge();
|
||||||
|
@ -383,9 +413,9 @@ int main_loop(void)
|
||||||
if(keyexpires < now) {
|
if(keyexpires < now) {
|
||||||
ifdebug(STATUS) logger(LOG_INFO, _("Regenerating symmetric key"));
|
ifdebug(STATUS) logger(LOG_INFO, _("Regenerating symmetric key"));
|
||||||
|
|
||||||
RAND_pseudo_bytes(myself->key, myself->keylength);
|
RAND_pseudo_bytes((unsigned char *)myself->key, myself->keylength);
|
||||||
if(myself->cipher)
|
if(myself->cipher)
|
||||||
EVP_DecryptInit_ex(&packet_ctx, myself->cipher, NULL, myself->key, myself->key + myself->cipher->key_len);
|
EVP_DecryptInit_ex(&packet_ctx, myself->cipher, NULL, (unsigned char *)myself->key, (unsigned char *)myself->key + myself->cipher->key_len);
|
||||||
send_key_changed(broadcast, myself);
|
send_key_changed(broadcast, myself);
|
||||||
keyexpires = now + keylifetime;
|
keyexpires = now + keylifetime;
|
||||||
}
|
}
|
||||||
|
@ -394,7 +424,7 @@ int main_loop(void)
|
||||||
|
|
||||||
while((event = get_expired_event())) {
|
while((event = get_expired_event())) {
|
||||||
event->handler(event->data);
|
event->handler(event->data);
|
||||||
free(event);
|
free_event(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(sigalrm) {
|
if(sigalrm) {
|
||||||
|
@ -450,6 +480,13 @@ int main_loop(void)
|
||||||
|
|
||||||
try_outgoing_connections();
|
try_outgoing_connections();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Dump graph if wanted every 60 seconds*/
|
||||||
|
|
||||||
|
if(last_graph_dump + 60 < now) {
|
||||||
|
dump_graph();
|
||||||
|
last_graph_dump = now;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
net.h -- header for net.c
|
net.h -- header for net.c
|
||||||
Copyright (C) 1998-2005 Ivo Timmermans <zarq@iname.com>
|
Copyright (C) 1998-2005 Ivo Timmermans <zarq@iname.com>
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: net.h 1439 2005-05-04 18:09:30Z guus $
|
$Id: net.h 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __TINC_NET_H__
|
#ifndef __TINC_NET_H__
|
||||||
|
@ -114,10 +114,9 @@ typedef struct outgoing_t {
|
||||||
struct addrinfo *aip;
|
struct addrinfo *aip;
|
||||||
} outgoing_t;
|
} outgoing_t;
|
||||||
|
|
||||||
extern int maxtimeout;
|
extern int maxoutbufsize;
|
||||||
extern int seconds_till_retry;
|
extern int seconds_till_retry;
|
||||||
extern int addressfamily;
|
extern int addressfamily;
|
||||||
extern bool blockingtcp;
|
|
||||||
|
|
||||||
extern listen_socket_t listen_socket[MAXSOCKETS];
|
extern listen_socket_t listen_socket[MAXSOCKETS];
|
||||||
extern int listen_sockets;
|
extern int listen_sockets;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
net_packet.c -- Handles in- and outgoing VPN packets
|
net_packet.c -- Handles in- and outgoing VPN packets
|
||||||
Copyright (C) 1998-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
|
Copyright (C) 1998-2005 Ivo Timmermans,
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: net_packet.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: net_packet.c 1469 2006-11-11 22:44:15Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
@ -29,7 +29,12 @@
|
||||||
#include <openssl/hmac.h>
|
#include <openssl/hmac.h>
|
||||||
|
|
||||||
#include <zlib.h>
|
#include <zlib.h>
|
||||||
|
#ifdef HAVE_LZO_LZO1X_H
|
||||||
|
#include <lzo/lzo1x.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_LZO1X_H
|
||||||
#include <lzo1x.h>
|
#include <lzo1x.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "avl_tree.h"
|
#include "avl_tree.h"
|
||||||
#include "conf.h"
|
#include "conf.h"
|
||||||
|
@ -96,7 +101,7 @@ void send_mtu_probe(node_t *n)
|
||||||
send_udppacket(n, &packet);
|
send_udppacket(n, &packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
n->mtuevent = xmalloc(sizeof(*n->mtuevent));
|
n->mtuevent = new_event();
|
||||||
n->mtuevent->handler = (event_handler_t)send_mtu_probe;
|
n->mtuevent->handler = (event_handler_t)send_mtu_probe;
|
||||||
n->mtuevent->data = n;
|
n->mtuevent->data = n;
|
||||||
n->mtuevent->time = now + 1;
|
n->mtuevent->time = now + 1;
|
||||||
|
@ -174,7 +179,7 @@ static void receive_udppacket(node_t *n, vpn_packet_t *inpkt)
|
||||||
int nextpkt = 0;
|
int nextpkt = 0;
|
||||||
vpn_packet_t *outpkt = pkt[0];
|
vpn_packet_t *outpkt = pkt[0];
|
||||||
int outlen, outpad;
|
int outlen, outpad;
|
||||||
char hmac[EVP_MAX_MD_SIZE];
|
unsigned char hmac[EVP_MAX_MD_SIZE];
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
cp();
|
cp();
|
||||||
|
@ -192,7 +197,7 @@ static void receive_udppacket(node_t *n, vpn_packet_t *inpkt)
|
||||||
if(myself->digest && myself->maclength) {
|
if(myself->digest && myself->maclength) {
|
||||||
inpkt->len -= myself->maclength;
|
inpkt->len -= myself->maclength;
|
||||||
HMAC(myself->digest, myself->key, myself->keylength,
|
HMAC(myself->digest, myself->key, myself->keylength,
|
||||||
(char *) &inpkt->seqno, inpkt->len, hmac, NULL);
|
(unsigned char *) &inpkt->seqno, inpkt->len, (unsigned char *)hmac, NULL);
|
||||||
|
|
||||||
if(memcmp(hmac, (char *) &inpkt->seqno + inpkt->len, myself->maclength)) {
|
if(memcmp(hmac, (char *) &inpkt->seqno + inpkt->len, myself->maclength)) {
|
||||||
ifdebug(TRAFFIC) logger(LOG_DEBUG, _("Got unauthenticated packet from %s (%s)"),
|
ifdebug(TRAFFIC) logger(LOG_DEBUG, _("Got unauthenticated packet from %s (%s)"),
|
||||||
|
@ -207,9 +212,9 @@ static void receive_udppacket(node_t *n, vpn_packet_t *inpkt)
|
||||||
outpkt = pkt[nextpkt++];
|
outpkt = pkt[nextpkt++];
|
||||||
|
|
||||||
if(!EVP_DecryptInit_ex(&packet_ctx, NULL, NULL, NULL, NULL)
|
if(!EVP_DecryptInit_ex(&packet_ctx, NULL, NULL, NULL, NULL)
|
||||||
|| !EVP_DecryptUpdate(&packet_ctx, (char *) &outpkt->seqno, &outlen,
|
|| !EVP_DecryptUpdate(&packet_ctx, (unsigned char *) &outpkt->seqno, &outlen,
|
||||||
(char *) &inpkt->seqno, inpkt->len)
|
(unsigned char *) &inpkt->seqno, inpkt->len)
|
||||||
|| !EVP_DecryptFinal_ex(&packet_ctx, (char *) &outpkt->seqno + outlen, &outpad)) {
|
|| !EVP_DecryptFinal_ex(&packet_ctx, (unsigned char *) &outpkt->seqno + outlen, &outpad)) {
|
||||||
ifdebug(TRAFFIC) logger(LOG_DEBUG, _("Error decrypting packet from %s (%s): %s"),
|
ifdebug(TRAFFIC) logger(LOG_DEBUG, _("Error decrypting packet from %s (%s): %s"),
|
||||||
n->name, n->hostname, ERR_error_string(ERR_get_error(), NULL));
|
n->name, n->hostname, ERR_error_string(ERR_get_error(), NULL));
|
||||||
return;
|
return;
|
||||||
|
@ -285,10 +290,11 @@ void receive_tcppacket(connection_t *c, char *buffer, int len)
|
||||||
receive_packet(c->node, &outpkt);
|
receive_packet(c->node, &outpkt);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void send_udppacket(node_t *n, vpn_packet_t *inpkt)
|
static void send_udppacket(node_t *n, vpn_packet_t *origpkt)
|
||||||
{
|
{
|
||||||
vpn_packet_t pkt1, pkt2;
|
vpn_packet_t pkt1, pkt2;
|
||||||
vpn_packet_t *pkt[] = { &pkt1, &pkt2, &pkt1, &pkt2 };
|
vpn_packet_t *pkt[] = { &pkt1, &pkt2, &pkt1, &pkt2 };
|
||||||
|
vpn_packet_t *inpkt = origpkt;
|
||||||
int nextpkt = 0;
|
int nextpkt = 0;
|
||||||
vpn_packet_t *outpkt;
|
vpn_packet_t *outpkt;
|
||||||
int origlen;
|
int origlen;
|
||||||
|
@ -352,9 +358,9 @@ static void send_udppacket(node_t *n, vpn_packet_t *inpkt)
|
||||||
outpkt = pkt[nextpkt++];
|
outpkt = pkt[nextpkt++];
|
||||||
|
|
||||||
if(!EVP_EncryptInit_ex(&n->packet_ctx, NULL, NULL, NULL, NULL)
|
if(!EVP_EncryptInit_ex(&n->packet_ctx, NULL, NULL, NULL, NULL)
|
||||||
|| !EVP_EncryptUpdate(&n->packet_ctx, (char *) &outpkt->seqno, &outlen,
|
|| !EVP_EncryptUpdate(&n->packet_ctx, (unsigned char *) &outpkt->seqno, &outlen,
|
||||||
(char *) &inpkt->seqno, inpkt->len)
|
(unsigned char *) &inpkt->seqno, inpkt->len)
|
||||||
|| !EVP_EncryptFinal_ex(&n->packet_ctx, (char *) &outpkt->seqno + outlen, &outpad)) {
|
|| !EVP_EncryptFinal_ex(&n->packet_ctx, (unsigned char *) &outpkt->seqno + outlen, &outpad)) {
|
||||||
ifdebug(TRAFFIC) logger(LOG_ERR, _("Error while encrypting packet to %s (%s): %s"),
|
ifdebug(TRAFFIC) logger(LOG_ERR, _("Error while encrypting packet to %s (%s): %s"),
|
||||||
n->name, n->hostname, ERR_error_string(ERR_get_error(), NULL));
|
n->name, n->hostname, ERR_error_string(ERR_get_error(), NULL));
|
||||||
goto end;
|
goto end;
|
||||||
|
@ -367,8 +373,8 @@ static void send_udppacket(node_t *n, vpn_packet_t *inpkt)
|
||||||
/* Add the message authentication code */
|
/* Add the message authentication code */
|
||||||
|
|
||||||
if(n->digest && n->maclength) {
|
if(n->digest && n->maclength) {
|
||||||
HMAC(n->digest, n->key, n->keylength, (char *) &inpkt->seqno,
|
HMAC(n->digest, n->key, n->keylength, (unsigned char *) &inpkt->seqno,
|
||||||
inpkt->len, (char *) &inpkt->seqno + inpkt->len, &outlen);
|
inpkt->len, (unsigned char *) &inpkt->seqno + inpkt->len, NULL);
|
||||||
inpkt->len += n->maclength;
|
inpkt->len += n->maclength;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -404,7 +410,7 @@ static void send_udppacket(node_t *n, vpn_packet_t *inpkt)
|
||||||
}
|
}
|
||||||
|
|
||||||
end:
|
end:
|
||||||
inpkt->len = origlen;
|
origpkt->len = origlen;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -457,11 +463,8 @@ void broadcast_packet(const node_t *from, vpn_packet_t *packet)
|
||||||
ifdebug(TRAFFIC) logger(LOG_INFO, _("Broadcasting packet of %d bytes from %s (%s)"),
|
ifdebug(TRAFFIC) logger(LOG_INFO, _("Broadcasting packet of %d bytes from %s (%s)"),
|
||||||
packet->len, from->name, from->hostname);
|
packet->len, from->name, from->hostname);
|
||||||
|
|
||||||
if(from != myself) {
|
if(from != myself)
|
||||||
if(overwrite_mac)
|
send_packet(myself, packet);
|
||||||
memcpy(packet->data, mymac.x, ETH_ALEN);
|
|
||||||
write_packet(packet);
|
|
||||||
}
|
|
||||||
|
|
||||||
for(node = connection_tree->head; node; node = node->next) {
|
for(node = connection_tree->head; node; node = node->next) {
|
||||||
c = node->data;
|
c = node->data;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
net_setup.c -- Setup.
|
net_setup.c -- Setup.
|
||||||
Copyright (C) 1998-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
|
Copyright (C) 1998-2005 Ivo Timmermans,
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: net_setup.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: net_setup.c 1469 2006-11-11 22:44:15Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
@ -286,8 +286,6 @@ bool setup_myself(void)
|
||||||
if(get_config_bool(lookup_config(myself->connection->config_tree, "TCPOnly"), &choice) && choice)
|
if(get_config_bool(lookup_config(myself->connection->config_tree, "TCPOnly"), &choice) && choice)
|
||||||
myself->options |= OPTION_TCPONLY;
|
myself->options |= OPTION_TCPONLY;
|
||||||
|
|
||||||
get_config_bool(lookup_config(config_tree, "BlockingTCP"), &blockingtcp);
|
|
||||||
|
|
||||||
if(get_config_bool(lookup_config(myself->connection->config_tree, "PMTUDiscovery"), &choice) && choice)
|
if(get_config_bool(lookup_config(myself->connection->config_tree, "PMTUDiscovery"), &choice) && choice)
|
||||||
myself->options |= OPTION_PMTU_DISCOVERY;
|
myself->options |= OPTION_PMTU_DISCOVERY;
|
||||||
|
|
||||||
|
@ -370,7 +368,7 @@ bool setup_myself(void)
|
||||||
myself->connection->outcipher = EVP_bf_ofb();
|
myself->connection->outcipher = EVP_bf_ofb();
|
||||||
|
|
||||||
myself->key = xmalloc(myself->keylength);
|
myself->key = xmalloc(myself->keylength);
|
||||||
RAND_pseudo_bytes(myself->key, myself->keylength);
|
RAND_pseudo_bytes((unsigned char *)myself->key, myself->keylength);
|
||||||
|
|
||||||
if(!get_config_int(lookup_config(config_tree, "KeyExpire"), &keylifetime))
|
if(!get_config_int(lookup_config(config_tree, "KeyExpire"), &keylifetime))
|
||||||
keylifetime = 3600;
|
keylifetime = 3600;
|
||||||
|
@ -379,7 +377,7 @@ bool setup_myself(void)
|
||||||
|
|
||||||
if(myself->cipher) {
|
if(myself->cipher) {
|
||||||
EVP_CIPHER_CTX_init(&packet_ctx);
|
EVP_CIPHER_CTX_init(&packet_ctx);
|
||||||
if(!EVP_DecryptInit_ex(&packet_ctx, myself->cipher, NULL, myself->key, myself->key + myself->cipher->key_len)) {
|
if(!EVP_DecryptInit_ex(&packet_ctx, myself->cipher, NULL, (unsigned char *)myself->key, (unsigned char *)myself->key + myself->cipher->key_len)) {
|
||||||
logger(LOG_ERR, _("Error during initialisation of cipher for %s (%s): %s"),
|
logger(LOG_ERR, _("Error during initialisation of cipher for %s (%s): %s"),
|
||||||
myself->name, myself->hostname, ERR_error_string(ERR_get_error(), NULL));
|
myself->name, myself->hostname, ERR_error_string(ERR_get_error(), NULL));
|
||||||
return false;
|
return false;
|
||||||
|
@ -439,7 +437,6 @@ bool setup_myself(void)
|
||||||
|
|
||||||
myself->nexthop = myself;
|
myself->nexthop = myself;
|
||||||
myself->via = myself;
|
myself->via = myself;
|
||||||
myself->status.active = true;
|
|
||||||
myself->status.reachable = true;
|
myself->status.reachable = true;
|
||||||
node_add(myself);
|
node_add(myself);
|
||||||
|
|
||||||
|
@ -504,7 +501,7 @@ bool setup_myself(void)
|
||||||
free(hostname);
|
free(hostname);
|
||||||
}
|
}
|
||||||
|
|
||||||
listen_socket[listen_sockets].sa.sa = *aip->ai_addr;
|
memcpy(&listen_socket[listen_sockets].sa, aip->ai_addr, aip->ai_addrlen);
|
||||||
listen_sockets++;
|
listen_sockets++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -529,19 +526,27 @@ bool setup_network_connections(void)
|
||||||
|
|
||||||
now = time(NULL);
|
now = time(NULL);
|
||||||
|
|
||||||
|
init_events();
|
||||||
init_connections();
|
init_connections();
|
||||||
init_subnets();
|
init_subnets();
|
||||||
init_nodes();
|
init_nodes();
|
||||||
init_edges();
|
init_edges();
|
||||||
init_events();
|
|
||||||
init_requests();
|
init_requests();
|
||||||
|
|
||||||
if(get_config_int(lookup_config(config_tree, "PingTimeout"), &pingtimeout)) {
|
if(get_config_int(lookup_config(config_tree, "PingInterval"), &pinginterval)) {
|
||||||
if(pingtimeout < 1) {
|
if(pinginterval < 1) {
|
||||||
pingtimeout = 86400;
|
pinginterval = 86400;
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
pingtimeout = 60;
|
pinginterval = 60;
|
||||||
|
|
||||||
|
if(!get_config_int(lookup_config(config_tree, "PingTimeout"), &pingtimeout))
|
||||||
|
pingtimeout = 5;
|
||||||
|
if(pingtimeout < 1 || pingtimeout > pinginterval)
|
||||||
|
pingtimeout = pinginterval;
|
||||||
|
|
||||||
|
if(!get_config_int(lookup_config(config_tree, "MaxOutputBufferSize"), &maxoutbufsize))
|
||||||
|
maxoutbufsize = 4 * MTU;
|
||||||
|
|
||||||
if(!setup_myself())
|
if(!setup_myself())
|
||||||
return false;
|
return false;
|
||||||
|
@ -582,19 +587,19 @@ void close_network_connections(void)
|
||||||
close(listen_socket[i].udp);
|
close(listen_socket[i].udp);
|
||||||
}
|
}
|
||||||
|
|
||||||
exit_requests();
|
|
||||||
exit_events();
|
|
||||||
exit_edges();
|
|
||||||
exit_subnets();
|
|
||||||
exit_nodes();
|
|
||||||
exit_connections();
|
|
||||||
|
|
||||||
asprintf(&envp[0], "NETNAME=%s", netname ? : "");
|
asprintf(&envp[0], "NETNAME=%s", netname ? : "");
|
||||||
asprintf(&envp[1], "DEVICE=%s", device ? : "");
|
asprintf(&envp[1], "DEVICE=%s", device ? : "");
|
||||||
asprintf(&envp[2], "INTERFACE=%s", iface ? : "");
|
asprintf(&envp[2], "INTERFACE=%s", iface ? : "");
|
||||||
asprintf(&envp[3], "NAME=%s", myself->name);
|
asprintf(&envp[3], "NAME=%s", myself->name);
|
||||||
envp[4] = NULL;
|
envp[4] = NULL;
|
||||||
|
|
||||||
|
exit_requests();
|
||||||
|
exit_edges();
|
||||||
|
exit_subnets();
|
||||||
|
exit_nodes();
|
||||||
|
exit_connections();
|
||||||
|
exit_events();
|
||||||
|
|
||||||
execute_script("tinc-down", envp);
|
execute_script("tinc-down", envp);
|
||||||
|
|
||||||
for(i = 0; i < 4; i++)
|
for(i = 0; i < 4; i++)
|
||||||
|
|
102
src/net_socket.c
102
src/net_socket.c
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
net_socket.c -- Handle various kinds of sockets.
|
net_socket.c -- Handle various kinds of sockets.
|
||||||
Copyright (C) 1998-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
|
Copyright (C) 1998-2005 Ivo Timmermans,
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: net_socket.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: net_socket.c 1460 2006-08-08 13:50:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
@ -38,16 +38,43 @@
|
||||||
#define EINPROGRESS WSAEINPROGRESS
|
#define EINPROGRESS WSAEINPROGRESS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Needed on Mac OS/X */
|
||||||
|
#ifndef SOL_TCP
|
||||||
|
#define SOL_TCP IPPROTO_TCP
|
||||||
|
#endif
|
||||||
|
|
||||||
int addressfamily = AF_UNSPEC;
|
int addressfamily = AF_UNSPEC;
|
||||||
int maxtimeout = 900;
|
int maxtimeout = 900;
|
||||||
int seconds_till_retry = 5;
|
int seconds_till_retry = 5;
|
||||||
bool blockingtcp = false;
|
|
||||||
|
|
||||||
listen_socket_t listen_socket[MAXSOCKETS];
|
listen_socket_t listen_socket[MAXSOCKETS];
|
||||||
int listen_sockets;
|
int listen_sockets;
|
||||||
|
|
||||||
/* Setup sockets */
|
/* Setup sockets */
|
||||||
|
|
||||||
|
static void configure_tcp(connection_t *c)
|
||||||
|
{
|
||||||
|
int option;
|
||||||
|
|
||||||
|
#ifdef O_NONBLOCK
|
||||||
|
int flags = fcntl(c->socket, F_GETFL);
|
||||||
|
|
||||||
|
if(fcntl(c->socket, F_SETFL, flags | O_NONBLOCK) < 0) {
|
||||||
|
logger(LOG_ERR, _("fcntl for %s: %s"), c->hostname, strerror(errno));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(SOL_TCP) && defined(TCP_NODELAY)
|
||||||
|
option = 1;
|
||||||
|
setsockopt(c->socket, SOL_TCP, TCP_NODELAY, &option, sizeof(option));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(SOL_IP) && defined(IP_TOS) && defined(IPTOS_LOWDELAY)
|
||||||
|
option = IPTOS_LOWDELAY;
|
||||||
|
setsockopt(c->socket, SOL_IP, IP_TOS, &option, sizeof(option));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
int setup_listen_socket(const sockaddr_t *sa)
|
int setup_listen_socket(const sockaddr_t *sa)
|
||||||
{
|
{
|
||||||
int nfd;
|
int nfd;
|
||||||
|
@ -64,33 +91,11 @@ int setup_listen_socket(const sockaddr_t *sa)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef O_NONBLOCK
|
|
||||||
{
|
|
||||||
int flags = fcntl(nfd, F_GETFL);
|
|
||||||
|
|
||||||
if(fcntl(nfd, F_SETFL, flags | O_NONBLOCK) < 0) {
|
|
||||||
closesocket(nfd);
|
|
||||||
logger(LOG_ERR, _("System call `%s' failed: %s"), "fcntl",
|
|
||||||
strerror(errno));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Optimize TCP settings */
|
/* Optimize TCP settings */
|
||||||
|
|
||||||
option = 1;
|
option = 1;
|
||||||
setsockopt(nfd, SOL_SOCKET, SO_REUSEADDR, &option, sizeof(option));
|
setsockopt(nfd, SOL_SOCKET, SO_REUSEADDR, &option, sizeof(option));
|
||||||
|
|
||||||
#if defined(SOL_TCP) && defined(TCP_NODELAY)
|
|
||||||
setsockopt(nfd, SOL_TCP, TCP_NODELAY, &option, sizeof(option));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(SOL_IP) && defined(IP_TOS) && defined(IPTOS_LOWDELAY)
|
|
||||||
option = IPTOS_LOWDELAY;
|
|
||||||
setsockopt(nfd, SOL_IP, IP_TOS, &option, sizeof(option));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if(get_config_string
|
if(get_config_string
|
||||||
(lookup_config(config_tree, "BindToInterface"), &iface)) {
|
(lookup_config(config_tree, "BindToInterface"), &iface)) {
|
||||||
#if defined(SOL_SOCKET) && defined(SO_BINDTODEVICE)
|
#if defined(SOL_SOCKET) && defined(SO_BINDTODEVICE)
|
||||||
|
@ -241,15 +246,7 @@ void finish_connecting(connection_t *c)
|
||||||
|
|
||||||
ifdebug(CONNECTIONS) logger(LOG_INFO, _("Connected to %s (%s)"), c->name, c->hostname);
|
ifdebug(CONNECTIONS) logger(LOG_INFO, _("Connected to %s (%s)"), c->name, c->hostname);
|
||||||
|
|
||||||
#ifdef O_NONBLOCK
|
configure_tcp(c);
|
||||||
if(blockingtcp) {
|
|
||||||
int flags = fcntl(c->socket, F_GETFL);
|
|
||||||
|
|
||||||
if(fcntl(c->socket, F_SETFL, flags & ~O_NONBLOCK) < 0) {
|
|
||||||
logger(LOG_ERR, _("fcntl for %s: %s"), c->hostname, strerror(errno));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
c->last_ping_time = now;
|
c->last_ping_time = now;
|
||||||
|
|
||||||
|
@ -259,7 +256,7 @@ void finish_connecting(connection_t *c)
|
||||||
void do_outgoing_connection(connection_t *c)
|
void do_outgoing_connection(connection_t *c)
|
||||||
{
|
{
|
||||||
char *address, *port;
|
char *address, *port;
|
||||||
int option, result, flags;
|
int result;
|
||||||
|
|
||||||
cp();
|
cp();
|
||||||
|
|
||||||
|
@ -314,25 +311,7 @@ begin:
|
||||||
|
|
||||||
/* Optimize TCP settings */
|
/* Optimize TCP settings */
|
||||||
|
|
||||||
#if defined(SOL_TCP) && defined(TCP_NODELAY)
|
configure_tcp(c);
|
||||||
option = 1;
|
|
||||||
setsockopt(c->socket, SOL_TCP, TCP_NODELAY, &option, sizeof(option));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(SOL_IP) && defined(IP_TOS)
|
|
||||||
option = IPTOS_LOWDELAY;
|
|
||||||
setsockopt(c->socket, SOL_IP, IP_TOS, &option, sizeof(option));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Non-blocking */
|
|
||||||
|
|
||||||
#ifdef O_NONBLOCK
|
|
||||||
flags = fcntl(c->socket, F_GETFL);
|
|
||||||
|
|
||||||
if(fcntl(c->socket, F_SETFL, flags | O_NONBLOCK) < 0) {
|
|
||||||
logger(LOG_ERR, _("fcntl for %s: %s"), c->hostname, strerror(errno));
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Connect */
|
/* Connect */
|
||||||
|
|
||||||
|
@ -409,7 +388,8 @@ bool handle_new_meta_connection(int sock)
|
||||||
{
|
{
|
||||||
connection_t *c;
|
connection_t *c;
|
||||||
sockaddr_t sa;
|
sockaddr_t sa;
|
||||||
int fd, len = sizeof(sa);
|
int fd;
|
||||||
|
socklen_t len = sizeof(sa);
|
||||||
|
|
||||||
cp();
|
cp();
|
||||||
|
|
||||||
|
@ -437,15 +417,7 @@ bool handle_new_meta_connection(int sock)
|
||||||
|
|
||||||
ifdebug(CONNECTIONS) logger(LOG_NOTICE, _("Connection from %s"), c->hostname);
|
ifdebug(CONNECTIONS) logger(LOG_NOTICE, _("Connection from %s"), c->hostname);
|
||||||
|
|
||||||
#ifdef O_NONBLOCK
|
configure_tcp(c);
|
||||||
if(blockingtcp) {
|
|
||||||
int flags = fcntl(c->socket, F_GETFL);
|
|
||||||
|
|
||||||
if(fcntl(c->socket, F_SETFL, flags & ~O_NONBLOCK) < 0) {
|
|
||||||
logger(LOG_ERR, _("fcntl for %s: %s"), c->hostname, strerror(errno));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
connection_add(c);
|
connection_add(c);
|
||||||
|
|
||||||
|
|
14
src/netutl.c
14
src/netutl.c
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
netutl.c -- some supporting network utility code
|
netutl.c -- some supporting network utility code
|
||||||
Copyright (C) 1998-2005 Ivo Timmermans <ivo@tinc-vpn.org>
|
Copyright (C) 1998-2005 Ivo Timmermans
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: netutl.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: netutl.c 1459 2006-08-08 13:44:37Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
@ -78,7 +78,7 @@ sockaddr_t str2sockaddr(const char *address, const char *port)
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
result = *(sockaddr_t *) ai->ai_addr;
|
memcpy(&result, ai->ai_addr, ai->ai_addrlen);
|
||||||
freeaddrinfo(ai);
|
freeaddrinfo(ai);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
@ -225,7 +225,7 @@ void sockaddrunmap(sockaddr_t *sa)
|
||||||
|
|
||||||
/* Subnet mask handling */
|
/* Subnet mask handling */
|
||||||
|
|
||||||
int maskcmp(const void *va, const void *vb, int masklen, int len)
|
int maskcmp(const void *va, const void *vb, int masklen)
|
||||||
{
|
{
|
||||||
int i, m, result;
|
int i, m, result;
|
||||||
const char *a = va;
|
const char *a = va;
|
||||||
|
@ -257,7 +257,7 @@ void mask(void *va, int masklen, int len)
|
||||||
masklen %= 8;
|
masklen %= 8;
|
||||||
|
|
||||||
if(masklen)
|
if(masklen)
|
||||||
a[i++] &= (0x100 - (1 << masklen));
|
a[i++] &= (0x100 - (1 << (8 - masklen)));
|
||||||
|
|
||||||
for(; i < len; i++)
|
for(; i < len; i++)
|
||||||
a[i] = 0;
|
a[i] = 0;
|
||||||
|
@ -275,7 +275,7 @@ void maskcpy(void *va, const void *vb, int masklen, int len)
|
||||||
a[i] = b[i];
|
a[i] = b[i];
|
||||||
|
|
||||||
if(m) {
|
if(m) {
|
||||||
a[i] = b[i] & (0x100 - (1 << m));
|
a[i] = b[i] & (0x100 - (1 << (8 - m)));
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
netutl.h -- header file for netutl.c
|
netutl.h -- header file for netutl.c
|
||||||
Copyright (C) 1998-2005 Ivo Timmermans <zarq@iname.com>
|
Copyright (C) 1998-2005 Ivo Timmermans <zarq@iname.com>
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: netutl.h 1439 2005-05-04 18:09:30Z guus $
|
$Id: netutl.h 1459 2006-08-08 13:44:37Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __TINC_NETUTL_H__
|
#ifndef __TINC_NETUTL_H__
|
||||||
|
@ -35,7 +35,7 @@ extern int sockaddrcmp(const sockaddr_t *, const sockaddr_t *);
|
||||||
extern void sockaddrunmap(sockaddr_t *);
|
extern void sockaddrunmap(sockaddr_t *);
|
||||||
extern void sockaddrfree(sockaddr_t *);
|
extern void sockaddrfree(sockaddr_t *);
|
||||||
extern void sockaddrcpy(sockaddr_t *, const sockaddr_t *);
|
extern void sockaddrcpy(sockaddr_t *, const sockaddr_t *);
|
||||||
extern int maskcmp(const void *, const void *, int, int);
|
extern int maskcmp(const void *, const void *, int);
|
||||||
extern void maskcpy(void *, const void *, int, int);
|
extern void maskcpy(void *, const void *, int, int);
|
||||||
extern void mask(void *, int, int);
|
extern void mask(void *, int, int);
|
||||||
extern bool maskcheck(const void *, int, int);
|
extern bool maskcheck(const void *, int, int);
|
||||||
|
|
22
src/node.c
22
src/node.c
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
node.c -- node tree management
|
node.c -- node tree management
|
||||||
Copyright (C) 2001-2005 Guus Sliepen <guus@tinc-vpn.org>,
|
Copyright (C) 2001-2006 Guus Sliepen <guus@tinc-vpn.org>,
|
||||||
2001-2005 Ivo Timmermans <ivo@tinc-vpn.org>
|
2001-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
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: node.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: node.c 1469 2006-11-11 22:44:15Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
@ -93,12 +93,6 @@ void free_node(node_t *n)
|
||||||
if(n->queue)
|
if(n->queue)
|
||||||
list_delete_list(n->queue);
|
list_delete_list(n->queue);
|
||||||
|
|
||||||
if(n->name)
|
|
||||||
free(n->name);
|
|
||||||
|
|
||||||
if(n->hostname)
|
|
||||||
free(n->hostname);
|
|
||||||
|
|
||||||
if(n->key)
|
if(n->key)
|
||||||
free(n->key);
|
free(n->key);
|
||||||
|
|
||||||
|
@ -112,9 +106,17 @@ void free_node(node_t *n)
|
||||||
|
|
||||||
EVP_CIPHER_CTX_cleanup(&n->packet_ctx);
|
EVP_CIPHER_CTX_cleanup(&n->packet_ctx);
|
||||||
|
|
||||||
if(n->mtuevent)
|
if(n->mtuevent) {
|
||||||
event_del(n->mtuevent);
|
event_del(n->mtuevent);
|
||||||
|
free_event(n->mtuevent);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(n->hostname)
|
||||||
|
free(n->hostname);
|
||||||
|
|
||||||
|
if(n->name)
|
||||||
|
free(n->name);
|
||||||
|
|
||||||
free(n);
|
free(n);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
25
src/node.h
25
src/node.h
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
node.h -- header for node.c
|
node.h -- header for node.c
|
||||||
Copyright (C) 2001-2005 Guus Sliepen <guus@tinc-vpn.org>,
|
Copyright (C) 2001-2006 Guus Sliepen <guus@tinc-vpn.org>,
|
||||||
2001-2005 Ivo Timmermans <ivo@tinc-vpn.org>
|
2001-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
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: node.h 1439 2005-05-04 18:09:30Z guus $
|
$Id: node.h 1462 2006-11-11 13:43:00Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __TINC_NODE_H__
|
#ifndef __TINC_NODE_H__
|
||||||
|
@ -29,14 +29,17 @@
|
||||||
#include "list.h"
|
#include "list.h"
|
||||||
#include "subnet.h"
|
#include "subnet.h"
|
||||||
|
|
||||||
typedef struct node_status_t {
|
typedef union node_status_t {
|
||||||
int active:1; /* 1 if active.. */
|
struct {
|
||||||
int validkey:1; /* 1 if we currently have a valid key for him */
|
int unused_active:1; /* 1 if active (not used for nodes) */
|
||||||
int waitingforkey:1; /* 1 if we already sent out a request */
|
int validkey:1; /* 1 if we currently have a valid key for him */
|
||||||
int visited:1; /* 1 if this node has been visited by one of the graph algorithms */
|
int waitingforkey:1; /* 1 if we already sent out a request */
|
||||||
int reachable:1; /* 1 if this node is reachable in the graph */
|
int visited:1; /* 1 if this node has been visited by one of the graph algorithms */
|
||||||
int indirect:1; /* 1 if this node is not directly reachable by us */
|
int reachable:1; /* 1 if this node is reachable in the graph */
|
||||||
int unused:26;
|
int indirect:1; /* 1 if this node is not directly reachable by us */
|
||||||
|
int unused:26;
|
||||||
|
};
|
||||||
|
uint32_t value;
|
||||||
} node_status_t;
|
} node_status_t;
|
||||||
|
|
||||||
typedef struct node_t {
|
typedef struct node_t {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
process.c -- process management functions
|
process.c -- process management functions
|
||||||
Copyright (C) 1999-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
|
Copyright (C) 1999-2005 Ivo Timmermans,
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: process.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: process.c 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
process.h -- header file for process.c
|
process.h -- header file for process.c
|
||||||
Copyright (C) 1999-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
|
Copyright (C) 1999-2005 Ivo Timmermans,
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: process.h 1439 2005-05-04 18:09:30Z guus $
|
$Id: process.h 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __TINC_PROCESS_H__
|
#ifndef __TINC_PROCESS_H__
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
protocol.c -- handle the meta-protocol, basic functions
|
protocol.c -- handle the meta-protocol, basic functions
|
||||||
Copyright (C) 1999-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
|
Copyright (C) 1999-2005 Ivo Timmermans,
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: protocol.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: protocol.c 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
@ -241,7 +241,7 @@ void age_past_requests(void)
|
||||||
next = node->next;
|
next = node->next;
|
||||||
p = node->data;
|
p = node->data;
|
||||||
|
|
||||||
if(p->firstseen + pingtimeout < now)
|
if(p->firstseen + pinginterval < now)
|
||||||
avl_delete_node(past_request_tree, node), deleted++;
|
avl_delete_node(past_request_tree, node), deleted++;
|
||||||
else
|
else
|
||||||
left++;
|
left++;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
protocol.h -- header for protocol.c
|
protocol.h -- header for protocol.c
|
||||||
Copyright (C) 1999-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
|
Copyright (C) 1999-2005 Ivo Timmermans,
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: protocol.h 1439 2005-05-04 18:09:30Z guus $
|
$Id: protocol.h 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __TINC_PROTOCOL_H__
|
#ifndef __TINC_PROTOCOL_H__
|
||||||
|
@ -56,9 +56,12 @@ typedef struct past_request_t {
|
||||||
|
|
||||||
extern bool tunnelserver;
|
extern bool tunnelserver;
|
||||||
|
|
||||||
/* Maximum size of strings in a request */
|
/* Maximum size of strings in a request.
|
||||||
|
* scanf terminates %2048s with a NUL character,
|
||||||
|
* but the NUL character can be written after the 2048th non-NUL character.
|
||||||
|
*/
|
||||||
|
|
||||||
#define MAX_STRING_SIZE 2048
|
#define MAX_STRING_SIZE 2049
|
||||||
#define MAX_STRING "%2048s"
|
#define MAX_STRING "%2048s"
|
||||||
|
|
||||||
#include "edge.h"
|
#include "edge.h"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
protocol_auth.c -- handle the meta-protocol, authentication
|
protocol_auth.c -- handle the meta-protocol, authentication
|
||||||
Copyright (C) 1999-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
|
Copyright (C) 1999-2005 Ivo Timmermans,
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: protocol_auth.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: protocol_auth.c 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
@ -118,7 +118,7 @@ bool id_h(connection_t *c)
|
||||||
|
|
||||||
bool send_metakey(connection_t *c)
|
bool send_metakey(connection_t *c)
|
||||||
{
|
{
|
||||||
char buffer[MAX_STRING_SIZE];
|
char *buffer;
|
||||||
int len;
|
int len;
|
||||||
bool x;
|
bool x;
|
||||||
|
|
||||||
|
@ -128,6 +128,8 @@ bool send_metakey(connection_t *c)
|
||||||
|
|
||||||
/* Allocate buffers for the meta key */
|
/* Allocate buffers for the meta key */
|
||||||
|
|
||||||
|
buffer = alloca(2 * len + 1);
|
||||||
|
|
||||||
if(!c->outkey)
|
if(!c->outkey)
|
||||||
c->outkey = xmalloc(len);
|
c->outkey = xmalloc(len);
|
||||||
|
|
||||||
|
@ -136,7 +138,7 @@ bool send_metakey(connection_t *c)
|
||||||
cp();
|
cp();
|
||||||
/* Copy random data to the buffer */
|
/* Copy random data to the buffer */
|
||||||
|
|
||||||
RAND_pseudo_bytes(c->outkey, len);
|
RAND_pseudo_bytes((unsigned char *)c->outkey, len);
|
||||||
|
|
||||||
/* The message we send must be smaller than the modulus of the RSA key.
|
/* The message we send must be smaller than the modulus of the RSA key.
|
||||||
By definition, for a key of k bits, the following formula holds:
|
By definition, for a key of k bits, the following formula holds:
|
||||||
|
@ -164,7 +166,7 @@ bool send_metakey(connection_t *c)
|
||||||
with a length equal to that of the modulus of the RSA key.
|
with a length equal to that of the modulus of the RSA key.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if(RSA_public_encrypt(len, c->outkey, buffer, c->rsa_key, RSA_NO_PADDING) != len) {
|
if(RSA_public_encrypt(len, (unsigned char *)c->outkey, (unsigned char *)buffer, c->rsa_key, RSA_NO_PADDING) != len) {
|
||||||
logger(LOG_ERR, _("Error during encryption of meta key for %s (%s)"),
|
logger(LOG_ERR, _("Error during encryption of meta key for %s (%s)"),
|
||||||
c->name, c->hostname);
|
c->name, c->hostname);
|
||||||
return false;
|
return false;
|
||||||
|
@ -186,8 +188,8 @@ bool send_metakey(connection_t *c)
|
||||||
|
|
||||||
if(c->outcipher) {
|
if(c->outcipher) {
|
||||||
if(!EVP_EncryptInit(c->outctx, c->outcipher,
|
if(!EVP_EncryptInit(c->outctx, c->outcipher,
|
||||||
c->outkey + len - c->outcipher->key_len,
|
(unsigned char *)c->outkey + len - c->outcipher->key_len,
|
||||||
c->outkey + len - c->outcipher->key_len -
|
(unsigned char *)c->outkey + len - c->outcipher->key_len -
|
||||||
c->outcipher->iv_len)) {
|
c->outcipher->iv_len)) {
|
||||||
logger(LOG_ERR, _("Error during initialisation of cipher for %s (%s): %s"),
|
logger(LOG_ERR, _("Error during initialisation of cipher for %s (%s): %s"),
|
||||||
c->name, c->hostname, ERR_error_string(ERR_get_error(), NULL));
|
c->name, c->hostname, ERR_error_string(ERR_get_error(), NULL));
|
||||||
|
@ -237,7 +239,7 @@ bool metakey_h(connection_t *c)
|
||||||
|
|
||||||
/* Decrypt the meta key */
|
/* Decrypt the meta key */
|
||||||
|
|
||||||
if(RSA_private_decrypt(len, buffer, c->inkey, myself->connection->rsa_key, RSA_NO_PADDING) != len) { /* See challenge() */
|
if(RSA_private_decrypt(len, (unsigned char *)buffer, (unsigned char *)c->inkey, myself->connection->rsa_key, RSA_NO_PADDING) != len) { /* See challenge() */
|
||||||
logger(LOG_ERR, _("Error during encryption of meta key for %s (%s)"),
|
logger(LOG_ERR, _("Error during encryption of meta key for %s (%s)"),
|
||||||
c->name, c->hostname);
|
c->name, c->hostname);
|
||||||
return false;
|
return false;
|
||||||
|
@ -262,8 +264,8 @@ bool metakey_h(connection_t *c)
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!EVP_DecryptInit(c->inctx, c->incipher,
|
if(!EVP_DecryptInit(c->inctx, c->incipher,
|
||||||
c->inkey + len - c->incipher->key_len,
|
(unsigned char *)c->inkey + len - c->incipher->key_len,
|
||||||
c->inkey + len - c->incipher->key_len -
|
(unsigned char *)c->inkey + len - c->incipher->key_len -
|
||||||
c->incipher->iv_len)) {
|
c->incipher->iv_len)) {
|
||||||
logger(LOG_ERR, _("Error during initialisation of cipher from %s (%s): %s"),
|
logger(LOG_ERR, _("Error during initialisation of cipher from %s (%s): %s"),
|
||||||
c->name, c->hostname, ERR_error_string(ERR_get_error(), NULL));
|
c->name, c->hostname, ERR_error_string(ERR_get_error(), NULL));
|
||||||
|
@ -302,7 +304,7 @@ bool metakey_h(connection_t *c)
|
||||||
|
|
||||||
bool send_challenge(connection_t *c)
|
bool send_challenge(connection_t *c)
|
||||||
{
|
{
|
||||||
char buffer[MAX_STRING_SIZE];
|
char *buffer;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
cp();
|
cp();
|
||||||
|
@ -313,12 +315,14 @@ bool send_challenge(connection_t *c)
|
||||||
|
|
||||||
/* Allocate buffers for the challenge */
|
/* Allocate buffers for the challenge */
|
||||||
|
|
||||||
|
buffer = alloca(2 * len + 1);
|
||||||
|
|
||||||
if(!c->hischallenge)
|
if(!c->hischallenge)
|
||||||
c->hischallenge = xmalloc(len);
|
c->hischallenge = xmalloc(len);
|
||||||
|
|
||||||
/* Copy random data to the buffer */
|
/* Copy random data to the buffer */
|
||||||
|
|
||||||
RAND_pseudo_bytes(c->hischallenge, len);
|
RAND_pseudo_bytes((unsigned char *)c->hischallenge, len);
|
||||||
|
|
||||||
/* Convert to hex */
|
/* Convert to hex */
|
||||||
|
|
||||||
|
@ -380,7 +384,7 @@ bool send_chal_reply(connection_t *c)
|
||||||
|
|
||||||
if(!EVP_DigestInit(&ctx, c->indigest)
|
if(!EVP_DigestInit(&ctx, c->indigest)
|
||||||
|| !EVP_DigestUpdate(&ctx, c->mychallenge, RSA_size(myself->connection->rsa_key))
|
|| !EVP_DigestUpdate(&ctx, c->mychallenge, RSA_size(myself->connection->rsa_key))
|
||||||
|| !EVP_DigestFinal(&ctx, hash, NULL)) {
|
|| !EVP_DigestFinal(&ctx, (unsigned char *)hash, NULL)) {
|
||||||
logger(LOG_ERR, _("Error during calculation of response for %s (%s): %s"),
|
logger(LOG_ERR, _("Error during calculation of response for %s (%s): %s"),
|
||||||
c->name, c->hostname, ERR_error_string(ERR_get_error(), NULL));
|
c->name, c->hostname, ERR_error_string(ERR_get_error(), NULL));
|
||||||
return false;
|
return false;
|
||||||
|
@ -426,7 +430,7 @@ bool chal_reply_h(connection_t *c)
|
||||||
|
|
||||||
if(!EVP_DigestInit(&ctx, c->outdigest)
|
if(!EVP_DigestInit(&ctx, c->outdigest)
|
||||||
|| !EVP_DigestUpdate(&ctx, c->hischallenge, RSA_size(c->rsa_key))
|
|| !EVP_DigestUpdate(&ctx, c->hischallenge, RSA_size(c->rsa_key))
|
||||||
|| !EVP_DigestFinal(&ctx, myhash, NULL)) {
|
|| !EVP_DigestFinal(&ctx, (unsigned char *)myhash, NULL)) {
|
||||||
logger(LOG_ERR, _("Error during calculation of response from %s (%s): %s"),
|
logger(LOG_ERR, _("Error during calculation of response from %s (%s): %s"),
|
||||||
c->name, c->hostname, ERR_error_string(ERR_get_error(), NULL));
|
c->name, c->hostname, ERR_error_string(ERR_get_error(), NULL));
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
protocol_edge.c -- handle the meta-protocol, edges
|
protocol_edge.c -- handle the meta-protocol, edges
|
||||||
Copyright (C) 1999-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
|
Copyright (C) 1999-2005 Ivo Timmermans,
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: protocol_edge.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: protocol_edge.c 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
protocol_key.c -- handle the meta-protocol, key exchange
|
protocol_key.c -- handle the meta-protocol, key exchange
|
||||||
Copyright (C) 1999-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
|
Copyright (C) 1999-2005 Ivo Timmermans,
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: protocol_key.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: protocol_key.c 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
@ -142,10 +142,11 @@ bool req_key_h(connection_t *c)
|
||||||
|
|
||||||
bool send_ans_key(connection_t *c, const node_t *from, const node_t *to)
|
bool send_ans_key(connection_t *c, const node_t *from, const node_t *to)
|
||||||
{
|
{
|
||||||
char key[MAX_STRING_SIZE];
|
char *key;
|
||||||
|
|
||||||
cp();
|
cp();
|
||||||
|
|
||||||
|
key = alloca(2 * from->keylength + 1);
|
||||||
bin2hex(from->key, key, from->keylength);
|
bin2hex(from->key, key, from->keylength);
|
||||||
key[from->keylength * 2] = '\0';
|
key[from->keylength * 2] = '\0';
|
||||||
|
|
||||||
|
@ -261,7 +262,7 @@ bool ans_key_h(connection_t *c)
|
||||||
from->compression = compression;
|
from->compression = compression;
|
||||||
|
|
||||||
if(from->cipher)
|
if(from->cipher)
|
||||||
if(!EVP_EncryptInit_ex(&from->packet_ctx, from->cipher, NULL, from->key, from->key + from->cipher->key_len)) {
|
if(!EVP_EncryptInit_ex(&from->packet_ctx, from->cipher, NULL, (unsigned char *)from->key, (unsigned char *)from->key + from->cipher->key_len)) {
|
||||||
logger(LOG_ERR, _("Error during initialisation of key from %s (%s): %s"),
|
logger(LOG_ERR, _("Error during initialisation of key from %s (%s): %s"),
|
||||||
from->name, from->hostname, ERR_error_string(ERR_get_error(), NULL));
|
from->name, from->hostname, ERR_error_string(ERR_get_error(), NULL));
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
protocol_misc.c -- handle the meta-protocol, miscellaneous functions
|
protocol_misc.c -- handle the meta-protocol, miscellaneous functions
|
||||||
Copyright (C) 1999-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
|
Copyright (C) 1999-2005 Ivo Timmermans,
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: protocol_misc.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: protocol_misc.c 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
@ -31,6 +31,8 @@
|
||||||
#include "protocol.h"
|
#include "protocol.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
|
||||||
|
int maxoutbufsize = 0;
|
||||||
|
|
||||||
/* Status and error notification routines */
|
/* Status and error notification routines */
|
||||||
|
|
||||||
bool send_status(connection_t *c, int statusno, const char *statusstring)
|
bool send_status(connection_t *c, int statusno, const char *statusstring)
|
||||||
|
@ -153,12 +155,15 @@ bool send_tcppacket(connection_t *c, vpn_packet_t *packet)
|
||||||
{
|
{
|
||||||
cp();
|
cp();
|
||||||
|
|
||||||
/* Evil hack. */
|
/* If there already is a lot of data in the outbuf buffer, discard this packet. */
|
||||||
|
|
||||||
|
if(c->outbuflen > maxoutbufsize)
|
||||||
|
return true;
|
||||||
|
|
||||||
if(!send_request(c, "%d %hd", PACKET, packet->len))
|
if(!send_request(c, "%d %hd", PACKET, packet->len))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return send_meta(c, packet->data, packet->len);
|
return send_meta(c, (char *)packet->data, packet->len);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool tcppacket_h(connection_t *c)
|
bool tcppacket_h(connection_t *c)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
protocol_subnet.c -- handle the meta-protocol, subnets
|
protocol_subnet.c -- handle the meta-protocol, subnets
|
||||||
Copyright (C) 1999-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
|
Copyright (C) 1999-2005 Ivo Timmermans,
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: protocol_subnet.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: protocol_subnet.c 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
device.c -- raw socket
|
device.c -- raw socket
|
||||||
Copyright (C) 2002-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
|
Copyright (C) 2002-2005 Ivo Timmermans,
|
||||||
2002-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2002-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: device.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: device.c 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
|
52
src/route.c
52
src/route.c
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
route.c -- routing
|
route.c -- routing
|
||||||
Copyright (C) 2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
|
Copyright (C) 2000-2005 Ivo Timmermans,
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: route.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: route.c 1461 2006-08-09 22:31:10Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
@ -163,17 +163,23 @@ void age_subnets(void)
|
||||||
static void route_mac(node_t *source, vpn_packet_t *packet)
|
static void route_mac(node_t *source, vpn_packet_t *packet)
|
||||||
{
|
{
|
||||||
subnet_t *subnet;
|
subnet_t *subnet;
|
||||||
|
mac_t dest;
|
||||||
|
|
||||||
cp();
|
cp();
|
||||||
|
|
||||||
|
|
||||||
/* Learn source address */
|
/* Learn source address */
|
||||||
|
|
||||||
if(source == myself)
|
if(source == myself) {
|
||||||
learn_mac((mac_t *)(&packet->data[6]));
|
mac_t src;
|
||||||
|
memcpy(&src, &packet->data[6], sizeof src);
|
||||||
|
learn_mac(&src);
|
||||||
|
}
|
||||||
|
|
||||||
/* Lookup destination address */
|
/* Lookup destination address */
|
||||||
|
|
||||||
subnet = lookup_subnet_mac((mac_t *)(&packet->data[0]));
|
memcpy(&dest, &packet->data[0], sizeof dest);
|
||||||
|
subnet = lookup_subnet_mac(&dest);
|
||||||
|
|
||||||
if(!subnet) {
|
if(!subnet) {
|
||||||
broadcast_packet(source, packet);
|
broadcast_packet(source, packet);
|
||||||
|
@ -280,7 +286,7 @@ static void fragment_ipv4_packet(node_t *dest, vpn_packet_t *packet) {
|
||||||
todo = ntohs(ip.ip_len) - ip_size;
|
todo = ntohs(ip.ip_len) - ip_size;
|
||||||
|
|
||||||
if(ether_size + ip_size + todo != packet->len) {
|
if(ether_size + ip_size + todo != packet->len) {
|
||||||
ifdebug(TRAFFIC) logger(LOG_WARNING, _("Length of packet (%d) doesn't match length in IPv4 header (%d)"), packet->len, ether_size + ip_size + todo);
|
ifdebug(TRAFFIC) logger(LOG_WARNING, _("Length of packet (%d) doesn't match length in IPv4 header (%zd)"), packet->len, ether_size + ip_size + todo);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -316,18 +322,20 @@ static void route_ipv4_unicast(node_t *source, vpn_packet_t *packet)
|
||||||
{
|
{
|
||||||
subnet_t *subnet;
|
subnet_t *subnet;
|
||||||
node_t *via;
|
node_t *via;
|
||||||
|
ipv4_t dest;
|
||||||
|
|
||||||
cp();
|
cp();
|
||||||
|
|
||||||
subnet = lookup_subnet_ipv4((ipv4_t *) &packet->data[30]);
|
memcpy(&dest, &packet->data[30], sizeof dest);
|
||||||
|
subnet = lookup_subnet_ipv4(&dest);
|
||||||
|
|
||||||
if(!subnet) {
|
if(!subnet) {
|
||||||
ifdebug(TRAFFIC) logger(LOG_WARNING, _("Cannot route packet from %s (%s): unknown IPv4 destination address %d.%d.%d.%d"),
|
ifdebug(TRAFFIC) logger(LOG_WARNING, _("Cannot route packet from %s (%s): unknown IPv4 destination address %d.%d.%d.%d"),
|
||||||
source->name, source->hostname,
|
source->name, source->hostname,
|
||||||
packet->data[30],
|
dest.x[0],
|
||||||
packet->data[31],
|
dest.x[1],
|
||||||
packet->data[32],
|
dest.x[2],
|
||||||
packet->data[33]);
|
dest.x[3]);
|
||||||
|
|
||||||
route_ipv4_unreachable(source, packet, ICMP_DEST_UNREACH, ICMP_NET_UNKNOWN);
|
route_ipv4_unreachable(source, packet, ICMP_DEST_UNREACH, ICMP_NET_UNKNOWN);
|
||||||
return;
|
return;
|
||||||
|
@ -454,22 +462,24 @@ static void route_ipv6_unicast(node_t *source, vpn_packet_t *packet)
|
||||||
{
|
{
|
||||||
subnet_t *subnet;
|
subnet_t *subnet;
|
||||||
node_t *via;
|
node_t *via;
|
||||||
|
ipv6_t dest;
|
||||||
|
|
||||||
cp();
|
cp();
|
||||||
|
|
||||||
subnet = lookup_subnet_ipv6((ipv6_t *) &packet->data[38]);
|
memcpy(&dest, &packet->data[38], sizeof dest);
|
||||||
|
subnet = lookup_subnet_ipv6(&dest);
|
||||||
|
|
||||||
if(!subnet) {
|
if(!subnet) {
|
||||||
ifdebug(TRAFFIC) logger(LOG_WARNING, _("Cannot route packet from %s (%s): unknown IPv6 destination address %hx:%hx:%hx:%hx:%hx:%hx:%hx:%hx"),
|
ifdebug(TRAFFIC) logger(LOG_WARNING, _("Cannot route packet from %s (%s): unknown IPv6 destination address %hx:%hx:%hx:%hx:%hx:%hx:%hx:%hx"),
|
||||||
source->name, source->hostname,
|
source->name, source->hostname,
|
||||||
ntohs(*(uint16_t *) &packet->data[38]),
|
ntohs(dest.x[0]),
|
||||||
ntohs(*(uint16_t *) &packet->data[40]),
|
ntohs(dest.x[1]),
|
||||||
ntohs(*(uint16_t *) &packet->data[42]),
|
ntohs(dest.x[2]),
|
||||||
ntohs(*(uint16_t *) &packet->data[44]),
|
ntohs(dest.x[3]),
|
||||||
ntohs(*(uint16_t *) &packet->data[46]),
|
ntohs(dest.x[4]),
|
||||||
ntohs(*(uint16_t *) &packet->data[48]),
|
ntohs(dest.x[5]),
|
||||||
ntohs(*(uint16_t *) &packet->data[50]),
|
ntohs(dest.x[6]),
|
||||||
ntohs(*(uint16_t *) &packet->data[52]));
|
ntohs(dest.x[7]));
|
||||||
|
|
||||||
route_ipv6_unreachable(source, packet, ICMP6_DST_UNREACH, ICMP6_DST_UNREACH_ADDR);
|
route_ipv6_unreachable(source, packet, ICMP6_DST_UNREACH, ICMP6_DST_UNREACH_ADDR);
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
route.h -- header file for route.c
|
route.h -- header file for route.c
|
||||||
Copyright (C) 2000-2005 Ivo Timmermans <zarq@iname.com>
|
Copyright (C) 2000-2005 Ivo Timmermans <zarq@iname.com>
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: route.h 1439 2005-05-04 18:09:30Z guus $
|
$Id: route.h 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __TINC_ROUTE_H__
|
#ifndef __TINC_ROUTE_H__
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
device.c -- Interaction with Solaris tun device
|
device.c -- Interaction with Solaris tun device
|
||||||
Copyright (C) 2001-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
|
Copyright (C) 2001-2005 Ivo Timmermans,
|
||||||
2001-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2001-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: device.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: device.c 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
10
src/subnet.c
10
src/subnet.c
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
subnet.c -- handle subnet lookups and lists
|
subnet.c -- handle subnet lookups and lists
|
||||||
Copyright (C) 2000-2005 Guus Sliepen <guus@tinc-vpn.org>,
|
Copyright (C) 2000-2006 Guus Sliepen <guus@tinc-vpn.org>,
|
||||||
2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>
|
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
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: subnet.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: subnet.c 1459 2006-08-08 13:44:37Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
@ -342,7 +342,7 @@ subnet_t *lookup_subnet_ipv4(const ipv4_t *address)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!maskcmp(address, &p->net.ipv4.address, p->net.ipv4.prefixlength, sizeof(ipv4_t)))
|
if(!maskcmp(address, &p->net.ipv4.address, p->net.ipv4.prefixlength))
|
||||||
break;
|
break;
|
||||||
else {
|
else {
|
||||||
/* Otherwise, see if there is a bigger enclosing subnet */
|
/* Otherwise, see if there is a bigger enclosing subnet */
|
||||||
|
@ -378,7 +378,7 @@ subnet_t *lookup_subnet_ipv6(const ipv6_t *address)
|
||||||
if(p->type != SUBNET_IPV6)
|
if(p->type != SUBNET_IPV6)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if(!maskcmp(address, &p->net.ipv6.address, p->net.ipv6.prefixlength, sizeof(ipv6_t)))
|
if(!maskcmp(address, &p->net.ipv6.address, p->net.ipv6.prefixlength))
|
||||||
break;
|
break;
|
||||||
else {
|
else {
|
||||||
/* Otherwise, see if there is a bigger enclosing subnet */
|
/* Otherwise, see if there is a bigger enclosing subnet */
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
subnet.h -- header for subnet.c
|
subnet.h -- header for subnet.c
|
||||||
Copyright (C) 2000-2005 Guus Sliepen <guus@tinc-vpn.org>,
|
Copyright (C) 2000-2006 Guus Sliepen <guus@tinc-vpn.org>,
|
||||||
2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>
|
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
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: subnet.h 1439 2005-05-04 18:09:30Z guus $
|
$Id: subnet.h 1452 2006-04-26 13:52:58Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __TINC_SUBNET_H__
|
#ifndef __TINC_SUBNET_H__
|
||||||
|
|
19
src/tincd.c
19
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 <ivo@tinc-vpn.org>
|
Copyright (C) 1998-2005 Ivo Timmermans
|
||||||
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: tincd.c 1439 2005-05-04 18:09:30Z guus $
|
$Id: tincd.c 1466 2006-11-11 20:10:46Z guus $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
@ -35,8 +35,14 @@
|
||||||
#include <openssl/rsa.h>
|
#include <openssl/rsa.h>
|
||||||
#include <openssl/pem.h>
|
#include <openssl/pem.h>
|
||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
|
#include <openssl/engine.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_LZO_LZO1X_H
|
||||||
|
#include <lzo/lzo1x.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_LZO1X_H
|
||||||
#include <lzo1x.h>
|
#include <lzo1x.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
#include "pidfile.h"
|
#include "pidfile.h"
|
||||||
|
@ -407,7 +413,7 @@ int main(int argc, char **argv)
|
||||||
if(show_version) {
|
if(show_version) {
|
||||||
printf(_("%s version %s (built %s %s, protocol %d)\n"), PACKAGE,
|
printf(_("%s version %s (built %s %s, protocol %d)\n"), PACKAGE,
|
||||||
VERSION, __DATE__, __TIME__, PROT_CURRENT);
|
VERSION, __DATE__, __TIME__, PROT_CURRENT);
|
||||||
printf(_("Copyright (C) 1998-2005 Ivo Timmermans, Guus Sliepen and others.\n"
|
printf(_("Copyright (C) 1998-2006 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"
|
||||||
|
@ -448,6 +454,9 @@ int main(int argc, char **argv)
|
||||||
|
|
||||||
RAND_load_file("/dev/urandom", 1024);
|
RAND_load_file("/dev/urandom", 1024);
|
||||||
|
|
||||||
|
ENGINE_load_builtin_engines();
|
||||||
|
ENGINE_register_all_complete();
|
||||||
|
|
||||||
OpenSSL_add_all_algorithms();
|
OpenSSL_add_all_algorithms();
|
||||||
|
|
||||||
if(generate_keys) {
|
if(generate_keys) {
|
||||||
|
@ -505,6 +514,8 @@ end:
|
||||||
#ifndef HAVE_MINGW
|
#ifndef HAVE_MINGW
|
||||||
remove_pid(pidfilename);
|
remove_pid(pidfilename);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
EVP_cleanup();
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
device.c -- UML network socket
|
device.c -- UML network socket
|
||||||
Copyright (C) 2002-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
|
Copyright (C) 2002-2005 Ivo Timmermans,
|
||||||
2002-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2002-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
|
4
system.h
4
system.h
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
system.h -- system headers
|
system.h -- system headers
|
||||||
Copyright (C) 1998-2005 Ivo Timmermans <ivo@tinc-vpn.org>
|
Copyright (C) 1998-2005 Ivo Timmermans
|
||||||
2003-2005 Guus Sliepen <guus@tinc-vpn.org>
|
2003-2006 Guus Sliepen <guus@tinc-vpn.org>
|
||||||
|
|
||||||
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
|
||||||
|
|
Loading…
Reference in a new issue