Updating HEAD branch #5; Last files from CABAL.
authorIvo Timmermans <ivo@lychnis.net>
Tue, 9 Apr 2002 15:28:45 +0000 (15:28 +0000)
committerIvo Timmermans <ivo@lychnis.net>
Tue, 9 Apr 2002 15:28:45 +0000 (15:28 +0000)
12 files changed:
AUTHORS
Makefile.am
NEWS
README
THANKS
TODO
autogen.sh
configure.in
lib/Makefile.am
po/POTFILES.in
po/nl.po
src/Makefile.am

diff --git a/AUTHORS b/AUTHORS
index 532543f..4721984 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -5,3 +5,9 @@ Ivo Timmermans <itimmermans@bigfoot.com>
 These files are from other sources:
  * lib/pidfile.h and lib/pidfile.c are by Martin Schulze, taken from
  the syslog 1.3 sources.
 These files are from other sources:
  * lib/pidfile.h and lib/pidfile.c are by Martin Schulze, taken from
  the syslog 1.3 sources.
+
+Also some of the macro files in the directory m4, and their
+accompanying files in lib, were taken from GNU fileutils.
+
+Please see the file THANKS for more information on contributions from
+users.
index 19ae301..805c312 100644 (file)
@@ -2,25 +2,23 @@
 
 AUTOMAKE_OPTIONS = gnu
 
 
 AUTOMAKE_OPTIONS = gnu
 
-SUBDIRS = m4 intl lib src doc po redhat debian
+SUBDIRS = m4 intl lib src doc po
 
 ACLOCAL_AMFLAGS =
 
 
 ACLOCAL_AMFLAGS =
 
-EXTRA_DIST = system.h ABOUT-NLS
+EXTRA_DIST = system.h COPYING.README depcomp
 
 
-CVS_CREATED = configure aclocal.m4 config.h.in config.guess \
+CVS_CREATED = ABOUT-NLS configure aclocal.m4 config.h.in config.guess \
  config.sub install-sh ltconfig ltmain.sh missing mkinstalldirs \
  config.sub install-sh ltconfig ltmain.sh missing mkinstalldirs \
- stamp-h.in m4/Makefile.am ChangeLog
+ stamp-h.in m4/Makefile.am ChangeLog po/Makefile.in.in \
+ po/tinc.pot src/.libs intl depcomp
 
 ChangeLog:
 
 ChangeLog:
-       rm -f ChangeLog
-       rcs2log -u "zarq        Ivo Timmermans  itimmermans@bigfoot.com" \
-         -u "guus      Guus Sliepen    guus@sliepen.warande.net" | \
-         sed -e 's,/home/CVS/tinc/,,g' > $@
+       cvs2cl -U cvsusers --fsf
 
 cvs-clean: maintainer-clean
 
 cvs-clean: maintainer-clean
-       for f in $(CVS_CREATED) `find -name Makefile.in` ; do\
-         rm -f "$$f"; \
+       for f in $(CVS_CREATED) `find . -name Makefile.in` tinc-$(VERSION).tar.gz; do\
+         rm -Rf "$$f"; \
        done
 
 deb:
        done
 
 deb:
@@ -29,5 +27,11 @@ deb:
 rpm: dist
        cp $(distdir).tar.gz /usr/src/redhat/SOURCES/
        cp redhat/tinc.spec /usr/src/redhat/SOURCES/
 rpm: dist
        cp $(distdir).tar.gz /usr/src/redhat/SOURCES/
        cp redhat/tinc.spec /usr/src/redhat/SOURCES/
-       cd /usr/src/redhat/SOURCES/
-       rpm -bi tinc.spec
+       cd /usr/src/redhat/SOURCES/ && rpm -bb tinc.spec
+
+release:
+       rm -f ChangeLog
+       $(MAKE) ChangeLog
+       echo "Please edit the NEWS file now..."
+       /usr/bin/editor NEWS
+       $(MAKE) dist
diff --git a/NEWS b/NEWS
index ee5c2c1..0317dd5 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,152 @@
+version 1.0pre7              Apr  7 2002
+
+* Don't do blocking read()s when getting a signal.
+
+* Remove RSA key checking code, since it sometimes thinks perfectly good RSA
+  keys are bad.
+
+* Fix handling of subnets when prefixlength isn't divisible by 8.
+
+
+version 1.0pre6              Mar 27 2002
+
+* Improvement of redundant links:
+
+  * Non-blocking connects.
+  
+  * Protocol broadcast messages can no longer go into an infinite loop.
+  
+  * Graph algorithm updated to look harder for direct connections.
+
+* Good support for routing IPv6 packets over the VPN. Works on Linux,
+  FreeBSD, possibly OpenBSD but not on Solaris.
+
+* Support for tunnels over IPv6 networks. Works on all supported
+  operating systems.
+
+* Optional compression of UDP connections using zlib.
+
+* Optionally let UDP connections inherit TOS field of tunneled packets.
+
+* Optionally start scripts when certain hosts become (un)reachable.
+
+
+version 1.0pre5              Feb  9 2002
+
+* Security enhancements:
+
+  * Added sequence number and optional message authentication code to
+    the packets.
+
+  * Configurable encryption cipher and digest algorithms.
+
+* More robust handling of dis- and reconnects.
+
+* Added a "switch" and a "hub" mode to allow bridging setups.
+
+* Preliminary support for routing of IPv6 packets.
+
+* Supports Linux, FreeBSD, OpenBSD and Solaris.
+
+
+It looks like this might be the last release before 1.0.
+
+
+version 1.0pre4              Jan 17 2001
+
+* Updated documentation; the documentation now reflects the
+  configuration as it is.
+
+* Some internal changes to make tinc scale better for large
+  networks, such as using AVL trees instead of linked lists for the
+  connection list.  
+
+* RSA keys can be stored in separate files if needed.  See the
+  documentation for more information.
+
+* tinc has now been reported to run on Linux PowerPC and FreeBSD x86.
+
+
+
+version 1.0pre3              Oct 31 2000
+
+* The protocol has been redesigned, and although some details are
+  still under discussion, this is secure.  Care has been taken to
+  resist most, if not all, attacks.
+  
+* Unfortunately this protocol is not compatible with earlier versions,
+  nor are earlier versions compatible with this version.  Because the
+  older protocol has huge security flaws, we feel that not
+  implementing backwards compatibility is justified.
+
+* Some data about the protocol:
+
+  * It uses public/private RSA keys for authentication (this is the
+    actual fix for the security hole).
+
+  * All cryptographic functions have been taken out of tinc, instead
+    it uses the OpenSSL library functions.
+
+  * Offers support for multiple subnets per tinc daemon.
+
+* New is also the support for the universal tun/tap device.  This
+  means better portability to FreeBSD and Solaris.
+
+* tinc is tested to compile on Solaris, Linux x86, Linux alpha.
+
+* tinc now uses the OpenSSL library for cryptographic operations.
+  More information on getting and installing OpenSSL is in the manual.
+  This also means that the GMP library is no longer required.
+
+* Further, thanks to Enrique Zanardi, we have Spanish messages; Matias
+  Carrasco provided us with a Spanish translation of the manual.
+
+
+What still needs to be done before 1.0:
+
+* Documentation.  Especially since the protocol has changed, and a lot
+  of configuration directives have been added.
+
+
+
+
 version 1.0pre2              May 31 2000
 version 1.0pre2              May 31 2000
- * Internationalized, Dutch translation available
- * Many sanity checks on the meta protocol added
+
+* This version has been internationalized; and a Dutch translation has          
+  been included.                                                                
+                                                                                
+* Two configuration variables have been added:                                  
+  * VpnMask - the IP network mask for the entire VPN, not just our              
+    subnet (as given by MyVirtualIP).  The Redhat and Debian packages           
+    use this variable in their system startup scripts, but it is                
+    ignored by tinc.                                                            
+  * Hostnames - if set to `yes', look up the names of IP addresses              
+    trying to connect to us.  Default set to `no', to prevent lockups           
+    during lookups.                                                             
+                                                                                
+* The system startup scripts for Debian and Redhat use                          
+  /etc/tinc/nets.boot to find out which networks need to be started             
+  during system boot.                                                           
+                                                                                
+* Fixes to prevent denial of service attacks by sending random data             
+  after connecting (and even when the connection has been established),         
+  either random garbage or just nonsensical protocol fields.                    
+                                                                                
+* tinc will retry to connect upon startup, does not quit if it doesn't          
+  work the first time.                                                          
+                                                                                
+* Hosts that are disconnected implicitly if we lose a connection get            
+  deleted from the internal list, to prevent hogging eachother with             
+  add and delete requests when the connection is restored.                      
+                                                                                
+                                                                                
+What still needs to be done before 1.0:                                         
+                                                                                
+* Documentation.                                                                
+* Failover ConnectTo lines, try another one if the first doesn't work.          
+
+
+
 
 version 1.0pre1              May 12 2000
  * New meta-protocol
 
 version 1.0pre1              May 12 2000
  * New meta-protocol
diff --git a/README b/README
index 7c0fe12..d75d7f6 100644 (file)
--- a/README
+++ b/README
@@ -1,9 +1,13 @@
-This is the README file for tinc version 1.0.
-Installation instructions may be found in the INSTALL file.
+This is the README file for tinc version 1.0pre7. Installation
+instructions may be found in the INSTALL file.
 
 
-tinc is Copyright (C) 1998,1999,2000 Ivo Timmermans
-<itimmermans@bigfoot.com>, Guus Sliepen <guus@sliepen.warande.net> and
-others. For a complete list of authors see the AUTHORS file.
+tinc is Copyright (C) 1998-2002 by:
+
+Ivo Timmermans <itimmermans@bigfoot.com>,
+Guus Sliepen <guus@sliepen.warande.net>,
+and others.
+
+For a complete list of authors see the AUTHORS file.
 
 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
 
 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
@@ -11,6 +15,36 @@ the Free Software Foundation; either version 2 of the License, or (at
 your option) any later version. See the file COPYING for more details.
 
 
 your option) any later version. See the file COPYING for more details.
 
 
+Security statement
+------------------
+
+In August 2000, we discovered the existence of a security hole in all versions
+of tinc up to and including 1.0pre2. This had to do with the way we exchanged
+keys. Since then, we have been working on a new authentication scheme to make
+tinc as secure as possible. The current version uses the OpenSSL library and
+uses strong authentication with RSA keys.
+
+On the 29th of December 2001, Jerome Etienne posted a security analysis of tinc
+1.0pre4. Due to a lack of sequence numbers and a message authentication code
+for each packet, an attacker could possibly disrupt certain network services or
+launch a denial of service attack by replaying intercepted packets. The current
+version adds sequence numbers and message authentication codes to prevent such
+attacks.
+
+Cryptography is a hard thing to get right. We cannot make any
+guarantees. Time, review and feedback are the only things that can
+prove the security of any cryptographic product. If you wish to review
+tinc or give us feedback, you are stronly encouraged to do so.
+
+
+Changes to configuration file format since 1.0pre5
+--------------------------------------------------
+
+Some configuration variables have different names now. Most notably "TapDevice"
+should be changed into "Device", and "Device" should be changed into
+"BindToDevice".
+
+
 Requirements
 ------------
 
 Requirements
 ------------
 
@@ -21,6 +55,14 @@ this library is not installed on you system, configure will fail.  The
 manual in doc/tinc.texi contains more detailed information on how to
 install this library.
 
 manual in doc/tinc.texi contains more detailed information on how to
 install this library.
 
+Since 1.0pre6, the zlib library is used for optional compression. You need this
+library whether or not you plan to enable the compression. You can find it at
+http://www.gzip.org/zlib/. Because of a possible exploit in earlier versions we
+recommand that you download version 1.1.4 or later.
+
+In order to compile tinc, you will also need autoconf, automake, GNU make, m4
+and gettext.
+
 
 Features
 --------
 
 Features
 --------
@@ -30,18 +72,46 @@ use this feature, you may supply a netname via the -n or --net
 options. The standard locations for the config files will then be
 /etc/tinc/<net>/. Because of this feature, tinc will send packets
 directly to their destinations, instead of to the uplink. If this
 options. The standard locations for the config files will then be
 /etc/tinc/<net>/. Because of this feature, tinc will send packets
 directly to their destinations, instead of to the uplink. If this
-behaviour is undesirable (for instance because of firewalls or
-other restrictions), please use an older version of tinc (I would
-recommend tinc-0.2.19).
+behaviour is undesirable (for instance because of firewalls or other
+restrictions), please use an older version of tinc (I would recommend
+tinc-0.2.19).
 
 
-In this version, MAC addresses are stripped off before encoding and
-sending a packet. When the packet reaches its destination, the MAC
-addresses are rebuilt again. They then have the form
-FE:FD:aa:bb:cc:dd. aa, bb, cc and dd are taken from the destination
-and source IP address.  See the manual for more detailed information.
+In order to force the kernel to accept received packets, the
+destination MAC address will be set to FE:FD:00:00:00:00 upon
+reception. The MAC address of the ethertap or tun/tap interface must
+also be set to this address. See the manual for more detailed
+information.
 
 tincd regenerates its encryption key pairs. It does this on the first
 activity after the keys have expired. This period is adjustable in the
 
 tincd regenerates its encryption key pairs. It does this on the first
 activity after the keys have expired. This period is adjustable in the
