Import Debian changes 1.0.5-1

tinc (1.0.5-1) unstable; urgency=low

  * New upstream release. Closes: #391610
  * Add an LSB section to the init script.
This commit is contained in:
Guus Sliepen 2006-11-14 16:32:20 +01:00
commit c473eb1653
93 changed files with 7634 additions and 5098 deletions

View file

@ -1,6 +1,6 @@
Main tinc authors:
Guus Sliepen <guus@tinc-vpn.org>
Ivo Timmermans <ivo@tinc-vpn.org>
Ivo Timmermans (inactive)
These files are from other sources:
* lib/pidfile.h and lib/pidfile.c are by Martin Schulze, taken from

View file

@ -2,7 +2,7 @@
Version 2, June 1991
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
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
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.

176
ChangeLog
View file

@ -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

16
INSTALL
View file

@ -102,16 +102,16 @@ for another architecture.
Installation Names
==================
By default, `make install' will install the package's files in
`/usr/local/bin', `/usr/local/man', etc. You can specify an
installation prefix other than `/usr/local' by giving `configure' the
option `--prefix=PREFIX'.
By default, `make install' installs the package's commands under
`/usr/local/bin', include files under `/usr/local/include', etc. You
can specify an installation prefix other than `/usr/local' by giving
`configure' the option `--prefix=PREFIX'.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
give `configure' the option `--exec-prefix=PREFIX', the package will
use PREFIX as the prefix for installing programs and libraries.
Documentation and other data files will still use the regular prefix.
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
PREFIX as the prefix for installing programs and libraries.
Documentation and other data files still use the regular prefix.
In addition, if you use an unusual directory layout you can give
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.
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.
If you want to _use_ a cross compiler, that generates code for a

View file