-configuration file, and the default time is 3600 seconds (one
-hour). If you send a USR2 signal to the daemon, it'll regenerate
-immediately.
+configuration file, and the default time is 3600 seconds (one hour).
+
+This version supports multiple subnets at once. They are also sorted
+on subnet mask size. This means that it is possible to have
+overlapping subnets on the VPN, as long as their subnet mask sizes
+differ.
+
+Since pre5, tinc can operate in several routing modes. The default mode,
+"router", works exactly like the older version, and uses Subnet lines to
+determine the destination of packets. The other two modes, "switch" and "hub",
+allow the tinc daemons to work together like a single network switch or hub.
+This is useful for bridging networks. The latter modes only work properly on
+Linux and FreeBSD.
+
+The algorithms used for encryption and generating message authentication codes
+can now be changed in the configuration files. All cipher and digest algorithms
+supported by OpenSSL can be used. Useful ciphers are "blowfish" (default),
+"bf-ofb", "des", "des3", etcetera. Useful digests are "sha1" (default), "md5",
+etcetera.
+
+Support for routing IPv6 packets has been added. Just add Subnet lines with
+IPv6 addresses (without using :: abbreviations) and use ifconfig or ip (from
+the iproute package) to give the virtual network interface corresponding IPv6
+addresses. Autoconfiguration will not work in router mode. Tunneling IPv6
+packets only works on Linux, FreeBSD and possibly OpenBSD.
+
+It is also possible to make tunnels to other tinc daemons over IPv6 networks.
+In order to enable this feature the option "AddressFamily = any" or
+"AddressFamily = ipv6" must be added to the tinc.conf file. The host
+configuration files should contain IPv6 addresses for the "Address" variables,
+or hostnames which have an AAAA or A6 record.
diff --git a/THANKS b/THANKS
index 6116810..e4cfd6d 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -1,4 +1,4 @@
-I would like to thank
+We would like to thank
 
  * Hans Bayle (for making some useful coding suggestions and fixing a
    bug or two)
 
  * Hans Bayle (for making some useful coding suggestions and fixing a
    bug or two)
@@ -14,7 +14,12 @@ I would like to thank
  * Cris van Pelt (small fixes)
  * Enrique Zanardi (for the Spanish translation)
  * Matias Carrasco (for the Spanish translation of the manual)
  * Cris van Pelt (small fixes)
  * Enrique Zanardi (for the Spanish translation)
  * Matias Carrasco (for the Spanish translation of the manual)
+ * Jamie Briggs (for finding a lot of socket leaks)
+ * Armijn Hemel (for being our very own PR manager)
+ * Jerome Etienne (for a thorough security analysis of tinc)
+ * Mark Glines (for his compression patch) 
 
 for their help, support and ideas.  Thank you guys!
 
 
 for their help, support and ideas.  Thank you guys!
 
-And especially Guus Sliepen, for starting this whole project...
+Ivo Timmermans
+Guus Sliepen
diff --git a/TODO b/TODO
index 4415e16..c0f2ee3 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,9 +1,5 @@
-Things left to do to make cabal superstable:
---------------------------------------------
- * Check for connection loops. Inter-daemon
-   connections should always satisfy the
-   tree property.
- * Redundancy: multiple ConnectTo lines, if
-   one fails others might be tried.
- * Allow connects to hosts that use
-   nodirectdata.
+TODO LIST
+
+1.0:
+
+* A nice, secure and stable release
index 09e5ecd..21a0f4c 100644 (file)
@@ -4,7 +4,12 @@
 
 DIE=0
 
 
 DIE=0
 
-srcdir="`pwd`"
+if ${MAKE:-gmake} -q -C . autogen.sh 2> /dev/null
+then
+  alias make=${MAKE:-gmake}
+fi
+
+srcdir="`/bin/pwd`"
 
 (autoconf --version) < /dev/null > /dev/null 2>&1 || {
   echo
 
 (autoconf --version) < /dev/null > /dev/null 2>&1 || {
   echo
index 7f66487..bb6e573 100644 (file)
@@ -1,9 +1,9 @@
 dnl Process this file with autoconf to produce a configure script.
 
 dnl Process this file with autoconf to produce a configure script.
 
-dnl $Id: configure.in,v 1.16 2000/10/19 20:39:04 zarq Exp $
+dnl $Id: configure.in,v 1.17 2002/04/09 15:28:45 zarq Exp $
 
 AC_INIT(src/tincd.c)
 
 AC_INIT(src/tincd.c)
-AM_INIT_AUTOMAKE(tinc, 1.0pre3)
+AM_INIT_AUTOMAKE(tinc, 1.0-cvs)
 AM_CONFIG_HEADER(config.h)
 
 dnl Include the macros from the m4/ directory
 AM_CONFIG_HEADER(config.h)
 
 dnl Include the macros from the m4/ directory
@@ -14,7 +14,7 @@ AM_ACLOCAL_INCLUDE(m4)
 # in the latter don't make it into the configure-time tests.
 AC_DEFINE([_GNU_SOURCE], [__USE_BSD])
 
 # in the latter don't make it into the configure-time tests.
 AC_DEFINE([_GNU_SOURCE], [__USE_BSD])
 
-ALL_LINGUAS="es nl"
+ALL_LINGUAS="nl"
 
 dnl Checks for programs.
 AC_PROG_CC
 
 dnl Checks for programs.
 AC_PROG_CC
@@ -25,15 +25,45 @@ AC_PROG_INSTALL
 AC_PROG_LN_S
 AC_PROG_MAKE_SET
 jm_PERL
 AC_PROG_LN_S
 AC_PROG_MAKE_SET
 jm_PERL
-AM_PROG_LIBTOOL
+
 
 AC_ISC_POSIX
 
 
 AC_ISC_POSIX
 
+dnl Check and set OS
+
+AC_CANONICAL_HOST
+
+case $host_os in
+  *linux*)
+    AC_DEFINE(HAVE_LINUX)
+    [ rm -f src/device.c; ln -sf linux/device.c src/device.c ]
+  ;;
+  *freebsd*)
+    AC_DEFINE(HAVE_FREEBSD)
+    [ rm -f src/device.c; ln -sf freebsd/device.c src/device.c ]
+  ;;
+  *solaris*)
+    AC_DEFINE(HAVE_SOLARIS)
+    [ rm -f src/device.c; ln -sf solaris/device.c src/device.c ]
+  ;;
+  *openbsd*)
+    AC_DEFINE(HAVE_OPENBSD)
+    [ rm -f src/device.c; ln -sf openbsd/device.c src/device.c ]
+  ;;
+  *netbsd*)
+    AC_DEFINE(HAVE_NETBSD)
+    [ rm -f src/device.c; ln -sf netbsd/device.c src/device.c ]
+  ;;
+esac
+
+AC_CACHE_SAVE
+
 dnl Checks for libraries.
 
 dnl Checks for header files.
 AC_HEADER_STDC
 dnl Checks for libraries.
 
 dnl Checks for header files.
 AC_HEADER_STDC
-AC_CHECK_HEADERS(fcntl.h limits.h sys/ioctl.h syslog.h unistd.h sys/time.h linux/if_tun.h)
+AC_CHECK_HEADERS([fcntl.h limits.h sys/ioctl.h syslog.h unistd.h \
+sys/time.h malloc.h strings.h sys/file.h])
 
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
 
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
@@ -46,12 +76,14 @@ dnl Checks for library functions.
 AC_FUNC_MEMCMP
 AC_FUNC_ALLOCA
 AC_TYPE_SIGNAL
 AC_FUNC_MEMCMP
 AC_FUNC_ALLOCA
 AC_TYPE_SIGNAL
-AC_CHECK_FUNCS(ftime socket select strtol strerror)
+AC_CHECK_FUNCS([ftime socket select strtol strerror flock unsetenv \
+asprintf putenv strdup fcloseall daemon strsignal get_current_dir_name])
 jm_FUNC_MALLOC
 jm_FUNC_REALLOC
 
 AM_GNU_GETTEXT
 
 jm_FUNC_MALLOC
 jm_FUNC_REALLOC
 
 AM_GNU_GETTEXT
 
+
 dnl Support for SunOS
 
 AC_CHECK_FUNC(socket, [], [
 dnl Support for SunOS
 
 AC_CHECK_FUNC(socket, [], [
@@ -61,39 +93,33 @@ AC_CHECK_FUNC(gethostbyname, [], [
   AC_CHECK_LIB(nsl, gethostbyname)
 ])
 
   AC_CHECK_LIB(nsl, gethostbyname)
 ])
 
+AC_CACHE_SAVE
 
 
-dnl From the autoconf manual
-AC_CHECK_FUNCS(syslog)
-if test $ac_cv_func_syslog = no; then
-  # syslog is not in the default libraries.  See if it's in some other.
-  for lib in bsd socket inet; do
-    AC_CHECK_LIB($lib, syslog, [AC_DEFINE(HAVE_SYSLOG)
-      LIBS="$LIBS $lib"; break])
-  done
-fi
-
-AC_CHECK_LIB(dl, dlopen, [
-  LIBS="$LIBS -ldl"
-])
-
-
-dnl Crypto stuff
-
-libcrypto=none
-AC_CHECK_LIB(crypto, SHA1_version, [
-  libcrypto=yes
-])
-
-if test $libcrypto = none; then
-  AC_MSG_ERROR(It seems like OpenSSL is not installed on this system.)
-else
-  LIBS="$LIBS -lcrypto"
-fi
-
-
-dnl Check for TUN/TAP support in the kernel
+dnl These are defined in files in m4/
 tinc_TUNTAP
 tinc_TUNTAP
-
-AC_OUTPUT([Makefile src/Makefile
-doc/Makefile doc/es/Makefile intl/Makefile lib/Makefile
-m4/Makefile po/Makefile.in redhat/Makefile debian/Makefile])
+tinc_OPENSSL
+tinc_ZLIB
+
+dnl Check if support for jumbograms is requested 
+AC_ARG_ENABLE(jumbograms,
+  [  --enable-jumbograms     enable support for jumbograms (packets up to 9000 bytes)],
+  [ AC_DEFINE(ENABLE_JUMBOGRAMS) ]
+)
+
+dnl Check if checkpoint tracing has to be enabled
+AC_ARG_ENABLE(tracing,
+  [  --enable-tracing        enable checkpoint tracing (debugging only)],
+  [ AC_DEFINE(ENABLE_TRACING) ]
+)
+
+AC_SUBST(INCLUDES)
+
+AC_OUTPUT(Makefile
+src/Makefile
+doc/Makefile
+doc/es/Makefile
+intl/Makefile
+lib/Makefile
+m4/Makefile
+po/Makefile.in
+)
index 8e5844a..6f56abc 100644 (file)
@@ -1,16 +1,15 @@
 ## Process this file with automake to produce Makefile.in
 ## Process this file with automake to produce Makefile.in
-# $Id: Makefile.am,v 1.4 2000/10/20 16:42:22 zarq Exp $
+# $Id: Makefile.am,v 1.5 2002/04/09 15:28:45 zarq Exp $
 
 noinst_LIBRARIES = libvpn.a
 
 
 noinst_LIBRARIES = libvpn.a
 
-INCLUDES = -I. -I$(top_builddir) -I$(top_srcdir)/intl
+INCLUDES = @INCLUDES@ -I. -I$(top_builddir) -I$(top_srcdir)/intl
 
 
-libvpn_a_SOURCES = xmalloc.c pidfile.c utils.c getopt.c getopt1.c \
-       list.c error.c
+libvpn_a_SOURCES = xmalloc.c pidfile.c utils.c getopt.c getopt1.c list.c avl_tree.c dropin.c
 
 libvpn_a_LIBADD = @LIBOBJS@ @ALLOCA@
 libvpn_a_DEPENDENCIES = $(libvpn_a_LIBADD)
 
 
 libvpn_a_LIBADD = @LIBOBJS@ @ALLOCA@
 libvpn_a_DEPENDENCIES = $(libvpn_a_LIBADD)
 
-noinst_HEADERS = xalloc.h pidfile.h utils.h getopt.h list.h error.h
+noinst_HEADERS = xalloc.h pidfile.h utils.h getopt.h list.h avl_tree.h dropin.h
 
 
-EXTRA_DIST = README
\ No newline at end of file
+EXTRA_DIST = README
index df8b507..4e52a3a 100644 (file)
@@ -6,10 +6,28 @@
 lib/pidfile.c
 lib/utils.c
 src/conf.c
 lib/pidfile.c
 lib/utils.c
 src/conf.c
-src/genauth.c
+src/connection.c
 src/meta.c
 src/net.c
 src/meta.c
 src/net.c
+src/net_packet.c
+src/net_setup.c
+src/net_socket.c
 src/netutl.c
 src/protocol.c
 src/netutl.c
 src/protocol.c
+src/protocol_auth.c
+src/protocol_edge.c
+src/protocol_key.c
+src/protocol_misc.c
+src/protocol_subnet.c
 src/subnet.c
 src/tincd.c
 src/subnet.c
 src/tincd.c
+src/process.c
+src/route.c
+src/node.c
+src/edge.c
+src/graph.c
+src/linux/device.c
+src/freebsd/device.c
+src/solaris/device.c
+src/netbsd/device.c
+src/openbsd/device.c
index 44e097f..0f37900 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
 # Dutch messages for tinc
 # Dutch messages for tinc
-# Copyright (C) 1999, 2000 Ivo Timmermans, Guus Sliepen.
-# Ivo Timmermans <itimmermans@bigfoot.com>, 1999, 2000.
-# Guus Sliepen <guus@sliepen.warande.net>, 2000.
+# Copyright (C) 1999-2001 Ivo Timmermans, Guus Sliepen.
+# Ivo Timmermans <itimmermans@bigfoot.com>, 1999-2002.
+# Guus Sliepen <guus@sliepen.warande.net>, 2000-2002.
 msgid ""
 msgstr ""
 msgid ""
 msgstr ""
-"Project-Id-Version: tinc 1.0pre3\n"
-"POT-Creation-Date: 2000-10-15 02:53+0200\n"
-"PO-Revision-Date: 2000-05-31 20:14+02:00\n"
+"Project-Id-Version: tinc 1.0-cvs\n"
+"POT-Creation-Date: 2002-04-09 13:41+0200\n"
+"PO-Revision-Date: 2002-03-27 16:59+0100\n"
 "Last-Translator: Guus Sliepen <guus@sliepen.warande.net>\n"
 "Language-Team: Dutch <vertaling@nl.linux.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 "Last-Translator: Guus Sliepen <guus@sliepen.warande.net>\n"
 "Language-Team: Dutch <vertaling@nl.linux.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: src/conf.c:164
+#: src/conf.c:173
 #, c-format
 #, c-format
-msgid "Line %d too long while reading config file %s"
-msgstr "Regel %d te lang tijdens het lezen van configuratie bestand %s"
+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:188
+#, 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:180
+#: src/conf.c:218
 #, c-format
 #, c-format
-msgid "Invalid variable name on line %d while reading config file %s"
+msgid ""
+"Hostname or IP address expected for configuration variable %s in %s line %d"
 msgstr ""
 msgstr ""
-"Ongeldige naam voor variabele op regel %d tijdens het lezen van configuratie "
-"bestand %s"
+"Hostnaam of IP adres verwacht voor configuratievariabele %s in %s regel %d"
+
+#: src/conf.c:235
+#, c-format
+msgid "Port number expected for configuration variable %s in %s line %d"
+msgstr "Poortnummer verwacht voor configuratievariabele %s in %s regel %d"
+
+#: src/conf.c:251
+#, 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:187
+#: src/conf.c:261
 #, c-format
 #, c-format
-msgid "No value for variable on line %d while reading config file %s"
+msgid ""
+"Network address and prefix length do not match for configuration variable %s "
+"in %s line %d"
 msgstr ""
 msgstr ""
-"Geen waarde voor variabele op regel %d  tijdens het lezen van configuratie "
-"bestand %s"
+"Netwerk adres en prefix lengte komen niet overeen bij configuratievariabele %"
+"s in %s regel %d"
 
 
-#: src/conf.c:195
+#: src/conf.c:369
 #, c-format
 #, c-format
-msgid "Invalid value for variable on line %d while reading config file %s"
+msgid "Cannot open config file %s: %s"
+msgstr "Kan configuratie bestand %s niet openen: %s"
+
+#: src/conf.c:405
+#, c-format
+msgid "No value for variable `%s' on line %d while reading config file %s"
 msgstr ""
 msgstr ""
-"Ongeldige waarde voor variabele op regel %d  tijdens het lezen van "
+"Geen waarde voor variabele `%s' op regel %d tijdens het lezen van "
 "configuratie bestand %s"
 
 "configuratie bestand %s"
 
-#: src/genauth.c:78
+#: src/conf.c:438
 #, c-format
 #, c-format
-msgid "Usage: %s bits\n"
-msgstr "Gebruik: %s bits\n"
+msgid "Failed to read `%s': %s"
+msgstr "Lezen van `%s' mislukte: %s"
 
 
-#: src/genauth.c:89
+#: src/conf.c:465
 #, c-format
 #, c-format
-msgid "Illegal number: %s\n"
-msgstr "Ongeldig nummer: %s\n"
+msgid "`%s' is not an absolute path"
+msgstr "`%s' is geen absoluut pad"
 
 
-#. Align to bytes for easy mallocing and reading
-#: src/genauth.c:95
+#: src/conf.c:481 src/conf.c:513
 #, c-format
 #, c-format
-msgid "Generating %d bits keys:\n"
-msgstr "Bezig met genereren van een %d bits sleutel:\n"
+msgid "Couldn't stat `%s': %s"
+msgstr "Kon `%s' niet statten: %s"
 
 
-#: src/genauth.c:99
-msgid "Done.\n"
-msgstr "Klaar.\n"
+#: src/conf.c:487 src/conf.c:522
+#, c-format
+msgid "`%s' is owned by UID %d instead of %d"
+msgstr "`%s' is eigendom van UID %d in plaats van %d"
+
+#: src/conf.c:494 src/conf.c:529
+#, c-format
+msgid "Warning: `%s' is a symlink"
+msgstr "Waarschuwing: `%s' is een symbolische link"
+
+#: src/conf.c:499 src/conf.c:534
+#, c-format
+msgid "Unable to read symbolic link `%s': %s"
+msgstr "Kan symbolische link `%s' niet lezen: %s"
+
+#. Accessible by others
+#: src/conf.c:545
+#, c-format
+msgid "`%s' has unsecure permissions"
+msgstr "`%s' heeft onveilige permissies"
+
+#. Ask for a file and/or directory name.
+#: src/conf.c:570
+#, c-format
+msgid "Please enter a file to save %s to [%s]: "
+msgstr "Geef een bestand om de %s naar de schrijven [%s]: "
 
 
-#: src/genauth.c:101
+#: src/conf.c:576
 #, c-format
 #, c-format
-msgid "Public key:  %s\n"
-msgstr "Publieke sleutel: %s\n"
+msgid "Error while reading stdin: %s\n"
+msgstr "Fout tijdens lezen van standaardinvoer: %s\n"
 
 
-#: src/genauth.c:102
+#: src/conf.c:602
 #, c-format
 #, c-format
-msgid "Private key: %s\n"
-msgstr "Privé sleutel:    %s\n"
+msgid "Error opening file `%s': %s\n"
+msgstr "Fout bij het openen van het bestand `%s': %s\n"
 
 
-#: src/meta.c:42
+#: src/conf.c:612
 #, c-format
 #, c-format
-msgid "Sending %d bytes of metadata to %s (%s): %s"
-msgstr "Verzending %d bytes metadata naar %s (%s): %s"
+msgid ""
+"The file `%s' (or any of the leading directories) has unsafe permissions.\n"
+"I will not create or overwrite this file.\n"
+msgstr ""
+"Het bestand `%s' (of een van de voorgaande mappen) heeft onvoldoende "
+"bescherming.\n"
+"Ik maak of overschrijf dit bestand niet.\n"
+
+#: src/connection.c:114
+msgid "Connections:"
+msgstr "Verbindingen:"
 
 
-#: src/meta.c:57
+#: src/connection.c:119
 #, c-format
 #, c-format
-msgid "Sending meta data to %s (%s) failed: %m"
-msgstr "Fout tijdens verzenden metadata naar %s (%s): %m"
+msgid " %s at %s options %lx socket %d status %04x"
+msgstr " %s op %s opties %lx socket %d status %04x"
 
 
-#: src/meta.c:85 src/net.c:773
+#: src/connection.c:123
+msgid "End of connections."
+msgstr "Einde van verbindingen."
+
+#: src/meta.c:49
 #, c-format
 #, c-format
-msgid "This is a bug: %s:%d: %d:%m %s (%s)"
-msgstr "Dit is een programmeerfout: %s:%d: %d:%m %s (%s)"
+msgid "Sending %d bytes of metadata to %s (%s)"
+msgstr "Verzenden van %d bytes metadata naar %s (%s)"
 
 
-#: src/meta.c:91
+#: src/meta.c:63
+#, c-format
+msgid "Sending meta data to %s (%s) failed: %s"
+msgstr "Fout tijdens verzenden metadata naar %s (%s): %s"
+
+#: src/meta.c:94
+#, c-format
+msgid "This is a bug: %s:%d: %d:%s %s (%s)"
+msgstr "Dit is een programmeerfout: %s:%d: %d:%s %s (%s)"
+
+#: src/meta.c:100
 #, c-format
 msgid "Metadata socket error for %s (%s): %s"
 msgstr "Fout op metadata socket voor %s (%s): %s"
 
 #, c-format
 msgid "Metadata socket error for %s (%s): %s"
 msgstr "Fout op metadata socket voor %s (%s): %s"
 
-#: src/meta.c:110
+#: src/meta.c:121
 #, c-format
 msgid "Connection closed by %s (%s)"
 msgstr "Verbinding beëindigd door %s (%s)"
 
 #, c-format
 msgid "Connection closed by %s (%s)"
 msgstr "Verbinding beëindigd door %s (%s)"
 
-#: src/meta.c:114
+#: src/meta.c:128
 #, c-format
 #, c-format
-msgid "Metadata socket read error for %s (%s): %m"
-msgstr "Fout op metadata socket voor %s (%s) tijdens lezen: %m"
+msgid "Metadata socket read error for %s (%s): %s"
+msgstr "Fout op metadata socket voor %s (%s) tijdens lezen: %s"
 
 
-#: src/meta.c:144
+#: src/meta.c:202
 #, c-format
 #, c-format
-msgid "Got request from %s (%s): %s"
-msgstr "Kreeg verzoek van %s (%s): %s"
+msgid "Metadata read buffer overflow for %s (%s)"
+msgstr "Metadata leesbuffer overloop voor %s (%s)"
+
+#: src/net.c:88
+msgid "Purging unreachable nodes"
+msgstr "Verwijderen onbereikbare nodes"
 
 
-#: src/meta.c:162
+#: src/net.c:98
 #, c-format
 #, c-format
-msgid "Metadata read buffer overflow for %s (%s)"
-msgstr "Metadata leesbuffer overvol voor %s (%s)"
+msgid "Purging node %s (%s)"
+msgstr "Verwijdering node %s (%s)"
 
 
-#: src/net.c:106
+#: src/net.c:188
 #, c-format
 #, c-format
-msgid "Sending packet of %d bytes to %s (%s)"
-msgstr "Verzending pakket van %d bytes naar %s (%s)"
+msgid "Closing connection with %s (%s)"
+msgstr "Beëindigen verbinding met %s (%s)"
+
+#: src/net.c:253
+#, c-format
+msgid "%s (%s) didn't respond to PING"
+msgstr "%s (%s) antwoordde niet op ping"
 
 
-#: src/net.c:115
+#: src/net.c:266
 #, c-format
 #, c-format
-msgid "Error sending packet to %s (%s): %m"
-msgstr "Fout tijdens verzenden pakket naar %s (%s): %m"
+msgid "Timeout from %s (%s) during authentication"
+msgstr "Timeout van %s (%s) tijdens authenticatie"
 
 
-#: src/net.c:129
+#: src/net.c:311 src/net_socket.c:253
 #, c-format
 #, c-format
-msgid "Receiving packet of %d bytes"
-msgstr "Ontvangst pakket van %d bytes"
+msgid "Error while connecting to %s (%s): %s"
+msgstr "Fout tijdens schrijven naar %s (%s): %s"
 
 
-#: src/net.c:142
+#: src/net.c:363
 #, c-format
 #, c-format
-msgid "Can't write to tap device: %m"
-msgstr "Kan niet naar tap apparaat schrijven: %m"
+msgid "Error while waiting for input: %s"
+msgstr "Fout tijdens wachten op invoer: %s"
 
 
-#: src/net.c:242
-msgid "Queue flushed"
-msgstr "Wachtrij leeggemaakt"
+#: src/net.c:397
+msgid "Regenerating symmetric key"
+msgstr "Hergenereren symmetrische sleutel"
 
 
-#: src/net.c:257
+#: src/net.c:414
+msgid "Flushing event queue"
+msgstr "Legen taakrij"
+
+#: src/net.c:431
+msgid "Rereading configuration file and restarting in 5 seconds..."
+msgstr "Herlezen configuratiebestand en herstarten na 5 seconden..."
+
+#: src/net.c:438
+msgid "Unable to reread configuration file, exitting."
+msgstr "Kan configuratiebestand niet herlezen, beëindigen."
+
+#: src/net_packet.c:107
 #, c-format
 #, c-format
-msgid "Flushing send queue for %s (%s)"
-msgstr "Legen van verzend-wachtrij voor %s (%s)"
+msgid "Got unauthenticated packet from %s (%s)"
+msgstr "Kreeg niet-geauthenticeerd pakket van %s (%s)"
 
 
-#: src/net.c:265
+#: src/net_packet.c:134
 #, c-format
 #, c-format
-msgid "Flushing receive queue for %s (%s)"
-msgstr "Legen van de ontvangst-wachtrij voor %s (%s)"
+msgid "Got late or replayed packet from %s (%s), seqno %d"
+msgstr "Kreeg laat of gedupliceerd pakket van %s (%s), seqno %d"
 
 
-#: src/net.c:283
+#: src/net_packet.c:151
 #, c-format
 #, c-format
-msgid "Trying to look up %d.%d.%d.%d in connection list failed!"
-msgstr "Poging tot opzoeken %d.%d.%d.%d in verbindingslijst mislukte!"
+msgid "Error while uncompressing packet from %s (%s)"
+msgstr "Fout tijdens decomprimeren pakket van %s (%s)"
 
 
-#: src/net.c:297
+#: src/net_packet.c:178
 #, c-format
 #, c-format
-msgid "Could not open UDP connection to %s (%s)"
-msgstr "Kon geen UDP verbinding openen naar %s (%s)"
+msgid "Received packet of %d bytes from %s (%s)"
+msgstr "Ontvangst pakket van %d bytes van %s (%s)"
 
 
-#: src/net.c:305
+#: src/net_packet.c:204
 #, c-format
 msgid "No valid key known yet for %s (%s), queueing packet"
 msgstr ""
 #, 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 de wachtrij "
-"gezet"
+"Nog geen geldige sleutel bekend voor %s (%s), pakket wordt in wachtrij gezet"
 
 
-#: src/net.c:316
+#: src/net_packet.c:237
 #, c-format
 #, c-format
-msgid "%s (%s) is not ready, queueing packet"
-msgstr "%s (%s) is niet gereed, pakket wordt in de wachtrij gezet"
+msgid "Error while compressing packet to %s (%s)"
+msgstr "Fout tijdens comprimeren pakket naar %s (%s)"
 
 
-#: src/net.c:344
+#: src/net_packet.c:288
 #, c-format
 #, c-format
-msgid "Could not open %s: %m"
-msgstr "Kon %s niet openen: %m"
+msgid "Setting outgoing packet priority to %d"
+msgstr "Instellen prioriteit uitgaand pakket op %d"
 
 
-#: src/net.c:360
+#. SO_PRIORITY doesn't seem to work
+#: src/net_packet.c:290 src/net_setup.c:450 src/net_socket.c:98
+#: src/net_socket.c:144 src/net_socket.c:171 src/process.c:273
+#: src/process.c:310
 #, c-format
 #, c-format
-msgid "%s is a new style tun/tap device"
-msgstr "%s is een nieuwe stijl tun/tap apparaat"
+msgid "System call `%s' failed: %s"
+msgstr "Systeemaanroep `%s' mislukte: %s"
 
 
-#: src/net.c:362
-msgid "tun/tap device will be left unconfigured"
-msgstr "tun/tap apparaat wordt ongeconfigureerd gelaten"
-
-#: src/net.c:384
+#: src/net_packet.c:296
 #, c-format
 #, c-format
-msgid "Creating metasocket failed: %m"
-msgstr "Aanmaak van metasocket mislukt: %m"
+msgid "Error sending packet to %s (%s): %s"
+msgstr "Fout tijdens verzenden pakket naar %s (%s): %s"
 
 
-#: src/net.c:390 src/net.c:396 src/net.c:458
+#: src/net_packet.c:313
 #, c-format
 #, c-format
-msgid "setsockopt: %m"
-msgstr "setsockopt: %m"
+msgid "Sending packet of %d bytes to %s (%s)"
+msgstr "Verzending pakket van %d bytes naar %s (%s)"
+
+#: src/net_packet.c:320
+msgid "Packet is looping back to us!"
+msgstr "Pakket komt terug naar ons!"
 
 
-#: src/net.c:403 src/net.c:465
+#: src/net_packet.c:329
 #, c-format
 #, c-format
-msgid "fcntl: %m"
-msgstr "fcntl: %m"
+msgid "Node %s (%s) is not reachable"
+msgstr "Node %s (%s) is niet bereikbaar"
 
 
-#: src/net.c:411
+#: src/net_packet.c:337
 #, c-format
 #, c-format
-msgid "Unable to bind listen socket to interface %s: %m"
-msgstr "Kon luistersocket niet binden aan interface %s: %m"
+msgid "Sending packet to %s via %s (%s)"
+msgstr "Verzending pakket naar %s via %s (%s)"
 
 
-#: src/net.c:427
+#: src/net_packet.c:357
 #, c-format
 #, c-format
-msgid "Can't bind to port %hd/tcp: %m"
-msgstr "Kan niet aan poort %hd/tcp binden: %m"
+msgid "Broadcasting packet of %d bytes from %s (%s)"
+msgstr "Verspreiding pakket van %d bytes van %s (%s)"
 
 
-#: src/net.c:433
+#: src/net_packet.c:374
 #, c-format
 #, c-format
-msgid "listen: %m"
-msgstr "listen: %m"
+msgid "Flushing queue for %s (%s)"
+msgstr "Legen van wachtrij voor %s (%s)"
 
 
-#: src/net.c:452
+#: src/net_packet.c:396
 #, c-format
 #, c-format
-msgid "Creating socket failed: %m"
-msgstr "Aanmaak socket mislukte: %m"
+msgid "This is a bug: %s:%d: %d:%s"
+msgstr "Dit is een programmeerfout: %s:%d: %d:%s"
 
 
-#: src/net.c:476
+#: src/net_packet.c:403
 #, c-format
 #, c-format
-msgid "Can't bind to port %hd/udp: %m"
-msgstr "Kan niet aan poort %hd/udp binden: %m"
+msgid "Incoming data socket error: %s"
+msgstr "Fout op socket voor inkomend verkeer: %s"
 
 
-#: src/net.c:493
+#: src/net_packet.c:409
 #, c-format
 #, c-format
-msgid "Trying to connect to %s"
-msgstr "Poging tot verbinding met %s"
+msgid "Receiving packet failed: %s"
+msgstr "Ontvangst pakket mislukt: %s"
 
 
-#: src/net.c:503
+#: src/net_packet.c:420
 #, c-format
 #, c-format
-msgid "Creating socket for %s port %d failed: %m"
-msgstr "Aanmaken socket voor %s poort %d mislukt: %m"
+msgid "Received UDP packet from unknown source %s"
+msgstr "Ontvangst UDP pakket van onbekende oorsprong %s"
 
 
-#: src/net.c:514
+#: src/net_setup.c:102
 #, c-format
 #, c-format
-msgid "%s port %hd: %m"
-msgstr "%s poort %hd: %m"
+msgid "Error reading RSA public key file `%s': %s"
+msgstr "Fout tijdens lezen RSA publieke sleutel bestand `%s': %s"
 
 
-#: src/net.c:521
+#: src/net_setup.c:112
 #, c-format
 #, c-format
-msgid "fcntl for %s port %d: %m"
-msgstr "fcntl voor %s poort %d: %m"
+msgid "Reading RSA public key file `%s' failed: %s"
+msgstr "Lezen RSA publieke sleutel bestand `%s' mislukt: %s"
 
 
-#: src/net.c:527
+#: src/net_setup.c:140
 #, c-format
 #, c-format
-msgid "Connected to %s port %hd"
-msgstr "Verbonden met %s poort %hd"
+msgid "No public key for %s specified!"
+msgstr "Geen publieke sleutel bekend voor %s gespecificeerd!"
 
 
-#: src/net.c:547
+#: src/net_setup.c:166
 #, c-format
 #, c-format
-msgid "Error looking up `%s': %m"
-msgstr "Fout bij het opzoeken van `%s': %m"
+msgid "Error reading RSA private key file `%s': %s"
+msgstr "Fout tijdens lezen RSA privé sleutel bestand `%s': %s"
 
 
-#: src/net.c:557
+#: src/net_setup.c:176
 #, c-format
 #, c-format
-msgid "Could not set up a meta connection to %s"
-msgstr "Kon geen metaverbinding aangaan met %s"
+msgid "Reading RSA private key file `%s' failed: %s"
+msgstr "Fout tijdens lezen RSA privé sleutel bestand `%s': %s"
+
+#: src/net_setup.c:202 src/net_setup.c:203
+msgid "MYSELF"
+msgstr "MIJZELF"
 
 
-#: src/net.c:586
+#: src/net_setup.c:210
 msgid "Name for tinc daemon required!"
 msgstr "Naam voor tinc daemon verplicht!"
 
 msgid "Name for tinc daemon required!"
 msgstr "Naam voor tinc daemon verplicht!"
 
-#: src/net.c:594
+#: src/net_setup.c:216
 msgid "Invalid name for myself!"
 msgid "Invalid name for myself!"
-msgstr "Ongelige naam voor mijzelf!"
+msgstr "Ongeldige naam voor mijzelf!"
 
 
-#: src/net.c:600
+#: src/net_setup.c:230
 msgid "Cannot open host configuration file for myself!"
 msgstr "Kan host configuratie bestand voor mijzelf niet openen!"
 
 msgid "Cannot open host configuration file for myself!"
 msgstr "Kan host configuratie bestand voor mijzelf niet openen!"
 
-#: src/net.c:619
-msgid "Unable to set up a listening socket!"
-msgstr "Kon geen luistersocket aanmaken!"
+#: src/net_setup.c:287
+msgid "Invalid routing mode!"
+msgstr "Ongeldige routing modus!"
 
 
-#: src/net.c:625
-msgid "Unable to set up an incoming vpn data socket!"
-msgstr "Kon geen socket maken voor inkomend vpn verkeer!"
+#: src/net_setup.c:298
+msgid "PriorityInheritance not supported on this platform"
+msgstr "PriorityInheritance wordt niet ondersteund op dit platform"
 
 
-#: src/net.c:632
-#, c-format
-msgid "Ready: listening on port %hd"
-msgstr "Gereed: luisterend op poort %hd"
+#: src/net_setup.c:308
+msgid "Bogus maximum timeout!"
+msgstr "Onzinnige maximum timeout!"
 
 
-#: src/net.c:660
-#, c-format
-msgid "Still failed to connect to other, will retry in %d seconds"
-msgstr "Wederom niet verbonden met de ander, nieuwe poging over %d seconden"
+#: src/net_setup.c:325
+msgid "Invalid address family!"
+msgstr "Ongeldige adresfamilie!"
 
 
-#: src/net.c:698
-#, c-format
-msgid "Trying to re-establish outgoing connection in %d seconds"
-msgstr "Poging tot herstellen van uitgaande verbinding over %d seconden"
+#: src/net_setup.c:347
+msgid "Unrecognized cipher type!"
+msgstr "Onbekend cipher type!"
 
 
-#: src/net.c:736
-msgid "Terminating"
-msgstr "Beëindigen"
+#: src/net_setup.c:382
+msgid "Unrecognized digest type!"
+msgstr "Onbekend digest type!"
 
 
-#: src/net.c:750
-#, c-format
-msgid "Opening UDP socket to %s"
-msgstr "Bezig met openen UDP socket naar %s"
+#: src/net_setup.c:398
+msgid "MAC length exceeds size of digest!"
+msgstr "MAC lengte is groter dan dat van digest!"
 
 
-#: src/net.c:755
-#, c-format
-msgid "Creating UDP socket failed: %m"
-msgstr "Aanmaak UDP socket mislukte: %m"
+#: src/net_setup.c:403
+msgid "Bogus MAC length!"
+msgstr "Onzinnige MAC lengte!"
 
 
-#: src/net.c:765
-#, c-format
-msgid "Connecting to %s port %d failed: %m"
-msgstr "Verbinding naar %s poort %d mislukt: %m"
+#: src/net_setup.c:419
+msgid "Bogus compression level!"
+msgstr "Onzinnig compressieniveau!"
 
 
-#: src/net.c:798
+#: src/net_setup.c:465
 #, c-format
 #, c-format
-msgid "Error: getpeername: %m"
-msgstr "Fout: getpeername: %m"
+msgid "Listening on %s"
+msgstr "Luisterend op %s"
 
 
-#: src/net.c:813
-#, c-format
-msgid "Connection from %s port %d"
-msgstr "Verbinding van %s poort %d"
+#: src/net_setup.c:476
+msgid "Ready"
+msgstr "Gereed"
 
 
-#: src/net.c:861
+#: src/net_setup.c:479
+msgid "Unable to create any listening socket!"
+msgstr "Kon geen enkele luistersocket aanmaken!"
+
+#: src/net_socket.c:90
 #, c-format
 #, c-format
-msgid "This is a bug: %s:%d: %d:%m"
-msgstr "Dit is een programmeerfout: %s:%d: %d:%m"
+msgid "Creating metasocket failed: %s"
+msgstr "Aanmaak van metasocket mislukt: %s"
 
 
-#: src/net.c:867
+#: src/net_socket.c:124 src/net_socket.c:186
 #, c-format
 #, c-format
-msgid "Incoming data socket error: %s"
-msgstr "Fout op socket voor inkomend verkeer: %s"
+msgid "Can't bind to interface %s: %s"
+msgstr "Kan niet aan interface %s binden: %s"
 
 
-#: src/net.c:873
+#: src/net_socket.c:128
+msgid "BindToDevice not supported on this platform"
+msgstr "BindToDevice wordt niet ondersteund op dit platform"
+
+#: src/net_socket.c:136
 #, c-format
 #, c-format
-msgid "Receiving packet failed: %m"
-msgstr "Ontvangst pakket mislukt: %m"
+msgid "Can't bind to %s/tcp: %s"
+msgstr "Kan niet aan %s/tcp binden: %s"
 
 
-#: src/net.c:894
+#: src/net_socket.c:163
 #, c-format
 #, c-format
-msgid "Closing connection with %s (%s)"
-msgstr "Beëindigen verbinding met %s (%s)"
+msgid "Creating UDP socket failed: %s"
+msgstr "Aanmaak UDP socket mislukte: %s"
 
 
-#: src/net.c:937
-msgid "Trying to re-establish outgoing connection in 5 seconds"
-msgstr "Poging tot herstellen van uitgaande verbinding over 5 seconden"
+#: src/net_socket.c:196
+#, c-format
+msgid "Can't bind to %s/udp: %s"
+msgstr "Kan niet aan %s/udp binden: %s"
 
 
-#: src/net.c:967
+#: src/net_socket.c:219
 #, c-format
 #, c-format
-msgid "%s (%s) didn't respond to PING"
-msgstr "%s (%s) antwoordde niet op ping"
+msgid "Trying to re-establish outgoing connection in %d seconds"
+msgstr "Poging tot herstellen van uitgaande verbinding over %d seconden"
 
 
-#: src/net.c:998
+#: src/net_socket.c:228 src/net_socket.c:322
 #, c-format
 #, c-format
-msgid "Accepting a new connection failed: %m"
-msgstr "Aanname van nieuwe verbinding is mislukt: %m"
+msgid "Trying to connect to %s (%s)"
+msgstr "Poging tot verbinden met %s (%s)"
 
 
-#: src/net.c:1006
-msgid "Closed attempted connection"
-msgstr "Aangenomen verbinding verbroken"
+#: src/net_socket.c:234 src/net_socket.c:329
+#, c-format
+msgid "Creating socket for %s failed: %s"
+msgstr "Aanmaken socket voor %s mislukt: %s"
 
 
-#: src/net.c:1041
+#: src/net_socket.c:258 src/net_socket.c:268
 #, c-format
 #, c-format
-msgid "Outgoing data socket error for %s (%s): %s"
-msgstr "Fout op socket voor uitgaand verkeer voor %s (%s): %s"
+msgid "Connected to %s (%s)"
+msgstr "Verbonden met %s (%s)"
 
 
-#: src/net.c:1077
+#: src/net_socket.c:287
 #, c-format
 #, c-format
-msgid "Error while reading from tapdevice: %m"
-msgstr "Fout tijdens lezen van tap-apparaatbestand tijdens lezen: %m"
+msgid "Could not set up a meta connection to %s"
+msgstr "Kon geen metaverbinding aangaan met %s"
 
 
-#: src/net.c:1087
+#: src/net_socket.c:350
 #, c-format
 #, c-format
-msgid "Non-IP ethernet frame %04x from %02x:%02x:%02x:%02x:%02x:%02x"
-msgstr "Niet-IP ethernet pakket %04x van %02x:%02x:%02x:%02x:%02x:%02x"
+msgid "fcntl for %s: %s"
+msgstr "fcntl voor %s: %s"
 
 
-#: src/net.c:1094
+#: src/net_socket.c:368
 #, c-format
 #, c-format
-msgid "Dropping short packet from %02x:%02x:%02x:%02x:%02x:%02x"
-msgstr "Te kort pakket van %02x:%02x:%02x:%02x:%02x:%02x genegeerd"
+msgid "%s: %s"
+msgstr "%s: %s"
 
 
-#: src/net.c:1133
+#: src/net_socket.c:389
 #, c-format
 #, c-format
-msgid "Error while waiting for input: %m"
-msgstr "Fout tijdens wachten op invoer: %m"
+msgid "Already connected to %s"
+msgstr "Reeds verbonden met %s"
 
 
-#: src/netutl.c:115
+#: src/net_socket.c:408
 #, c-format
 #, c-format
-msgid "Error looking up `%s': %s\n"
-msgstr "Fout bij het opzoeken van `%s': %s\n"
+msgid "No address specified for %s"
+msgstr "Geen adres gespecificeerd voor %s"
 
 
-#: src/protocol.c:80
+#: src/net_socket.c:435
 #, c-format
 #, c-format
-msgid "Output buffer overflow while sending %s to %s (%s)"
-msgstr "Uitvoer buffer overvol tijdens zenden %s naar %s (%s)"
+msgid "Accepting a new connection failed: %s"
+msgstr "Aanname van nieuwe verbinding is mislukt: %s"
 
 
-#: src/protocol.c:87
+#: src/net_socket.c:453
 #, c-format
 #, c-format
-msgid "Sending %s to %s (%s)"
-msgstr "Verzending %s naar %s (%s)"
+msgid "Connection from %s"
+msgstr "Verbinding van %s"
 
 
-#: src/protocol.c:101
+#: src/net_socket.c:475
 #, c-format
 #, c-format
-msgid "Unknown request from %s (%s)"
-msgstr "Onbekend verzoek van %s (%s)"
+msgid "Invalid name for outgoing connection in %s line %d"
+msgstr "Ongeldige naam voor uitgaande verbinding in %s regel %d"
 
 
-#: src/protocol.c:108
+#: src/netutl.c:65 src/netutl.c:88
 #, c-format
 #, c-format
-msgid "Got %s from %s (%s)"
-msgstr "Kreeg %s van %s (%s)"
+msgid "Error looking up %s port %s: %s\n"
+msgstr "Fout bij het opzoeken van %s poort %s: %s\n"
 
 
-#: src/protocol.c:114
+#: src/netutl.c:109
 #, c-format
 #, c-format
-msgid "Error while processing %s from %s (%s)"
-msgstr "Fout tijdens afhandelen %s van %s (%s)"
+msgid "Error while translating addresses: %s"
+msgstr "Fout tijdens vertalen adressen: %s"
 
 
-#: src/protocol.c:121
+#: src/netutl.c:134
 #, c-format
 #, c-format
-msgid "Bogus data received from %s (%s)"
-msgstr "Onzinnige data ontvangen van %s (%s)"
+msgid "Error while looking up hostname: %s"
+msgstr "Fout bij het opzoeken van hostnaam: %s"
 
 
-#: src/protocol.c:167
+#: src/netutl.c:137
 #, c-format
 #, c-format
-msgid "Got bad ID from %s"
-msgstr "Kreeg ongeldige ID van %s"
+msgid "%s port %s"
+msgstr "%s poort %s"
 
 
-#: src/protocol.c:175
+#: src/netutl.c:166
 #, c-format
 #, c-format
-msgid "Peer %s (%s) uses incompatible version %d"
-msgstr "Ander %s (%s) gebruikt een niet-compatibel protocol versie %d"
+msgid "sockaddrcmp() was called with unknown address family %d, exitting!"
+msgstr ""
+"sockaddrcmp() werd aangeroepen met onbekende adresfamilie %d, beëindigen!"
 
 
-#: src/protocol.c:184
+#: src/protocol.c:77
 #, c-format
 #, c-format
-msgid "Peer %s uses invalid identity name"
-msgstr "Ander %s gebruikt een ongeldige identiteitsnaam"
+msgid "Output buffer overflow while sending request to %s (%s)"
+msgstr "Uitvoer buffer overvol tijdens zenden verzoek naar %s (%s)"
 
 
-#: src/protocol.c:192
+#: src/protocol.c:85
 #, c-format
 #, c-format
-msgid "Peer %s had unknown identity (%s)"
-msgstr "Ander %s heeft een onbekende identiteit (%s)"
+msgid "Sending %s to %s (%s): %s"
+msgstr "Verzending %s naar %s (%s): %s"
 
 
-#: src/protocol.c:207
+#: src/protocol.c:87
 #, c-format
 #, c-format
-msgid "Uplink %s (%s) is already in our connection list"
-msgstr "%s (%s) staat al in onze verbindingslijst"
+msgid "Sending %s to %s (%s)"
+msgstr "Verzending %s naar %s (%s)"
 
 
-#: src/protocol.c:253
+#: src/protocol.c:104
 #, c-format
 #, c-format
-msgid "Got bad CHALLENGE from %s (%s)"
-msgstr "Kreeg ongeldige CHALLENGE van %s (%s)"
+msgid "Unknown request from %s (%s): %s"
+msgstr "Onbekend verzoek van %s (%s): %s"
 
 
-#: src/protocol.c:261
+#: src/protocol.c:107
 #, c-format
 #, c-format
-msgid "Intruder: wrong challenge length from %s (%s)"
-msgstr "Indringer: verkeerde lengte voor uitdaging van %s (%s)"
+msgid "Unknown request from %s (%s)"
+msgstr "Onbekend verzoek van %s (%s)"
 
 
-#: src/protocol.c:287
+#: src/protocol.c:117
 #, c-format
 #, c-format
-msgid "Trying to send CHAL_REPLY to %s (%s) without a valid CHALLENGE"
-msgstr "Poging tot zenden CHAL_REPLY naar %s (%s) zonder een geldige CHALLENGE"
+msgid "Got %s from %s (%s): %s"
+msgstr "Kreeg %s van %s (%s): %s"
 
 
-#: src/protocol.c:318
+#: src/protocol.c:120
 #, c-format
 #, c-format
-msgid "Got bad CHAL_REPLY from %s (%s)"
-msgstr "Kreeg ongeldige CHAL_REPLY van %s (%s)"
+msgid "Got %s from %s (%s)"
+msgstr "Kreeg %s van %s (%s)"
 
 
-#: src/protocol.c:327
+#: src/protocol.c:127
 #, c-format
 #, c-format
-msgid "Intruder: wrong challenge reply length from %s (%s)"
-msgstr "Indringer: verkeerde lengte van antwoord op uitdaging van %s (%s)"
+msgid "Unauthorized request from %s (%s)"
+msgstr "Niet toegestaan verzoek van %s (%s)"
 
 
-#: src/protocol.c:344
+#: src/protocol.c:134
 #, c-format
 #, c-format
-msgid "Intruder: wrong challenge reply from %s (%s)"
-msgstr "Indringer: verkeerd antwoord op de uitdaging van %s (%s)"
+msgid "Error while processing %s from %s (%s)"
+msgstr "Fout tijdens afhandelen %s van %s (%s)"
 
 
-#: src/protocol.c:386
+#: src/protocol.c:141
 #, c-format
 #, c-format
-msgid "Removing old entry for %s at %s in favour of new connection from %s"
-msgstr ""
-"Verwijdering oude verbinding voor %s op %s in voordeel van nieuwe verbinding "
-"van %s"
+msgid "Bogus data received from %s (%s)"
+msgstr "Onzinnige data ontvangen van %s (%s)"
 
 
-#: src/protocol.c:398
+#: src/protocol.c:187
+msgid "Already seen request"
+msgstr "Verzoek reeds gezien"
+
+#: src/protocol.c:218
 #, c-format
 #, c-format
-msgid "Connection with %s (%s) activated"
-msgstr "Verbinding met %s (%s) geactiveerd"
+msgid "Aging past requests: deleted %d, left %d\n"
+msgstr "Veroudering vorige verzoeken: %d gewist, %d overgebleven\n"
 
 
-#: src/protocol.c:438
+#: src/protocol_auth.c:69 src/protocol_auth.c:224 src/protocol_auth.c:357
+#: src/protocol_auth.c:417 src/protocol_auth.c:529 src/protocol_edge.c:90
+#: src/protocol_edge.c:219 src/protocol_key.c:80 src/protocol_key.c:128
+#: src/protocol_key.c:196 src/protocol_misc.c:61 src/protocol_misc.c:91
+#: src/protocol_misc.c:177 src/protocol_subnet.c:71 src/protocol_subnet.c:163
 #, c-format
 #, c-format
-msgid "Got bad ADD_SUBNET from %s (%s)"
-msgstr "Kreeg ongeldige ADD_SUBNET van %s (%s)"
+msgid "Got bad %s from %s (%s)"
+msgstr "Kreeg verkeerde %s van %s (%s)"
 
 
-#: src/protocol.c:447
+#: src/protocol_auth.c:77 src/protocol_edge.c:98 src/protocol_edge.c:104
+#: src/protocol_edge.c:228 src/protocol_edge.c:234 src/protocol_subnet.c:79
+#: src/protocol_subnet.c:87 src/protocol_subnet.c:171
+#: src/protocol_subnet.c:189
 #, c-format
 #, c-format
-msgid "Got bad ADD_SUBNET from %s (%s): invalid identity name"
-msgstr "Kreeg ongeldige ADD_SUBNET van %s (%s): ongeldige identiteitsnaam"
+msgid "Got bad %s from %s (%s): %s"
+msgstr "Kreeg verkeerde %s van %s (%s): %s"
 
 
-#: src/protocol.c:456
+#: src/protocol_auth.c:87
 #, c-format
 #, c-format
-msgid "Got bad ADD_SUBNET from %s (%s): invalid subnet string"
-msgstr "Kreeg ongeldige ADD_SUBNET van %s (%s): ongeldig subnet"
+msgid "Peer %s is %s instead of %s"
+msgstr "Ander %s is %s in plaats van %s"
 
 
-#: src/protocol.c:467
+#: src/protocol_auth.c:98
 #, c-format
 #, c-format
-msgid "Warning: got ADD_SUBNET from %s (%s) for ourself, restarting"
-msgstr "Waarschuwing: kreeg ADD_SUBNET van %s (%s) voor onszelf, herstart"
+msgid "Peer %s (%s) uses incompatible version %d"
+msgstr "Ander %s (%s) gebruikt incompatibele versie %d"
 
 
-#: src/protocol.c:478
+#: src/protocol_auth.c:117
 #, c-format
 #, c-format
-msgid "Got ADD_SUBNET for %s from %s (%s) which is not in our connection list"
-msgstr ""
-"Kreeg DEL_SUBNET voor %d.%d.%d.%d van %s (%s) die niet voorkomt in onze "
-"verbindingslijst"
+msgid "Peer %s had unknown identity (%s)"
+msgstr "Ander %s heeft onbekende identiteit (%s)"
 
 
-#: src/protocol.c:506
+#: src/protocol_auth.c:175
 #, c-format
 #, c-format
-msgid "Got bad DEL_SUBNET from %s (%s)"
-msgstr "Kreeg ongeldige DEL_SUBNET van %s (%s)"
+msgid "Generated random meta key (unencrypted): %s"
+msgstr "Willekeurige meta sleutel aangemaakt (niet versleuteld): %s"
 
 
-#: src/protocol.c:515
+#: src/protocol_auth.c:187 src/protocol_auth.c:254
 #, c-format
 #, c-format
-msgid "Got bad DEL_SUBNET from %s (%s): invalid identity name"
-msgstr "Kreeg ongeldige DEL_SUBNET van %s (%s): ongeldige identiteitsnaam"
+msgid "Error during encryption of meta key for %s (%s)"
+msgstr "Fout tijdens versleutelen van meta key voor %s (%s)"
 
 
-#: src/protocol.c:524
+#: src/protocol_auth.c:234 src/protocol_auth.c:367 src/protocol_auth.c:425
+#: src/protocol_auth.c:443
 #, c-format
 #, c-format
-msgid "Got bad DEL_SUBNET from %s (%s): invalid subnet string"
-msgstr "Kreeg ongeldige DEL_SUBNET van %s (%s): ongeldige identiteitsnaam"
+msgid "Possible intruder %s (%s): %s"
+msgstr "Mogelijke indringer %s (%s): %s"
 
 
-#: src/protocol.c:535
+#: src/protocol_auth.c:262
 #, c-format
 #, c-format
-msgid "Warning: got DEL_SUBNET from %s (%s) for ourself, restarting"
-msgstr "Waarschuwing: kreeg DEL_SUBNET van %s (%s) voor onszelf, herstart"
+msgid "Received random meta key (unencrypted): %s"
+msgstr "Ontving willekeurige meta key (niet versleuteld): %s"
 
 
-#: src/protocol.c:546
+#: src/protocol_auth.c:274
 #, c-format
 #, c-format
-msgid "Got DEL_SUBNET for %s from %s (%s) which is not in our connection list"
-msgstr ""
-"Kreeg DEL_SUBNET voor %d.%d.%d.%d van %s (%s) die niet voorkomt in onze "
-"verbindingslijst"
+msgid "%s (%s) uses unknown cipher!"
+msgstr "%s (%s) gebruikt onbekende cipher!"
 
 
-#: src/protocol.c:577
+#: src/protocol_auth.c:296 src/protocol_key.c:267
 #, c-format
 #, c-format
-msgid "Got bad ADD_HOST from %s (%s)"
-msgstr "Kreeg ongeldige ADD_HOST van %s (%s)"
+msgid "Node %s (%s) uses unknown digest!"
+msgstr "Node %s (%s) gebruikt onbekende digest!"
 
 
-#: src/protocol.c:585
+#: src/protocol_auth.c:302
 #, c-format
 #, c-format
-msgid "Got bad ADD_HOST from %s (%s): invalid identity name"
-msgstr "Kreeg ongeldige ADD_HOST van %s (%s): ongeldige identiteitsnaam"
+msgid "%s (%s) uses bogus MAC length!"
+msgstr "%s (%s) gebruikt onzinnige MAC lengte!"
+
+#: src/protocol_auth.c:425
+msgid "wrong challenge reply length"
+msgstr "verkeerde lengte antwoord op uitdaging"
+
+#: src/protocol_auth.c:443
+msgid "wrong challenge reply"
+msgstr "verkeerd antwoord op uitdaging"
 
 
-#: src/protocol.c:594
+#: src/protocol_auth.c:448
 #, c-format
 #, c-format
-msgid "Warning: got ADD_HOST from %s (%s) for ourself, restarting"
-msgstr "Waarschuwing: kreeg ADD_HOST van %s (%s) voor onszelf, herstart"
+msgid "Expected challenge reply: %s"
+msgstr "Verwachtte antwoord op uitdaging: %s"
 
 
-#: src/protocol.c:604
+#: src/protocol_auth.c:549
 #, c-format
 #, c-format
-msgid "Warning: got ADD_HOST from %s (%s) from ourself, restarting"
-msgstr "Waarschuwing: kreeg ADD_HOST van %s (%s) van onszelf, herstart"
+msgid "Established a second connection with %s (%s), closing old connection"
+msgstr "Tweede verbinding met %s (%s) gemaakt, oude verbinding wordt gesloten"
 
 
-#: src/protocol.c:614
+#: src/protocol_auth.c:583
 #, c-format
 #, c-format
-msgid ""
-"Got ADD_HOST from %s (%s) with origin %s which is not in our connection list"
-msgstr ""
-"Kreeg ADD_HOST van %s (%s) met herkomst %s die niet in onze verbindingslijst "
-"voorkomt"
+msgid "Connection with %s (%s) activated"
+msgstr "Verbinding met %s (%s) geactiveerd"
+
+#: src/protocol_edge.c:98 src/protocol_edge.c:104 src/protocol_edge.c:228
+#: src/protocol_edge.c:234 src/protocol_subnet.c:79 src/protocol_subnet.c:171
+msgid "invalid name"
+msgstr "ongeldige naam"
 
 
-#: src/protocol.c:633
+#: src/protocol_edge.c:150
 #, c-format
 #, c-format
-msgid "Got duplicate ADD_HOST for %s (%s) from %s (%s)"
-msgstr "Kreeg een tweede ADD_HOST voor %s (%s) van %s (%s)"
+msgid "Got %s from %s (%s) for ourself which does not match existing entry"
+msgstr ""
+"Kreeg %s van %s (%s) voor onszelf welke niet overeenkomt met reeds bekende"
 
 
-#: src/protocol.c:640
+#: src/protocol_edge.c:157
 #, c-format
 #, c-format
-msgid "Removing old entry for %s (%s)"
-msgstr "Verwijdering oude verbinding voor %s (%s)"
+msgid "Got %s from %s (%s) which does not match existing entry"
+msgstr "Kreeg %s van %s (%s) welke niet overeenkomt met reeds bekende"
 
 
-#: src/protocol.c:683
+#: src/protocol_edge.c:167
 #, c-format
 #, c-format
-msgid "Got bad DEL_HOST from %s (%s)"
-msgstr "Kreeg ongeldige DEL_HOST van %s (%s)"
+msgid "Got %s from %s (%s) for ourself which does not exist"
+msgstr "Kreeg %s van %s (%s) voor onszelf welke niet bestaat"
 
 
-#: src/protocol.c:692
+#: src/protocol_edge.c:248 src/protocol_edge.c:257 src/protocol_edge.c:268
 #, c-format
 #, c-format
-msgid "Got bad DEL_HOST from %s (%s): invalid identity name"
-msgstr "Kreeg ongeldige DEL_HOST van %s (%s): ongeldige identiteitsnaam"
+msgid "Got %s from %s (%s) which does not appear in the edge tree"
+msgstr "Kreeg %s van %s (%s) welke niet voorkomt in de edge tree"
 
 
-#: src/protocol.c:701
+#: src/protocol_edge.c:275 src/protocol_subnet.c:118 src/protocol_subnet.c:217
 #, c-format
 #, c-format
-msgid "Warning: got DEL_HOST from %s (%s) for ourself, restarting"
-msgstr "Waarschuwing: kreeg DEL_HOST van %s (%s) voor onszelf, herstart"
+msgid "Got %s from %s (%s) for ourself"
+msgstr "Kreeg %s van %s (%s) voor onszelf"
 
 
-#: src/protocol.c:712
+#: src/protocol_key.c:92
 #, c-format
 #, c-format
-msgid "Warning: got DEL_HOST from %s (%s) from ourself, restarting"
-msgstr "Waarschuwing: kreeg DEL_HOST van %s (%s) van onszelf, herstart"
+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.c:722
+#: src/protocol_key.c:137 src/protocol_key.c:205
 #, c-format
 msgid ""
 #, c-format
 msgid ""
-"Got DEL_HOST from %s (%s) with origin %s which is not in our connection list"
+"Got %s from %s (%s) origin %s which does not exist in our connection list"
 msgstr ""
 msgstr ""
-"Kreeg DEL_HOST voor %s (%s) met herkomst %s die niet in onze "
-"verbindingslijst voorkomt"
+"Kreeg %s van %s (%s) herkomst %s welke niet voorkomt in de verbindingslijst"
 
 
-#: src/protocol.c:734
+#: src/protocol_key.c:146 src/protocol_key.c:214
 #, c-format
 #, c-format
-msgid "Got DEL_HOST from %s (%s) for %s which is not in our connection list"
+msgid ""
+"Got %s from %s (%s) destination %s which does not exist in our connection "
+"list"
 msgstr ""
 msgstr ""
-"Kreeg DEL_HOST van %s (%s) voor %s die niet in onze verbindingslijst voorkomt"
+"Kreeg %s van %s (%s) doel %s welke niet voorkomt in de verbindingslijst"
 
 
-#: src/protocol.c:744
+#: src/protocol_key.c:246
 #, c-format
 #, c-format
-msgid "Got DEL_HOST from %s (%s) for %s which doesn't match"
-msgstr "Kreeg DEL_HOST van %s (%s) voor %s wat niet overeenkomt"
+msgid "Node %s (%s) uses unknown cipher!"
+msgstr "Node %s (%s) gebruikt onbekende cipher!"
 
 
-#: src/protocol.c:776
+#: src/protocol_key.c:251
 #, c-format
 #, c-format
-msgid "Got bad STATUS from %s (%s)"
-msgstr "Kreeg ongeldige STATUS van %s (%s)"
+msgid "Node %s (%s) uses wrong keylength!"
+msgstr "Node %s (%s) gebruikt verkeerde lengte sleutel!"
 
 
-#: src/protocol.c:783
+#: src/protocol_key.c:272
 #, c-format
 #, c-format
-msgid "Status message from %s (%s): %s: %s"
-msgstr "Ontving statusbericht van %s (%s): %s: %s"
+msgid "Node %s (%s) uses bogus MAC length!"
+msgstr "Node %s (%s) gebruikt onzinnige MAC lengte!"
 
 
-#: src/protocol.c:807
+#: src/protocol_misc.c:68
 #, c-format
 #, c-format
-msgid "Got bad ERROR from %s (%s)"
-msgstr "Kreeg ongeldige ERROR van %s (%s)"
+msgid "Status message from %s (%s): %s: %s"
+msgstr "Statusmelding van %s (%s): %s: %s"
 
 
-#: src/protocol.c:814
+#: src/protocol_misc.c:98
 #, c-format
 msgid "Error message from %s (%s): %s: %s"
 #, c-format
 msgid "Error message from %s (%s): %s: %s"
-msgstr "Ontving foutmelding van %s (%s): %s: %s"
+msgstr "Foutmelding van %s (%s): %s: %s"
 
 
-#: src/protocol.c:892
-#, c-format
-msgid "Got bad KEY_CHANGED from %s (%s)"
-msgstr "Kreeg ongeldige KEY_CHANGED van %s (%s)"
+#: src/protocol_subnet.c:87 src/protocol_subnet.c:189
+msgid "invalid subnet string"
+msgstr "ongeldige subnet string"
 
 
-#: src/protocol.c:899
+#: src/protocol_subnet.c:180
 #, c-format
 #, c-format
-msgid ""
-"Got KEY_CHANGED from %s (%s) origin %s which does not exist in our "
-"connection list"
-msgstr ""
-"Kreeg KEY_CHANGED van %s (%s) met herkomst %s die niet in onze "
-"verbindingslijst voorkomt"
+msgid "Got %s from %s (%s) for %s which is not in our node tree"
+msgstr "Kreeg %s van %s (%s) voor %s welke niet voorkomt in de node boom"
 
 
-#: src/protocol.c:929
+#: src/protocol_subnet.c:207
 #, c-format
 #, c-format
-msgid "Got bad REQ_KEY from %s (%s)"
-msgstr "Kreeg ongeldige REQ_KEY van %s (%s)"
+msgid "Got %s from %s (%s) for %s which does not appear in his subnet tree"
+msgstr "Kreeg %s van %s (%s) voor %s welke niet voorkomt in zijn subnet boom"
 
 
-#: src/protocol.c:936
+#: src/subnet.c:99
 #, c-format
 #, c-format
-msgid ""
-"Got REQ_KEY from %s (%s) origin %s which does not exist in our connection "
-"list"
+msgid "subnet_compare() was called with unknown subnet type %d, exitting!"
 msgstr ""
 msgstr ""
-"Kreeg REQ_KEY van %s (%s) herkomst %s die niet in onze verbindingslijst "
-"voorkomt"
+"subnet_compare() werd aangeroepen met onbekend subnet type %d, beëindigen!"
 
 
-#: src/protocol.c:952
+#: src/subnet.c:274
 #, c-format
 #, c-format
-msgid ""
-"Got REQ_KEY from %s (%s) destination %s which does not exist in our "
-"connection list"
-msgstr ""
-"Kreeg REQ_KEY van %s (%s) doel %s die niet in onze verbindingslijst voorkomt"
+msgid "net2str() was called with unknown subnet type %d, exitting!"
+msgstr "net2str() werd aangeroepen met onbekend subnet type %d, beëindigen!"
 
 
-#: src/protocol.c:980
-#, c-format
-msgid "Got bad ANS_KEY from %s (%s)"
-msgstr "Kreeg ongeldige ANS_KEY van %s (%s)"
+#: src/subnet.c:384
+msgid "Subnet list:"
+msgstr "Subnet lijst:"
 
 
-#: src/protocol.c:987
+#: src/subnet.c:389
 #, c-format
 #, c-format
-msgid ""
-"Got ANS_KEY from %s (%s) origin %s which does not exist in our connection "
-"list"
-msgstr ""
-"Kreeg ANS_KEY van %s (%s) met herkomst %s die niet in onze verbindingslijst "
-"voorkomt"
+msgid " %s owner %s"
+msgstr " %s eigenaar %s"
 
 
-#: src/protocol.c:1003
-#, c-format
-msgid "Got bad ANS_KEY from %s (%s) origin %s: invalid key"
-msgstr "Kreeg ongeldige ANS_KEY van %s (%s) herkomst %s: ongeldige sleutel"
-
-#: src/protocol.c:1016
-#, c-format
-msgid ""
-"Got ANS_KEY from %s (%s) destination %s which does not exist in our "
-"connection list"
-msgstr ""
-"Kreeg ANS_KEY van %s (%s) doel %s die niet in onze verbindingslijst voorkomt"
+#: src/subnet.c:392
+msgid "End of subnet list."
+msgstr "Einde van subnet lijst."
 
 
-#: src/tincd.c:94
+#: src/tincd.c:100
 #, c-format
 msgid "Try `%s --help' for more information.\n"
 msgstr "Probeer `%s --help' voor meer informatie.\n"
 
 #, c-format
 msgid "Try `%s --help' for more information.\n"
 msgstr "Probeer `%s --help' voor meer informatie.\n"
 
-#: src/tincd.c:97
+#: src/tincd.c:103
 #, c-format
 msgid ""
 "Usage: %s [option]...\n"
 #, c-format
 msgid ""
 "Usage: %s [option]...\n"
@@ -711,109 +803,105 @@ msgstr ""
 "Gebruik: %s [optie]...\n"
 "\n"
 
 "Gebruik: %s [optie]...\n"
 "\n"
 
-#: src/tincd.c:98
+#: src/tincd.c:104
 msgid ""
 msgid ""
-"  -c, --config=DIR      Read configuration options from DIR.\n"
-"  -D, --no-detach       Don't fork and detach.\n"
-"  -d                    Increase debug level.\n"
-"  -k, --kill            Attempt to kill a running tincd and exit.\n"
-"  -n, --net=NETNAME     Connect to net NETNAME.\n"
-"  -t, --timeout=TIMEOUT Seconds to wait before giving a timeout.\n"
+"  -c, --config=DIR           Read configuration options from DIR.\n"
+"  -D, --no-detach            Don't fork and detach.\n"
+"  -d, --debug[=LEVEL]        Increase debug level or set it to LEVEL.\n"
+"  -k, --kill[=SIGNAL]        Attempt to kill a running tincd and exit.\n"
+"  -n, --net=NETNAME          Connect to net NETNAME.\n"
 msgstr ""
 msgstr ""
-"  -c, --config=MAP      Lees configuratie uit MAP.\n"
-"  -D, --no-detach       Start geen nieuw proces.\n"
-"  -d                    Verhoog debugniveau.\n"
-"  -k, --kill            Poging tot doden van lopende tincd en beëindig.\n"
-"  -n, --net=NETNAAM     Verbind met net NETNAAM.\n"
-"  -t, --timeout=TIMEOUT Seconden wachten op timeout.\n"
-
-#: src/tincd.c:104
+"  -c, --config=MAP           Lees configuratie uit MAP.\n"
+"  -D, --no-detach            Start geen nieuw proces.\n"
+"  -d, --debug[=NIVEAU]       Verhoog debugniveau of stel het in op NIVEAU.\n"
+"  -k, --kill[=SIGNAAL]       Poging tot zenden signaal naar lopende tincd en "
+"beëindig.\n"
+"  -n, --net=NETNAAM          Verbind met net NETNAAM.\n"
+
+#: src/tincd.c:109
 msgid ""
 msgid ""
-"      --help            Display this help and exit.\n"
-"      --version         Output version information and exit.\n"
+"  -K, --generate-keys[=BITS] Generate public/private RSA keypair.\n"
+"      --help                 Display this help and exit.\n"
+"      --version              Output version information and exit.\n"
 "\n"
 msgstr ""
 "\n"
 msgstr ""
-"      --help            Geef deze hulp en beëindig.\n"
-"      --version         Geef versie informatie en beëindig.\n"
+"  -K, --generate-keys[=BITS] Genereer publiek/privé RSA sleutelpaar.\n"
+"      --help                 Geef deze hulp en beëindig.\n"
+"      --version              Geef versie informatie en beëindig.\n"
 "\n"
 
 "\n"
 
-#: src/tincd.c:106
+#: src/tincd.c:112
 msgid "Report bugs to tinc@nl.linux.org.\n"
 msgstr ""
 "Meld fouten in het programma aan tinc@nl.linux.org;\n"
 "Meld fouten in de vertaling aan vertaling@nl.linux.org.\n"
 
 msgid "Report bugs to tinc@nl.linux.org.\n"
 msgstr ""
 "Meld fouten in het programma aan tinc@nl.linux.org;\n"
 "Meld fouten in de vertaling aan vertaling@nl.linux.org.\n"
 
-#: src/tincd.c:144
+#: src/tincd.c:166
 #, c-format
 #, c-format
-msgid "Invalid timeout value `%s'.\n"
-msgstr "Ongeldige timeout waarde `%s'.\n"
-
-#: src/tincd.c:158
-#, c-format
-msgid "Memory exhausted (last is %s:%d) (couldn't allocate %d bytes), exiting."
+msgid ""
+"Invalid argument `%s'; SIGNAL must be a number or one of HUP, TERM, KILL, "
+"USR1, USR2, WINCH, INT or ALRM.\n"
 msgstr ""
 msgstr ""
-"Geheugen is vol (laatste %s:%d) (kon geen %d bytes vrijmaken), beëindigen."
-
-#: src/tincd.c:213
-#, c-format
-msgid "tincd %s (%s %s) starting, debug level %d"
-msgstr "tincd %s (%s %s) gestart, debugniveau %d"
+"Ongeldig argument `%s'; SIGNAAL moet een getal zijn of één van HUP, TERM, "
+"KILL, USR1, USR2, WINCH, INT of ALRM.\n"
 
 
-#: src/tincd.c:216
+#: src/tincd.c:184
 #, c-format
 #, c-format
-msgid "tincd %s starting"
-msgstr "tincd %s gestart"
-
-#: src/tincd.c:231
-#, c-format
-msgid "Total bytes written: tap %d, socket %d; bytes read: tap %d, socket %d"
+msgid ""
+"Invalid argument `%s'; BITS must be a number equal to or greater than 512.\n"
 msgstr ""
 msgstr ""
-"Totaal aantal bytes geschreven: tap %d, socket %d; bytes gelezen: top %d, "
-"socket %d."
+"Ongeldig argument `%s'; BITS moet een nummer zijn gelijk aan of groter dan "
+"512.\n"
 
 
-#: src/tincd.c:249
+#: src/tincd.c:245
 #, c-format
 #, c-format
-msgid "A tincd is already running for net `%s' with pid %d.\n"
-msgstr "Een tincd voor net `%s' draait al met procesnummer %d.\n"
+msgid "Generating %d bits keys:\n"
+msgstr "Bezig met genereren van een %d bits sleutel:\n"
 
 
-#: src/tincd.c:252
-#, c-format
-msgid "A tincd is already running with pid %d.\n"
-msgstr "Een tincd draait al met procesnummer %d.\n"
+#: src/tincd.c:250
+msgid "Error during key generation!\n"
+msgstr "Fout tijdens genereren sleutel!\n"
 
 
-#: src/tincd.c:273
-#, c-format
-msgid "No other tincd is running for net `%s'.\n"
-msgstr "Geen andere tincd gevonden voor net `%s'.\n"
+#: src/tincd.c:254
+msgid "Done.\n"
+msgstr "Klaar.\n"
 
 
-#: src/tincd.c:275
-msgid "No other tincd is running.\n"
-msgstr "Geen andere tincd gevonden.\n"
+#: src/tincd.c:263
+msgid "public RSA key"
+msgstr "openbare RSA sleutel"
 
 
-#: src/tincd.c:282
-msgid "Removing stale lock file.\n"
-msgstr "Ongebruikt vergrendelingsbestand verwijderd.\n"
+#: src/tincd.c:267 src/tincd.c:278
+msgid ""
+"Appending key to existing contents.\n"
+"Make sure only one key is stored in the file.\n"
+msgstr ""
+"Sleutel wordt toegevoegd aan bestaande inhoud.\n"
+"Let er op dat er slechts één sleutel in het bestand is.\n"
+
+#: src/tincd.c:274
+msgid "private RSA key"
+msgstr "geheime RSA sleutel"
 
 
-#. Do some intl stuff right now
-#: src/tincd.c:325
-msgid "unknown"
-msgstr "onbekend"
+#: src/tincd.c:299
+msgid "Both netname and configuration directory given, using the latter..."
+msgstr ""
+"Zowel netnaam als configuratiemap zijn gegeven, laatste wordt gebruikt..."
 
 
-#: src/tincd.c:331
+#: src/tincd.c:328
 #, c-format
 msgid "%s version %s (built %s %s, protocol %d)\n"
 msgstr "%s versie %s (gemaakt %s %s, protocol %d)\n"
 
 #, 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:332
+#: src/tincd.c:329
 msgid ""
 msgid ""
-"Copyright (C) 1998,1999,2000 Ivo Timmermans, Guus Sliepen and others.\n"
+"Copyright (C) 1998-2002 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 ""
 "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,1999,2000 Ivo Timmermans, Guus Sliepen en anderen.\n"
+"Copyright (C) 1998-2002 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 "
 "Zie het bestand AUTHORS voor een volledige lijst.\n"
 "\n"
 "tinc wordt gedistribueerd ZONDER ENIGE GARANTIE.  Dit is vrije "
@@ -821,69 +909,380 @@ msgstr ""
 "en je bent welkom om het te distribueren onder bepaalde voorwaarden;\n"
 "zie het bestand COPYING voor details.\n"
 
 "en je bent welkom om het te distribueren onder bepaalde voorwaarden;\n"
 "zie het bestand COPYING voor details.\n"
 
-#: src/tincd.c:346
-msgid "You must be root to run this program. Sorry.\n"
-msgstr ""
-"Je moet systeembeheerder zijn om dit programma te kunnen draaien. Sorry.\n"
-
-#: src/tincd.c:377
+#: src/tincd.c:386
 msgid "Unrecoverable error"
 msgstr "Onherstelbare fout"
 
 msgid "Unrecoverable error"
 msgstr "Onherstelbare fout"
 
-#: src/tincd.c:382
+#: src/tincd.c:391
 #, c-format
 msgid "Restarting in %d seconds!"
 msgstr "Herstart in %d seconden!"
 
 #, c-format
 msgid "Restarting in %d seconds!"
 msgstr "Herstart in %d seconden!"
 
-#: src/tincd.c:387 src/tincd.c:433
-msgid "Aieee! Not restarting."
-msgstr "Waaah! Geen herstart."
+#: src/process.c:373 src/tincd.c:396
+msgid "Not restarting."
+msgstr "Geen herstart."
+
+#: src/process.c:69
+#, c-format
+msgid "Memory exhausted (couldn't allocate %d bytes), exitting."
+msgstr "Geheugen uitgeput (kon geen %d bytes reserveren), beëindigen."
+
+#: src/process.c:100
+msgid "Terminating"
+msgstr "Beëindigen"
+
+#: src/process.c:116
+#, c-format
+msgid "A tincd is already running for net `%s' with pid %d.\n"
+msgstr "Een tincd draait al voor net `%s' met pid %d.\n"
+
+#: src/process.c:119
+#, c-format
+msgid "A tincd is already running with pid %d.\n"
+msgstr "Een tincd draait al met pid %d.\n"
+
+#: src/process.c:140
+#, c-format
+msgid "No other tincd is running for net `%s'.\n"
+msgstr "Geen andere tincd draait voor net `%s'.\n"
+
+#: src/process.c:142
+msgid "No other tincd is running.\n"
+msgstr "Geen andere tincd draait.\n"
 
 
-#: src/tincd.c:397
+#: src/process.c:151
+#, c-format
+msgid "The tincd for net `%s' is no longer running. "
+msgstr "De tincd voor net `%s' draait niet meer. "
+
+#: src/process.c:153
+msgid "The tincd is no longer running. "
+msgstr "De tincd draait niet meer. "
+
+#: src/process.c:155
+msgid "Removing stale lock file.\n"
+msgstr "Verwijdering oud vergrendelingsbestand.\n"
+
+#: src/process.c:183
+#, c-format
+msgid "Couldn't detach from terminal: %s"
+msgstr "Kon niet ontkoppelen van terminal: %s"
+
+#: src/process.c:196
+#, c-format
+msgid "tincd %s (%s %s) starting, debug level %d"
+msgstr "tincd %s (%s %s) start, debug niveau %d"
+
+#: src/process.c:199
+#, c-format
+msgid "tincd %s starting"
+msgstr "tincd %s wordt gestart"
+
+#: src/process.c:280
+#, c-format
+msgid "Executing script %s"
+msgstr "Uitvoeren script %s"
+
+#: src/process.c:290
+#, c-format
+msgid "Process %d (%s) exited with non-zero status %d"
+msgstr "Proces %d (%s) beëindigde met status %d"
+
+#: src/process.c:298
+#, c-format
+msgid "Process %d (%s) was killed by signal %d (%s)"
+msgstr "Proces %d (%s) was gestopt door signaal %d (%s)"
+
+#: src/process.c:304
+#, c-format
+msgid "Process %d (%s) terminated abnormally"
+msgstr "Proces %d (%s) abnormaal beëindigd"
+
+#: src/process.c:329
 msgid "Got TERM signal"
 msgstr "Kreeg TERM signaal"
 
 msgid "Got TERM signal"
 msgstr "Kreeg TERM signaal"
 
-#: src/tincd.c:405
+#: src/process.c:338
 msgid "Got QUIT signal"
 msgstr "Kreeg QUIT signaal"
 
 msgid "Got QUIT signal"
 msgstr "Kreeg QUIT signaal"
 
-#: src/tincd.c:412
-msgid "Got another SEGV signal: not restarting"
-msgstr "Kreeg nog een SEGV signaal: niet herstarten"
+#: src/process.c:345
+#, c-format
+msgid "Got another fatal signal %d (%s): not restarting."
+msgstr "Kreeg nog een fataal signaal %s (%s): geen herstart."
 
 
-#: src/tincd.c:419
-msgid "Got SEGV signal"
-msgstr "Kreeg SEGV signaal"
+#: src/process.c:354
+#, c-format
+msgid "Got fatal signal %d (%s)"
+msgstr "Kreeg fataal signaal %d (%s)"
 
 
-#: src/tincd.c:424
+#: src/process.c:359
 msgid "Trying to re-execute in 5 seconds..."
 msgid "Trying to re-execute in 5 seconds..."
-msgstr "Poging tot herstaren over 5 seconden..."
+msgstr "Poging tot herstarten over 5 seconden..."
 
 
-#: src/tincd.c:442
-msgid "Got HUP signal, rereading configuration and restarting"
-msgstr "Kreeg HUP signaal, herlezen configuratie en herstarten"
+#: src/process.c:382
+msgid "Got HUP signal"
+msgstr "Kreeg HUP signaal"
 
 
-#: src/tincd.c:450
-msgid "Got INT signal, exiting"
-msgstr "Kreeg INT signaal, beëindigen"
+#: src/process.c:391
+#, c-format
+msgid "Reverting to old debug level (%d)"
+msgstr "Herstellen van oud debug niveau (%d)"
+
+#: src/process.c:398
+#, c-format
+msgid ""
+"Temporarily setting debug level to 5.  Kill me with SIGINT again to go back "
+"to level %d."
+msgstr ""
+"Tijdelijk instellen debug niveau op 5. Zend nog een SIGINT signaal om niveau "
+"%d te herstellen."
 
 
-#: src/tincd.c:464
-msgid "Got USR2 signal, forcing new key generation"
-msgstr "Kreeg USR2 signaal, nieuwe sleutels geforceerd"
+#: src/process.c:409
+msgid "Got ALRM signal"
+msgstr "Kreeg ALRM signaal"
 
 
-#: src/tincd.c:473
+#: src/process.c:438
 #, c-format
 msgid "Got unexpected signal %d (%s)"
 msgstr "Kreeg onverwacht signaal %d (%s)"
 
 #, c-format
 msgid "Got unexpected signal %d (%s)"
 msgstr "Kreeg onverwacht signaal %d (%s)"
 
-#~ msgid "Illegal passphrase in %s; size would be %d"
-#~ msgstr "Ongeldig wachtwoord in %s; grootte zou %d zijn"
+#: src/process.c:447
+#, c-format
+msgid "Ignored signal %d (%s)"
+msgstr "Signaal %d (%s) genegeerd"
 
 
-#~ msgid "Generating %d bits keys"
-#~ msgstr "%d bits sleutel genereren"
+#: src/process.c:504
+#, c-format
+msgid "Installing signal handler for signal %d (%s) failed: %s\n"
+msgstr "Installeren van signaal afhandelaar voor signaal %d (%s) faalde: %s\n"
 
 
-#~ msgid "Opening /dev/urandom failed: %m"
-#~ msgstr "Openen van /dev/urandom mislukt: %m"
+#: src/route.c:73
+#, c-format
+msgid "Learned new MAC address %hx:%hx:%hx:%hx:%hx:%hx"
+msgstr "Nieuw MAC adres %hx:%hx:%hx:%hx:%hx:%hx geleerd"
+
+#: src/route.c:107
+#, c-format
+msgid "MAC address %hx:%hx:%hx:%hx:%hx:%hx expired"
+msgstr "MAC adres %hx:%hx:%hx:%hx:%hx:%hx verlopen"
+
+#: src/route.c:152
+#, c-format
+msgid "Cannot route packet: unknown IPv4 destination address %d.%d.%d.%d"
+msgstr "Kan pakket niet routeren: onbekend IPv4 doeladres %d.%d.%d.%d"
+
+#: src/route.c:172
+#, c-format
+msgid ""
+"Cannot route packet: unknown IPv6 destination address %hx:%hx:%hx:%hx:%hx:%"
+"hx:%hx:%hx"
+msgstr ""
+"Kan pakket niet routeren: onbekend IPv6 doeladres %hx:%hx:%hx:%hx:%hx:%hx:%"
+"hx:%hx"
+
+#: src/route.c:233
+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:254
+msgid "Cannot route packet: checksum error for neighbor solicitation request"
+msgstr ""
+"Kan pakket niet routeren: checksum fout voor neighbor solicitation verzoek"
+
+#: src/route.c:266
+#, c-format
+msgid ""
+"Cannot route packet: neighbor solicitation request for unknown address %hx:%"
+"hx:%hx:%hx:%hx:%hx:%hx:%hx"
+msgstr ""
+"Kan pakket niet routeren: neighbor solicitation verzoek voor onbekend adres %"
+"hx:%hx:%hx:%hx:%hx:%hx:%hx:%hx"
+
+#: src/route.c:341
+msgid "Cannot route packet: received unknown type ARP request"
+msgstr "Kan pakket niet routeren: ontvangst van onbekend type ARP verzoek"
+
+#: src/route.c:354
+#, 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:411
+#, c-format
+msgid "Cannot route packet: unknown type %hx"
+msgstr "Kan pakket niet routeren: onbekend type %hx"
+
+#: src/node.c:161
+msgid "Nodes:"
+msgstr "Nodes:"
+
+#: src/node.c:166
+#, c-format
+msgid ""
+" %s at %s cipher %d digest %d maclength %d compression %d options %lx status "
+"%04x nexthop %s via %s"
+msgstr ""
+" %s op %s cipher %d digest %d maclengte %d compressie %d opties %lx status %"
+"04x nexthop %s via %s"
+
+#: src/node.c:171
+msgid "End of nodes."
+msgstr "Einde van nodes."
+
+#: src/edge.c:194
+msgid "Edges:"
+msgstr "Edges:"
+
+#: src/edge.c:201
+#, c-format
+msgid " %s at %s - %s at %s options %lx weight %d"
+msgstr " %s op %s - %s op %s opties %lx gewicht %d"
+
+#: src/edge.c:209
+msgid "End of edges."
+msgstr "Einde van edges."
+
+#: src/graph.c:261
+#, c-format
+msgid "Node %s (%s) became reachable"
+msgstr "Node %s (%s) werd bereikbaar"
+
+#: src/graph.c:273
+#, c-format
+msgid "Node %s (%s) became unreachable"
+msgstr "Node %s (%s) is niet meer bereikbaar"
+
+#: src/freebsd/device.c:70 src/linux/device.c:89 src/netbsd/device.c:74
+#: src/openbsd/device.c:74 src/solaris/device.c:75
+#, c-format
+msgid "Could not open %s: %s"
+msgstr "Kon `%s' niet openen: %s"
+
+#: src/linux/device.c:114 src/linux/device.c:124
+msgid "Linux tun/tap device"
+msgstr "Linux tun/tap apparaat"
+
+#: src/linux/device.c:122
+#, c-format
+msgid "Old ioctl() request was needed for %s"
+msgstr "Oud ioctl() verzoek was nodig voor %s"
+
+#: src/linux/device.c:131
+msgid "Linux ethertap device"
+msgstr "Linux ethertap apparaat"
+
+#: src/freebsd/device.c:87 src/linux/device.c:136 src/netbsd/device.c:90
+#: src/openbsd/device.c:90 src/solaris/device.c:132
+#, c-format
+msgid "%s is a %s"
+msgstr "%s is een %s"
+
+#: src/freebsd/device.c:108 src/linux/device.c:159 src/linux/device.c:169
+#: src/netbsd/device.c:111 src/openbsd/device.c:111 src/solaris/device.c:149
+#, c-format
+msgid "Error while reading from %s %s: %s"
+msgstr "Fout tijdens lezen van %s %s: %s"
+
+#: src/freebsd/device.c:117 src/linux/device.c:180 src/netbsd/device.c:126
+#: src/openbsd/device.c:140 src/solaris/device.c:164
+#, c-format
+msgid "Read packet of %d bytes from %s"
+msgstr "Pakket van %d bytes gelezen van %s"
+
+#: src/freebsd/device.c:128 src/linux/device.c:191 src/netbsd/device.c:139
+#: src/openbsd/device.c:154 src/solaris/device.c:175
+#, c-format
+msgid "Writing packet of %d bytes to %s"
+msgstr "Pakket van %d bytes geschreven naar %s"
+
+#: src/linux/device.c:198 src/linux/device.c:207 src/netbsd/device.c:149
+#: src/openbsd/device.c:180 src/solaris/device.c:180
+#, c-format
+msgid "Can't write to %s %s: %s"
+msgstr "Kan niet schrijven naar %s %s: %s"
+
+#: src/freebsd/device.c:144 src/linux/device.c:220 src/netbsd/device.c:160
+#: src/openbsd/device.c:191 src/solaris/device.c:192
+#, c-format
+msgid "Statistics for %s %s:"
+msgstr "Statistieken voor %s %s:"
+
+#: src/freebsd/device.c:145 src/linux/device.c:221 src/netbsd/device.c:161
+#: src/openbsd/device.c:192 src/solaris/device.c:193
+#, c-format
+msgid " total bytes in:  %10d"
+msgstr " totaal aantal bytes in:  %10d"
+
+#: src/freebsd/device.c:146 src/linux/device.c:222 src/netbsd/device.c:162
+#: src/openbsd/device.c:193 src/solaris/device.c:194
+#, c-format
+msgid " total bytes out: %10d"
+msgstr " totaal aantal bytes uit: %10d"
+
+#: src/freebsd/device.c:85
+msgid "FreeBSD tap device"
+msgstr "FreeBSD tap apparaat"
+
+#: src/freebsd/device.c:133
+#, c-format
+msgid "Error while writing to %s %s: %s"
+msgstr "Fout tijdens schrijven naar %s %s: %s"
+
+#: src/solaris/device.c:86
+#, c-format
+msgid "Could not open /dev/ip: %s"
+msgstr "Kon /dev/ip niet openen: %s"
+
+#: src/solaris/device.c:92
+#, c-format
+msgid "Can't assign new interface: %s"
+msgstr "Kan geen nieuwe interface toekennen: %s"
+
+#: src/solaris/device.c:97
+#, c-format
+msgid "Could not open %s twice: %s"
+msgstr "Kon `%s' niet twee keer openen: %s"
+
+#: src/solaris/device.c:102
+#, c-format
+msgid "Can't push IP module: %s"
+msgstr "Kan IP module niet invoegen: %s"
+
+#: src/solaris/device.c:108
+#, c-format
+msgid "Can't set PPA %d: %s"
+msgstr "Kon PPA %d niet instellen: %s"
+
+#: src/solaris/device.c:113
+#, c-format
+msgid "Can't link TUN device to IP: %s"
+msgstr "Kan TUN apparaat niet koppelen aan IP: %s"
+
+#: src/solaris/device.c:120
+msgid "Solaris tun device"
+msgstr "Solaris tun apparaat"
+
+#: src/netbsd/device.c:88
+msgid "NetBSD tun device"
+msgstr "NetBSD tun apparaat"
+
+#: src/openbsd/device.c:88
+msgid "OpenBSD tun device"
+msgstr "OpenBSD tun apparaat"
+
+#: src/openbsd/device.c:130
+#, c-format
+msgid "Unknown address family %d while reading packet from %s %s"
+msgstr "Onbekende adresfamilie tijdens lezen pakket van %s %s"
+
+#: src/openbsd/device.c:169
+#, c-format
+msgid "Unknown address family %d while writing packet to %s %s"
+msgstr "Onbekende adresfamilie tijdens schrijven pakket naar %s %s"
 
 
-#~ msgid "Encryption key set to %s"
-#~ msgstr "Sleutel ingesteld op %s"
+#~ msgid "Invalid public/private keypair!"
+#~ msgstr "Ongeldig publiek/privé sleutelpaar!"
index 1ffe3d7..a8f45b6 100644 (file)
@@ -1,22 +1,31 @@
 ## Produce this file with automake to get Makefile.in
 ## Produce this file with automake to get Makefile.in
-# $Id: Makefile.am,v 1.5 2000/10/18 20:12:08 zarq Exp $
+# $Id: Makefile.am,v 1.6 2002/04/09 15:28:45 zarq Exp $
 
 
-sbin_PROGRAMS = tincd genauth
+sbin_PROGRAMS = tincd
 
 
-genauth_SOURCES = genauth.c
-tincd_SOURCES = conf.c connlist.c meta.c net.c netutl.c protocol.c subnet.c tincd.c
+EXTRA_DIST = linux/device.c freebsd/device.c openbsd/device.c solaris/device.c
 
 
-INCLUDES = -I$(top_builddir) -I$(top_srcdir)/cipher -I$(top_srcdir)/lib -I$(top_srcdir)/intl
+tincd_SOURCES = conf.c connection.c device.c edge.c event.c graph.c meta.c net.c net_packet.c net_setup.c      \
+       net_socket.c netutl.c node.c process.c protocol.c protocol_auth.c protocol_edge.c protocol_misc.c       \
+       protocol_key.c protocol_subnet.c route.c subnet.c tincd.c
 
 
-noinst_HEADERS = conf.h connlist.h meta.h net.h netutl.h protocol.h subnet.h
+INCLUDES = @INCLUDES@ -I$(top_builddir) -I$(top_srcdir)/lib -I$(top_srcdir)/intl
+
+noinst_HEADERS = conf.h connection.h device.h edge.h event.h graph.h meta.h net.h netutl.h node.h process.h    \
+       protocol.h route.h subnet.h
 
 LIBS = @LIBS@ @INTLLIBS@
 
 tincd_LDADD = \
        $(top_builddir)/lib/libvpn.a
 
 
 LIBS = @LIBS@ @INTLLIBS@
 
 tincd_LDADD = \
        $(top_builddir)/lib/libvpn.a
 
-genauth_LDADD = $(top_builddir)/lib/libvpn.a
-
 localedir = $(datadir)/locale
 
 localedir = $(datadir)/locale
 
-CFLAGS = @CFLAGS@ -DPKGLIBDIR=$(pkglibdir) -DCONFDIR=\"@sysconfdir@\" -DLOCALEDIR=\"$(localedir)\"
+CFLAGS = @CFLAGS@ -DPKGLIBDIR=$(pkglibdir) -DCONFDIR=\"$(sysconfdir)\" \
+       -DLOCALEDIR=\"$(localedir)\" -DLOCALSTATEDIR=\"$(localstatedir)\"
+
+dist-hook:
+       rm -f `find . -type l`
+
+lint: $(tincd_SOURCES)
+       lclint -nullassign -nullret +trytorecover +posixlib -skipansiheaders -skipposixheaders +gnuextensions -I/usr/include -I/usr/lib/gcc-lib/i386-linux/2.95.2/include -I. -I/home/zarq/p/tinc/cvs/cabal/src -I.. -I.. -I/home/zarq/p/tinc/cvs/cabal/lib -I/home/zarq/p/tinc/cvs/cabal/intl -D_POSIX_SOURCE -D__ELF__ -Dunix -D__i386__ -Dlinux -DHAVE_CONFIG_H -DPKGLIBDIR=/usr/local/lib/tinc -DCONFDIR=\"/usr/local/etc\" -DLOCALEDIR=\"/usr/local/share/locale\" $^