@ -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@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@ -44,13 +44,14 @@ subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.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/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/lzo.m4 $(top_srcdir)/m4/malloc.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/openssl.m4 \
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
$(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/tuntap.m4 \
$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/configure.in
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/isc-posix.m4 \
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/lzo.m4 \
$(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/nls.m4 \
$(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/realloc.m4 \
$(top_srcdir)/m4/tuntap.m4 $(top_srcdir)/m4/zlib.m4 \
$(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
@ -103,6 +104,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
GMSGFMT = @GMSGFMT@
GREP = @GREP@
HAVE_TUNTAP = @HAVE_TUNTAP@
INCLUDES = @INCLUDES@
INSTALL_DATA = @INSTALL_DATA@
@ -144,8 +146,6 @@ USE_NLS = @USE_NLS@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
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_TRUE = @am__fastdepCC_TRUE@
am__include = @am__include@
@ -160,23 +160,30 @@ build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@

13
NEWS
View file

@ -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
* Fix switch and hub modes.

4
README
View file

@ -1,9 +1,9 @@
This is the README file for tinc version 1.0.4. Installation
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>,
and others.

10
THANKS
View file

@ -2,6 +2,7 @@ We would like to thank the following people for their contributions to tinc:
* Alexander Reil and Gemeinde Berg
* Allesandro Gatti
* Andreas van Cranenburgh
* Armijn Hemel
* Cris van Pelt
* Enrique Zanardi
@ -13,20 +14,25 @@ We would like to thank the following people for their contributions to tinc:
* Jason Harper
* Jeroen Ubbink
* Jerome Etienne
* Lubomír Bulej
* Lubomír Bulej
* Mads Kiilerich
* Marc A. Lehmann
* Mark Glines
* Markus Goetz
* Martin Kihlgren
* Matias Carrasco
* Miles Nordin
* Nick Patavalis
* Paul Littlefield
* Robert van der Meulen
* Scott Lamb
* Sven-Haegar Koch
* Teemu Kiviniemi
* Tonnerre Lombard
* Wessel Dankers
* Wouter van Heyst
And everyone we forgot. Thank you guys!
And everyone we forgot. Thank you!
Ivo Timmermans
Guus Sliepen

5
aclocal.m4 vendored
View file

@ -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,
# 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.
# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
[AM_AUTOMAKE_VERSION([1.9.5])])
[AM_AUTOMAKE_VERSION([1.9.6])])
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
@ -881,6 +881,7 @@ m4_include([m4/aclocal-include.m4])
m4_include([m4/attribute.m4])
m4_include([m4/gettext.m4])
m4_include([m4/iconv.m4])
m4_include([m4/isc-posix.m4])
m4_include([m4/lib-ld.m4])
m4_include([m4/lib-link.m4])
m4_include([m4/lib-prefix.m4])

581
config.guess vendored

File diff suppressed because it is too large Load diff

View file

@ -113,6 +113,9 @@
/* Define to 1 if you have the <lzo1x.h> header file. */
#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. */
#undef HAVE_MEMORY_H
@ -176,6 +179,9 @@
/* 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. */
#undef HAVE_OPENSSL_ERR_H
@ -358,7 +364,7 @@
/* If using the C implementation of alloca, define if you know the
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 lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
@ -397,7 +403,7 @@
/* Replacement 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
/* Define to empty if the keyword `volatile' does not work. Warning: valid

127
config.sub vendored
View file

@ -1,9 +1,10 @@
#! /bin/sh
# Configuration validation subroutine script.
# 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.
# 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
# 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.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Please send patches to <config-patches@gnu.org>. Submit a context
# diff and a properly formatted ChangeLog entry.
#
@ -83,11 +85,11 @@ Try \`$me --help' for more information."
while test $# -gt 0 ; do
case $1 in
--time-stamp | --time* | -t )
echo "$timestamp" ; exit 0 ;;
echo "$timestamp" ; exit ;;
--version | -v )
echo "$version" ; exit 0 ;;
echo "$version" ; exit ;;
--help | --h* | -h )
echo "$usage"; exit 0 ;;
echo "$usage"; exit ;;
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
@ -99,7 +101,7 @@ while test $# -gt 0 ; do
*local*)
# First pass through any local machine types.
echo $1
exit 0;;
exit ;;
* )
break ;;
@ -118,8 +120,9 @@ esac
# Here we must recognize all the valid KERNEL-OS combinations.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
;;
@ -170,6 +173,10 @@ case $os in
-hiux*)
os=-hiuxwe2
;;
-sco6)
os=-sco5v6
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco5)
os=-sco3.2v5
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.
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*)
os=-sco3.2v2
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] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| 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 \
| c4x | clipper \
| d10v | d30v | dlx | dsp16xx \
@ -238,7 +249,8 @@ case $basic_machine in
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
| m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
| maxq | mb | microblaze | mcore \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
@ -247,6 +259,7 @@ case $basic_machine in
| mips64vr4100 | mips64vr4100el \
| mips64vr4300 | mips64vr4300el \
| mips64vr5000 | mips64vr5000el \
| mips64vr5900 | mips64vr5900el \
| mipsisa32 | mipsisa32el \
| mipsisa32r2 | mipsisa32r2el \
| mipsisa64 | mipsisa64el \
@ -255,21 +268,24 @@ case $basic_machine in
| mipsisa64sr71k | mipsisa64sr71kel \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \
| mt \
| msp430 \
| nios | nios2 \
| ns16k | ns32k \
| openrisc | or32 \
| or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
| 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 \
| sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
| sparcv8 | sparcv9 | sparcv9b \
| strongarm \
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
| spu | strongarm \
| tahoe | thumb | tic4x | tic80 | tron \
| v850 | v850e \
| we32k \
| x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
| z8k)
basic_machine=$basic_machine-unknown
;;
@ -280,6 +296,9 @@ case $basic_machine in
;;
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
;;
ms1)
basic_machine=mt-unknown
;;
# We use `pc' rather than `unknown'
# because (1) that's what they normally are, and
@ -299,7 +318,7 @@ case $basic_machine in
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* \
| avr-* | avr32-* \
| bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
| clipper-* | craynv-* | cydra-* \
@ -310,7 +329,7 @@ case $basic_machine in
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
| m32r-* | m32rle-* \
| m32c-* | m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
| m88110-* | m88k-* | maxq-* | mcore-* \
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
@ -321,6 +340,7 @@ case $basic_machine in
| mips64vr4100-* | mips64vr4100el-* \
| mips64vr4300-* | mips64vr4300el-* \
| mips64vr5000-* | mips64vr5000el-* \
| mips64vr5900-* | mips64vr5900el-* \
| mipsisa32-* | mipsisa32el-* \
| mipsisa32r2-* | mipsisa32r2el-* \
| mipsisa64-* | mipsisa64el-* \
@ -329,24 +349,26 @@ case $basic_machine in
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
| mipstx39-* | mipstx39el-* \
| mmix-* \
| mt-* \
| msp430-* \
| nios-* | nios2-* \
| none-* | np1-* | ns16k-* | ns32k-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
| pyramid-* \
| 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-* \
| sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
| sparclite-* \
| sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
| tahoe-* | thumb-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
| tron-* \
| v850-* | v850e-* | vax-* \
| we32k-* \
| x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
| xstormy16-* | xtensa-* \
| ymp-* \
| z8k-*)
@ -686,6 +708,9 @@ case $basic_machine in
basic_machine=i386-pc
os=-msdos
;;
ms1-*)
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
;;
mvs)
basic_machine=i370-ibm
os=-mvs
@ -761,9 +786,8 @@ case $basic_machine in
basic_machine=hppa1.1-oki
os=-proelf
;;
or32 | or32-*)
openrisc | openrisc-*)
basic_machine=or32-unknown
os=-coff
;;
os400)
basic_machine=powerpc-ibm
@ -794,6 +818,12 @@ case $basic_machine in
pc532 | 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)
basic_machine=i586-pc
;;
@ -850,6 +880,10 @@ case $basic_machine in
basic_machine=i586-unknown
os=-pw32
;;
rdos)
basic_machine=i386-pc
os=-rdos
;;
rom68k)
basic_machine=m68k-rom68k
os=-coff
@ -876,6 +910,10 @@ case $basic_machine in
sb1el)
basic_machine=mipsisa64sb1el-unknown
;;
sde)
basic_machine=mipsisa32-sde
os=-elf
;;
sei)
basic_machine=mips-sei
os=-seiux
@ -1089,13 +1127,10 @@ case $basic_machine in
we32k)
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
;;
sh64)
basic_machine=sh64-unknown
;;
sparc | sparcv8 | sparcv9 | sparcv9b)
sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
basic_machine=sparc-sun
;;
cydra)
@ -1168,20 +1203,23 @@ case $os in
| -aos* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
| -openbsd* | -solidbsd* \
| -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* \
| -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* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -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.
;;
-qnx*)
@ -1199,7 +1237,7 @@ case $os in
os=`echo $os | sed -e 's|nto|nto-qnx|'`
;;
-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*)
;;
-mac*)
@ -1333,6 +1371,12 @@ else
# system, and we'll never get to this point.
case $basic_machine in
score-*)
os=-elf
;;
spu-*)
os=-elf
;;
*-acorn)
os=-riscix1.2
;;
@ -1342,9 +1386,9 @@ case $basic_machine in
arm*-semi)
os=-aout
;;
c4x-* | tic4x-*)
os=-coff
;;
c4x-* | tic4x-*)
os=-coff
;;
# This must come before the *-dec entry.
pdp10-*)
os=-tops20
@ -1388,6 +1432,9 @@ case $basic_machine in
*-be)
os=-beos
;;
*-haiku)
os=-haiku
;;
*-ibm)
os=-aix
;;
@ -1559,7 +1606,7 @@ case $basic_machine in
esac
echo $basic_machine$os
exit 0
exit
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)

8876
configure vendored

File diff suppressed because it is too large Load diff

View file

@ -5,7 +5,7 @@ dnl $Id: configure.in 1415 2004-11-10 23:20:59Z guus $
AC_PREREQ(2.59)
AC_INIT
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])
AM_MAINTAINER_MODE

7
debian/changelog vendored
View file

@ -1,3 +1,10 @@
tinc (1.0.5-1) unstable; urgency=low
* New upstream release. Closes: #391610
* Add an LSB section to the init script.
-- Guus Sliepen <guus@debian.org> Tue, 14 Nov 2006 16:32:20 +0100
tinc (1.0.4-4) unstable; urgency=low
* Include swedish debconf translation. Closes: #332963

4
debian/control vendored
View file

@ -2,8 +2,8 @@ Source: tinc
Section: net
Priority: optional
Maintainer: Guus Sliepen <guus@debian.org>
Standards-Version: 3.6.2
Build-Depends: libssl-dev, debhelper (>= 4.1.16), gettext, texi2html, zlib1g-dev, cdbs, liblzo-dev
Standards-Version: 3.7.2
Build-Depends: libssl-dev, debhelper (>= 4.1.16), gettext, texi2html, zlib1g-dev, cdbs, liblzo2-dev
Package: tinc
Architecture: any

23
debian/init.d vendored
View file

@ -1,15 +1,22 @@
#! /bin/sh
#
# System startup script for tinc
# $Id: init.d,v 1.14.2.4 2000/12/05 09:03:41 zarq Exp $
### BEGIN INIT INFO
# Provides: tinc
# Required-Start: $network
# Required-Stop: $network
# Should-Start: $syslog $named
# Should-Stop: $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start tinc daemons
# Description: Create a file $NETSFILE (/etc/tinc/nets.boot),
# and put all the names of the networks in there.
# These names must be valid directory names under
# $TCONF (/etc/tinc). Lines starting with a # will be
# ignored in this file.
### END INIT INFO
#
# Based on Lubomir Bulej's Redhat init script.
#
# Create a file $NETSFILE (/etc/tinc/nets.boot), and put all the names of
# the networks in there. These names must be valid directory names under
# $TCONF (/etc/tinc). Lines starting with a # will be ignored in this
# file.
#
DAEMON="/usr/sbin/tincd"
NAME="tinc"

View file

@ -1,7 +1,7 @@
#! /bin/sh
# 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.
@ -17,8 +17,8 @@ scriptversion=2005-02-09.22
# You should have received a copy of the GNU General Public License
# 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.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@ -467,7 +467,8 @@ cpp)
done
"$@" -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"
rm -f "$depfile"
echo "$object : \\" > "$depfile"

View file

@ -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@
# 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
am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.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/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/lzo.m4 $(top_srcdir)/m4/malloc.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/openssl.m4 \
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
$(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/tuntap.m4 \
$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/configure.in
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/isc-posix.m4 \
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/lzo.m4 \
$(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/nls.m4 \
$(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/realloc.m4 \
$(top_srcdir)/m4/tuntap.m4 $(top_srcdir)/m4/zlib.m4 \
$(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@ -100,6 +101,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
GMSGFMT = @GMSGFMT@
GREP = @GREP@
HAVE_TUNTAP = @HAVE_TUNTAP@
INCLUDES = @INCLUDES@
INSTALL_DATA = @INSTALL_DATA@
@ -141,8 +143,6 @@ USE_NLS = @USE_NLS@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
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_TRUE = @am__fastdepCC_TRUE@
am__include = @am__include@
@ -157,23 +157,30 @@ build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
@ -225,9 +232,11 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
tinc.info: tinc.texi
restore=: && backupdir="$(am__leading_dot)am$$$$" && \
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 test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
done; \
if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
done; \
else :; fi && \
if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
-o $@ `test -f 'tinc.texi' || echo '$(srcdir)/'`tinc.texi; \
then \
@ -262,6 +271,7 @@ tinc.html: tinc.texi
exit 1; \
fi
.dvi.ps:
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
$(DVIPS) -o $@ $<
uninstall-info-am:
@ -294,10 +304,13 @@ dist-info: $(INFO_DEPS)
$(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \
esac; \
if test -f $$base; then d=.; else d=$(srcdir); fi; \
for file in $$d/$$base*; do \
relfile=`expr "$$file" : "$$d/\(.*\)"`; \
test -f $(distdir)/$$relfile || \
cp -p $$file $(distdir)/$$relfile; \
base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \
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 \
if test -f $$file; then \
relfile=`expr "$$file" : "$$d/\(.*\)"`; \
test -f $(distdir)/$$relfile || \
cp -p $$file $(distdir)/$$relfile; \
else :; fi; \
done; \
done

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -1,7 +1,7 @@
.Dd 2002-04-09
.Dt TINC.CONF 5
.\" Manual page created by:
.\" Ivo Timmermans <ivo@tinc-vpn.org>
.\" Ivo Timmermans
.\" Guus Sliepen <guus@tinc-vpn.org>
.Sh NAME
.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.
.Pp
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
Specifies which other tinc daemon to connect to on startup.
Multiple
@ -154,6 +147,18 @@ instead of
.Va Device .
The info pages of the tinc package contain more information
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
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
@ -206,11 +211,13 @@ while no routing table is managed.
.It Va Name Li = Ar name Bq required
This is the name which identifies this tinc daemon.
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
.Nm tinc
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,
and the others will be notified of this.
.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
.It Va Address Li = Ar address Bq recommended
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
.Va Address
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
.Ar HOST
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
This script is started when a Subnet becomes reachable.
The Subnet and the node it belongs to are passed in environment variables.

View file

@ -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
START-INFO-DIR-ENTRY
* tinc: (tinc). The tinc Manual.
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.
Copyright (C) 1998-2005 Ivo Timmermans <ivo@tinc-vpn.org>, Guus
Sliepen <guus@tinc-vpn.org> and Wessel Dankers <wsl@tinc-vpn.org>.
Copyright (C) 1998-2006 Ivo Timmermans, Guus Sliepen
<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
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.
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>
Specifies which other tinc daemon to connect to on startup.
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
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)
This option selects whether IP addresses (both real and on the VPN)
should be resolved. Since DNS lookups are blocking, it might
@ -847,11 +846,15 @@ MACExpire = <SECONDS> (600)
Name = <NAME> [required]
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
sending a probe to the other end. If that other end doesn't
answer within that same amount of seconds, the connection is
terminated, and the others will be notified of this.
sending a probe to the other end.
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]
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
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'
This script is started when a Subnet becomes reachable. The
Subnet and the node it belongs to are passed in environment
@ -2206,8 +2215,6 @@ Concept Index
(line 12)
* BindToInterface: Main configuration variables.
(line 19)
* BlockingTCP: Main configuration variables.
(line 27)
* Cabal: Security. (line 6)
* CHAL_REPLY: Authentication protocol.
(line 10)
@ -2224,109 +2231,113 @@ Concept Index
(line 17)
* connection: The connection. (line 6)
* ConnectTo: Main configuration variables.
(line 36)
(line 27)
* daemon: Running tinc. (line 11)
* data-protocol: The meta-connection. (line 18)
* debug level: Runtime options. (line 17)
* debug levels: Debug levels. (line 6)
* DEL_EDGE: The meta-protocol. (line 47)
* DEL_SUBNET: The meta-protocol. (line 47)
* DEVICE: Scripts. (line 49)
* DEVICE: Scripts. (line 55)
* Device: Main configuration variables.
(line 47)
(line 38)
* device files: Device files. (line 6)
* Digest: Host configuration variables.
(line 22)
* encapsulating: The UDP tunnel. (line 30)
* encryption: Encryption of network packets.
(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.
(line 6)
* example: Example configuration.
(line 6)
* frame type: The UDP tunnel. (line 6)
* GraphDumpFile: Main configuration variables.
(line 45)
* Hostnames: Main configuration variables.
(line 54)
(line 53)
* hub: Main configuration variables.
(line 95)
(line 94)
* ID: Authentication protocol.
(line 10)
* IndirectData: Host configuration variables.
(line 27)
* INTERFACE: Scripts. (line 52)
* INTERFACE: Scripts. (line 58)
* Interface: Main configuration variables.
(line 64)
(line 63)
* IRC: Contact information. (line 9)
* key generation: Generating keypairs. (line 6)
* KEY_CHANGED: The meta-protocol. (line 64)
* KeyExpire: Main configuration variables.
(line 100)
(line 99)
* libraries: Libraries. (line 6)
* license: OpenSSL. (line 36)
* lzo: lzo. (line 6)
* MACExpire: Main configuration variables.
(line 106)
(line 105)
* MACLength: Host configuration variables.
(line 35)
* meta-protocol: The meta-connection. (line 18)
* META_KEY: Authentication protocol.
(line 10)
* Mode: Main configuration variables.
(line 72)
(line 71)
* multiple networks: Multiple networks. (line 6)
* NAME: Scripts. (line 46)
* NAME: Scripts. (line 52)
* Name: Main configuration variables.
(line 111)
(line 110)
* netmask: Network interfaces. (line 34)
* NETNAME: Scripts. (line 43)
* NETNAME: Scripts. (line 49)
* netname: Multiple networks. (line 6)
* Network Administrators Guide: Configuration introduction.
(line 15)
* NODE: Scripts. (line 56)
* NODE: Scripts. (line 62)
* OpenSSL: OpenSSL. (line 6)
* options: Runtime options. (line 9)
* PEM format: Host configuration variables.
(line 52)
* PING: The meta-protocol. (line 89)
* PingInterval: Main configuration variables.
(line 113)
* PingTimeout: Main configuration variables.
(line 114)
(line 117)
* platforms: Supported platforms. (line 6)
* PONG: The meta-protocol. (line 89)
* Port: Host configuration variables.
(line 40)
* port numbers: Other files. (line 17)
* PriorityInheritance: Main configuration variables.
(line 120)
(line 123)
* private: Virtual Private Networks.
(line 10)
* PrivateKey: Main configuration variables.
(line 125)
(line 128)
* PrivateKeyFile: Main configuration variables.
(line 131)
(line 134)
* PublicKey: Host configuration variables.
(line 44)
* PublicKeyFile: Host configuration variables.
(line 47)
* release: Supported platforms. (line 14)
* REMOTEADDRESS: Scripts. (line 61)
* REMOTEPORT: Scripts. (line 64)
* REMOTEADDRESS: Scripts. (line 67)
* REMOTEPORT: Scripts. (line 70)
* REQ_KEY: The meta-protocol. (line 64)
* requirements: Libraries. (line 6)
* router: Main configuration variables.
(line 75)
(line 74)
* runtime options: Runtime options. (line 9)
* scalability: tinc. (line 19)
* scripts: Scripts. (line 6)
* server: How connections work.
(line 18)
* signals: Signals. (line 6)
* SUBNET: Scripts. (line 68)
* SUBNET: Scripts. (line 74)
* Subnet: Host configuration variables.
(line 59)
* SVPN: Security. (line 11)
* switch: Main configuration variables.
(line 84)
(line 83)
* TCP: The meta-connection. (line 10)
* TCPonly: Host configuration variables.
(line 82)
@ -2338,7 +2349,7 @@ Concept Index
* tincd: tinc. (line 14)
* traditional VPNs: tinc. (line 19)
* TunnelServer: Main configuration variables.
(line 139)
(line 142)
* UDP <1>: Encryption of network packets.
(line 12)
* UDP: The UDP tunnel. (line 30)
@ -2356,67 +2367,67 @@ Concept Index

Tag Table:
Node: Top879
Node: Introduction1178
Node: Virtual Private Networks1988
Node: tinc3713
Node: Supported platforms5240
Node: Preparations5938
Node: Configuring the kernel6194
Node: Configuration of Linux kernels 2.1.60 up to 2.4.06674
Node: Configuration of Linux kernels 2.4.0 and higher8046
Node: Configuration of FreeBSD kernels9286
Node: Configuration of OpenBSD kernels9693
Node: Configuration of NetBSD kernels10185
Node: Configuration of Solaris kernels10590
Node: Configuration of Darwin (MacOS/X) kernels11251
Node: Configuration of Windows11954
Node: Libraries12468
Node: OpenSSL12856
Node: zlib15132
Node: lzo15961
Node: Installation16748
Node: Building and installing tinc17763
Node: Darwin (MacOS/X) build environment18422
Node: Cygwin (Windows) build environment18990
Node: MinGW (Windows) build environment19578
Node: System files20102
Node: Device files20367
Node: Other files21553
Node: Configuration22166
Node: Configuration introduction22477
Node: Multiple networks23750
Node: How connections work25226
Node: Configuration files26448
Node: Main configuration variables27475
Node: Host configuration variables33939
Node: Scripts38235
Node: How to configure40790
Node: Generating keypairs42073
Node: Network interfaces42572
Node: Example configuration44440
Node: Running tinc49892
Node: Runtime options50482
Node: Signals52519
Node: Debug levels53588
Node: Solving problems54524
Node: Error messages55954
Node: Sending bug reports60276
Node: Technical information61228
Node: The connection61459
Node: The UDP tunnel61771
Node: The meta-connection64832
Node: The meta-protocol66301
Node: Security71310
Node: Authentication protocol72440
Node: Encryption of network packets77444
Node: Security issues78817
Node: Platform specific information80434
Node: Interface configuration80662
Node: Routes82561
Node: About us84477
Node: Contact information84652
Node: Authors85056
Node: Concept Index85482
Node: Top860
Node: Introduction1159
Node: Virtual Private Networks1969
Node: tinc3694
Node: Supported platforms5221
Node: Preparations5919
Node: Configuring the kernel6175
Node: Configuration of Linux kernels 2.1.60 up to 2.4.06655
Node: Configuration of Linux kernels 2.4.0 and higher8027
Node: Configuration of FreeBSD kernels9267
Node: Configuration of OpenBSD kernels9674
Node: Configuration of NetBSD kernels10166
Node: Configuration of Solaris kernels10571
Node: Configuration of Darwin (MacOS/X) kernels11232
Node: Configuration of Windows11935
Node: Libraries12449
Node: OpenSSL12837
Node: zlib15113
Node: lzo15942
Node: Installation16729
Node: Building and installing tinc17744
Node: Darwin (MacOS/X) build environment18403
Node: Cygwin (Windows) build environment18971
Node: MinGW (Windows) build environment19559
Node: System files20083
Node: Device files20348
Node: Other files21534
Node: Configuration22147
Node: Configuration introduction22458
Node: Multiple networks23731
Node: How connections work25207
Node: Configuration files26429
Node: Main configuration variables27456
Node: Host configuration variables33953
Node: Scripts38249
Node: How to configure41008
Node: Generating keypairs42291
Node: Network interfaces42790
Node: Example configuration44658
Node: Running tinc50110
Node: Runtime options50700
Node: Signals52737
Node: Debug levels53806
Node: Solving problems54742
Node: Error messages56172
Node: Sending bug reports60494
Node: Technical information61446
Node: The connection61677
Node: The UDP tunnel61989
Node: The meta-connection65050
Node: The meta-protocol66519
Node: Security71528
Node: Authentication protocol72658
Node: Encryption of network packets77662
Node: Security issues79035
Node: Platform specific information80652
Node: Interface configuration80880
Node: Routes82779
Node: About us84695
Node: Contact information84870
Node: Authors85274
Node: Concept Index85700

End Tag Table

View file

@ -1,5 +1,5 @@
\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
@setfilename tinc.info
@settitle tinc Manual
@ -16,11 +16,11 @@
This is the info manual for @value{PACKAGE} version @value{VERSION}, a Virtual Private Network daemon.
Copyright @copyright{} 1998-2005 Ivo Timmermans
<ivo@@tinc-vpn.org>, Guus Sliepen <guus@@tinc-vpn.org> and
Copyright @copyright{} 1998-2006 Ivo Timmermans,
Guus Sliepen <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
manual provided the copyright notice and this permission notice are
@ -43,11 +43,11 @@ permission notice identical to this one.
@cindex copyright
This is the info manual for @value{PACKAGE} version @value{VERSION}, a Virtual Private Network daemon.
Copyright @copyright{} 1998-2005 Ivo Timmermans
<ivo@@tinc-vpn.org>, Guus Sliepen <guus@@tinc-vpn.org> and
Copyright @copyright{} 1998-2006 Ivo Timmermans,
Guus Sliepen <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
manual provided the copyright notice and this permission notice are
@ -841,15 +841,6 @@ variable.
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
@item ConnectTo = <@var{name}>
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.
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
@item Hostnames = <yes|no> (no)
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]
This is a symbolic name for this connection. It can be anything
@cindex PingTimeout
@item PingTimeout = <@var{seconds}> (60)
@cindex PingInterval
@item PingInterval = <@var{seconds}> (60)
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
same amount of seconds, the connection is terminated, and the others
will be notified of this.
probe to the other end.
@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
@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
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
This script is started when a Subnet becomes reachable.
The Subnet and the node it belongs to are passed in environment variables.

View file

@ -1,7 +1,7 @@
.Dd 2002-03-25
.Dt TINCD 8
.\" Manual page created by:
.\" Ivo Timmermans <ivo@tinc-vpn.org>
.\" Ivo Timmermans
.\" Guus Sliepen <guus@tinc-vpn.org>
.Sh NAME
.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;
see the file COPYING for details.
.Sh AUTHORS
.An "Ivo Timmermans" Aq ivo@tinc-vpn.org
.An "Ivo Timmermans"
.An "Guus Sliepen" Aq guus@tinc-vpn.org
.Pp
And thanks to many others for their contributions to tinc!

8
have.h
View file

@ -1,7 +1,7 @@
/*
have.h -- include headers which are known to exist
Copyright (C) 1998-2005 Ivo Timmermans <ivo@tinc-vpn.org>
2003-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 1998-2005 Ivo Timmermans
2003-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -43,6 +43,10 @@
#include <inttypes.h>
#endif
#ifdef HAVE_ALLOCA_H
#include <alloca.h>
#endif
/* Include system specific headers */
#ifdef HAVE_SYSLOG_H

View file

@ -1,7 +1,7 @@
#!/bin/sh
# 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
# later released in X11R6 (xc/config/util/install.sh) with the

View file

@ -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@
# 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 $
SOURCES = $(libvpn_a_SOURCES)
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@ -47,13 +45,14 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.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/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/lzo.m4 $(top_srcdir)/m4/malloc.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/openssl.m4 \
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
$(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/tuntap.m4 \
$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/configure.in
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/isc-posix.m4 \
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/lzo.m4 \
$(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/nls.m4 \
$(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/realloc.m4 \
$(top_srcdir)/m4/tuntap.m4 $(top_srcdir)/m4/zlib.m4 \
$(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@ -104,6 +103,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
GMSGFMT = @GMSGFMT@
GREP = @GREP@
HAVE_TUNTAP = @HAVE_TUNTAP@
INCLUDES = @INCLUDES@ -I. -I$(top_builddir)
INSTALL_DATA = @INSTALL_DATA@
@ -145,8 +145,6 @@ USE_NLS = @USE_NLS@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
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_TRUE = @am__fastdepCC_TRUE@
am__include = @am__include@
@ -161,23 +159,30 @@ build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@

View file

@ -1,8 +1,8 @@
/*
avl_tree.c -- avl_ tree and linked list convenience
Copyright (C) 1998 Michael H. Buselli
2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
2000-2005 Ivo Timmermans,
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
2000-2005 Wessel Dankers <wsl@tinc-vpn.org>
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
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"
@ -656,7 +656,7 @@ void avl_delete_tree(avl_tree_t *tree)
{
avl_node_t *node, *next;
for(node = tree->root; node; node = next) {
for(node = tree->head; node; node = next) {
next = node->next;
avl_free_node(tree, node);
}

View file

@ -1,8 +1,8 @@
/*
avl_tree.h -- header file for avl_tree.c
Copyright (C) 1998 Michael H. Buselli
2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
2000-2005 Ivo Timmermans,
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
2000-2005 Wessel Dankers <wsl@tinc-vpn.org>
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
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 $
*/

View file

@ -1,7 +1,7 @@
/*
dropin.c -- a set of drop-in replacements for libc functions
Copyright (C) 2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 2000-2005 Ivo Timmermans,
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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"

View file

@ -1,7 +1,7 @@
/*
dropin.h -- header file for dropin.c
Copyright (C) 2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 2000-2005 Ivo Timmermans,
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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__

View file

@ -1,7 +1,7 @@
/*
ethernet.h -- missing Ethernet related definitions
Copyright (C) 2005 Ivo Timmermans <ivo@tinc-vpn.org>
2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 2005 Ivo Timmermans
2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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__

View file

@ -1,7 +1,7 @@
/*
ipv4.h -- missing IPv4 related definitions
Copyright (C) 2005 Ivo Timmermans <ivo@tinc-vpn.org>
2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 2005 Ivo Timmermans
2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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__

View file

@ -1,7 +1,7 @@
/*
ipv6.h -- missing IPv6 related definitions
Copyright (C) 2005 Ivo Timmermans <ivo@tinc-vpn.org>
2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 2005 Ivo Timmermans
2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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__

View file

@ -1,7 +1,7 @@
/*
list.c -- functions to deal with double linked lists
Copyright (C) 2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 2000-2005 Ivo Timmermans
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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"

View file

@ -1,7 +1,7 @@
/*
list.h -- header file for list.c
Copyright (C) 2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 2000-2005 Ivo Timmermans
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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__

View file

@ -1,7 +1,7 @@
/*
utils.c -- gathering of some stupid small functions
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
it under the terms of the GNU General Public License as published by

View file

@ -1,7 +1,7 @@
/*
utils.h -- header file for utils.c
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
it under the terms of the GNU General Public License as published by

View file

@ -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@
# 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
am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.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/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/lzo.m4 $(top_srcdir)/m4/malloc.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/openssl.m4 \
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
$(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/tuntap.m4 \
$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/configure.in
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/isc-posix.m4 \
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/lzo.m4 \
$(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/nls.m4 \
$(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/realloc.m4 \
$(top_srcdir)/m4/tuntap.m4 $(top_srcdir)/m4/zlib.m4 \
$(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@ -78,6 +79,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
GMSGFMT = @GMSGFMT@
GREP = @GREP@
HAVE_TUNTAP = @HAVE_TUNTAP@
INCLUDES = @INCLUDES@
INSTALL_DATA = @INSTALL_DATA@
@ -119,8 +121,6 @@ USE_NLS = @USE_NLS@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
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_TRUE = @am__fastdepCC_TRUE@
am__include = @am__include@
@ -135,23 +135,30 @@ build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@

View file

@ -21,13 +21,17 @@ AC_DEFUN([tinc_LZO],
LDFLAGS="$LDFLAGS -L$withval"]
)
AC_CHECK_HEADERS(lzo1x.h,
[],
[AC_MSG_ERROR("lzo header files not found."); break]
)
AC_CHECK_LIB(lzo, lzo1x_1_compress,
[LIBS="$LIBS -llzo"],
[AC_MSG_ERROR("lzo libraries not found.")]
AC_CHECK_LIB(lzo2, lzo1x_1_compress,
[AC_CHECK_HEADERS(lzo/lzo1x.h,
[LIBS="$LIBS -llzo2"],
[AC_MSG_ERROR("lzo2 header files not found."); break]
)],
[AC_CHECK_LIB(lzo, lzo1x_1_compress,
[AC_CHECK_HEADERS(lzo1x.h,
[LIBS="$LIBS -llzo"],
[AC_MSG_ERROR("lzo1 header files not found."); break]
)],
[AC_MSG_ERROR("lzo libraries not found."); break]
)]
)
])

View file

@ -21,7 +21,7 @@ AC_DEFUN([tinc_OPENSSL],
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]
)

View file

@ -1,7 +1,7 @@
#! /bin/sh
# 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
# 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
# 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.
# As a special exception to the GNU General Public License, if you
# 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)
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
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
;;

View file

@ -1,7 +1,7 @@
#! /bin/sh
# mkinstalldirs --- make directory hierarchy
scriptversion=2005-02-02.21
scriptversion=2005-06-29.22
# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created: 1993-05-16
@ -12,7 +12,7 @@ scriptversion=2005-02-02.21
# <automake-patches@gnu.org>.
errstatus=0
dirmode=""
dirmode=
usage="\
Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
@ -103,13 +103,21 @@ esac
for file
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
IFS=$oIFS
pathcomp=
for d
do
pathcomp="$pathcomp$d"
test "x$d" = x && continue
pathcomp=$pathcomp$d
case $pathcomp in
-*) pathcomp=./$pathcomp ;;
esac
@ -124,7 +132,7 @@ do
else
if test ! -z "$dirmode"; then
echo "chmod $dirmode $pathcomp"
lasterr=""
lasterr=
chmod "$dirmode" "$pathcomp" || lasterr=$?
if test ! -z "$lasterr"; then
@ -134,7 +142,7 @@ do
fi
fi
pathcomp="$pathcomp/"
pathcomp=$pathcomp/
done
done

BIN
po/nl.gmo

Binary file not shown.

361
po/nl.po
View file

@ -1,15 +1,15 @@
# Dutch messages for tinc
# Copyright (C) 1999-2004 Ivo Timmermans, Guus Sliepen.
# Ivo Timmermans <ivo@tinc-vpn.org>, 1999-2004.
# Guus Sliepen <guus@tinc-vpn.org>, 2000-2004.
# Copyright (C) 1999-2006 Ivo Timmermans, Guus Sliepen.
# Ivo Timmermans <ivo@tinc-vpn.org>, 1999-2006.
# Guus Sliepen <guus@tinc-vpn.org>, 2000-2006.
msgid ""
msgstr ""
"Project-Id-Version: tinc 1.0-svn\n"
"Report-Msgid-Bugs-To: tinc-devel@tinc-vpn.org\n"
"POT-Creation-Date: 2005-05-04 20:25+0200\n"
"PO-Revision-Date: 2004-03-15 19:28+0100\n"
"POT-Creation-Date: 2006-11-14 13:46+0100\n"
"PO-Revision-Date: 2006-11-11 16:26+0100\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"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -18,30 +18,30 @@ msgstr ""
msgid "(unable to format errormessage)"
msgstr "(kon foutmelding niet samenstellen)"
#: src/conf.c:159
#: src/conf.c:160
#, c-format
msgid "\"yes\" or \"no\" expected for configuration variable %s in %s line %d"
msgstr ""
"\"ja\" of \"nee\" verwacht voor configuratievariabele %s in %s regel %d"
#: src/conf.c:175
#: src/conf.c:176
#, c-format
msgid "Integer expected for configuration variable %s in %s line %d"
msgstr "Geheel getal verwacht voor configuratievariabele %s in %s regel %d"
#: src/conf.c:209
#: src/conf.c:210
#, c-format
msgid ""
"Hostname or IP address expected for configuration variable %s in %s line %d"
msgstr ""
"Hostnaam of IP adres verwacht voor configuratievariabele %s in %s regel %d"
#: src/conf.c:225
#: src/conf.c:226
#, c-format
msgid "Subnet expected for configuration variable %s in %s line %d"
msgstr "Subnet verwacht voor configuratievariabele %s in %s regel %d"
#: src/conf.c:236
#: src/conf.c:237
#, c-format
msgid ""
"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 %"
"s in %s regel %d"
#: src/conf.c:336
#: src/conf.c:337
#, c-format
msgid "Cannot open config file %s: %s"
msgstr "Kan configuratie bestand %s niet openen: %s"
#: src/conf.c:390
#: src/conf.c:391
#, c-format
msgid "No value for variable `%s' on line %d while reading config file %s"
msgstr ""
"Geen waarde voor variabele `%s' op regel %d tijdens het lezen van "
"configuratie bestand %s"
#: src/conf.c:421
#: src/conf.c:422
#, c-format
msgid "Failed to read `%s': %s"
msgstr "Lezen van `%s' mislukte: %s"
#: src/conf.c:443
#: src/conf.c:444
#, c-format
msgid "Please enter a file to save %s to [%s]: "
msgstr "Geef een bestand om de %s naar de schrijven [%s]: "
#: src/conf.c:450
#: src/conf.c:451
#, c-format
msgid "Error while reading stdin: %s\n"
msgstr "Fout tijdens lezen van standaardinvoer: %s\n"
#: src/conf.c:482
#: src/conf.c:483
#, c-format
msgid "Error opening file `%s': %s\n"
msgstr "Fout bij het openen van het bestand `%s': %s\n"
@ -96,44 +96,58 @@ msgstr "Verbindingen:"
#: src/connection.c:124
#, c-format
msgid " %s at %s options %lx socket %d status %04x"
msgstr " %s op %s opties %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 outbuf %d/%d/%d"
#: src/connection.c:128
#: src/connection.c:129
msgid "End of connections."
msgstr "Einde van verbindingen."
#: src/meta.c:45
#: src/meta.c:44
#, c-format
msgid "Sending %d bytes of metadata to %s (%s)"
msgstr "Verzenden van %d bytes metadata naar %s (%s)"
#: src/meta.c:51
#: src/meta.c:66
#, c-format
msgid "Error while encrypting metadata to %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
msgid "Connection closed by %s (%s)"
msgstr "Verbinding beëindigd door %s (%s)"
#: src/meta.c:69
#: src/meta.c:99
#, c-format
msgid "Sending meta data to %s (%s) failed: %s"
msgstr "Fout tijdens verzenden metadata naar %s (%s): %s"
msgid "Flushing %d bytes to %s (%s) would block"
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
msgid "Metadata socket read error for %s (%s): %s"
msgstr "Fout op metadata socket voor %s (%s) tijdens lezen: %s"
#: src/meta.c:137
#: src/meta.c:176
#, c-format
msgid "Error while decrypting metadata from %s (%s): %s"
msgstr "Fout tijdens ontsleutelen van metadata van %s (%s): %s"
#: src/meta.c:190
#: src/meta.c:229
#, c-format
msgid "Metadata read buffer overflow for %s (%s)"
msgstr "Metadata leesbuffer overloop voor %s (%s)"
@ -147,130 +161,135 @@ msgstr "Verwijderen onbereikbare nodes"
msgid "Purging node %s (%s)"
msgstr "Verwijdering node %s (%s)"
#: src/net.c:170
#: src/net.c:173
#, c-format
msgid "Closing connection with %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
#, 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..."
msgstr ""
"Oude connection_t voor %s (%s) status %04x nog steeds aanwezig, wordt "
"verwijderd..."
#: src/net.c:249
#: src/net.c:258
#, c-format
msgid "Timeout from %s (%s) during authentication"
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
msgid "Error while connecting to %s (%s): %s"
msgstr "Fout tijdens schrijven naar %s (%s): %s"
#: src/net.c:353
#: src/net.c:383
#, c-format
msgid "Error while waiting for input: %s"
msgstr "Fout tijdens wachten op invoer: %s"
#: src/net.c:384
#: src/net.c:414
msgid "Regenerating symmetric key"
msgstr "Hergenereren symmetrische sleutel"
#: src/net.c:401
#: src/net.c:431
msgid "Flushing event queue"
msgstr "Legen taakrij"
#: src/net.c:425
#: src/net.c:455
msgid "Unable to reread configuration file, exitting."
msgstr "Kan configuratiebestand niet herlezen, beëindigen."
#: src/net_packet.c:75
#: src/net_packet.c:80
#, c-format
msgid "No response to MTU probes from %s (%s)"
msgstr "Geen antwoord van %s (%s) op MTU probes"
#: src/net_packet.c:82
#: src/net_packet.c:87
#, c-format
msgid "Fixing MTU of %s (%s) to %d after %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
msgid "Sending MTU probe length %d to %s (%s)"
msgstr "Verzending MTU probe lengte %d naar %s (%s)"
#: src/net_packet.c:107
#: src/net_packet.c:112
#, c-format
msgid "Got MTU probe length %d from %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
msgid "Received packet of %d bytes from %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
msgid "Got too short packet from %s (%s)"
msgstr "Kreeg te kort pakket van %s (%s)"
#: src/net_packet.c:198
#: src/net_packet.c:203
#, c-format
msgid "Got unauthenticated packet from %s (%s)"
msgstr "Kreeg niet-geauthenticeerd pakket van %s (%s)"
#: src/net_packet.c:213
#: src/net_packet.c:218
#, c-format
msgid "Error decrypting packet from %s (%s): %s"
msgstr "Fout tijdens ontsleutelen pakket van %s (%s): %s"
#: src/net_packet.c:229
#: src/net_packet.c:234
#, c-format
msgid "Lost %d packets from %s (%s)"
msgstr "%d pakketten van %s (%s) verloren"
#: src/net_packet.c:235
#: src/net_packet.c:240
#, c-format
msgid "Got late or replayed packet from %s (%s), seqno %d, last received %d"
msgstr ""
"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
msgid "Error while uncompressing packet from %s (%s)"
msgstr "Fout tijdens decomprimeren pakket van %s (%s)"
#: src/net_packet.c:307
#: src/net_packet.c:313
#, c-format
msgid "No valid key known yet for %s (%s), queueing packet"
msgstr ""
"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
msgid "Error while compressing packet to %s (%s)"
msgstr "Fout tijdens comprimeren pakket naar %s (%s)"
#: src/net_packet.c:358
#: src/net_packet.c:364
#, c-format
msgid "Error while encrypting packet to %s (%s): %s"
msgstr "Fout tijdens versleutelen pakket naar %s (%s): %s"
#: src/net_packet.c:390
#: src/net_packet.c:396
#, c-format
msgid "Setting outgoing packet priority to %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_socket.c:124 src/net_socket.c:153 src/tincd.c:434 src/tincd.c:468
#: src/process.c:198 src/process.c:231 src/process.c:428 src/bsd/device.c:93
#: src/net_packet.c:398 src/net_setup.c:478 src/net_socket.c:129
#: src/net_socket.c:158 src/tincd.c:440 src/tincd.c:477 src/process.c:198
#: 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/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
@ -281,42 +300,42 @@ msgstr "Instellen prioriteit uitgaand pakket op %d"
msgid "System call `%s' failed: %s"
msgstr "Systeemaanroep `%s' mislukte: %s"
#: src/net_packet.c:403
#: src/net_packet.c:409
#, c-format
msgid "Error sending packet to %s (%s): %s"
msgstr "Fout tijdens verzenden pakket naar %s (%s): %s"
#: src/net_packet.c:426
#: src/net_packet.c:432
#, c-format
msgid "Sending packet of %d bytes to %s (%s)"
msgstr "Verzending pakket van %d bytes naar %s (%s)"
#: src/net_packet.c:430
#: src/net_packet.c:436
#, c-format
msgid "Node %s (%s) is not reachable"
msgstr "Node %s (%s) is niet bereikbaar"
#: src/net_packet.c:438
#: src/net_packet.c:444
#, c-format
msgid "Sending packet to %s via %s (%s)"
msgstr "Verzending pakket naar %s via %s (%s)"
#: src/net_packet.c:457
#: src/net_packet.c:463
#, c-format
msgid "Broadcasting packet of %d bytes from %s (%s)"
msgstr "Verspreiding pakket van %d bytes van %s (%s)"
#: src/net_packet.c:480
#: src/net_packet.c:483
#, c-format
msgid "Flushing queue for %s (%s)"
msgstr "Legen van wachtrij voor %s (%s)"
#: src/net_packet.c:502
#: src/net_packet.c:505
#, c-format
msgid "Receiving packet failed: %s"
msgstr "Ontvangst pakket mislukt: %s"
#: src/net_packet.c:512
#: src/net_packet.c:515
#, c-format
msgid "Received UDP packet from unknown source %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!"
msgstr "Kan host configuratie bestand voor mijzelf niet openen!"
#: src/net_setup.c:307
#: src/net_setup.c:305
msgid "Invalid routing mode!"
msgstr "Ongeldige routing modus!"
#: src/net_setup.c:318
#: src/net_setup.c:316
msgid "PriorityInheritance not supported on this platform"
msgstr "PriorityInheritance wordt niet ondersteund op dit platform"
#: src/net_setup.c:326
#: src/net_setup.c:324
msgid "Bogus maximum timeout!"
msgstr "Onzinnige maximum timeout!"
#: src/net_setup.c:340
#: src/net_setup.c:338
msgid "Invalid address family!"
msgstr "Ongeldige adresfamilie!"
#: src/net_setup.c:358
#: src/net_setup.c:356
msgid "Unrecognized 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
msgid "Error during initialisation of cipher for %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!"
msgstr "Onbekend digest type!"
#: src/net_setup.c:413
#: src/net_setup.c:411
msgid "MAC length exceeds size of digest!"
msgstr "MAC lengte is groter dan dat van digest!"
#: src/net_setup.c:416
#: src/net_setup.c:414
msgid "Bogus MAC length!"
msgstr "Onzinnige MAC lengte!"
#: src/net_setup.c:430
#: src/net_setup.c:428
msgid "Bogus compression level!"
msgstr "Onzinnig compressieniveau!"
#: src/net_setup.c:503
#: src/net_setup.c:500
#, c-format
msgid "Listening on %s"
msgstr "Luisterend op %s"
#: src/net_setup.c:514
#: src/net_setup.c:511
msgid "Ready"
msgstr "Gereed"
#: src/net_setup.c:516
#: src/net_setup.c:513
msgid "Unable to create any listening socket!"
msgstr "Kon geen enkele luistersocket aanmaken!"
#: src/net_socket.c:63
#, c-format
msgid "fcntl for %s: %s"
msgstr "fcntl voor %s: %s"
#: src/net_socket.c:90
#, c-format
msgid "Creating metasocket failed: %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
msgid "Can't bind to interface %s: %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"
msgstr "BindToInterface wordt niet ondersteund op dit platform"
#: src/net_socket.c:116
#: src/net_socket.c:121
#, c-format
msgid "Can't bind to %s/tcp: %s"
msgstr "Kan niet aan %s/tcp binden: %s"
#: src/net_socket.c:143
#: src/net_socket.c:148
#, c-format
msgid "Creating UDP socket failed: %s"
msgstr "Aanmaak UDP socket mislukte: %s"
#: src/net_socket.c:207
#: src/net_socket.c:212
#, c-format
msgid "Can't bind to %s/udp: %s"
msgstr "Kan niet aan %s/udp binden: %s"
#: src/net_socket.c:234
#: src/net_socket.c:239
#, c-format
msgid "Trying to re-establish outgoing connection in %d seconds"
msgstr "Poging tot herstellen van uitgaande verbinding over %d seconden"
#: src/net_socket.c:242
#: src/net_socket.c:247
#, c-format
msgid "Connected to %s (%s)"
msgstr "Verbonden met %s (%s)"
#: src/net_socket.c:249 src/net_socket.c:333 src/net_socket.c:445
#, c-format
msgid "fcntl for %s: %s"
msgstr "fcntl voor %s: %s"
#: src/net_socket.c:269
#: src/net_socket.c:266
#, c-format
msgid "Could not set up a meta connection to %s"
msgstr "Kon geen metaverbinding aangaan met %s"
#: src/net_socket.c:303
#: src/net_socket.c:300
#, c-format
msgid "Trying to connect to %s (%s)"
msgstr "Poging tot verbinden met %s (%s)"
#: src/net_socket.c:309
#: src/net_socket.c:306
#, c-format
msgid "Creating socket for %s failed: %s"
msgstr "Aanmaken socket voor %s mislukt: %s"
#: src/net_socket.c:349
#: src/net_socket.c:328
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
#: src/net_socket.c:370
#: src/net_socket.c:349
#, c-format
msgid "Already connected to %s"
msgstr "Reeds verbonden met %s"
#: src/net_socket.c:389
#: src/net_socket.c:368
#, c-format
msgid "No address specified for %s"
msgstr "Geen adres gespecificeerd voor %s"
#: src/net_socket.c:419
#: src/net_socket.c:399
#, c-format
msgid "Accepting a new connection failed: %s"
msgstr "Aanname van nieuwe verbinding is mislukt: %s"
#: src/net_socket.c:438
#: src/net_socket.c:418
#, c-format
msgid "Connection from %s"
msgstr "Verbinding van %s"
#: src/net_socket.c:471
#: src/net_socket.c:443
#, c-format
msgid "Invalid name for outgoing connection in %s line %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"
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:408 src/protocol_auth.c:534 src/protocol_edge.c:73
#: src/protocol_auth.c:58 src/protocol_auth.c:214 src/protocol_auth.c:345
#: 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_key.c:172 src/protocol_misc.c:54 src/protocol_misc.c:83
#: src/protocol_misc.c:171 src/protocol_subnet.c:58 src/protocol_subnet.c:170
#: src/protocol_key.c:173 src/protocol_misc.c:56 src/protocol_misc.c:85
#: src/protocol_misc.c:176 src/protocol_subnet.c:58 src/protocol_subnet.c:170
#, c-format
msgid "Got bad %s from %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)"
msgstr "Ander %s heeft onbekende identiteit (%s)"
#: src/protocol_auth.c:156
#: src/protocol_auth.c:158
#, c-format
msgid "Generated random meta key (unencrypted): %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
msgid "Error during encryption of meta key for %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:438
#: src/protocol_auth.c:224 src/protocol_auth.c:355 src/protocol_auth.c:420
#: src/protocol_auth.c:442
#, c-format
msgid "Possible intruder %s (%s): %s"
msgstr "Mogelijke indringer %s (%s): %s"
#: src/protocol_auth.c:249
#: src/protocol_auth.c:251
#, c-format
msgid "Received random meta key (unencrypted): %s"
msgstr "Ontving willekeurige meta key (niet versleuteld): %s"
#: src/protocol_auth.c:260
#: src/protocol_auth.c:262
#, c-format
msgid "%s (%s) uses unknown cipher!"
msgstr "%s (%s) gebruikt onbekende cipher!"
#: src/protocol_auth.c:268
#: src/protocol_auth.c:270
#, c-format
msgid "Error during initialisation of cipher from %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
msgid "Node %s (%s) uses unknown digest!"
msgstr "Node %s (%s) gebruikt onbekende digest!"
#: src/protocol_auth.c:289
#: src/protocol_auth.c:291
#, c-format
msgid "%s (%s) uses bogus MAC length!"
msgstr "%s (%s) gebruikt onzinnige MAC lengte!"
#: src/protocol_auth.c:384
#: src/protocol_auth.c:388
#, c-format
msgid "Error during calculation of response for %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"
msgstr "verkeerde lengte antwoord op uitdaging"
#: src/protocol_auth.c:430
#: src/protocol_auth.c:434
#, c-format
msgid "Error during calculation of response from %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"
msgstr "verkeerd antwoord op uitdaging"
#: src/protocol_auth.c:444
#: src/protocol_auth.c:448
#, c-format
msgid "Expected challenge reply: %s"
msgstr "Verwachtte antwoord op uitdaging: %s"
#: src/protocol_auth.c:550
#: src/protocol_auth.c:554
#, c-format
msgid "Established a second connection with %s (%s), closing old connection"
msgstr "Tweede verbinding met %s (%s) gemaakt, oude verbinding wordt gesloten"
#: src/protocol_auth.c:573
#: src/protocol_auth.c:577
#, c-format
msgid "Connection with %s (%s) activated"
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"
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
msgid ""
"Got %s from %s (%s) origin %s which does not exist in our connection list"
msgstr ""
"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
msgid ""
"Got %s from %s (%s) destination %s which does not exist in our connection "
@ -772,37 +791,37 @@ msgid ""
msgstr ""
"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
msgid "Node %s (%s) uses unknown cipher!"
msgstr "Node %s (%s) gebruikt onbekende cipher!"
#: src/protocol_key.c:228
#: src/protocol_key.c:229
#, c-format
msgid "Node %s (%s) uses wrong keylength!"
msgstr "Node %s (%s) gebruikt verkeerde lengte sleutel!"
#: src/protocol_key.c:248
#: src/protocol_key.c:249
#, c-format
msgid "Node %s (%s) uses bogus MAC length!"
msgstr "Node %s (%s) gebruikt onzinnige MAC lengte!"
#: src/protocol_key.c:257
#: src/protocol_key.c:258
#, c-format
msgid "Node %s (%s) uses bogus compression level!"
msgstr "Node %s (%s) gebruikt onzinnig compressieniveau!"
#: src/protocol_key.c:265
#: src/protocol_key.c:266
#, c-format
msgid "Error during initialisation of key from %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
msgid "Status message from %s (%s): %d: %s"
msgstr "Statusmelding van %s (%s): %d: %s"
#: src/protocol_misc.c:88
#: src/protocol_misc.c:90
#, c-format
msgid "Error message from %s (%s): %d: %s"
msgstr "Foutmelding van %s (%s): %d: %s"
@ -850,12 +869,12 @@ msgstr " %s eigenaar %s"
msgid "End of subnet list."
msgstr "Einde van subnet lijst."
#: src/tincd.c:108
#: src/tincd.c:114
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Probeer `%s --help' voor meer informatie.\n"
#: src/tincd.c:111
#: src/tincd.c:117
#, c-format
msgid ""
"Usage: %s [option]...\n"
@ -864,7 +883,7 @@ msgstr ""
"Gebruik: %s [optie]...\n"
"\n"
#: src/tincd.c:112
#: src/tincd.c:118
#, c-format
msgid ""
" -c, --config=DIR Read configuration options from DIR.\n"
@ -894,14 +913,14 @@ msgstr ""
" --version Geef versie informatie en beëindig.\n"
"\n"
#: src/tincd.c:123
#: src/tincd.c:129
#, c-format
msgid "Report bugs to tinc@tinc-vpn.org.\n"
msgstr ""
"Meld fouten in het programma aan tinc@tinc-vpn.org;\n"
"Meld fouten in de vertaling aan vertaling@nl.linux.org.\n"
#: src/tincd.c:179
#: src/tincd.c:185
#, c-format
msgid ""
"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, "
"KILL, USR1, USR2, WINCH, INT of ALRM.\n"
#: src/tincd.c:201
#: src/tincd.c:207
#, c-format
msgid ""
"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 "
"512.\n"
#: src/tincd.c:294
#: src/tincd.c:300
#, c-format
msgid "Generating %d bits keys:\n"
msgstr "Bezig met genereren van een %d bits sleutel:\n"
#: src/tincd.c:298
#: src/tincd.c:304
#, c-format
msgid "Error during key generation!\n"
msgstr "Fout tijdens genereren sleutel!\n"
#: src/tincd.c:301
#: src/tincd.c:307
#, c-format
msgid "Done.\n"
msgstr "Klaar.\n"
#: src/tincd.c:304
#: src/tincd.c:310
msgid "private RSA key"
msgstr "geheime RSA sleutel"
#: src/tincd.c:315 src/tincd.c:334
#: src/tincd.c:321 src/tincd.c:340
#, c-format
msgid ""
"Appending key to existing contents.\n"
@ -946,31 +965,31 @@ msgstr ""
"Sleutel wordt toegevoegd aan bestaande inhoud.\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"
msgstr "openbare RSA sleutel"
#: src/tincd.c:387
#: src/tincd.c:393
msgid "Both netname and configuration directory given, using the latter..."
msgstr ""
"Zowel netnaam als configuratiemap zijn gegeven, laatste wordt gebruikt..."
#: src/tincd.c:408
#: src/tincd.c:414
#, c-format
msgid "%s version %s (built %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
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"
"\n"
"tinc comes with ABSOLUTELY NO WARRANTY. This is free software,\n"
"and you are welcome to redistribute it under certain conditions;\n"
"see the file COPYING for details.\n"
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"
"\n"
"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"
"zie het bestand COPYING voor details.\n"
#: src/tincd.c:438
#: src/tincd.c:444
msgid "mlockall() not supported on this platform!"
msgstr "mlockall() wordt niet ondersteund op dit platform!"
#: src/tincd.c:462
#: src/tincd.c:471
msgid "Error initializing LZO compressor!"
msgstr "Fout tijdens initialiseren LZO compressor!"
#: src/tincd.c:503
#: src/tincd.c:512
msgid "Terminating"
msgstr "Beëindigen"
@ -1193,23 +1212,23 @@ msgstr "Nieuw MAC adres %hx:%hx:%hx:%hx:%hx:%hx geleerd"
msgid "Subnet %s expired"
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
msgid "Packet looping back to %s (%s)!"
msgstr "Pakket komt terug naar %s (%s)!"
#: src/route.c:283
#: src/route.c:289
#, 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 ""
"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
msgid "Fragmenting packet of %d bytes to %s (%s)"
msgstr "Fragmentatie pakket van %d bytes naar %s (%s)"
#: src/route.c:325
#: src/route.c:333
#, c-format
msgid ""
"Cannot route packet from %s (%s): unknown IPv4 destination address %d.%d.%d.%"
@ -1217,12 +1236,12 @@ msgid ""
msgstr ""
"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
msgid "Packet for %s (%s) length %d larger than MTU %d"
msgstr "Packet voor %s (%s) lengte %d groter dan MTU %d"
#: src/route.c:463
#: src/route.c:473
#, c-format
msgid ""
"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:%"
"hx:%hx:%hx:%hx:%hx"
#: src/route.c:521
#: src/route.c:531
#, c-format
msgid "Got neighbor solicitation request from %s (%s) while in router mode!"
msgstr ""
"Kreeg neighbor solicitation request van %s (%s) terwijl we in router mode "
"werken!"
#: src/route.c:540
#: src/route.c:550
msgid ""
"Cannot route packet: received unknown type neighbor solicitation request"
msgstr ""
"Kan pakket niet routeren: ontvangst van onbekend type neighbor solicitation "
"verzoek"
#: src/route.c:559
#: src/route.c:569
msgid "Cannot route packet: checksum error for neighbor solicitation request"
msgstr ""
"Kan pakket niet routeren: checksum fout voor neighbor solicitation verzoek"
#: src/route.c:568
#: src/route.c:578
#, c-format
msgid ""
"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 %"
"hx:%hx:%hx:%hx:%hx:%hx:%hx:%hx"
#: src/route.c:655
#: src/route.c:665
#, c-format
msgid "Got ARP request from %s (%s) while in router mode!"
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"
msgstr "Kan pakket niet routeren: ontvangst van onbekend type ARP verzoek"
#: src/route.c:681
#: src/route.c:691
#, c-format
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"
#: src/route.c:737
#: src/route.c:747
#, c-format
msgid "Cannot route packet from %s (%s): unknown type %hx"
msgstr "Kan pakket van %s (%s) niet routeren: onbekend type %hx"
#: src/node.c:181
#: src/node.c:183
msgid "Nodes:"
msgstr "Nodes:"
#: src/node.c:185
#: src/node.c:187
#, c-format
msgid ""
" %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 %"
"04x nexthop %s via %s pmtu %d (min %d max %d)"
#: src/node.c:192
#: src/node.c:194
msgid "End of nodes."
msgstr "Einde van nodes."
@ -1308,12 +1327,12 @@ msgstr " %s naar %s op %s opties %lx gewicht %d"
msgid "End of edges."
msgstr "Einde van edges."
#: src/graph.c:261
#: src/graph.c:264
#, c-format
msgid "Node %s (%s) became reachable"
msgstr "Node %s (%s) werd bereikbaar"
#: src/graph.c:265
#: src/graph.c:268
#, c-format
msgid "Node %s (%s) became unreachable"
msgstr "Node %s (%s) is niet meer bereikbaar"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -20,60 +20,60 @@ msgstr ""
msgid "(unable to format errormessage)"
msgstr ""
#: src/conf.c:159
#: src/conf.c:160
#, c-format
msgid "\"yes\" or \"no\" expected for configuration variable %s in %s line %d"
msgstr ""
#: src/conf.c:175
#: src/conf.c:176
#, c-format
msgid "Integer expected for configuration variable %s in %s line %d"
msgstr ""
#: src/conf.c:209
#: src/conf.c:210
#, c-format
msgid ""
"Hostname or IP address expected for configuration variable %s in %s line %d"
msgstr ""
#: src/conf.c:225
#: src/conf.c:226
#, c-format
msgid "Subnet expected for configuration variable %s in %s line %d"
msgstr ""
#: src/conf.c:236
#: src/conf.c:237
#, c-format
msgid ""
"Network address and prefix length do not match for configuration variable %s "
"in %s line %d"
msgstr ""
#: src/conf.c:336
#: src/conf.c:337
#, c-format
msgid "Cannot open config file %s: %s"
msgstr ""
#: src/conf.c:390
#: src/conf.c:391
#, c-format
msgid "No value for variable `%s' on line %d while reading config file %s"
msgstr ""
#: src/conf.c:421
#: src/conf.c:422
#, c-format
msgid "Failed to read `%s': %s"
msgstr ""
#: src/conf.c:443
#: src/conf.c:444
#, c-format
msgid "Please enter a file to save %s to [%s]: "
msgstr ""
#: src/conf.c:450
#: src/conf.c:451
#, c-format
msgid "Error while reading stdin: %s\n"
msgstr ""
#: src/conf.c:482
#: src/conf.c:483
#, c-format
msgid "Error opening file `%s': %s\n"
msgstr ""
@ -92,44 +92,58 @@ msgstr ""
#: src/connection.c:124
#, 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 ""
#: src/connection.c:128
#: src/connection.c:129
msgid "End of connections."
msgstr ""
#: src/meta.c:45
#: src/meta.c:44
#, c-format
msgid "Sending %d bytes of metadata to %s (%s)"
msgstr ""
#: src/meta.c:51
#: src/meta.c:66
#, c-format
msgid "Error while encrypting metadata to %s (%s): %s"
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
msgid "Connection closed by %s (%s)"
msgstr ""
#: src/meta.c:69
#: src/meta.c:99
#, c-format
msgid "Sending meta data to %s (%s) failed: %s"
msgid "Flushing %d bytes to %s (%s) would block"
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
msgid "Metadata socket read error for %s (%s): %s"
msgstr ""
#: src/meta.c:137
#: src/meta.c:176
#, c-format
msgid "Error while decrypting metadata from %s (%s): %s"
msgstr ""
#: src/meta.c:190
#: src/meta.c:229
#, c-format
msgid "Metadata read buffer overflow for %s (%s)"
msgstr ""
@ -143,126 +157,131 @@ msgstr ""
msgid "Purging node %s (%s)"
msgstr ""
#: src/net.c:170
#: src/net.c:173
#, c-format
msgid "Closing connection with %s (%s)"
msgstr ""
#: src/net.c:235
#: src/net.c:244
#, c-format
msgid "%s (%s) didn't respond to PING"
msgid "%s (%s) didn't respond to PING in %ld seconds"
msgstr ""
#: src/net.c:244
#: src/net.c:253
#, c-format
msgid "Old connection_t for %s (%s) status %04x still lingering, deleting..."
msgstr ""
#: src/net.c:249
#: src/net.c:258
#, c-format
msgid "Timeout from %s (%s) during authentication"
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
msgid "Error while connecting to %s (%s): %s"
msgstr ""
#: src/net.c:353
#: src/net.c:383
#, c-format
msgid "Error while waiting for input: %s"
msgstr ""
#: src/net.c:384
#: src/net.c:414
msgid "Regenerating symmetric key"
msgstr ""
#: src/net.c:401
#: src/net.c:431
msgid "Flushing event queue"
msgstr ""
#: src/net.c:425
#: src/net.c:455
msgid "Unable to reread configuration file, exitting."
msgstr ""
#: src/net_packet.c:75
#: src/net_packet.c:80
#, c-format
msgid "No response to MTU probes from %s (%s)"
msgstr ""
#: src/net_packet.c:82
#: src/net_packet.c:87
#, c-format
msgid "Fixing MTU of %s (%s) to %d after %d probes"
msgstr ""
#: src/net_packet.c:94
#: src/net_packet.c:99
#, c-format
msgid "Sending MTU probe length %d to %s (%s)"
msgstr ""
#: src/net_packet.c:107
#: src/net_packet.c:112
#, c-format
msgid "Got MTU probe length %d from %s (%s)"
msgstr ""
#: src/net_packet.c:164
#: src/net_packet.c:169
#, c-format
msgid "Received packet of %d bytes from %s (%s)"
msgstr ""
#: src/net_packet.c:185 src/route.c:92
#: src/net_packet.c:190 src/route.c:92
#, c-format
msgid "Got too short packet from %s (%s)"
msgstr ""
#: src/net_packet.c:198
#: src/net_packet.c:203
#, c-format
msgid "Got unauthenticated packet from %s (%s)"
msgstr ""
#: src/net_packet.c:213
#: src/net_packet.c:218
#, c-format
msgid "Error decrypting packet from %s (%s): %s"
msgstr ""
#: src/net_packet.c:229
#: src/net_packet.c:234
#, c-format
msgid "Lost %d packets from %s (%s)"
msgstr ""
#: src/net_packet.c:235
#: src/net_packet.c:240
#, c-format
msgid "Got late or replayed packet from %s (%s), seqno %d, last received %d"
msgstr ""
#: src/net_packet.c:259
#: src/net_packet.c:264
#, c-format
msgid "Error while uncompressing packet from %s (%s)"
msgstr ""
#: src/net_packet.c:307
#: src/net_packet.c:313
#, c-format
msgid "No valid key known yet for %s (%s), queueing packet"
msgstr ""
#: src/net_packet.c:336
#: src/net_packet.c:342
#, c-format
msgid "Error while compressing packet to %s (%s)"
msgstr ""
#: src/net_packet.c:358
#: src/net_packet.c:364
#, c-format
msgid "Error while encrypting packet to %s (%s): %s"
msgstr ""
#: src/net_packet.c:390
#: src/net_packet.c:396
#, c-format
msgid "Setting outgoing packet priority to %d"
msgstr ""
#: src/net_packet.c:392 src/net_setup.c:481 src/net_socket.c:73
#: src/net_socket.c:124 src/net_socket.c:153 src/tincd.c:434 src/tincd.c:468
#: src/process.c:198 src/process.c:231 src/process.c:428 src/bsd/device.c:93
#: src/net_packet.c:398 src/net_setup.c:478 src/net_socket.c:129
#: src/net_socket.c:158 src/tincd.c:440 src/tincd.c:477 src/process.c:198
#: 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/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
@ -273,42 +292,42 @@ msgstr ""
msgid "System call `%s' failed: %s"
msgstr ""
#: src/net_packet.c:403
#: src/net_packet.c:409
#, c-format
msgid "Error sending packet to %s (%s): %s"
msgstr ""
#: src/net_packet.c:426
#: src/net_packet.c:432
#, c-format
msgid "Sending packet of %d bytes to %s (%s)"
msgstr ""
#: src/net_packet.c:430
#: src/net_packet.c:436
#, c-format
msgid "Node %s (%s) is not reachable"
msgstr ""
#: src/net_packet.c:438
#: src/net_packet.c:444
#, c-format
msgid "Sending packet to %s via %s (%s)"
msgstr ""
#: src/net_packet.c:457
#: src/net_packet.c:463
#, c-format
msgid "Broadcasting packet of %d bytes from %s (%s)"
msgstr ""
#: src/net_packet.c:480
#: src/net_packet.c:483
#, c-format
msgid "Flushing queue for %s (%s)"
msgstr ""
#: src/net_packet.c:502
#: src/net_packet.c:505
#, c-format
msgid "Receiving packet failed: %s"
msgstr ""
#: src/net_packet.c:512
#: src/net_packet.c:515
#, c-format
msgid "Received UDP packet from unknown source %s"
msgstr ""
@ -368,145 +387,145 @@ msgstr ""
msgid "Cannot open host configuration file for myself!"
msgstr ""
#: src/net_setup.c:307
#: src/net_setup.c:305
msgid "Invalid routing mode!"
msgstr ""
#: src/net_setup.c:318
#: src/net_setup.c:316
msgid "PriorityInheritance not supported on this platform"
msgstr ""
#: src/net_setup.c:326
#: src/net_setup.c:324
msgid "Bogus maximum timeout!"
msgstr ""
#: src/net_setup.c:340
#: src/net_setup.c:338
msgid "Invalid address family!"
msgstr ""
#: src/net_setup.c:358
#: src/net_setup.c:356
msgid "Unrecognized cipher type!"
msgstr ""
#: src/net_setup.c:383 src/protocol_auth.c:192
#: src/net_setup.c:381 src/protocol_auth.c:194
#, c-format
msgid "Error during initialisation of cipher for %s (%s): %s"
msgstr ""
#: src/net_setup.c:400
#: src/net_setup.c:398
msgid "Unrecognized digest type!"
msgstr ""
#: src/net_setup.c:413
#: src/net_setup.c:411
msgid "MAC length exceeds size of digest!"
msgstr ""
#: src/net_setup.c:416
#: src/net_setup.c:414
msgid "Bogus MAC length!"
msgstr ""
#: src/net_setup.c:430
#: src/net_setup.c:428
msgid "Bogus compression level!"
msgstr ""
#: src/net_setup.c:503
#: src/net_setup.c:500
#, c-format
msgid "Listening on %s"
msgstr ""
#: src/net_setup.c:514
#: src/net_setup.c:511
msgid "Ready"
msgstr ""
#: src/net_setup.c:516
#: src/net_setup.c:513
msgid "Unable to create any listening socket!"
msgstr ""
#: src/net_socket.c:63
#, c-format
msgid "fcntl for %s: %s"
msgstr ""
#: src/net_socket.c:90
#, c-format
msgid "Creating metasocket failed: %s"
msgstr ""
#: src/net_socket.c:104 src/net_socket.c:196
#: src/net_socket.c:109 src/net_socket.c:201
#, c-format
msgid "Can't bind to interface %s: %s"
msgstr ""
#: src/net_socket.c:109
#: src/net_socket.c:114
msgid "BindToInterface not supported on this platform"
msgstr ""
#: src/net_socket.c:116
#: src/net_socket.c:121
#, c-format
msgid "Can't bind to %s/tcp: %s"
msgstr ""
#: src/net_socket.c:143
#: src/net_socket.c:148
#, c-format
msgid "Creating UDP socket failed: %s"
msgstr ""
#: src/net_socket.c:207
#: src/net_socket.c:212
#, c-format
msgid "Can't bind to %s/udp: %s"
msgstr ""
#: src/net_socket.c:234
#: src/net_socket.c:239
#, c-format
msgid "Trying to re-establish outgoing connection in %d seconds"
msgstr ""
#: src/net_socket.c:242
#: src/net_socket.c:247
#, c-format
msgid "Connected to %s (%s)"
msgstr ""
#: src/net_socket.c:249 src/net_socket.c:333 src/net_socket.c:445
#, c-format
msgid "fcntl for %s: %s"
msgstr ""
#: src/net_socket.c:269
#: src/net_socket.c:266
#, c-format
msgid "Could not set up a meta connection to %s"
msgstr ""
#: src/net_socket.c:303
#: src/net_socket.c:300
#, c-format
msgid "Trying to connect to %s (%s)"
msgstr ""
#: src/net_socket.c:309
#: src/net_socket.c:306
#, c-format
msgid "Creating socket for %s failed: %s"
msgstr ""
#: src/net_socket.c:349
#: src/net_socket.c:328
#, c-format
msgid "%s: %s"
msgstr ""
#: src/net_socket.c:370
#: src/net_socket.c:349
#, c-format
msgid "Already connected to %s"
msgstr ""
#: src/net_socket.c:389
#: src/net_socket.c:368
#, c-format
msgid "No address specified for %s"
msgstr ""
#: src/net_socket.c:419
#: src/net_socket.c:399
#, c-format
msgid "Accepting a new connection failed: %s"
msgstr ""
#: src/net_socket.c:438
#: src/net_socket.c:418
#, c-format
msgid "Connection from %s"
msgstr ""
#: src/net_socket.c:471
#: src/net_socket.c:443
#, c-format
msgid "Invalid name for outgoing connection in %s line %d"
msgstr ""
@ -605,11 +624,11 @@ msgstr ""
msgid "Aging past requests: deleted %d, left %d"
msgstr ""
#: src/protocol_auth.c:58 src/protocol_auth.c:212 src/protocol_auth.c:341
#: src/protocol_auth.c:408 src/protocol_auth.c:534 src/protocol_edge.c:73
#: src/protocol_auth.c:58 src/protocol_auth.c:214 src/protocol_auth.c:345
#: 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_key.c:172 src/protocol_misc.c:54 src/protocol_misc.c:83
#: src/protocol_misc.c:171 src/protocol_subnet.c:58 src/protocol_subnet.c:170
#: src/protocol_key.c:173 src/protocol_misc.c:56 src/protocol_misc.c:85
#: src/protocol_misc.c:176 src/protocol_subnet.c:58 src/protocol_subnet.c:170
#, c-format
msgid "Got bad %s from %s (%s)"
msgstr ""
@ -637,76 +656,76 @@ msgstr ""
msgid "Peer %s had unknown identity (%s)"
msgstr ""
#: src/protocol_auth.c:156
#: src/protocol_auth.c:158
#, c-format
msgid "Generated random meta key (unencrypted): %s"
msgstr ""
#: src/protocol_auth.c:168 src/protocol_auth.c:241
#: src/protocol_auth.c:170 src/protocol_auth.c:243
#, c-format
msgid "Error during encryption of meta key for %s (%s)"
msgstr ""
#: src/protocol_auth.c:222 src/protocol_auth.c:351 src/protocol_auth.c:416
#: src/protocol_auth.c:438
#: src/protocol_auth.c:224 src/protocol_auth.c:355 src/protocol_auth.c:420
#: src/protocol_auth.c:442
#, c-format
msgid "Possible intruder %s (%s): %s"
msgstr ""
#: src/protocol_auth.c:249
#: src/protocol_auth.c:251
#, c-format
msgid "Received random meta key (unencrypted): %s"
msgstr ""
#: src/protocol_auth.c:260
#: src/protocol_auth.c:262
#, c-format
msgid "%s (%s) uses unknown cipher!"
msgstr ""
#: src/protocol_auth.c:268
#: src/protocol_auth.c:270
#, c-format
msgid "Error during initialisation of cipher from %s (%s): %s"
msgstr ""
#: src/protocol_auth.c:284 src/protocol_key.c:242
#: src/protocol_auth.c:286 src/protocol_key.c:243
#, c-format
msgid "Node %s (%s) uses unknown digest!"
msgstr ""
#: src/protocol_auth.c:289
#: src/protocol_auth.c:291
#, c-format
msgid "%s (%s) uses bogus MAC length!"
msgstr ""
#: src/protocol_auth.c:384
#: src/protocol_auth.c:388
#, c-format
msgid "Error during calculation of response for %s (%s): %s"
msgstr ""
#: src/protocol_auth.c:417
#: src/protocol_auth.c:421
msgid "wrong challenge reply length"
msgstr ""
#: src/protocol_auth.c:430
#: src/protocol_auth.c:434
#, c-format
msgid "Error during calculation of response from %s (%s): %s"
msgstr ""
#: src/protocol_auth.c:439
#: src/protocol_auth.c:443
msgid "wrong challenge reply"
msgstr ""
#: src/protocol_auth.c:444
#: src/protocol_auth.c:448
#, c-format
msgid "Expected challenge reply: %s"
msgstr ""
#: src/protocol_auth.c:550
#: src/protocol_auth.c:554
#, c-format
msgid "Established a second connection with %s (%s), closing old connection"
msgstr ""
#: src/protocol_auth.c:573
#: src/protocol_auth.c:577
#, c-format
msgid "Connection with %s (%s) activated"
msgstr ""
@ -746,50 +765,50 @@ msgstr ""
msgid "Got %s from %s (%s) origin %s which does not exist"
msgstr ""
#: src/protocol_key.c:113 src/protocol_key.c:180
#: src/protocol_key.c:113 src/protocol_key.c:181
#, c-format
msgid ""
"Got %s from %s (%s) origin %s which does not exist in our connection list"
msgstr ""
#: src/protocol_key.c:121 src/protocol_key.c:188
#: src/protocol_key.c:121 src/protocol_key.c:189
#, c-format
msgid ""
"Got %s from %s (%s) destination %s which does not exist in our connection "
"list"
msgstr ""
#: src/protocol_key.c:222
#: src/protocol_key.c:223
#, c-format
msgid "Node %s (%s) uses unknown cipher!"
msgstr ""
#: src/protocol_key.c:228
#: src/protocol_key.c:229
#, c-format
msgid "Node %s (%s) uses wrong keylength!"
msgstr ""
#: src/protocol_key.c:248
#: src/protocol_key.c:249
#, c-format
msgid "Node %s (%s) uses bogus MAC length!"
msgstr ""
#: src/protocol_key.c:257
#: src/protocol_key.c:258
#, c-format
msgid "Node %s (%s) uses bogus compression level!"
msgstr ""
#: src/protocol_key.c:265
#: src/protocol_key.c:266
#, c-format
msgid "Error during initialisation of key from %s (%s): %s"
msgstr ""
#: src/protocol_misc.c:59
#: src/protocol_misc.c:61
#, c-format
msgid "Status message from %s (%s): %d: %s"
msgstr ""
#: src/protocol_misc.c:88
#: src/protocol_misc.c:90
#, c-format
msgid "Error message from %s (%s): %d: %s"
msgstr ""
@ -836,19 +855,19 @@ msgstr ""
msgid "End of subnet list."
msgstr ""
#: src/tincd.c:108
#: src/tincd.c:114
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
#: src/tincd.c:111
#: src/tincd.c:117
#, c-format
msgid ""
"Usage: %s [option]...\n"
"\n"
msgstr ""
#: src/tincd.c:112
#: src/tincd.c:118
#, c-format
msgid ""
" -c, --config=DIR Read configuration options from DIR.\n"
@ -865,67 +884,67 @@ msgid ""
"\n"
msgstr ""
#: src/tincd.c:123
#: src/tincd.c:129
#, c-format
msgid "Report bugs to tinc@tinc-vpn.org.\n"
msgstr ""
#: src/tincd.c:179
#: src/tincd.c:185
#, c-format
msgid ""
"Invalid argument `%s'; SIGNAL must be a number or one of HUP, TERM, KILL, "
"USR1, USR2, WINCH, INT or ALRM.\n"
msgstr ""
#: src/tincd.c:201
#: src/tincd.c:207
#, c-format
msgid ""
"Invalid argument `%s'; BITS must be a number equal to or greater than 512.\n"
msgstr ""
#: src/tincd.c:294
#: src/tincd.c:300
#, c-format
msgid "Generating %d bits keys:\n"
msgstr ""
#: src/tincd.c:298
#: src/tincd.c:304
#, c-format
msgid "Error during key generation!\n"
msgstr ""
#: src/tincd.c:301
#: src/tincd.c:307
#, c-format
msgid "Done.\n"
msgstr ""
#: src/tincd.c:304
#: src/tincd.c:310
msgid "private RSA key"
msgstr ""
#: src/tincd.c:315 src/tincd.c:334
#: src/tincd.c:321 src/tincd.c:340
#, c-format
msgid ""
"Appending key to existing contents.\n"
"Make sure only one key is stored in the file.\n"
msgstr ""
#: src/tincd.c:328
#: src/tincd.c:334
msgid "public RSA key"
msgstr ""
#: src/tincd.c:387
#: src/tincd.c:393
msgid "Both netname and configuration directory given, using the latter..."
msgstr ""
#: src/tincd.c:408
#: src/tincd.c:414
#, c-format
msgid "%s version %s (built %s %s, protocol %d)\n"
msgstr ""
#: src/tincd.c:410
#: src/tincd.c:416
#, c-format
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"
"\n"
"tinc comes with ABSOLUTELY NO WARRANTY. This is free software,\n"
@ -933,15 +952,15 @@ msgid ""
"see the file COPYING for details.\n"
msgstr ""
#: src/tincd.c:438
#: src/tincd.c:444
msgid "mlockall() not supported on this platform!"
msgstr ""
#: src/tincd.c:462
#: src/tincd.c:471
msgid "Error initializing LZO compressor!"
msgstr ""
#: src/tincd.c:503
#: src/tincd.c:512
msgid "Terminating"
msgstr ""
@ -1146,92 +1165,92 @@ msgstr ""
msgid "Subnet %s expired"
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
msgid "Packet looping back to %s (%s)!"
msgstr ""
#: src/route.c:283
#: src/route.c:289
#, 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 ""
#: src/route.c:287
#: src/route.c:293
#, c-format
msgid "Fragmenting packet of %d bytes to %s (%s)"
msgstr ""
#: src/route.c:325
#: src/route.c:333
#, c-format
msgid ""
"Cannot route packet from %s (%s): unknown IPv4 destination address %d.%d.%d.%"
"d"
msgstr ""
#: src/route.c:350 src/route.c:489
#: src/route.c:358 src/route.c:499
#, c-format
msgid "Packet for %s (%s) length %d larger than MTU %d"
msgstr ""
#: src/route.c:463
#: src/route.c:473
#, c-format
msgid ""
"Cannot route packet from %s (%s): unknown IPv6 destination address %hx:%hx:%"
"hx:%hx:%hx:%hx:%hx:%hx"
msgstr ""
#: src/route.c:521
#: src/route.c:531
#, c-format
msgid "Got neighbor solicitation request from %s (%s) while in router mode!"
msgstr ""
#: src/route.c:540
#: src/route.c:550
msgid ""
"Cannot route packet: received unknown type neighbor solicitation request"
msgstr ""
#: src/route.c:559
#: src/route.c:569
msgid "Cannot route packet: checksum error for neighbor solicitation request"
msgstr ""
#: src/route.c:568
#: src/route.c:578
#, c-format
msgid ""
"Cannot route packet: neighbor solicitation request for unknown address %hx:%"
"hx:%hx:%hx:%hx:%hx:%hx:%hx"
msgstr ""
#: src/route.c:655
#: src/route.c:665
#, c-format
msgid "Got ARP request from %s (%s) while in router mode!"
msgstr ""
#: src/route.c:672
#: src/route.c:682
msgid "Cannot route packet: received unknown type ARP request"
msgstr ""
#: src/route.c:681
#: src/route.c:691
#, c-format
msgid "Cannot route packet: ARP request for unknown address %d.%d.%d.%d"
msgstr ""
#: src/route.c:737
#: src/route.c:747
#, c-format
msgid "Cannot route packet from %s (%s): unknown type %hx"
msgstr ""
#: src/node.c:181
#: src/node.c:183
msgid "Nodes:"
msgstr ""
#: src/node.c:185
#: src/node.c:187
#, c-format
msgid ""
" %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)"
msgstr ""
#: src/node.c:192
#: src/node.c:194
msgid "End of nodes."
msgstr ""
@ -1248,12 +1267,12 @@ msgstr ""
msgid "End of edges."
msgstr ""
#: src/graph.c:261
#: src/graph.c:264
#, c-format
msgid "Node %s (%s) became reachable"
msgstr ""
#: src/graph.c:265
#: src/graph.c:268
#, c-format
msgid "Node %s (%s) became unreachable"
msgstr ""

View file

@ -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@
# 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 $
SOURCES = $(tincd_SOURCES) $(nodist_tincd_SOURCES)
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@ -48,13 +46,14 @@ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/aclocal-include.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/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/lzo.m4 $(top_srcdir)/m4/malloc.m4 \
$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/openssl.m4 \
$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
$(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/tuntap.m4 \
$(top_srcdir)/m4/zlib.m4 $(top_srcdir)/configure.in
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/isc-posix.m4 \
$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/lzo.m4 \
$(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/nls.m4 \
$(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/realloc.m4 \
$(top_srcdir)/m4/tuntap.m4 $(top_srcdir)/m4/zlib.m4 \
$(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@ -110,6 +109,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
GMSGFMT = @GMSGFMT@
GREP = @GREP@
HAVE_TUNTAP = @HAVE_TUNTAP@
INCLUDES = @INCLUDES@ -I$(top_builddir) -I$(top_srcdir)/lib
INSTALL_DATA = @INSTALL_DATA@
@ -151,8 +151,6 @@ USE_NLS = @USE_NLS@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
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_TRUE = @am__fastdepCC_TRUE@
am__include = @am__include@
@ -167,23 +165,30 @@ build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = $(datadir)/locale
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
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 = \
$(top_builddir)/lib/libvpn.a
localedir = $(datadir)/locale
AM_CFLAGS = @CFLAGS@ -DCONFDIR=\"$(sysconfdir)\" -DLOCALEDIR=\"$(localedir)\" -DLOCALSTATEDIR=\"$(localstatedir)\"
all: all-am

View file

@ -1,7 +1,7 @@
/*
device.c -- Interaction BSD tun/tap device
Copyright (C) 2001-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
2001-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 2001-2005 Ivo Timmermans,
2001-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View file

@ -1,9 +1,9 @@
/*
conf.c -- configuration code
Copyright (C) 1998 Robert van der Meulen
1998-2005 Ivo Timmermans <ivo@tinc-vpn.org>
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
2000 Cris van Pelt <tribbel@arise.dhs.org>
1998-2005 Ivo Timmermans
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
2000 Cris van Pelt
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
@ -19,7 +19,7 @@
along with this program; if not, write to the Free Software
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"
@ -33,7 +33,8 @@
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 *netname = NULL; /* name of the vpn network */

View file

@ -1,7 +1,7 @@
/*
conf.h -- header for conf.c
Copyright (C) 1998-2005 Ivo Timmermans <ivo@tinc-vpn.org>
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 1998-2005 Ivo Timmermans
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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__
@ -36,6 +36,7 @@ typedef struct config_t {
extern avl_tree_t *config_tree;
extern int pinginterval;
extern int pingtimeout;
extern int maxtimeout;
extern bool bypass_security;

View file

@ -1,7 +1,7 @@
/*
connection.c -- connection list management
Copyright (C) 2000-2005 Guus Sliepen <guus@tinc-vpn.org>,
2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>
Copyright (C) 2000-2006 Guus Sliepen <guus@tinc-vpn.org>,
2000-2005 Ivo Timmermans
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
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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"
@ -121,8 +121,9 @@ void dump_connections(void)
for(node = connection_tree->head; node; node = node->next) {
c = node->data;
logger(LOG_DEBUG, _(" %s at %s options %lx socket %d status %04x"),
c->name, c->hostname, c->options, c->socket, *(uint32_t *)&c->status);
logger(LOG_DEBUG, _(" %s at %s options %lx socket %d status %04x outbuf %d/%d/%d"),
c->name, c->hostname, c->options, c->socket, c->status.value,
c->outbufsize, c->outbufstart, c->outbuflen);
}
logger(LOG_DEBUG, _("End of connections."));

View file

@ -1,7 +1,7 @@
/*
connection.h -- header for connection.c
Copyright (C) 2000-2005 Guus Sliepen <guus@tinc-vpn.org>,
2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>
Copyright (C) 2000-2006 Guus Sliepen <guus@tinc-vpn.org>,
2000-2005 Ivo Timmermans
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
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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__
@ -32,17 +32,20 @@
#define OPTION_TCPONLY 0x0002
#define OPTION_PMTU_DISCOVERY 0x0004
typedef struct connection_status_t {
int pinged:1; /* sent ping */
int active:1; /* 1 if active.. */
int connecting:1; /* 1 if we are waiting for a non-blocking connect() to finish */
int termreq:1; /* the termination of this connection was requested */
int remove:1; /* Set to 1 if you want this connection removed */
int timeout:1; /* 1 if gotten timeout */
int encryptout:1; /* 1 if we can encrypt outgoing traffic */
int decryptin:1; /* 1 if we have to decrypt incoming traffic */
int mst:1; /* 1 if this connection is part of a minimum spanning tree */
int unused:23;
typedef union connection_status_t {
struct {
int pinged:1; /* sent ping */
int active:1; /* 1 if active.. */
int connecting:1; /* 1 if we are waiting for a non-blocking connect() to finish */
int termreq:1; /* the termination of this connection was requested */
int remove:1; /* Set to 1 if you want this connection removed */
int timeout:1; /* 1 if gotten timeout */
int encryptout:1; /* 1 if we can encrypt outgoing traffic */
int decryptin:1; /* 1 if we have to decrypt incoming traffic */
int mst:1; /* 1 if this connection is part of a minimum spanning tree */
int unused:23;
};
uint32_t value;
} connection_status_t;
#include "edge.h"
@ -59,7 +62,7 @@ typedef struct connection_t {
int socket; /* socket used 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 */
struct timeval start; /* time this connection was started, used for above estimation */
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 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 */
} connection_t;

View file

@ -1,7 +1,7 @@
/*
device.c -- Interaction with Windows tap driver in a Cygwin environment
Copyright (C) 2002-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
2002-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 2002-2005 Ivo Timmermans,
2002-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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"

View file

@ -1,7 +1,7 @@
/*
net.h -- generic header for device.c
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
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
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__

View file

@ -1,7 +1,7 @@
/*
edge.c -- edge tree management
Copyright (C) 2000-2005 Guus Sliepen <guus@tinc-vpn.org>,
2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>
Copyright (C) 2000-2006 Guus Sliepen <guus@tinc-vpn.org>,
2000-2005 Ivo Timmermans
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
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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"

View file

@ -1,7 +1,7 @@
/*
edge.h -- header for edge.c
Copyright (C) 2001-2005 Guus Sliepen <guus@tinc-vpn.org>,
2001-2005 Ivo Timmermans <ivo@tinc-vpn.org>
Copyright (C) 2001-2006 Guus Sliepen <guus@tinc-vpn.org>,
2001-2005 Ivo Timmermans
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
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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__

View file

@ -1,7 +1,7 @@
/*
event.c -- event queue
Copyright (C) 2002-2005 Guus Sliepen <guus@tinc-vpn.org>,
2002-2005 Ivo Timmermans <ivo@tinc-vpn.org>
Copyright (C) 2002-2006 Guus Sliepen <guus@tinc-vpn.org>,
2002-2005 Ivo Timmermans
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
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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"
@ -96,7 +96,7 @@ event_t *get_expired_event(void)
event = event_tree->head->data;
if(event->time < now) {
avl_delete(event_tree, event);
event_del(event);
return event;
}
}

View file

@ -1,7 +1,7 @@
/*
event.h -- header for event.c
Copyright (C) 2002-2005 Guus Sliepen <guus@tinc-vpn.org>,
2002-2005 Ivo Timmermans <ivo@tinc-vpn.org>
Copyright (C) 2002-2006 Guus Sliepen <guus@tinc-vpn.org>,
2002-2005 Ivo Timmermans
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
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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__

View file

@ -1,7 +1,7 @@
/*
graph.c -- graph algorithms
Copyright (C) 2001-2005 Guus Sliepen <guus@tinc-vpn.org>,
2001-2005 Ivo Timmermans <ivo@tinc-vpn.org>
Copyright (C) 2001-2006 Guus Sliepen <guus@tinc-vpn.org>,
2001-2005 Ivo Timmermans
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
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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:
@ -47,6 +47,7 @@
#include "system.h"
#include "avl_tree.h"
#include "config.h"
#include "connection.h"
#include "device.h"
#include "edge.h"
@ -57,6 +58,8 @@
#include "subnet.h"
#include "utils.h"
static bool graph_changed = true;
/* Implementation of Kruskal's algorithm.
Running time: O(EN)
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);
envp[6] = NULL;
execute_script(n->status.reachable ? "host-up" : "host-down", envp);
asprintf(&name,
n->status.reachable ? "hosts/%s-up" : "hosts/%s-down",
n->name);
@ -304,4 +309,66 @@ void graph(void)
{
mst_kruskal();
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);
}
}

View file

@ -1,7 +1,7 @@
/*
graph.h -- header for graph.c
Copyright (C) 2001-2005 Guus Sliepen <guus@tinc-vpn.org>,
2001-2005 Ivo Timmermans <ivo@tinc-vpn.org>
Copyright (C) 2001-2006 Guus Sliepen <guus@tinc-vpn.org>,
2001-2005 Ivo Timmermans
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
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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__
@ -26,5 +26,6 @@
extern void graph(void);
extern void mst_kruskal(void);
extern void sssp_bfs(void);
extern void dump_graph(void);
#endif /* __TINC_GRAPH_H__ */

View file

@ -1,7 +1,7 @@
/*
device.c -- Interaction with Linux ethertap and tun/tap device
Copyright (C) 2001-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
2001-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 2001-2005 Ivo Timmermans,
2001-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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"

View file

@ -1,7 +1,7 @@
/*
logger.c -- logging code
Copyright (C) 2004-2005 Guus Sliepen <guus@tinc-vpn.org>
2004-2005 Ivo Timmermans <ivo@tinc-vpn.org>
Copyright (C) 2004-2006 Guus Sliepen <guus@tinc-vpn.org>
2004-2005 Ivo Timmermans
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
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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"

View file

@ -1,7 +1,7 @@
/*
meta.c -- handle the meta communication
Copyright (C) 2000-2005 Guus Sliepen <guus@tinc-vpn.org>,
2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>
Copyright (C) 2000-2006 Guus Sliepen <guus@tinc-vpn.org>,
2000-2005 Ivo Timmermans
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
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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"
@ -32,12 +32,11 @@
#include "net.h"
#include "protocol.h"
#include "utils.h"
#include "xalloc.h"
bool send_meta(connection_t *c, const char *buffer, int length)
{
const char *bufp;
int outlen;
char outbuf[MAXBUFSIZE];
int result;
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,
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) {
result = EVP_EncryptUpdate(c->outctx, outbuf, &outlen, buffer, length);
if(!result || outlen != length) {
result = EVP_EncryptUpdate(c->outctx, (unsigned char *)c->outbuf + c->outbufstart + c->outbuflen,
&outlen, (unsigned char *)buffer, length);
if(!result || outlen < length) {
logger(LOG_ERR, _("Error while encrypting metadata to %s (%s): %s"),
c->name, c->hostname, ERR_error_string(ERR_get_error(), NULL));
return false;
} else if(outlen > length) {
logger(LOG_EMERG, _("Encrypted data too long! Heap corrupted!"));
abort();
}
bufp = outbuf;
length = outlen;
} else
bufp = buffer;
c->outbuflen += outlen;
} else {
memcpy(c->outbuf + c->outbufstart + c->outbuflen, buffer, length);
c->outbuflen += length;
}
while(length) {
result = send(c->socket, bufp, length, 0);
return true;
}
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(!errno || errno == EPIPE) {
ifdebug(CONNECTIONS) logger(LOG_NOTICE, _("Connection closed by %s (%s)"),
c->name, c->hostname);
} else if(errno == EINTR)
} else if(errno == EINTR) {
continue;
else
logger(LOG_ERR, _("Sending meta data to %s (%s) failed: %s"), c->name,
#ifdef EWOULDBLOCK
} 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));
}
return false;
}
bufp += result;
length -= result;
c->outbufstart += result;
c->outbuflen -= result;
}
c->outbufstart = 0; /* avoid unnecessary memmoves */
return true;
}
@ -132,7 +171,7 @@ bool receive_meta(connection_t *c)
/* Decrypt */
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) {
logger(LOG_ERR, _("Error while decrypting metadata from %s (%s): %s"),
c->name, c->hostname, ERR_error_string(ERR_get_error(), NULL));

View file

@ -1,7 +1,7 @@
/*
meta.h -- header for meta.c
Copyright (C) 2000-2005 Guus Sliepen <guus@tinc-vpn.org>,
2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>
Copyright (C) 2000-2006 Guus Sliepen <guus@tinc-vpn.org>,
2000-2005 Ivo Timmermans
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
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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__
@ -27,6 +27,7 @@
extern bool send_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 *);
#endif /* __TINC_META_H__ */

View file

@ -1,7 +1,7 @@
/*
device.c -- Interaction with Windows tap driver in a MinGW environment
Copyright (C) 2002-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
2002-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 2002-2005 Ivo Timmermans,
2002-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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"

View file

@ -1,7 +1,7 @@
/*
net.c -- most of the network code
Copyright (C) 1998-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 1998-2005 Ivo Timmermans,
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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"
@ -112,7 +112,7 @@ static void purge(void)
put all file descriptors in an fd_set array
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;
connection_t *c;
@ -120,7 +120,8 @@ static int build_fdset(fd_set * fs)
cp();
FD_ZERO(fs);
FD_ZERO(readset);
FD_ZERO(writeset);
for(node = connection_tree->head; node; node = next) {
next = node->next;
@ -131,22 +132,24 @@ static int build_fdset(fd_set * fs)
if(!connection_tree->head)
purge();
} else {
FD_SET(c->socket, fs);
FD_SET(c->socket, readset);
if(c->outbuflen > 0)
FD_SET(c->socket, writeset);
if(c->socket > max)
max = c->socket;
}
}
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)
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)
max = listen_socket[i].udp;
}
FD_SET(device_fd, fs);
FD_SET(device_fd, readset);
if(device_fd > max)
max = device_fd;
@ -208,6 +211,12 @@ void terminate_connection(connection_t *c, bool report)
retry_outgoing(c->outgoing);
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->status.active) {
if(c->status.pinged) {
ifdebug(CONNECTIONS) logger(LOG_INFO, _("%s (%s) didn't respond to PING"),
c->name, c->hostname);
ifdebug(CONNECTIONS) logger(LOG_INFO, _("%s (%s) didn't respond to PING in %ld seconds"),
c->name, c->hostname, now - c->last_ping_time);
c->status.timeout = true;
terminate_connection(c, true);
} else {
} else if(c->last_ping_time + pinginterval < now) {
send_ping(c);
}
} else {
if(c->status.remove) {
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);
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
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;
avl_node_t *node;
int result, i;
int len = sizeof(result);
socklen_t len = sizeof(result);
vpn_packet_t packet;
cp();
if(FD_ISSET(device_fd, f)) {
/* check input from kernel */
if(FD_ISSET(device_fd, readset)) {
if(read_packet(&packet))
route(myself, &packet);
}
/* check meta connections */
for(node = connection_tree->head; node; node = node->next) {
c = node->data;
if(c->status.remove)
continue;
if(FD_ISSET(c->socket, f)) {
if(FD_ISSET(c->socket, readset)) {
if(c->status.connecting) {
c->status.connecting = false;
getsockopt(c->socket, SOL_SOCKET, SO_ERROR, &result, &len);
@ -307,13 +328,20 @@ static void check_network_activity(fd_set * f)
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++) {
if(FD_ISSET(listen_socket[i].udp, f))
if(FD_ISSET(listen_socket[i].udp, readset))
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);
}
}
@ -323,16 +351,18 @@ static void check_network_activity(fd_set * f)
*/
int main_loop(void)
{
fd_set fset;
fd_set readset, writeset;
struct timeval tv;
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;
cp();
last_ping_check = now;
last_config_check = now;
last_graph_dump = now;
srand(now);
running = true;
@ -344,9 +374,9 @@ int main_loop(void)
tv.tv_sec = 1;
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(errno != EINTR && errno != EAGAIN) {
@ -360,7 +390,7 @@ int main_loop(void)
continue;
}
check_network_activity(&fset);
check_network_activity(&readset, &writeset);
if(do_purge) {
purge();
@ -383,9 +413,9 @@ int main_loop(void)
if(keyexpires < now) {
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)
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);
keyexpires = now + keylifetime;
}
@ -394,7 +424,7 @@ int main_loop(void)
while((event = get_expired_event())) {
event->handler(event->data);
free(event);
free_event(event);
}
if(sigalrm) {
@ -450,6 +480,13 @@ int main_loop(void)
try_outgoing_connections();
}
/* Dump graph if wanted every 60 seconds*/
if(last_graph_dump + 60 < now) {
dump_graph();
last_graph_dump = now;
}
}
return 0;

View file

@ -1,7 +1,7 @@
/*
net.h -- header for net.c
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
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
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__
@ -114,10 +114,9 @@ typedef struct outgoing_t {
struct addrinfo *aip;
} outgoing_t;
extern int maxtimeout;
extern int maxoutbufsize;
extern int seconds_till_retry;
extern int addressfamily;
extern bool blockingtcp;
extern listen_socket_t listen_socket[MAXSOCKETS];
extern int listen_sockets;

View file

@ -1,7 +1,7 @@
/*
net_packet.c -- Handles in- and outgoing VPN packets
Copyright (C) 1998-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 1998-2005 Ivo Timmermans,
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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"
@ -29,7 +29,12 @@
#include <openssl/hmac.h>
#include <zlib.h>
#ifdef HAVE_LZO_LZO1X_H
#include <lzo/lzo1x.h>
#endif
#ifdef HAVE_LZO1X_H
#include <lzo1x.h>
#endif
#include "avl_tree.h"
#include "conf.h"
@ -96,7 +101,7 @@ void send_mtu_probe(node_t *n)
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->data = n;
n->mtuevent->time = now + 1;
@ -174,7 +179,7 @@ static void receive_udppacket(node_t *n, vpn_packet_t *inpkt)
int nextpkt = 0;
vpn_packet_t *outpkt = pkt[0];
int outlen, outpad;
char hmac[EVP_MAX_MD_SIZE];
unsigned char hmac[EVP_MAX_MD_SIZE];
int i;
cp();
@ -192,7 +197,7 @@ static void receive_udppacket(node_t *n, vpn_packet_t *inpkt)
if(myself->digest && myself->maclength) {
inpkt->len -= myself->maclength;
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)) {
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++];
if(!EVP_DecryptInit_ex(&packet_ctx, NULL, NULL, NULL, NULL)
|| !EVP_DecryptUpdate(&packet_ctx, (char *) &outpkt->seqno, &outlen,
(char *) &inpkt->seqno, inpkt->len)
|| !EVP_DecryptFinal_ex(&packet_ctx, (char *) &outpkt->seqno + outlen, &outpad)) {
|| !EVP_DecryptUpdate(&packet_ctx, (unsigned char *) &outpkt->seqno, &outlen,
(unsigned char *) &inpkt->seqno, inpkt->len)
|| !EVP_DecryptFinal_ex(&packet_ctx, (unsigned char *) &outpkt->seqno + outlen, &outpad)) {
ifdebug(TRAFFIC) logger(LOG_DEBUG, _("Error decrypting packet from %s (%s): %s"),
n->name, n->hostname, ERR_error_string(ERR_get_error(), NULL));
return;
@ -285,10 +290,11 @@ void receive_tcppacket(connection_t *c, char *buffer, int len)
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 *pkt[] = { &pkt1, &pkt2, &pkt1, &pkt2 };
vpn_packet_t *inpkt = origpkt;
int nextpkt = 0;
vpn_packet_t *outpkt;
int origlen;
@ -352,9 +358,9 @@ static void send_udppacket(node_t *n, vpn_packet_t *inpkt)
outpkt = pkt[nextpkt++];
if(!EVP_EncryptInit_ex(&n->packet_ctx, NULL, NULL, NULL, NULL)
|| !EVP_EncryptUpdate(&n->packet_ctx, (char *) &outpkt->seqno, &outlen,
(char *) &inpkt->seqno, inpkt->len)
|| !EVP_EncryptFinal_ex(&n->packet_ctx, (char *) &outpkt->seqno + outlen, &outpad)) {
|| !EVP_EncryptUpdate(&n->packet_ctx, (unsigned char *) &outpkt->seqno, &outlen,
(unsigned char *) &inpkt->seqno, inpkt->len)
|| !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"),
n->name, n->hostname, ERR_error_string(ERR_get_error(), NULL));
goto end;
@ -367,8 +373,8 @@ static void send_udppacket(node_t *n, vpn_packet_t *inpkt)
/* Add the message authentication code */
if(n->digest && n->maclength) {
HMAC(n->digest, n->key, n->keylength, (char *) &inpkt->seqno,
inpkt->len, (char *) &inpkt->seqno + inpkt->len, &outlen);
HMAC(n->digest, n->key, n->keylength, (unsigned char *) &inpkt->seqno,
inpkt->len, (unsigned char *) &inpkt->seqno + inpkt->len, NULL);
inpkt->len += n->maclength;
}
@ -404,7 +410,7 @@ static void send_udppacket(node_t *n, vpn_packet_t *inpkt)
}
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)"),
packet->len, from->name, from->hostname);
if(from != myself) {
if(overwrite_mac)
memcpy(packet->data, mymac.x, ETH_ALEN);
write_packet(packet);
}
if(from != myself)
send_packet(myself, packet);
for(node = connection_tree->head; node; node = node->next) {
c = node->data;

View file

@ -1,7 +1,7 @@
/*
net_setup.c -- Setup.
Copyright (C) 1998-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 1998-2005 Ivo Timmermans,
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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"
@ -286,8 +286,6 @@ bool setup_myself(void)
if(get_config_bool(lookup_config(myself->connection->config_tree, "TCPOnly"), &choice) && choice)
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)
myself->options |= OPTION_PMTU_DISCOVERY;
@ -370,7 +368,7 @@ bool setup_myself(void)
myself->connection->outcipher = EVP_bf_ofb();
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))
keylifetime = 3600;
@ -379,7 +377,7 @@ bool setup_myself(void)
if(myself->cipher) {
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"),
myself->name, myself->hostname, ERR_error_string(ERR_get_error(), NULL));
return false;
@ -439,7 +437,6 @@ bool setup_myself(void)
myself->nexthop = myself;
myself->via = myself;
myself->status.active = true;
myself->status.reachable = true;
node_add(myself);
@ -504,7 +501,7 @@ bool setup_myself(void)
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++;
}
@ -529,19 +526,27 @@ bool setup_network_connections(void)
now = time(NULL);
init_events();
init_connections();
init_subnets();
init_nodes();
init_edges();
init_events();
init_requests();
if(get_config_int(lookup_config(config_tree, "PingTimeout"), &pingtimeout)) {
if(pingtimeout < 1) {
pingtimeout = 86400;
if(get_config_int(lookup_config(config_tree, "PingInterval"), &pinginterval)) {
if(pinginterval < 1) {
pinginterval = 86400;
}
} 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())
return false;
@ -582,19 +587,19 @@ void close_network_connections(void)
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[1], "DEVICE=%s", device ? : "");
asprintf(&envp[2], "INTERFACE=%s", iface ? : "");
asprintf(&envp[3], "NAME=%s", myself->name);
envp[4] = NULL;
exit_requests();
exit_edges();
exit_subnets();
exit_nodes();
exit_connections();
exit_events();
execute_script("tinc-down", envp);
for(i = 0; i < 4; i++)

View file

@ -1,7 +1,7 @@
/*
net_socket.c -- Handle various kinds of sockets.
Copyright (C) 1998-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 1998-2005 Ivo Timmermans,
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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"
@ -38,16 +38,43 @@
#define EINPROGRESS WSAEINPROGRESS
#endif
/* Needed on Mac OS/X */
#ifndef SOL_TCP
#define SOL_TCP IPPROTO_TCP
#endif
int addressfamily = AF_UNSPEC;
int maxtimeout = 900;
int seconds_till_retry = 5;
bool blockingtcp = false;
listen_socket_t listen_socket[MAXSOCKETS];
int listen_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 nfd;
@ -64,33 +91,11 @@ int setup_listen_socket(const sockaddr_t *sa)
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 */
option = 1;
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
(lookup_config(config_tree, "BindToInterface"), &iface)) {
#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);
#ifdef O_NONBLOCK
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
configure_tcp(c);
c->last_ping_time = now;
@ -259,7 +256,7 @@ void finish_connecting(connection_t *c)
void do_outgoing_connection(connection_t *c)
{
char *address, *port;
int option, result, flags;
int result;
cp();
@ -314,25 +311,7 @@ begin:
/* Optimize TCP settings */
#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)
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
configure_tcp(c);
/* Connect */
@ -409,7 +388,8 @@ bool handle_new_meta_connection(int sock)
{
connection_t *c;
sockaddr_t sa;
int fd, len = sizeof(sa);
int fd;
socklen_t len = sizeof(sa);
cp();
@ -437,15 +417,7 @@ bool handle_new_meta_connection(int sock)
ifdebug(CONNECTIONS) logger(LOG_NOTICE, _("Connection from %s"), c->hostname);
#ifdef O_NONBLOCK
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
configure_tcp(c);
connection_add(c);

View file

@ -1,7 +1,7 @@
/*
netutl.c -- some supporting network utility code
Copyright (C) 1998-2005 Ivo Timmermans <ivo@tinc-vpn.org>
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 1998-2005 Ivo Timmermans
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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"
@ -78,7 +78,7 @@ sockaddr_t str2sockaddr(const char *address, const char *port)
return result;
}
result = *(sockaddr_t *) ai->ai_addr;
memcpy(&result, ai->ai_addr, ai->ai_addrlen);
freeaddrinfo(ai);
return result;
@ -225,7 +225,7 @@ void sockaddrunmap(sockaddr_t *sa)
/* 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;
const char *a = va;
@ -257,7 +257,7 @@ void mask(void *va, int masklen, int len)
masklen %= 8;
if(masklen)
a[i++] &= (0x100 - (1 << masklen));
a[i++] &= (0x100 - (1 << (8 - masklen)));
for(; i < len; i++)
a[i] = 0;
@ -275,7 +275,7 @@ void maskcpy(void *va, const void *vb, int masklen, int len)
a[i] = b[i];
if(m) {
a[i] = b[i] & (0x100 - (1 << m));
a[i] = b[i] & (0x100 - (1 << (8 - m)));
i++;
}

View file

@ -1,7 +1,7 @@
/*
netutl.h -- header file for netutl.c
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
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
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__
@ -35,7 +35,7 @@ extern int sockaddrcmp(const sockaddr_t *, const sockaddr_t *);
extern void sockaddrunmap(sockaddr_t *);
extern void sockaddrfree(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 mask(void *, int, int);
extern bool maskcheck(const void *, int, int);

View file

@ -1,7 +1,7 @@
/*
node.c -- node tree management
Copyright (C) 2001-2005 Guus Sliepen <guus@tinc-vpn.org>,
2001-2005 Ivo Timmermans <ivo@tinc-vpn.org>
Copyright (C) 2001-2006 Guus Sliepen <guus@tinc-vpn.org>,
2001-2005 Ivo Timmermans
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
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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"
@ -93,12 +93,6 @@ void free_node(node_t *n)
if(n->queue)
list_delete_list(n->queue);
if(n->name)
free(n->name);
if(n->hostname)
free(n->hostname);
if(n->key)
free(n->key);
@ -112,9 +106,17 @@ void free_node(node_t *n)
EVP_CIPHER_CTX_cleanup(&n->packet_ctx);
if(n->mtuevent)
if(n->mtuevent) {
event_del(n->mtuevent);
free_event(n->mtuevent);
}
if(n->hostname)
free(n->hostname);
if(n->name)
free(n->name);
free(n);
}

View file

@ -1,7 +1,7 @@
/*
node.h -- header for node.c
Copyright (C) 2001-2005 Guus Sliepen <guus@tinc-vpn.org>,
2001-2005 Ivo Timmermans <ivo@tinc-vpn.org>
Copyright (C) 2001-2006 Guus Sliepen <guus@tinc-vpn.org>,
2001-2005 Ivo Timmermans
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
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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__
@ -29,14 +29,17 @@
#include "list.h"
#include "subnet.h"
typedef struct node_status_t {
int active:1; /* 1 if active.. */
int validkey:1; /* 1 if we currently have a valid key for him */
int waitingforkey:1; /* 1 if we already sent out a request */
int visited:1; /* 1 if this node has been visited by one of the graph algorithms */
int reachable:1; /* 1 if this node is reachable in the graph */
int indirect:1; /* 1 if this node is not directly reachable by us */
int unused:26;
typedef union node_status_t {
struct {
int unused_active:1; /* 1 if active (not used for nodes) */
int validkey:1; /* 1 if we currently have a valid key for him */
int waitingforkey:1; /* 1 if we already sent out a request */
int visited:1; /* 1 if this node has been visited by one of the graph algorithms */
int reachable:1; /* 1 if this node is reachable in the graph */
int indirect:1; /* 1 if this node is not directly reachable by us */
int unused:26;
};
uint32_t value;
} node_status_t;
typedef struct node_t {

View file

@ -1,7 +1,7 @@
/*
process.c -- process management functions
Copyright (C) 1999-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 1999-2005 Ivo Timmermans,
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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"

View file

@ -1,7 +1,7 @@
/*
process.h -- header file for process.c
Copyright (C) 1999-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 1999-2005 Ivo Timmermans,
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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__

View file

@ -1,7 +1,7 @@
/*
protocol.c -- handle the meta-protocol, basic functions
Copyright (C) 1999-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 1999-2005 Ivo Timmermans,
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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"
@ -241,7 +241,7 @@ void age_past_requests(void)
next = node->next;
p = node->data;
if(p->firstseen + pingtimeout < now)
if(p->firstseen + pinginterval < now)
avl_delete_node(past_request_tree, node), deleted++;
else
left++;

View file

@ -1,7 +1,7 @@
/*
protocol.h -- header for protocol.c
Copyright (C) 1999-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 1999-2005 Ivo Timmermans,
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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__
@ -56,9 +56,12 @@ typedef struct past_request_t {
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"
#include "edge.h"

View file

@ -1,7 +1,7 @@
/*
protocol_auth.c -- handle the meta-protocol, authentication
Copyright (C) 1999-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 1999-2005 Ivo Timmermans,
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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"
@ -118,7 +118,7 @@ bool id_h(connection_t *c)
bool send_metakey(connection_t *c)
{
char buffer[MAX_STRING_SIZE];
char *buffer;
int len;
bool x;
@ -128,6 +128,8 @@ bool send_metakey(connection_t *c)
/* Allocate buffers for the meta key */
buffer = alloca(2 * len + 1);
if(!c->outkey)
c->outkey = xmalloc(len);
@ -136,7 +138,7 @@ bool send_metakey(connection_t *c)
cp();
/* 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.
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.
*/
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)"),
c->name, c->hostname);
return false;
@ -186,8 +188,8 @@ bool send_metakey(connection_t *c)
if(c->outcipher) {
if(!EVP_EncryptInit(c->outctx, c->outcipher,
c->outkey + len - c->outcipher->key_len,
c->outkey + len - c->outcipher->key_len -
(unsigned char *)c->outkey + len - c->outcipher->key_len,
(unsigned char *)c->outkey + len - c->outcipher->key_len -
c->outcipher->iv_len)) {
logger(LOG_ERR, _("Error during initialisation of cipher for %s (%s): %s"),
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 */
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)"),
c->name, c->hostname);
return false;
@ -262,8 +264,8 @@ bool metakey_h(connection_t *c)
}
if(!EVP_DecryptInit(c->inctx, c->incipher,
c->inkey + len - c->incipher->key_len,
c->inkey + len - c->incipher->key_len -
(unsigned char *)c->inkey + len - c->incipher->key_len,
(unsigned char *)c->inkey + len - c->incipher->key_len -
c->incipher->iv_len)) {
logger(LOG_ERR, _("Error during initialisation of cipher from %s (%s): %s"),
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)
{
char buffer[MAX_STRING_SIZE];
char *buffer;
int len;
cp();
@ -313,12 +315,14 @@ bool send_challenge(connection_t *c)
/* Allocate buffers for the challenge */
buffer = alloca(2 * len + 1);
if(!c->hischallenge)
c->hischallenge = xmalloc(len);
/* Copy random data to the buffer */
RAND_pseudo_bytes(c->hischallenge, len);
RAND_pseudo_bytes((unsigned char *)c->hischallenge, len);
/* Convert to hex */
@ -380,7 +384,7 @@ bool send_chal_reply(connection_t *c)
if(!EVP_DigestInit(&ctx, c->indigest)
|| !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"),
c->name, c->hostname, ERR_error_string(ERR_get_error(), NULL));
return false;
@ -426,7 +430,7 @@ bool chal_reply_h(connection_t *c)
if(!EVP_DigestInit(&ctx, c->outdigest)
|| !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"),
c->name, c->hostname, ERR_error_string(ERR_get_error(), NULL));
return false;

View file

@ -1,7 +1,7 @@
/*
protocol_edge.c -- handle the meta-protocol, edges
Copyright (C) 1999-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 1999-2005 Ivo Timmermans,
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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"

View file

@ -1,7 +1,7 @@
/*
protocol_key.c -- handle the meta-protocol, key exchange
Copyright (C) 1999-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 1999-2005 Ivo Timmermans,
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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"
@ -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)
{
char key[MAX_STRING_SIZE];
char *key;
cp();
key = alloca(2 * from->keylength + 1);
bin2hex(from->key, key, from->keylength);
key[from->keylength * 2] = '\0';
@ -261,7 +262,7 @@ bool ans_key_h(connection_t *c)
from->compression = compression;
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"),
from->name, from->hostname, ERR_error_string(ERR_get_error(), NULL));
return false;

View file

@ -1,7 +1,7 @@
/*
protocol_misc.c -- handle the meta-protocol, miscellaneous functions
Copyright (C) 1999-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 1999-2005 Ivo Timmermans,
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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"
@ -31,6 +31,8 @@
#include "protocol.h"
#include "utils.h"
int maxoutbufsize = 0;
/* Status and error notification routines */
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();
/* 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))
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)

View file

@ -1,7 +1,7 @@
/*
protocol_subnet.c -- handle the meta-protocol, subnets
Copyright (C) 1999-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 1999-2005 Ivo Timmermans,
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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"

View file

@ -1,7 +1,7 @@
/*
device.c -- raw socket
Copyright (C) 2002-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
2002-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 2002-2005 Ivo Timmermans,
2002-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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"

View file

@ -1,7 +1,7 @@
/*
route.c -- routing
Copyright (C) 2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 2000-2005 Ivo Timmermans,
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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"
@ -163,17 +163,23 @@ void age_subnets(void)
static void route_mac(node_t *source, vpn_packet_t *packet)
{
subnet_t *subnet;
mac_t dest;
cp();
/* Learn source address */
if(source == myself)
learn_mac((mac_t *)(&packet->data[6]));
if(source == myself) {
mac_t src;
memcpy(&src, &packet->data[6], sizeof src);
learn_mac(&src);
}
/* 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) {
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;
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;
}
@ -316,18 +322,20 @@ static void route_ipv4_unicast(node_t *source, vpn_packet_t *packet)
{
subnet_t *subnet;
node_t *via;
ipv4_t dest;
cp();
subnet = lookup_subnet_ipv4((ipv4_t *) &packet->data[30]);
memcpy(&dest, &packet->data[30], sizeof dest);
subnet = lookup_subnet_ipv4(&dest);
if(!subnet) {
ifdebug(TRAFFIC) logger(LOG_WARNING, _("Cannot route packet from %s (%s): unknown IPv4 destination address %d.%d.%d.%d"),
source->name, source->hostname,
packet->data[30],
packet->data[31],
packet->data[32],
packet->data[33]);
dest.x[0],
dest.x[1],
dest.x[2],
dest.x[3]);
route_ipv4_unreachable(source, packet, ICMP_DEST_UNREACH, ICMP_NET_UNKNOWN);
return;
@ -454,22 +462,24 @@ static void route_ipv6_unicast(node_t *source, vpn_packet_t *packet)
{
subnet_t *subnet;
node_t *via;
ipv6_t dest;
cp();
subnet = lookup_subnet_ipv6((ipv6_t *) &packet->data[38]);
memcpy(&dest, &packet->data[38], sizeof dest);
subnet = lookup_subnet_ipv6(&dest);
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"),
source->name, source->hostname,
ntohs(*(uint16_t *) &packet->data[38]),
ntohs(*(uint16_t *) &packet->data[40]),
ntohs(*(uint16_t *) &packet->data[42]),
ntohs(*(uint16_t *) &packet->data[44]),
ntohs(*(uint16_t *) &packet->data[46]),
ntohs(*(uint16_t *) &packet->data[48]),
ntohs(*(uint16_t *) &packet->data[50]),
ntohs(*(uint16_t *) &packet->data[52]));
ntohs(dest.x[0]),
ntohs(dest.x[1]),
ntohs(dest.x[2]),
ntohs(dest.x[3]),
ntohs(dest.x[4]),
ntohs(dest.x[5]),
ntohs(dest.x[6]),
ntohs(dest.x[7]));
route_ipv6_unreachable(source, packet, ICMP6_DST_UNREACH, ICMP6_DST_UNREACH_ADDR);
return;

View file

@ -1,7 +1,7 @@
/*
route.h -- header file for route.c
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
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
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__

View file

@ -1,7 +1,7 @@
/*
device.c -- Interaction with Solaris tun device
Copyright (C) 2001-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
2001-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 2001-2005 Ivo Timmermans,
2001-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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 $
*/

View file

@ -1,7 +1,7 @@
/*
subnet.c -- handle subnet lookups and lists
Copyright (C) 2000-2005 Guus Sliepen <guus@tinc-vpn.org>,
2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>
Copyright (C) 2000-2006 Guus Sliepen <guus@tinc-vpn.org>,
2000-2005 Ivo Timmermans
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
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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"
@ -342,7 +342,7 @@ subnet_t *lookup_subnet_ipv4(const ipv4_t *address)
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;
else {
/* 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)
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;
else {
/* Otherwise, see if there is a bigger enclosing subnet */

View file

@ -1,7 +1,7 @@
/*
subnet.h -- header for subnet.c
Copyright (C) 2000-2005 Guus Sliepen <guus@tinc-vpn.org>,
2000-2005 Ivo Timmermans <ivo@tinc-vpn.org>
Copyright (C) 2000-2006 Guus Sliepen <guus@tinc-vpn.org>,
2000-2005 Ivo Timmermans
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
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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__

View file

@ -1,7 +1,7 @@
/*
tincd.c -- the main file for tincd
Copyright (C) 1998-2005 Ivo Timmermans <ivo@tinc-vpn.org>
2000-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 1998-2005 Ivo Timmermans
2000-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
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"
@ -35,8 +35,14 @@
#include <openssl/rsa.h>
#include <openssl/pem.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>
#endif
#include <getopt.h>
#include "pidfile.h"
@ -407,7 +413,7 @@ int main(int argc, char **argv)
if(show_version) {
printf(_("%s version %s (built %s %s, protocol %d)\n"), PACKAGE,
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"
"tinc comes with ABSOLUTELY NO WARRANTY. This is free software,\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);
ENGINE_load_builtin_engines();
ENGINE_register_all_complete();
OpenSSL_add_all_algorithms();
if(generate_keys) {
@ -505,6 +514,8 @@ end:
#ifndef HAVE_MINGW
remove_pid(pidfilename);
#endif
EVP_cleanup();
return status;
}

View file

@ -1,7 +1,7 @@
/*
device.c -- UML network socket
Copyright (C) 2002-2005 Ivo Timmermans <ivo@tinc-vpn.org>,
2002-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 2002-2005 Ivo Timmermans,
2002-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View file

@ -1,7 +1,7 @@
/*
system.h -- system headers
Copyright (C) 1998-2005 Ivo Timmermans <ivo@tinc-vpn.org>
2003-2005 Guus Sliepen <guus@tinc-vpn.org>
Copyright (C) 1998-2005 Ivo Timmermans
2003-2006 Guus Sliepen <guus@tinc-vpn.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by