- The daemon actually runs now (somewhat)
authorGuus Sliepen <guus@tinc-vpn.org>
Sun, 15 Oct 2000 00:59:37 +0000 (00:59 +0000)
committerGuus Sliepen <guus@tinc-vpn.org>
Sun, 15 Oct 2000 00:59:37 +0000 (00:59 +0000)
- Added support for tun/tap driver (autodetect!)
- More sophisticated checkpoint functionality
- Updated dutch translation

16 files changed:
lib/utils.c
lib/utils.h
po/POTFILES.in
po/es.po
po/nl.po
src/conf.c
src/conf.h
src/connlist.c
src/genauth.c
src/meta.c
src/net.c
src/net.h
src/protocol.c
src/protocol.h
src/subnet.c
src/tincd.c

index c8de214..e0bfe92 100644 (file)
@@ -1,6 +1,7 @@
 /*
     utils.c -- gathering of some stupid small functions
 /*
     utils.c -- gathering of some stupid small functions
-    Copyright (C) 1999 Ivo Timmermans <zarq@iname.com>
+    Copyright (C) 1999,2000 Ivo Timmermans <zarq@iname.com>
+                       2000 Guus Sliepen <guus@sliepen.warande.net>
 
     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
 #include "config.h"
 
 #include <utils.h>
 #include "config.h"
 
 #include <utils.h>
+#include <syslog.h>
 
 
-volatile int cp_line;
-volatile char *cp_file;
+volatile int (cp_line[]) = {0, 0, 0, 0, 0, 0, 0, 0};
+volatile char (*cp_file[]) = {"?", "?", "?", "?", "?", "?", "?", "?"};
+volatile int cp_index = 0;
 
 char *charbin2hex = "0123456789ABCDEF";
 
 
 char *charbin2hex = "0123456789ABCDEF";
 
@@ -37,19 +40,33 @@ int charhex2bin(char c)
     return tolower(c) - 'a' + 10;
 }
 
     return tolower(c) - 'a' + 10;
 }
 
-void hex2bin(char *src, char *dst, size_t length)
+void hex2bin(char *src, char *dst, int length)
 {
 {
-  size_t i;
+  int i;
   for(i=0; i<length; i++)
     dst[i] = charhex2bin(src[i*2])<<4 || charhex2bin(src[i*2+1]);
 }
 
   for(i=0; i<length; i++)
     dst[i] = charhex2bin(src[i*2])<<4 || charhex2bin(src[i*2+1]);
 }
 
-void bin2hex(char *src, char *dst, size_t length)
+void bin2hex(char *src, char *dst, int length)
 {
 {
-  size_t i;
+  int i;
   for(i=length-1; i>=0; i--)
     {
   for(i=length-1; i>=0; i--)
     {
-      dst[i*2+1] = charbin2hex[src[i] & 15];
-      dst[i*2] = charbin2hex[src[i]>>4];
+      dst[i*2+1] = charbin2hex[(unsigned char)src[i] & 15];
+      dst[i*2] = charbin2hex[(unsigned char)src[i]>>4];
     }
 }
     }
 }
+
+char *cp_trace()
+{
+  syslog(LOG_DEBUG, "Checkpoint trace: %s:%d <- %s:%d <- %s:%d <- %s:%d <- %s:%d <- %s:%d <- %s:%d <- %s:%d ...",
+           cp_file[(cp_index+7)%8], cp_line[(cp_index+7)%8],
+           cp_file[(cp_index+6)%8], cp_line[(cp_index+6)%8],
+           cp_file[(cp_index+5)%8], cp_line[(cp_index+5)%8],
+           cp_file[(cp_index+4)%8], cp_line[(cp_index+4)%8],
+           cp_file[(cp_index+3)%8], cp_line[(cp_index+3)%8],
+           cp_file[(cp_index+2)%8], cp_line[(cp_index+2)%8],
+           cp_file[(cp_index+1)%8], cp_line[(cp_index+1)%8],
+           cp_file[cp_index], cp_line[cp_index]
+        );
+}
index a4684f3..46465f3 100644 (file)
@@ -1,6 +1,7 @@
 /*
     utils.h -- header file for utils.c
 /*
     utils.h -- header file for utils.c
-    Copyright (C) 1999 Ivo Timmermans <zarq@iname.com>
+    Copyright (C) 1999,2000 Ivo Timmermans <zarq@iname.com>
+                       2000 Guus Sliepen <guus@sliepen.warande.net>
 
     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
@@ -26,18 +27,21 @@ enum {
   DEBUG_CONNECTIONS = 0,
   DEBUG_PROTOCOL,
   DEBUG_STATUS,
   DEBUG_CONNECTIONS = 0,
   DEBUG_PROTOCOL,
   DEBUG_STATUS,
-  DEBUG_error,
+  DEBUG_ERROR,
   DEBUG_META
 };
 
 #define min(a,b) (((a)<(b))?(a):(b))
 
   DEBUG_META
 };
 
 #define min(a,b) (((a)<(b))?(a):(b))
 
-#define cp { cp_line = __LINE__; cp_file = __FILE__; }
+extern volatile int cp_line[];
+extern volatile char *cp_file[];
+extern volatile int cp_index;
 
 
-extern volatile int cp_line;
-extern volatile char *cp_file;
+#define cp { cp_line[cp_index] = __LINE__; cp_file[cp_index] = __FILE__; cp_index++; cp_index %= 8; }
+#define ecp { fprintf(stderr, "Explicit checkpoint in %s line %d\n", __FILE__, __LINE__); }
 
 
-extern void hex2bin(char *src, char *dst, size_t length);
-extern void bin2hex(char *src, char *dst, size_t length);
+extern void hex2bin(char *src, char *dst, int length);
+extern void bin2hex(char *src, char *dst, int length);
+extern char *cp_trace(void);
 
 #endif /* __TINC_UTILS_H__ */
 
 #endif /* __TINC_UTILS_H__ */
index 976c6fd..df8b507 100644 (file)
@@ -4,10 +4,12 @@
 # Package source files
 
 lib/pidfile.c
 # Package source files
 
 lib/pidfile.c
+lib/utils.c
 src/conf.c
 src/conf.c
-src/encr.c
 src/genauth.c
 src/genauth.c
+src/meta.c
 src/net.c
 src/netutl.c
 src/protocol.c
 src/net.c
 src/netutl.c
 src/protocol.c
+src/subnet.c
 src/tincd.c
 src/tincd.c
index a040e0d..6076a85 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: tinc 1.0pre2\n"
 msgid ""
 msgstr ""
 "Project-Id-Version: tinc 1.0pre2\n"
-"POT-Creation-Date: 2000-08-17 18:13+0100\n"
+"POT-Creation-Date: 2000-10-15 02:53+0200\n"
 "PO-Revision-Date: 2000-07-02 12:49+01:00\n"
 "Last-Translator: Enrique Zanardi <ezanardi@id-agora.com>\n"
 "Language-Team: Spanish <debian-l10n-spanish@lists.debian.org>\n"
 "PO-Revision-Date: 2000-07-02 12:49+01:00\n"
 "Last-Translator: Enrique Zanardi <ezanardi@id-agora.com>\n"
 "Language-Team: Spanish <debian-l10n-spanish@lists.debian.org>\n"
@@ -13,773 +13,677 @@ msgstr ""
 "Content-Type: text/plain; charset=iso-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 "Content-Type: text/plain; charset=iso-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: src/conf.c:178
+#: src/conf.c:164
 #, c-format
 #, c-format
-msgid "%s: %d: Invalid variable name `%s'.\n"
-msgstr "%s: %d: Nombre de variable `%s' no válido.\n"
+msgid "Line %d too long while reading config file %s"
+msgstr ""
 
 
-#: src/conf.c:185
+#: src/conf.c:180
 #, c-format
 #, c-format
-msgid "%s: %d: No value given for `%s'.\n"
-msgstr "%s: %d: No se ha definido un valor para `%s'.\n"
+msgid "Invalid variable name on line %d while reading config file %s"
+msgstr ""
 
 
-#: src/conf.c:193
+#: src/conf.c:187
 #, c-format
 #, c-format
-msgid "%s: %d: Invalid value `%s' for variable `%s'.\n"
-msgstr "%s: %d: Valor `%s' para la variable `%s' no válido.\n"
+msgid "No value for variable on line %d while reading config file %s"
+msgstr ""
 
 
-#: src/conf.c:217
+#: src/conf.c:195
 #, c-format
 #, c-format
-msgid "Could not open %s: %s\n"
-msgstr "No pude abrir %s: %s\n"
+msgid "Invalid value for variable on line %d while reading config file %s"
+msgstr ""
 
 
-#: src/encr.c:111 src/net.c:445
+#: src/genauth.c:78
 #, c-format
 #, c-format
-msgid "Could not open %s: %m"
-msgstr "No pude abrir %s: %m"
+msgid "Usage: %s bits\n"
+msgstr "Uso: %s bits\n"
 
 
-#: src/encr.c:118
+#: src/genauth.c:89
 #, c-format
 #, c-format
-msgid "Illegal passphrase in %s; size would be %d"
-msgstr "Frase de paso ilegal en %s; el tamaño debe ser %d"
+msgid "Illegal number: %s\n"
+msgstr "Número ilegal: %s\n"
 
 
-#: src/encr.c:153
+#. Align to bytes for easy mallocing and reading
+#: src/genauth.c:95
 #, fuzzy, c-format
 #, fuzzy, c-format
-msgid "Generating %d bits keys"
+msgid "Generating %d bits keys:\n"
 msgstr "Generando claves de %d bits."
 
 msgstr "Generando claves de %d bits."
 
-#: src/encr.c:157
-#, c-format
-msgid "Opening /dev/urandom failed: %m"
-msgstr "Fallo abriendo /dev/urandom : %m"
+#: src/genauth.c:99
+#, fuzzy
+msgid "Done.\n"
+msgstr ": hecho.\n"
 
 
-#: src/encr.c:222
+#: src/genauth.c:101
 #, c-format
 #, c-format
-msgid "Encryption key set to %s"
-msgstr "Clave de cifrado definida como %s"
+msgid "Public key:\t%s\n"
+msgstr ""
 
 
-#: src/genauth.c:48
+#: src/genauth.c:102
 #, c-format
 #, c-format
-msgid "Usage: %s bits\n"
-msgstr "Uso: %s bits\n"
+msgid "Private key:\t%s\n"
+msgstr ""
 
 
-#: src/genauth.c:57
-#, c-format
-msgid "Illegal number: %s\n"
-msgstr "Número ilegal: %s\n"
+#: src/meta.c:42
+#, fuzzy, c-format
+msgid "Sending %d bytes of metadata to %s (%s): %s"
+msgstr "Enviados %d bytes a %lx"
 
 
-#: src/genauth.c:62
-#, c-format
-msgid "Generating %d bits number"
-msgstr "Generando número de %d bits"
+#: src/meta.c:57
+#, fuzzy, c-format
+msgid "Sending meta data to %s (%s) failed: %m"
+msgstr "Error enviando datos: %m"
 
 
-#: src/genauth.c:67
-msgid "Opening /dev/urandom"
-msgstr "Abriendo /dev/urandom"
+#: src/meta.c:85 src/net.c:773
+#, fuzzy, c-format
+msgid "This is a bug: %s:%d: %d:%m %s (%s)"
+msgstr "Esto es un `bug': %s:%d: %d:%m"
 
 
-#: src/genauth.c:80
-msgid "File was empty!\n"
-msgstr "¡El fichero estaba vacío!\n"
+#: src/meta.c:91
+#, fuzzy, c-format
+msgid "Metadata socket error for %s (%s): %s"
+msgstr "Error en el `socket' de metadatos: %s"
 
 
-#: src/genauth.c:88
-msgid ""
-": done.\n"
-"The following line should be ENTIRELY copied into a passphrase file:\n"
-msgstr ""
-": hecho.\n"
-"La siguiente línea debe ser copiada ENTERA a un fichero de frase de paso:\n"
+#: src/meta.c:110
+#, fuzzy, c-format
+msgid "Connection closed by %s (%s)"
+msgstr "Conexión desde %s:%d"
 
 
-#: src/genauth.c:100
-msgid ": done.\n"
-msgstr ": hecho.\n"
+#: src/meta.c:114
+#, fuzzy, c-format
+msgid "Metadata socket read error for %s (%s): %m"
+msgstr "Error de lectura del `socket' de metadatos: %m"
+
+#: src/meta.c:144
+#, fuzzy, c-format
+msgid "Got request from %s (%s): %s"
+msgstr "Petición desconocida: %s"
+
+#: src/meta.c:162
+#, fuzzy, c-format
+msgid "Metadata read buffer overflow for %s (%s)"
+msgstr "Desbordamiento del búfer de lectura de metadatos"
 
 #: src/net.c:106
 #, fuzzy, c-format
 msgid "Sending packet of %d bytes to %s (%s)"
 msgstr "Enviados %d bytes a %lx"
 
 
 #: src/net.c:106
 #, fuzzy, c-format
 msgid "Sending packet of %d bytes to %s (%s)"
 msgstr "Enviados %d bytes a %lx"
 
-#: src/net.c:118
+#: src/net.c:115
 #, fuzzy, c-format
 msgid "Error sending packet to %s (%s): %m"
 msgstr "Error enviando datos: %m"
 
 #, fuzzy, c-format
 msgid "Error sending packet to %s (%s): %m"
 msgstr "Error enviando datos: %m"
 
-#: src/net.c:135 src/net.c:177
+#: src/net.c:129
 #, fuzzy, c-format
 #, fuzzy, c-format
-msgid "Receiving packet of %d bytes from %s (%s)"
+msgid "Receiving packet of %d bytes"
 msgstr "Recibiendo clave de "
 
 msgstr "Recibiendo clave de "
 
-#: src/net.c:139 src/net.c:181
+#: src/net.c:142
 #, c-format
 msgid "Can't write to tap device: %m"
 msgstr "No puedo escribir en el dispositivo tap: %m"
 
 #, c-format
 msgid "Can't write to tap device: %m"
 msgstr "No puedo escribir en el dispositivo tap: %m"
 
-#: src/net.c:166 src/net.c:959
-#, fuzzy, c-format
-msgid "Got packet from %s (%s) with unknown origin %d.%d.%d.%d?"
-msgstr "He recibido un paquete desde un origen desconocido "
-
-#: src/net.c:295
+#: src/net.c:242
 #, fuzzy
 msgid "Queue flushed"
 msgstr "cola vaciada"
 
 #, fuzzy
 msgid "Queue flushed"
 msgstr "cola vaciada"
 
-#: src/net.c:310
+#: src/net.c:257
 #, fuzzy, c-format
 msgid "Flushing send queue for %s (%s)"
 msgstr "Vaciando la cola de envíos para "
 
 #, fuzzy, c-format
 msgid "Flushing send queue for %s (%s)"
 msgstr "Vaciando la cola de envíos para "
 
-#: src/net.c:318
+#: src/net.c:265
 #, fuzzy, c-format
 msgid "Flushing receive queue for %s (%s)"
 msgstr "Vaciando la cola de recepción para "
 
 #, fuzzy, c-format
 msgid "Flushing receive queue for %s (%s)"
 msgstr "Vaciando la cola de recepción para "
 
-#: src/net.c:336
+#: src/net.c:283
 #, c-format
 msgid "Trying to look up %d.%d.%d.%d in connection list failed!"
 msgstr ""
 
 #, c-format
 msgid "Trying to look up %d.%d.%d.%d in connection list failed!"
 msgstr ""
 
-#: src/net.c:348 src/net.c:361
-#, fuzzy
-msgid "There is no remote host I can send this packet to!"
-msgstr "No hay máquina remota a la que pueda enviar este paquete."
+#: src/net.c:297
+#, fuzzy, c-format
+msgid "Could not open UDP connection to %s (%s)"
+msgstr "No pude abrir %s: %s\n"
 
 
-#: src/net.c:375
+#: src/net.c:305
 #, c-format
 #, c-format
-msgid "Indirect packet to %s via %s"
+msgid "No valid key known yet for %s (%s), queueing packet"
 msgstr ""
 
 msgstr ""
 
-#: src/net.c:380
+#: src/net.c:316
 #, c-format
 #, c-format
-msgid "Indirect look up %d.%d.%d.%d in connection list failed!"
+msgid "%s (%s) is not ready, queueing packet"
 msgstr ""
 
 msgstr ""
 
-#: src/net.c:390
+#: src/net.c:344
 #, c-format
 #, c-format
-msgid "Double indirection for %d.%d.%d.%d"
-msgstr ""
-
-#: src/net.c:402
-#, fuzzy, c-format
-msgid "Could not open UDP connection to %s (%s)"
-msgstr "No pude abrir %s: %s\n"
+msgid "Could not open %s: %m"
+msgstr "No pude abrir %s: %m"
 
 
-#: src/net.c:409
+#: src/net.c:360
 #, c-format
 #, c-format
-msgid "%s (%s) has no valid key, queueing packet"
+msgid "%s is a new style tun/tap device"
 msgstr ""
 
 msgstr ""
 
-#: src/net.c:419
-#, c-format
-msgid "%s (%s) is not ready, queueing packet"
+#: src/net.c:362
+msgid "tun/tap device will be left unconfigured"
 msgstr ""
 
 msgstr ""
 
-#: src/net.c:467
+#: src/net.c:384
 #, c-format
 msgid "Creating metasocket failed: %m"
 msgstr "Fallo al crear el metasocket: %m"
 
 #, c-format
 msgid "Creating metasocket failed: %m"
 msgstr "Fallo al crear el metasocket: %m"
 
-#: src/net.c:473 src/net.c:479 src/net.c:541
+#: src/net.c:390 src/net.c:396 src/net.c:458
 #, c-format
 msgid "setsockopt: %m"
 msgstr "setsockopt(): %m"
 
 #, c-format
 msgid "setsockopt: %m"
 msgstr "setsockopt(): %m"
 
-#: src/net.c:486 src/net.c:548
+#: src/net.c:403 src/net.c:465
 #, c-format
 msgid "fcntl: %m"
 msgstr "fcntl(): %m"
 
 #, c-format
 msgid "fcntl: %m"
 msgstr "fcntl(): %m"
 
-#: src/net.c:494
+#: src/net.c:411
 #, c-format
 msgid "Unable to bind listen socket to interface %s: %m"
 msgstr ""
 
 #, c-format
 msgid "Unable to bind listen socket to interface %s: %m"
 msgstr ""
 
-#: src/net.c:510
+#: src/net.c:427
 #, c-format
 msgid "Can't bind to port %hd/tcp: %m"
 msgstr "Ha fallado la llamada a bind() con el puerto %hd/tcp: %m"
 
 #, c-format
 msgid "Can't bind to port %hd/tcp: %m"
 msgstr "Ha fallado la llamada a bind() con el puerto %hd/tcp: %m"
 
-#: src/net.c:516
+#: src/net.c:433
 #, c-format
 msgid "listen: %m"
 msgstr "listen(): %m"
 
 #, c-format
 msgid "listen: %m"
 msgstr "listen(): %m"
 
-#: src/net.c:535
+#: src/net.c:452
 #, c-format
 msgid "Creating socket failed: %m"
 msgstr "Error al crear el `socket': %m"
 
 #, c-format
 msgid "Creating socket failed: %m"
 msgstr "Error al crear el `socket': %m"
 
-#: src/net.c:559
+#: src/net.c:476
 #, c-format
 msgid "Can't bind to port %hd/udp: %m"
 msgstr "Ha fallado la llamada a bind() con el puerto %hd/udp: %m"
 
 #, c-format
 msgid "Can't bind to port %hd/udp: %m"
 msgstr "Ha fallado la llamada a bind() con el puerto %hd/udp: %m"
 
-#: src/net.c:576
+#: src/net.c:493
 #, fuzzy, c-format
 msgid "Trying to connect to %s"
 msgstr "Cerrando conexión con %s."
 
 #, fuzzy, c-format
 msgid "Trying to connect to %s"
 msgstr "Cerrando conexión con %s."
 
-#: src/net.c:586
+#: src/net.c:503
 #, fuzzy, c-format
 msgid "Creating socket for %s port %d failed: %m"
 msgstr "Error al crear el `socket': %m"
 
 #, fuzzy, c-format
 msgid "Creating socket for %s port %d failed: %m"
 msgstr "Error al crear el `socket': %m"
 
-#: src/net.c:597
+#: src/net.c:514
 #, c-format
 msgid "%s port %hd: %m"
 msgstr ""
 
 #, c-format
 msgid "%s port %hd: %m"
 msgstr ""
 
-#: src/net.c:604
+#: src/net.c:521
 #, c-format
 msgid "fcntl for %s port %d: %m"
 msgstr ""
 
 #, c-format
 msgid "fcntl for %s port %d: %m"
 msgstr ""
 
-#: src/net.c:610
+#: src/net.c:527
 #, fuzzy, c-format
 msgid "Connected to %s port %hd"
 msgstr "Conectado a %s:%hd"
 
 #, fuzzy, c-format
 msgid "Connected to %s port %hd"
 msgstr "Conectado a %s:%hd"
 
-#: src/net.c:630
+#: src/net.c:547
 #, fuzzy, c-format
 msgid "Error looking up `%s': %m"
 msgstr "Error buscando `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "Error looking up `%s': %m"
 msgstr "Error buscando `%s': %s\n"
 
-#: src/net.c:640
+#: src/net.c:557
 #, fuzzy, c-format
 msgid "Could not set up a meta connection to %s"
 msgstr "No he podido configurar una meta conexión."
 
 #, fuzzy, c-format
 msgid "Could not set up a meta connection to %s"
 msgstr "No he podido configurar una meta conexión."
 
-#: src/net.c:665
-msgid "No value for my VPN IP given"
-msgstr "No se ha definido un valor para mi VPN IP"
+#: src/net.c:586
+msgid "Name for tinc daemon required!"
+msgstr ""
+
+#: src/net.c:594
+msgid "Invalid name for myself!"
+msgstr ""
 
 
-#: src/net.c:690
-msgid "Unable to set up a listening socket"
+#: src/net.c:600
+msgid "Cannot open host configuration file for myself!"
+msgstr ""
+
+#: src/net.c:619
+#, fuzzy
+msgid "Unable to set up a listening socket!"
 msgstr "No puedo configurar un `socket' a la escucha"
 
 msgstr "No puedo configurar un `socket' a la escucha"
 
-#: src/net.c:696
-msgid "Unable to set up an incoming vpn data socket"
+#: src/net.c:625
+#, fuzzy
+msgid "Unable to set up an incoming vpn data socket!"
 msgstr "No puedo configurar un `socket' para recibir datos de la vpn"
 
 msgstr "No puedo configurar un `socket' para recibir datos de la vpn"
 
-#: src/net.c:703
+#: src/net.c:632
 #, fuzzy, c-format
 msgid "Ready: listening on port %hd"
 msgstr "Listo: escuchando en el puerto %d."
 
 #, fuzzy, c-format
 msgid "Ready: listening on port %hd"
 msgstr "Listo: escuchando en el puerto %d."
 
-#: src/net.c:730
+#: src/net.c:660
 #, fuzzy, c-format
 msgid "Still failed to connect to other, will retry in %d seconds"
 msgstr "Siguo sin poder conectar con el otro. Lo reintentaré en %d segundos."
 
 #, fuzzy, c-format
 msgid "Still failed to connect to other, will retry in %d seconds"
 msgstr "Siguo sin poder conectar con el otro. Lo reintentaré en %d segundos."
 
-#: src/net.c:768
+#: src/net.c:698
 #, fuzzy, c-format
 msgid "Trying to re-establish outgoing connection in %d seconds"
 msgstr "Intento re-establecer la conexión saliente en 5 segundos."
 
 #, fuzzy, c-format
 msgid "Trying to re-establish outgoing connection in %d seconds"
 msgstr "Intento re-establecer la conexión saliente en 5 segundos."
 
-#: src/net.c:806
+#: src/net.c:736
 #, fuzzy
 msgid "Terminating"
 msgstr "Terminando."
 
 #, fuzzy
 msgid "Terminating"
 msgstr "Terminando."
 
-#: src/net.c:820
+#: src/net.c:750
 #, fuzzy, c-format
 msgid "Opening UDP socket to %s"
 msgstr "Abriendo `socket' UDP a "
 
 #, fuzzy, c-format
 msgid "Opening UDP socket to %s"
 msgstr "Abriendo `socket' UDP a "
 
-#: src/net.c:825
+#: src/net.c:755
 #, fuzzy, c-format
 msgid "Creating UDP socket failed: %m"
 msgstr "Error al crear el `socket': %m"
 
 #, fuzzy, c-format
 msgid "Creating UDP socket failed: %m"
 msgstr "Error al crear el `socket': %m"
 
-#: src/net.c:835
+#: src/net.c:765
 #, fuzzy, c-format
 msgid "Connecting to %s port %d failed: %m"
 msgstr "Error al crear `socket' de datos: %m"
 
 #, fuzzy, c-format
 msgid "Connecting to %s port %d failed: %m"
 msgstr "Error al crear `socket' de datos: %m"
 
-#: src/net.c:843 src/net.c:930 src/net.c:1128
-#, fuzzy, c-format
-msgid "This is a bug: %s:%d: %d:%m %s (%s)"
-msgstr "Esto es un `bug': %s:%d: %d:%m"
-
-#: src/net.c:868
+#: src/net.c:798
 #, c-format
 msgid "Error: getpeername: %m"
 msgstr "Error: getpeername(): %m"
 
 #, c-format
 msgid "Error: getpeername: %m"
 msgstr "Error: getpeername(): %m"
 
-#: src/net.c:881
+#: src/net.c:813
 #, fuzzy, c-format
 msgid "Connection from %s port %d"
 msgstr "Conexión desde %s:%d"
 
 #, fuzzy, c-format
 msgid "Connection from %s port %d"
 msgstr "Conexión desde %s:%d"
 
-#: src/net.c:936
+#: src/net.c:861
+#, fuzzy, c-format
+msgid "This is a bug: %s:%d: %d:%m"
+msgstr "Esto es un `bug': %s:%d: %d:%m"
+
+#: src/net.c:867
 #, fuzzy, c-format
 #, fuzzy, c-format
-msgid "Incoming data socket error for %s (%s): %s"
+msgid "Incoming data socket error: %s"
 msgstr "Error en el `socket' de recepción de datos: %s"
 
 msgstr "Error en el `socket' de recepción de datos: %s"
 
-#: src/net.c:945
+#: src/net.c:873
 #, fuzzy, c-format
 #, fuzzy, c-format
-msgid "Receiving packet from %s (%s) failed: %m"
+msgid "Receiving packet failed: %m"
 msgstr "Error recibiendo datos: %m"
 
 msgstr "Error recibiendo datos: %m"
 
-#: src/net.c:993
+#: src/net.c:894
 #, fuzzy, c-format
 msgid "Closing connection with %s (%s)"
 msgstr "Cerrando conexión con %s."
 
 #, fuzzy, c-format
 msgid "Closing connection with %s (%s)"
 msgstr "Cerrando conexión con %s."
 
-#: src/net.c:1037
+#: src/net.c:937
 #, fuzzy
 msgid "Trying to re-establish outgoing connection in 5 seconds"
 msgstr "Intento re-establecer la conexión saliente en 5 segundos."
 
 #, fuzzy
 msgid "Trying to re-establish outgoing connection in 5 seconds"
 msgstr "Intento re-establecer la conexión saliente en 5 segundos."
 
-#: src/net.c:1067
+#: src/net.c:967
 #, c-format
 msgid "%s (%s) didn't respond to PING"
 msgstr ""
 
 #, c-format
 msgid "%s (%s) didn't respond to PING"
 msgstr ""
 
-#: src/net.c:1098
+#: src/net.c:998
 #, c-format
 msgid "Accepting a new connection failed: %m"
 msgstr "Error al aceptar una nueva conexión: %m"
 
 #, c-format
 msgid "Accepting a new connection failed: %m"
 msgstr "Error al aceptar una nueva conexión: %m"
 
-#: src/net.c:1106
+#: src/net.c:1006
 #, fuzzy
 msgid "Closed attempted connection"
 msgstr "Se ha cerrado la conexión que se intentaba realizar."
 
 #, fuzzy
 msgid "Closed attempted connection"
 msgstr "Se ha cerrado la conexión que se intentaba realizar."
 
-#: src/net.c:1134
-#, fuzzy, c-format
-msgid "Metadata socket error for %s (%s): %s"
-msgstr "Error en el `socket' de metadatos: %s"
-
-#: src/net.c:1141
-#, fuzzy
-msgid "Metadata read buffer overflow!"
-msgstr "Desbordamiento del búfer de lectura de metadatos"
-
-#: src/net.c:1154
-#, fuzzy, c-format
-msgid "Connection closed by %s (%s)"
-msgstr "Conexión desde %s:%d"
-
-#: src/net.c:1158
-#, fuzzy, c-format
-msgid "Metadata socket read error for %s (%s): %m"
-msgstr "Error de lectura del `socket' de metadatos: %m"
-
-#: src/net.c:1200
-#, fuzzy, c-format
-msgid "Got request from %s (%s): %s"
-msgstr "He recibido una petición: %s"
-
-#: src/net.c:1206
-#, fuzzy, c-format
-msgid "Unknown request from %s (%s)"
-msgstr "Petición desconocida: %s"
-
-#: src/net.c:1213
-#, fuzzy, c-format
-msgid "Error while processing request from %s (%s)"
-msgstr "Error al procesar la petición de "
-
-#: src/net.c:1220
-#, fuzzy, c-format
-msgid "Bogus data received from %s (%s)"
-msgstr "Se han recibido datos sin sentido."
-
-#: src/net.c:1266
+#: src/net.c:1041
 #, fuzzy, c-format
 msgid "Outgoing data socket error for %s (%s): %s"
 msgstr "Error en el `socket' de datos salientes: %s"
 
 #, fuzzy, c-format
 msgid "Outgoing data socket error for %s (%s): %s"
 msgstr "Error en el `socket' de datos salientes: %s"
 
-#: src/net.c:1302
+#: src/net.c:1077
 #, c-format
 msgid "Error while reading from tapdevice: %m"
 msgstr "Error leyendo del dispositivo tap: %m"
 
 #, c-format
 msgid "Error while reading from tapdevice: %m"
 msgstr "Error leyendo del dispositivo tap: %m"
 
-#: src/net.c:1312
-#, c-format
-msgid "Non-IP ethernet frame %04x from "
+#: src/net.c:1087
+#, fuzzy, c-format
+msgid "Non-IP ethernet frame %04x from %02x:%02x:%02x:%02x:%02x:%02x"
 msgstr "Trama ethernet no-IP %04x de "
 
 msgstr "Trama ethernet no-IP %04x de "
 
-#: src/net.c:1320
-msgid "Dropping short packet"
-msgstr "Descartando paquete corto"
+#: src/net.c:1094
+#, c-format
+msgid "Dropping short packet from %02x:%02x:%02x:%02x:%02x:%02x"
+msgstr ""
 
 
-#: src/net.c:1359
+#: src/net.c:1133
 #, c-format
 msgid "Error while waiting for input: %m"
 msgstr "Error esperando entrada: %m"
 
 #, c-format
 msgid "Error while waiting for input: %m"
 msgstr "Error esperando entrada: %m"
 
-#: src/net.c:1371
-msgid "Unable to reread configuration file, exiting"
-msgstr ""
-
-#: src/netutl.c:220
+#: src/netutl.c:115
 #, c-format
 msgid "Error looking up `%s': %s\n"
 msgstr "Error buscando `%s': %s\n"
 
 #, c-format
 msgid "Error looking up `%s': %s\n"
 msgstr "Error buscando `%s': %s\n"
 
-#: src/netutl.c:244
-msgid "Connection list:"
-msgstr "Lista de conexiones:"
-
-#: src/netutl.c:248
+#: src/protocol.c:80
 #, c-format
 #, c-format
-msgid ""
-"%s netmask %d.%d.%d.%d at %s port %hd flags %d sockets %d, %d status %04x"
+msgid "Output buffer overflow while sending %s to %s (%s)"
 msgstr ""
 
 msgstr ""
 
-#: src/protocol.c:56
+#: src/protocol.c:87
 #, fuzzy, c-format
 #, fuzzy, c-format
-msgid "Sending ACK to %s (%s)"
+msgid "Sending %s to %s (%s)"
 msgstr "Envio ACK a %s"
 
 msgstr "Envio ACK a %s"
 
-#: src/protocol.c:63
-#, fuzzy, c-format
-msgid "Send failed: %d:%d: %m"
-msgstr "Error enviando: %d:%d: %m"
-
-#: src/protocol.c:74
+#: src/protocol.c:101
 #, fuzzy, c-format
 #, fuzzy, c-format
-msgid "Sending TERMREQ to %s (%s)"
-msgstr "Envío TERMREQ a "
+msgid "Unknown request from %s (%s)"
+msgstr "Petición desconocida: %s"
 
 
-#: src/protocol.c:82 src/protocol.c:100 src/protocol.c:118 src/protocol.c:137
-#: src/protocol.c:143 src/protocol.c:161 src/protocol.c:179 src/protocol.c:218
-#: src/protocol.c:236 src/protocol.c:264 src/protocol.c:285 src/protocol.c:303
-#: src/protocol.c:346 src/protocol.c:376 src/protocol.c:866 src/protocol.c:969
+#: src/protocol.c:108
 #, fuzzy, c-format
 #, fuzzy, c-format
-msgid "Send failed: %s:%d: %m"
-msgstr "Error enviando: %s:%d: %m"
+msgid "Got %s from %s (%s)"
+msgstr "He recibido una petición: %s"
 
 
-#: src/protocol.c:93
+#: src/protocol.c:114
 #, fuzzy, c-format
 #, fuzzy, c-format
-msgid "Sending TIMEOUT to %s (%s)"
-msgstr "Envío TIMEOUT a "
-
-#: src/protocol.c:111
-#, c-format
-msgid "Sending DEL_HOST for %s (%s) to %s (%s)"
-msgstr ""
+msgid "Error while processing %s from %s (%s)"
+msgstr "Error al procesar la petición de "
 
 
-#: src/protocol.c:130
+#: src/protocol.c:121
 #, fuzzy, c-format
 #, fuzzy, c-format
-msgid "Sending PACKET to %s (%s)"
-msgstr "Envio ACK a %s"
+msgid "Bogus data received from %s (%s)"
+msgstr "Se han recibido datos sin sentido."
 
 
-#: src/protocol.c:154
+#: src/protocol.c:167
 #, fuzzy, c-format
 #, fuzzy, c-format
-msgid "Sending PING to %s (%s)"
-msgstr "Enviando KEY_CHANGED to "
+msgid "Got bad ID from %s"
+msgstr "recibí una petición BASIC_INFO incorrecta: %s"
 
 
-#: src/protocol.c:172
+#: src/protocol.c:175
 #, fuzzy, c-format
 #, fuzzy, c-format
-msgid "Sending PONG to %s (%s)"
-msgstr "Enviando KEY_CHANGED to "
+msgid "Peer %s (%s) uses incompatible version %d"
+msgstr ""
+"La máquina remota usa una versión incompatible del protocolo (versión %d)."
 
 
-#: src/protocol.c:211
+#: src/protocol.c:184
 #, c-format
 #, c-format
-msgid "Sending ADD_HOST for %s (%s) to %s (%s)"
+msgid "Peer %s uses invalid identity name"
 msgstr ""
 
 msgstr ""
 
-#: src/protocol.c:229
-#, fuzzy, c-format
-msgid "Sending KEY_CHANGED origin %s to %s (%s)"
-msgstr "Enviando KEY_CHANGED to "
-
-#: src/protocol.c:257
-#, fuzzy, c-format
-msgid "Sending BASIC_INFO to %s"
-msgstr "Enviando BASIC_INFO a "
-
-#: src/protocol.c:278
-#, fuzzy, c-format
-msgid "Sending PASSPHRASE to %s (%s)"
-msgstr "Enviando PASSPHRASE %s a "
-
-#: src/protocol.c:296
-#, fuzzy, c-format
-msgid "Sending PUBLIC_KEY to %s (%s)"
-msgstr "Enviando PUBLIC_KEY %s a "
-
-#: src/protocol.c:333
+#: src/protocol.c:192
 #, c-format
 #, c-format
-msgid "Attempting to send REQ_KEY to %d.%d.%d.%d, which does not exist?"
+msgid "Peer %s had unknown identity (%s)"
 msgstr ""
 
 msgstr ""
 
-#: src/protocol.c:339
-#, fuzzy, c-format
-msgid "Sending REQ_KEY to %s (%s)"
-msgstr "Enviando KEY_CHANGED to "
-
-#: src/protocol.c:363
+#: src/protocol.c:207
 #, c-format
 #, c-format
-msgid "Attempting to send ANS_KEY to %d.%d.%d.%d, which does not exist?"
+msgid "Uplink %s (%s) is already in our connection list"
 msgstr ""
 
 msgstr ""
 
-#: src/protocol.c:369
-#, fuzzy, c-format
-msgid "Sending ANS_KEY to %s (%s)"
-msgstr "Envio ACK a %s"
-
-#: src/protocol.c:424
+#: src/protocol.c:253
 #, fuzzy, c-format
 #, fuzzy, c-format
-msgid "Got BASIC_INFO from %s"
-msgstr "recibí una petición BASIC_INFO incorrecta: %s"
-
-#: src/protocol.c:428
-#, fuzzy, c-format
-msgid "Got bad BASIC_INFO from %s"
-msgstr "recibí una petición BASIC_INFO incorrecta: %s"
+msgid "Got bad CHALLENGE from %s (%s)"
+msgstr "recibí KEY_CHANGED de "
 
 
-#: src/protocol.c:437
-#, fuzzy, c-format
-msgid "Peer uses incompatible protocol version %d"
+#: src/protocol.c:261
+#, c-format
+msgid "Intruder: wrong challenge length from %s (%s)"
 msgstr ""
 msgstr ""
-"La máquina remota usa una versión incompatible del protocolo (versión %d)."
 
 
-#: src/protocol.c:452
+#: src/protocol.c:287
 #, c-format
 #, c-format
-msgid "Uplink %s (%s) is already in our connection list"
+msgid "Trying to send CHAL_REPLY to %s (%s) without a valid CHALLENGE"
 msgstr ""
 
 msgstr ""
 
-#: src/protocol.c:482
-#, fuzzy, c-format
-msgid "Got bad PASSPHRASE from %s (%s)"
-msgstr "recibí una petición PASSPHRASE incorrecta: %s"
-
-#: src/protocol.c:489
-#, fuzzy, c-format
-msgid "Got PASSPHRASE from %s (%s)"
-msgstr "recibí una petición PASSPHRASE incorrecta: %s"
-
-#: src/protocol.c:507
+#: src/protocol.c:318
 #, fuzzy, c-format
 #, fuzzy, c-format
-msgid "Got bad PUBLIC_KEY from %s (%s)"
-msgstr "recibí una petición PUBLIC_KEY incorrecta: %s"
+msgid "Got bad CHAL_REPLY from %s (%s)"
+msgstr "recibí una petición ANS_KEY incorrecta: %s"
 
 
-#: src/protocol.c:513
-#, fuzzy, c-format
-msgid "Got PUBLIC_KEY from %s (%s)"
-msgstr "recibí PUBLIC_KEY %s"
+#: src/protocol.c:327
+#, c-format
+msgid "Intruder: wrong challenge reply length from %s (%s)"
+msgstr ""
 
 
-#. intruder!
-#: src/protocol.c:519
-#, fuzzy, c-format
-msgid "Intruder from %s: passphrase for %s does not match!"
-msgstr "Intruso: la frase de paso no concuerda."
+#: src/protocol.c:344
+#, c-format
+msgid "Intruder: wrong challenge reply from %s (%s)"
+msgstr ""
 
 
-#: src/protocol.c:538
+#: src/protocol.c:386
 #, c-format
 msgid "Removing old entry for %s at %s in favour of new connection from %s"
 msgstr ""
 
 #, c-format
 msgid "Removing old entry for %s at %s in favour of new connection from %s"
 msgstr ""
 
-#: src/protocol.c:547 src/protocol.c:567
+#: src/protocol.c:398
 #, fuzzy, c-format
 msgid "Connection with %s (%s) activated"
 msgstr "Activada la conexión con %s."
 
 #, fuzzy, c-format
 msgid "Connection with %s (%s) activated"
 msgstr "Activada la conexión con %s."
 
-#: src/protocol.c:561
-#, c-format
-msgid "Got ACK from %s (%s)"
-msgstr ""
+#: src/protocol.c:438
+#, fuzzy, c-format
+msgid "Got bad ADD_SUBNET from %s (%s)"
+msgstr "recibí una petición ADD_HOST incorrecta: %s"
 
 
-#: src/protocol.c:583
-#, c-format
-msgid "Got unauthorized TERMREQ from %s (%s)"
-msgstr ""
+#: src/protocol.c:447
+#, fuzzy, c-format
+msgid "Got bad ADD_SUBNET from %s (%s): invalid identity name"
+msgstr "recibí una petición ADD_HOST incorrecta: %s"
 
 
-#: src/protocol.c:589
-#, c-format
-msgid "Got TERMREQ from %s (%s)"
-msgstr ""
+#: src/protocol.c:456
+#, fuzzy, c-format
+msgid "Got bad ADD_SUBNET from %s (%s): invalid subnet string"
+msgstr "recibí una petición ADD_HOST incorrecta: %s"
 
 
-#: src/protocol.c:604
+#: src/protocol.c:467
 #, c-format
 #, c-format
-msgid "Got unauthorized TIMEOUT from %s (%s)"
+msgid "Warning: got ADD_SUBNET from %s (%s) for ourself, restarting"
 msgstr ""
 
 msgstr ""
 
-#: src/protocol.c:610
+#: src/protocol.c:478
 #, c-format
 #, c-format
-msgid "Got TIMEOUT from %s (%s)"
+msgid "Got ADD_SUBNET for %s from %s (%s) which is not in our connection list"
 msgstr ""
 
 msgstr ""
 
-#: src/protocol.c:626
+#: src/protocol.c:506
 #, fuzzy, c-format
 #, fuzzy, c-format
-msgid "Got unauthorized DEL_HOST from %s (%s)"
+msgid "Got bad DEL_SUBNET from %s (%s)"
 msgstr "recibí una petición DEL_HOST incorrecta: %s"
 
 msgstr "recibí una petición DEL_HOST incorrecta: %s"
 
-#: src/protocol.c:633
+#: src/protocol.c:515
 #, fuzzy, c-format
 #, fuzzy, c-format
-msgid "Got bad DEL_HOST from %s (%s)"
+msgid "Got bad DEL_SUBNET from %s (%s): invalid identity name"
 msgstr "recibí una petición DEL_HOST incorrecta: %s"
 
 msgstr "recibí una petición DEL_HOST incorrecta: %s"
 
-#: src/protocol.c:640
-#, c-format
-msgid "Got DEL_HOST for %d.%d.%d.%d from %s (%s) which does not exist?"
-msgstr ""
-
-#: src/protocol.c:648
-#, c-format
-msgid "Warning: got DEL_HOST from %s (%s) for ourself, restarting"
-msgstr ""
+#: src/protocol.c:524
+#, fuzzy, c-format
+msgid "Got bad DEL_SUBNET from %s (%s): invalid subnet string"
+msgstr "recibí una petición DEL_HOST incorrecta: %s"
 
 
-#: src/protocol.c:655
+#: src/protocol.c:535
 #, c-format
 #, c-format
-msgid "Got DEL_HOST for %s (%s) from %s (%s)"
+msgid "Warning: got DEL_SUBNET from %s (%s) for ourself, restarting"
 msgstr ""
 
 msgstr ""
 
-#: src/protocol.c:674
+#: src/protocol.c:546
 #, c-format
 #, c-format
-msgid "Got unauthorized PACKET from %s (%s)"
+msgid "Got DEL_SUBNET for %s from %s (%s) which is not in our connection list"
 msgstr ""
 
 msgstr ""
 
-#: src/protocol.c:681
-#, c-format
-msgid "Got bad PACKET from %s (%s)"
-msgstr ""
+#: src/protocol.c:577
+#, fuzzy, c-format
+msgid "Got bad ADD_HOST from %s (%s)"
+msgstr "recibí una petición ADD_HOST incorrecta: %s"
 
 
-#: src/protocol.c:688
-#, c-format
-msgid "Got too big PACKET from %s (%s)"
-msgstr ""
+#: src/protocol.c:585
+#, fuzzy, c-format
+msgid "Got bad ADD_HOST from %s (%s): invalid identity name"
+msgstr "recibí una petición ADD_HOST incorrecta: %s"
 
 
-#: src/protocol.c:694
+#: src/protocol.c:594
 #, c-format
 #, c-format
-msgid "Got PACKET length %d from %s (%s)"
+msgid "Warning: got ADD_HOST from %s (%s) for ourself, restarting"
 msgstr ""
 
 msgstr ""
 
-#: src/protocol.c:708
+#: src/protocol.c:604
 #, c-format
 #, c-format
-msgid "Got unauthorized PING from %s (%s)"
+msgid "Warning: got ADD_HOST from %s (%s) from ourself, restarting"
 msgstr ""
 
 msgstr ""
 
-#: src/protocol.c:714
+#: src/protocol.c:614
 #, c-format
 #, c-format
-msgid "Got PING from %s (%s)"
+msgid ""
+"Got ADD_HOST from %s (%s) with origin %s which is not in our connection list"
 msgstr ""
 
 msgstr ""
 
-#: src/protocol.c:730
+#: src/protocol.c:633
 #, c-format
 #, c-format
-msgid "Got unauthorized PONG from %s (%s)"
+msgid "Got duplicate ADD_HOST for %s (%s) from %s (%s)"
 msgstr ""
 
 msgstr ""
 
-#: src/protocol.c:736
+#: src/protocol.c:640
 #, c-format
 #, c-format
-msgid "Got PONG from %s (%s)"
+msgid "Removing old entry for %s (%s)"
 msgstr ""
 
 msgstr ""
 
-#: src/protocol.c:755
+#: src/protocol.c:683
 #, fuzzy, c-format
 #, fuzzy, c-format
-msgid "Got unauthorized ADD_HOST from %s (%s)"
-msgstr "recibí una petición ADD_HOST incorrecta: %s"
+msgid "Got bad DEL_HOST from %s (%s)"
+msgstr "recibí una petición DEL_HOST incorrecta: %s"
 
 
-#: src/protocol.c:762
+#: src/protocol.c:692
 #, fuzzy, c-format
 #, fuzzy, c-format
-msgid "Got bad ADD_HOST from %s (%s)"
-msgstr "recibí una petición ADD_HOST incorrecta: %s"
+msgid "Got bad DEL_HOST from %s (%s): invalid identity name"
+msgstr "recibí una petición DEL_HOST incorrecta: %s"
 
 
-#: src/protocol.c:772
+#: src/protocol.c:701
 #, c-format
 #, c-format
-msgid "Got duplicate ADD_HOST for %s (%s) from %s (%s)"
+msgid "Warning: got DEL_HOST from %s (%s) for ourself, restarting"
 msgstr ""
 
 msgstr ""
 
-#: src/protocol.c:779
+#: src/protocol.c:712
 #, c-format
 #, c-format
-msgid "Removing old entry for %s (%s)"
+msgid "Warning: got DEL_HOST from %s (%s) from ourself, restarting"
 msgstr ""
 
 msgstr ""
 
-#: src/protocol.c:789
+#: src/protocol.c:722
 #, c-format
 #, c-format
-msgid "Warning: got ADD_HOST from %s (%s) for ourself, restarting"
+msgid ""
+"Got DEL_HOST from %s (%s) with origin %s which is not in our connection list"
 msgstr ""
 
 msgstr ""
 
-#: src/protocol.c:809
+#: src/protocol.c:734
 #, c-format
 #, c-format
-msgid "Got ADD_HOST for %s (%s) from %s (%s)"
+msgid "Got DEL_HOST from %s (%s) for %s which is not in our connection list"
 msgstr ""
 
 msgstr ""
 
-#: src/protocol.c:827
-#, c-format
-msgid "Got unauthorized REQ_KEY from %s (%s)"
-msgstr ""
+#: src/protocol.c:744
+#, fuzzy, c-format
+msgid "Got DEL_HOST from %s (%s) for %s which doesn't match"
+msgstr "recibí una petición DEL_HOST incorrecta: %s"
 
 
-#: src/protocol.c:834
+#: src/protocol.c:776
 #, fuzzy, c-format
 #, fuzzy, c-format
-msgid "Got bad REQ_KEY from %s (%s)"
-msgstr "recibí REQ_KEY de "
+msgid "Got bad STATUS from %s (%s)"
+msgstr "recibí una petición ANS_KEY incorrecta: %s"
 
 
-#: src/protocol.c:840
-#, c-format
-msgid "Got REQ_KEY origin %d.%d.%d.%d destination %d.%d.%d.%d from %s (%s)"
-msgstr ""
+#: src/protocol.c:783
+#, fuzzy, c-format
+msgid "Status message from %s (%s): %s: %s"
+msgstr "He recibido una petición: %s"
 
 
-#: src/protocol.c:853
-#, c-format
-msgid "Attempting to forward REQ_KEY to %d.%d.%d.%d, which does not exist?"
-msgstr ""
+#: src/protocol.c:807
+#, fuzzy, c-format
+msgid "Got bad ERROR from %s (%s)"
+msgstr "recibí una petición DEL_HOST incorrecta: %s"
 
 
-#: src/protocol.c:859
-#, c-format
-msgid "Forwarding REQ_KEY to %s (%s)"
-msgstr ""
+#: src/protocol.c:814
+#, fuzzy, c-format
+msgid "Error message from %s (%s): %s: %s"
+msgstr "He recibido una petición: %s"
 
 
-#: src/protocol.c:918
+#: src/protocol.c:892
+#, fuzzy, c-format
+msgid "Got bad KEY_CHANGED from %s (%s)"
+msgstr "recibí KEY_CHANGED de "
+
+#: src/protocol.c:899
 #, c-format
 #, c-format
-msgid "Got unauthorized ANS_KEY from %s (%s)"
+msgid ""
+"Got KEY_CHANGED from %s (%s) origin %s which does not exist in our "
+"connection list"
 msgstr ""
 
 msgstr ""
 
-#: src/protocol.c:925
+#: src/protocol.c:929
 #, fuzzy, c-format
 #, fuzzy, c-format
-msgid "Got bad ANS_KEY from %s (%s)"
-msgstr "recibí una petición ANS_KEY incorrecta: %s"
+msgid "Got bad REQ_KEY from %s (%s)"
+msgstr "recibí REQ_KEY de "
 
 
-#: src/protocol.c:931
+#: src/protocol.c:936
 #, c-format
 #, c-format
-msgid "Got ANS_KEY origin %d.%d.%d.%d destination %d.%d.%d.%d from %s (%s)"
+msgid ""
+"Got REQ_KEY from %s (%s) origin %s which does not exist in our connection "
+"list"
 msgstr ""
 
 msgstr ""
 
-#: src/protocol.c:940
+#: src/protocol.c:952
 #, c-format
 msgid ""
 #, c-format
 msgid ""
-"Receiving ANS_KEY origin %d.%d.%d.%d from %s (%s), which does not exist?"
+"Got REQ_KEY from %s (%s) destination %s which does not exist in our "
+"connection list"
 msgstr ""
 
 msgstr ""
 
-#: src/protocol.c:956
-#, c-format
-msgid "Attempting to forward ANS_KEY to %d.%d.%d.%d, which does not exist?"
-msgstr ""
+#: src/protocol.c:980
+#, fuzzy, c-format
+msgid "Got bad ANS_KEY from %s (%s)"
+msgstr "recibí una petición ANS_KEY incorrecta: %s"
 
 
-#: src/protocol.c:962
+#: src/protocol.c:987
 #, c-format
 #, c-format
-msgid "Forwarding ANS_KEY to %s (%s)"
+msgid ""
+"Got ANS_KEY from %s (%s) origin %s which does not exist in our connection "
+"list"
 msgstr ""
 
 msgstr ""
 
-#: src/protocol.c:983
-#, fuzzy, c-format
-msgid "Got unauthorized KEY_CHANGED from %s (%s)"
-msgstr "recibí KEY_CHANGED de "
-
-#: src/protocol.c:990
+#: src/protocol.c:1003
 #, fuzzy, c-format
 #, fuzzy, c-format
-msgid "Got bad KEY_CHANGED from %s (%s)"
-msgstr "recibí KEY_CHANGED de "
+msgid "Got bad ANS_KEY from %s (%s) origin %s: invalid key"
+msgstr "recibí una petición ANS_KEY incorrecta: %s"
 
 
-#: src/protocol.c:999
+#: src/protocol.c:1016
 #, c-format
 #, c-format
-msgid "Got KEY_CHANGED origin %d.%d.%d.%d from %s (%s), which does not exist?"
+msgid ""
+"Got ANS_KEY from %s (%s) destination %s which does not exist in our "
+"connection list"
 msgstr ""
 
 msgstr ""
 
-#: src/protocol.c:1005
-#, fuzzy, c-format
-msgid "Got KEY_CHANGED origin %s from %s (%s)"
-msgstr "recibí KEY_CHANGED de "
-
-#: src/tincd.c:96
+#: src/tincd.c:94
 #, c-format
 msgid "Try `%s --help' for more information.\n"
 msgstr "Pruebe `%s --help' para más información.\n"
 
 #, c-format
 msgid "Try `%s --help' for more information.\n"
 msgstr "Pruebe `%s --help' para más información.\n"
 
-#: src/tincd.c:99
+#: src/tincd.c:97
 #, c-format
 msgid ""
 "Usage: %s [option]...\n"
 #, c-format
 msgid ""
 "Usage: %s [option]...\n"
@@ -788,9 +692,10 @@ msgstr ""
 "Modo de empleo: %s [opción]...\n"
 "\n"
 
 "Modo de empleo: %s [opción]...\n"
 "\n"
 
-#: src/tincd.c:100
+#: src/tincd.c:98
+#, fuzzy
 msgid ""
 msgid ""
-"  -c, --config=FILE     Read configuration options from FILE.\n"
+"  -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"
 "  -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"
@@ -805,7 +710,7 @@ msgstr ""
 "  -t, --timeout=TIEMPO  Segundos a esperar antes de cancelar una "
 "trasmisión.\n"
 
 "  -t, --timeout=TIEMPO  Segundos a esperar antes de cancelar una "
 "trasmisión.\n"
 
-#: src/tincd.c:106
+#: src/tincd.c:104
 msgid ""
 "      --help            Display this help and exit.\n"
 "      --version         Output version information and exit.\n"
 msgid ""
 "      --help            Display this help and exit.\n"
 "      --version         Output version information and exit.\n"
@@ -815,75 +720,80 @@ msgstr ""
 "      --version         Muestra información de la versión y termina.\n"
 "\n"
 
 "      --version         Muestra información de la versión y termina.\n"
 "\n"
 
-#: src/tincd.c:108
+#: src/tincd.c:106
 msgid "Report bugs to tinc@nl.linux.org.\n"
 msgstr "Comunicar `bugs' a tinc@nl.linux.org.\n"
 
 msgid "Report bugs to tinc@nl.linux.org.\n"
 msgstr "Comunicar `bugs' a tinc@nl.linux.org.\n"
 
-#: src/tincd.c:146
+#: src/tincd.c:144
 #, c-format
 msgid "Invalid timeout value `%s'.\n"
 msgstr "Valor de `timeout' no válido `%s'.\n"
 
 #, c-format
 msgid "Invalid timeout value `%s'.\n"
 msgstr "Valor de `timeout' no válido `%s'.\n"
 
-#: src/tincd.c:160
+#: src/tincd.c:158
 #, fuzzy, c-format
 msgid "Memory exhausted (last is %s:%d) (couldn't allocate %d bytes), exiting."
 msgstr ""
 "Memoria agotada (la última es %s:%d) (no pude asignar %d bytes); terminando."
 
 #, fuzzy, c-format
 msgid "Memory exhausted (last is %s:%d) (couldn't allocate %d bytes), exiting."
 msgstr ""
 "Memoria agotada (la última es %s:%d) (no pude asignar %d bytes); terminando."
 
-#: src/tincd.c:215
+#: src/tincd.c:213
 #, fuzzy, c-format
 msgid "tincd %s (%s %s) starting, debug level %d"
 msgstr "tincd %s (%s %s) comenzando, nivel de depuración %d."
 
 #, fuzzy, c-format
 msgid "tincd %s (%s %s) starting, debug level %d"
 msgstr "tincd %s (%s %s) comenzando, nivel de depuración %d."
 
-#: src/tincd.c:218
+#: src/tincd.c:216
 #, fuzzy, c-format
 msgid "tincd %s starting"
 msgstr "tincd %s comenzando, nivel de depuración %d."
 
 #, fuzzy, c-format
 msgid "tincd %s starting"
 msgstr "tincd %s comenzando, nivel de depuración %d."
 
-#: src/tincd.c:233
+#: src/tincd.c:231
 #, fuzzy, c-format
 msgid "Total bytes written: tap %d, socket %d; bytes read: tap %d, socket %d"
 msgstr ""
 "Total de bytes escritos: tap %d, socket %d; bytes leidos: tap %d, socket %d."
 
 #, fuzzy, c-format
 msgid "Total bytes written: tap %d, socket %d; bytes read: tap %d, socket %d"
 msgstr ""
 "Total de bytes escritos: tap %d, socket %d; bytes leidos: tap %d, socket %d."
 
-#: src/tincd.c:251
+#: src/tincd.c:249
 #, c-format
 msgid "A tincd is already running for net `%s' with pid %d.\n"
 msgstr ""
 "Un tincd está actualmente en ejecución para la red `%s' con el pid %d.\n"
 
 #, c-format
 msgid "A tincd is already running for net `%s' with pid %d.\n"
 msgstr ""
 "Un tincd está actualmente en ejecución para la red `%s' con el pid %d.\n"
 
-#: src/tincd.c:254
+#: src/tincd.c:252
 #, c-format
 msgid "A tincd is already running with pid %d.\n"
 msgstr "Un tincd está actualmente en ejecución con el pid %d.\n"
 
 #, c-format
 msgid "A tincd is already running with pid %d.\n"
 msgstr "Un tincd está actualmente en ejecución con el pid %d.\n"
 
-#: src/tincd.c:275
+#: src/tincd.c:273
 #, c-format
 msgid "No other tincd is running for net `%s'.\n"
 msgstr "No hay ningún otro tincd en ejecución para la red `%s'.\n"
 
 #, c-format
 msgid "No other tincd is running for net `%s'.\n"
 msgstr "No hay ningún otro tincd en ejecución para la red `%s'.\n"
 
-#: src/tincd.c:277
+#: src/tincd.c:275
 msgid "No other tincd is running.\n"
 msgstr "No hay ningún otro tincd en ejecución.\n"
 
 msgid "No other tincd is running.\n"
 msgstr "No hay ningún otro tincd en ejecución.\n"
 
-#: src/tincd.c:284
+#: src/tincd.c:282
 msgid "Removing stale lock file.\n"
 msgstr "Borrando fichero de bloqueo en desuso.\n"
 
 msgid "Removing stale lock file.\n"
 msgstr "Borrando fichero de bloqueo en desuso.\n"
 
-#: src/tincd.c:334
+#. Do some intl stuff right now
+#: src/tincd.c:325
+msgid "unknown"
+msgstr ""
+
+#: src/tincd.c:331
 #, c-format
 msgid "%s version %s (built %s %s, protocol %d)\n"
 msgstr ""
 
 #, c-format
 msgid "%s version %s (built %s %s, protocol %d)\n"
 msgstr ""
 
-#: src/tincd.c:335
+#: src/tincd.c:332
+#, fuzzy
 msgid ""
 msgid ""
-"Copyright (C) 1998,1999,2000 Ivo Timmermans and others,\n"
-"see the AUTHORS file for a complete list.\n"
+"Copyright (C) 1998,1999,2000 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"
 "\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"
-"\n"
 msgstr ""
 "Copyright (C) 1998,1999,2000 Ivo Timmermans y otros,\n"
 "vea el fichero AUTHORS para una lista completa.\n"
 msgstr ""
 "Copyright (C) 1998,1999,2000 Ivo Timmermans y otros,\n"
 "vea el fichero AUTHORS para una lista completa.\n"
@@ -892,70 +802,238 @@ msgstr ""
 "y puede ser redistribuido bajo ciertas condiciones;\n"
 "vea el fichero COPYING para los detalles.\n"
 
 "y puede ser redistribuido bajo ciertas condiciones;\n"
 "vea el fichero COPYING para los detalles.\n"
 
-#: src/tincd.c:340
-msgid ""
-"This product includes software developed by Eric Young (eay@mincom.oz.au)\n"
-msgstr ""
-"Este producto incluye software desarrollado por Eric Young "
-"(eay@mincom.oz.au)\n"
-
-#: src/tincd.c:350
+#: src/tincd.c:346
 #, fuzzy
 msgid "You must be root to run this program. Sorry.\n"
 msgstr ""
 "Usted debe ser el superusuario para ejecutar este programa. Lo siento.\n"
 
 #, fuzzy
 msgid "You must be root to run this program. Sorry.\n"
 msgstr ""
 "Usted debe ser el superusuario para ejecutar este programa. Lo siento.\n"
 
-#: src/tincd.c:380
+#: src/tincd.c:377
+msgid "Unrecoverable error"
+msgstr ""
+
+#: src/tincd.c:382
 #, c-format
 #, c-format
-msgid "Unrecoverable error, restarting in %d seconds!"
+msgid "Restarting in %d seconds!"
+msgstr ""
+
+#: src/tincd.c:387 src/tincd.c:433
+msgid "Aieee! Not restarting."
 msgstr ""
 
 msgstr ""
 
-#: src/tincd.c:389
+#: src/tincd.c:397
 msgid "Got TERM signal"
 msgstr "Recibí la señal TERM"
 
 msgid "Got TERM signal"
 msgstr "Recibí la señal TERM"
 
-#: src/tincd.c:397
+#: src/tincd.c:405
 msgid "Got QUIT signal"
 msgstr "Recibí la señal QUIT"
 
 msgid "Got QUIT signal"
 msgstr "Recibí la señal QUIT"
 
-#: src/tincd.c:404
+#: src/tincd.c:412
 msgid "Got another SEGV signal: not restarting"
 msgstr "Recibí otra señal SEGV: no reinicio"
 
 msgid "Got another SEGV signal: not restarting"
 msgstr "Recibí otra señal SEGV: no reinicio"
 
-#: src/tincd.c:412
-#, fuzzy, c-format
-msgid "Got SEGV signal after %s line %d, trying to re-execute"
-msgstr "Recibí la señal SEGV después de %s línea %d. Intento reiniciar."
+#: src/tincd.c:419
+#, fuzzy
+msgid "Got SEGV signal"
+msgstr "Recibí la señal TERM"
 
 
-#: src/tincd.c:415
+#: src/tincd.c:424
 #, fuzzy
 #, fuzzy
-msgid "Got SEGV signal, trying to re-execute"
-msgstr "Recibí la señal SEGV; intento reiniciar."
+msgid "Trying to re-execute in 5 seconds..."
+msgstr "Intento re-establecer la conexión saliente en 5 segundos."
 
 
-#: src/tincd.c:427
+#: src/tincd.c:442
 msgid "Got HUP signal, rereading configuration and restarting"
 msgstr ""
 
 msgid "Got HUP signal, rereading configuration and restarting"
 msgstr ""
 
-#: src/tincd.c:435
+#: src/tincd.c:450
 #, fuzzy
 msgid "Got INT signal, exiting"
 msgstr "Recibí la señal INT"
 
 #, fuzzy
 msgid "Got INT signal, exiting"
 msgstr "Recibí la señal INT"
 
-#: src/tincd.c:449
+#: src/tincd.c:464
 #, fuzzy
 msgid "Got USR2 signal, forcing new key generation"
 msgstr "Forzando generación de una nueva clave"
 
 #, fuzzy
 msgid "Got USR2 signal, forcing new key generation"
 msgstr "Forzando generación de una nueva clave"
 
-#: src/tincd.c:457
-#, fuzzy, c-format
-msgid "Got unexpected signal %d after %s line %d"
-msgstr "Recibí una señal inesperada (%d) después de %s línea %d."
-
-#: src/tincd.c:460
+#: src/tincd.c:473
 #, fuzzy, c-format
 #, fuzzy, c-format
-msgid "Got unexpected signal %d"
+msgid "Got unexpected signal %d (%s)"
 msgstr "Recibí una señal inesperada (%d)."
 
 msgstr "Recibí una señal inesperada (%d)."
 
+#~ msgid "Illegal passphrase in %s; size would be %d"
+#~ msgstr "Frase de paso ilegal en %s; el tamaño debe ser %d"
+
+#, fuzzy
+#~ msgid "Generating %d bits keys"
+#~ msgstr "Generando claves de %d bits."
+
+#~ msgid "Opening /dev/urandom failed: %m"
+#~ msgstr "Fallo abriendo /dev/urandom : %m"
+
+#~ msgid "Encryption key set to %s"
+#~ msgstr "Clave de cifrado definida como %s"
+
+#, fuzzy
+#~ msgid "Got bad error from %s (%s)"
+#~ msgstr "recibí REQ_KEY de "
+
+#~ msgid "%s: %d: Invalid variable name `%s'.\n"
+#~ msgstr "%s: %d: Nombre de variable `%s' no válido.\n"
+
+#~ msgid "%s: %d: No value given for `%s'.\n"
+#~ msgstr "%s: %d: No se ha definido un valor para `%s'.\n"
+
+#~ msgid "%s: %d: Invalid value `%s' for variable `%s'.\n"
+#~ msgstr "%s: %d: Valor `%s' para la variable `%s' no válido.\n"
+
+#~ msgid "Could not open %s: %s\n"
+#~ msgstr "No pude abrir %s: %s\n"
+
+#~ msgid "Generating %d bits number"
+#~ msgstr "Generando número de %d bits"
+
+#~ msgid "Opening /dev/urandom"
+#~ msgstr "Abriendo /dev/urandom"
+
+#~ msgid "File was empty!\n"
+#~ msgstr "¡El fichero estaba vacío!\n"
+
+#~ msgid ""
+#~ ": done.\n"
+#~ "The following line should be ENTIRELY copied into a passphrase file:\n"
+#~ msgstr ""
+#~ ": hecho.\n"
+#~ "La siguiente línea debe ser copiada ENTERA a un fichero de frase de paso:\n"
+
+#, fuzzy
+#~ msgid "Got packet from %s (%s) with unknown origin %d.%d.%d.%d?"
+#~ msgstr "He recibido un paquete desde un origen desconocido "
+
+#, fuzzy
+#~ msgid "There is no remote host I can send this packet to!"
+#~ msgstr "No hay máquina remota a la que pueda enviar este paquete."
+
+#~ msgid "No value for my VPN IP given"
+#~ msgstr "No se ha definido un valor para mi VPN IP"
+
+#~ msgid "Dropping short packet"
+#~ msgstr "Descartando paquete corto"
+
+#~ msgid "Connection list:"
+#~ msgstr "Lista de conexiones:"
+
+#, fuzzy
+#~ msgid "Send failed: %d:%d: %m"
+#~ msgstr "Error enviando: %d:%d: %m"
+
+#, fuzzy
+#~ msgid "Sending TERMREQ to %s (%s)"
+#~ msgstr "Envío TERMREQ a "
+
+#, fuzzy
+#~ msgid "Send failed: %s:%d: %m"
+#~ msgstr "Error enviando: %s:%d: %m"
+
+#, fuzzy
+#~ msgid "Sending TIMEOUT to %s (%s)"
+#~ msgstr "Envío TIMEOUT a "
+
+#, fuzzy
+#~ msgid "Sending PACKET to %s (%s)"
+#~ msgstr "Envio ACK a %s"
+
+#, fuzzy
+#~ msgid "Sending PING to %s (%s)"
+#~ msgstr "Enviando KEY_CHANGED to "
+
+#, fuzzy
+#~ msgid "Sending PONG to %s (%s)"
+#~ msgstr "Enviando KEY_CHANGED to "
+
+#, fuzzy
+#~ msgid "Sending KEY_CHANGED origin %s to %s (%s)"
+#~ msgstr "Enviando KEY_CHANGED to "
+
+#, fuzzy
+#~ msgid "Sending BASIC_INFO to %s"
+#~ msgstr "Enviando BASIC_INFO a "
+
+#, fuzzy
+#~ msgid "Sending PASSPHRASE to %s (%s)"
+#~ msgstr "Enviando PASSPHRASE %s a "
+
+#, fuzzy
+#~ msgid "Sending PUBLIC_KEY to %s (%s)"
+#~ msgstr "Enviando PUBLIC_KEY %s a "
+
+#, fuzzy
+#~ msgid "Sending REQ_KEY to %s (%s)"
+#~ msgstr "Enviando KEY_CHANGED to "
+
+#, fuzzy
+#~ msgid "Sending ANS_KEY to %s (%s)"
+#~ msgstr "Envio ACK a %s"
+
+#, fuzzy
+#~ msgid "Got BASIC_INFO from %s"
+#~ msgstr "recibí una petición BASIC_INFO incorrecta: %s"
+
+#, fuzzy
+#~ msgid "Got bad PASSPHRASE from %s (%s)"
+#~ msgstr "recibí una petición PASSPHRASE incorrecta: %s"
+
+#, fuzzy
+#~ msgid "Got PASSPHRASE from %s (%s)"
+#~ msgstr "recibí una petición PASSPHRASE incorrecta: %s"
+
+#, fuzzy
+#~ msgid "Got bad PUBLIC_KEY from %s (%s)"
+#~ msgstr "recibí una petición PUBLIC_KEY incorrecta: %s"
+
+#, fuzzy
+#~ msgid "Got PUBLIC_KEY from %s (%s)"
+#~ msgstr "recibí PUBLIC_KEY %s"
+
+#, fuzzy
+#~ msgid "Intruder from %s: passphrase for %s does not match!"
+#~ msgstr "Intruso: la frase de paso no concuerda."
+
+#, fuzzy
+#~ msgid "Got unauthorized DEL_HOST from %s (%s)"
+#~ msgstr "recibí una petición DEL_HOST incorrecta: %s"
+
+#, fuzzy
+#~ msgid "Got unauthorized ADD_HOST from %s (%s)"
+#~ msgstr "recibí una petición ADD_HOST incorrecta: %s"
+
+#, fuzzy
+#~ msgid "Got unauthorized KEY_CHANGED from %s (%s)"
+#~ msgstr "recibí KEY_CHANGED de "
+
+#, fuzzy
+#~ msgid "Got KEY_CHANGED origin %s from %s (%s)"
+#~ msgstr "recibí KEY_CHANGED de "
+
+#~ msgid ""
+#~ "This product includes software developed by Eric Young (eay@mincom.oz.au)\n"
+#~ msgstr ""
+#~ "Este producto incluye software desarrollado por Eric Young "
+#~ "(eay@mincom.oz.au)\n"
+
+#, fuzzy
+#~ msgid "Got SEGV signal after %s line %d, trying to re-execute"
+#~ msgstr "Recibí la señal SEGV después de %s línea %d. Intento reiniciar."
+
+#, fuzzy
+#~ msgid "Got SEGV signal, trying to re-execute"
+#~ msgstr "Recibí la señal SEGV; intento reiniciar."
+
+#, fuzzy
+#~ msgid "Got unexpected signal %d after %s line %d"
+#~ msgstr "Recibí una señal inesperada (%d) después de %s línea %d."
+
 #~ msgid "packet to queue: %d"
 #~ msgstr "paquete a poner en cola: %d"
 
 #~ msgid "packet to queue: %d"
 #~ msgstr "paquete a poner en cola: %d"
 
index f2ac38f..44e097f 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
 # 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, 2000 Ivo Timmermans, Guus Sliepen.
 # Ivo Timmermans <itimmermans@bigfoot.com>, 1999, 2000.
 # Guus Sliepen <guus@sliepen.warande.net>, 2000.
-#
 msgid ""
 msgstr ""
 "Project-Id-Version: tinc 1.0pre3\n"
 msgid ""
 msgstr ""
 "Project-Id-Version: tinc 1.0pre3\n"
-"POT-Creation-Date: 2000-08-17 18:13+0100\n"
+"POT-Creation-Date: 2000-10-15 02:53+0200\n"
 "PO-Revision-Date: 2000-05-31 20:14+02:00\n"
 "PO-Revision-Date: 2000-05-31 20:14+02:00\n"
-"Last-Translator: Ivo Timmermans <itimmermans@bigfoot.com>\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"
 
 "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:178
+#: src/conf.c:164
 #, c-format
 #, c-format
-msgid "%s: %d: Invalid variable name `%s'.\n"
-msgstr "%s: %d: Ongeldige variabelenaam `%s'.\n"
+msgid "Line %d too long while reading config file %s"
+msgstr "Regel %d te lang tijdens het lezen van configuratie bestand %s"
 
 
-#: src/conf.c:185
+#: src/conf.c:180
 #, c-format
 #, c-format
-msgid "%s: %d: No value given for `%s'.\n"
-msgstr "%s: %d: Geen waarde gegeven voor `%s'.\n"
+msgid "Invalid variable name on line %d while reading config file %s"
+msgstr ""
+"Ongeldige naam voor variabele op regel %d tijdens het lezen van configuratie "
+"bestand %s"
 
 
-#: src/conf.c:193
+#: src/conf.c:187
 #, c-format
 #, c-format
-msgid "%s: %d: Invalid value `%s' for variable `%s'.\n"
-msgstr "%s: %d: Ongeldige waarde `%s' voor variabele `%s'.\n"
+msgid "No value for variable on line %d while reading config file %s"
+msgstr ""
+"Geen waarde voor variabele op regel %d  tijdens het lezen van configuratie "
+"bestand %s"
 
 
-#: src/conf.c:217
+#: src/conf.c:195
 #, c-format
 #, c-format
-msgid "Could not open %s: %s\n"
-msgstr "Kon %s niet openen: %s\n"
+msgid "Invalid value for variable on line %d while reading config file %s"
+msgstr ""
+"Ongeldige waarde voor variabele op regel %d  tijdens het lezen van "
+"configuratie bestand %s"
 
 
-#: src/encr.c:111 src/net.c:445
+#: src/genauth.c:78
 #, c-format
 #, c-format
-msgid "Could not open %s: %m"
-msgstr "Kon %s niet openen: %m"
+msgid "Usage: %s bits\n"
+msgstr "Gebruik: %s bits\n"
 
 
-#: src/encr.c:118
+#: src/genauth.c:89
 #, c-format
 #, c-format
-msgid "Illegal passphrase in %s; size would be %d"
-msgstr "Ongeldig wachtwoord in %s; grootte zou %d zijn"
+msgid "Illegal number: %s\n"
+msgstr "Ongeldig nummer: %s\n"
 
 
-#: src/encr.c:153
+#. Align to bytes for easy mallocing and reading
+#: src/genauth.c:95
 #, c-format
 #, c-format
-msgid "Generating %d bits keys"
-msgstr "%d bits sleutel genereren"
+msgid "Generating %d bits keys:\n"
+msgstr "Bezig met genereren van een %d bits sleutel:\n"
 
 
-#: src/encr.c:157
+#: src/genauth.c:99
+msgid "Done.\n"
+msgstr "Klaar.\n"
+
+#: src/genauth.c:101
 #, c-format
 #, c-format
-msgid "Opening /dev/urandom failed: %m"
-msgstr "Openen van /dev/urandom mislukt: %m"
+msgid "Public key:  %s\n"
+msgstr "Publieke sleutel: %s\n"
 
 
-#: src/encr.c:222
+#: src/genauth.c:102
 #, c-format
 #, c-format
-msgid "Encryption key set to %s"
-msgstr "Sleutel ingesteld op %s"
+msgid "Private key: %s\n"
+msgstr "Privé sleutel:    %s\n"
 
 
-#: src/genauth.c:48
+#: src/meta.c:42
 #, c-format
 #, c-format
-msgid "Usage: %s bits\n"
-msgstr "Gebruik: %s bits\n"
+msgid "Sending %d bytes of metadata to %s (%s): %s"
+msgstr "Verzending %d bytes metadata naar %s (%s): %s"
 
 
-#: src/genauth.c:57
+#: src/meta.c:57
 #, c-format
 #, c-format
-msgid "Illegal number: %s\n"
-msgstr "Ongeldig nummer: %s\n"
+msgid "Sending meta data to %s (%s) failed: %m"
+msgstr "Fout tijdens verzenden metadata naar %s (%s): %m"
 
 
-#: src/genauth.c:62
+#: src/meta.c:85 src/net.c:773
 #, c-format
 #, c-format
-msgid "Generating %d bits number"
-msgstr "Genereren van %d bits nummer"
+msgid "This is a bug: %s:%d: %d:%m %s (%s)"
+msgstr "Dit is een programmeerfout: %s:%d: %d:%m %s (%s)"
 
 
-#: src/genauth.c:67
-msgid "Opening /dev/urandom"
-msgstr "Openen van /dev/urandom"
+#: src/meta.c:91
+#, c-format
+msgid "Metadata socket error for %s (%s): %s"
+msgstr "Fout op metadata socket voor %s (%s): %s"
 
 
-#: src/genauth.c:80
-msgid "File was empty!\n"
-msgstr "Bestand was leeg!\n"
+#: src/meta.c:110
+#, c-format
+msgid "Connection closed by %s (%s)"
+msgstr "Verbinding beëindigd door %s (%s)"
 
 
-#: src/genauth.c:88
-msgid ""
-": done.\n"
-"The following line should be ENTIRELY copied into a passphrase file:\n"
-msgstr ""
-": klaar.\n"
-"De volgende regel dient in zijn GEHEEL naar een wachtwoordbestand worden "
-"gekopieerd:\n"
+#: src/meta.c:114
+#, c-format
+msgid "Metadata socket read error for %s (%s): %m"
+msgstr "Fout op metadata socket voor %s (%s) tijdens lezen: %m"
 
 
-#: src/genauth.c:100
-msgid ": done.\n"
-msgstr ": klaar.\n"
+#: src/meta.c:144
+#, c-format
+msgid "Got request from %s (%s): %s"
+msgstr "Kreeg verzoek van %s (%s): %s"
+
+#: src/meta.c:162
+#, c-format
+msgid "Metadata read buffer overflow for %s (%s)"
+msgstr "Metadata leesbuffer overvol voor %s (%s)"
 
 #: src/net.c:106
 #, c-format
 msgid "Sending packet of %d bytes to %s (%s)"
 msgstr "Verzending pakket van %d bytes naar %s (%s)"
 
 
 #: src/net.c:106
 #, c-format
 msgid "Sending packet of %d bytes to %s (%s)"
 msgstr "Verzending pakket van %d bytes naar %s (%s)"
 
-#: src/net.c:118
+#: src/net.c:115
 #, c-format
 msgid "Error sending packet to %s (%s): %m"
 msgstr "Fout tijdens verzenden pakket naar %s (%s): %m"
 
 #, c-format
 msgid "Error sending packet to %s (%s): %m"
 msgstr "Fout tijdens verzenden pakket naar %s (%s): %m"
 
-#: src/net.c:135 src/net.c:177
+#: src/net.c:129
 #, c-format
 #, c-format
-msgid "Receiving packet of %d bytes from %s (%s)"
-msgstr "Ontvangst pakket van %d bytes van %s (%s)"
+msgid "Receiving packet of %d bytes"
+msgstr "Ontvangst pakket van %d bytes"
 
 
-#: src/net.c:139 src/net.c:181
+#: src/net.c:142
 #, c-format
 msgid "Can't write to tap device: %m"
 msgstr "Kan niet naar tap apparaat schrijven: %m"
 
 #, c-format
 msgid "Can't write to tap device: %m"
 msgstr "Kan niet naar tap apparaat schrijven: %m"
 
-#: src/net.c:166 src/net.c:959
-#, c-format
-msgid "Got packet from %s (%s) with unknown origin %d.%d.%d.%d?"
-msgstr "Kreeg pakket van %s (%s) met onbekende herkomst %d.%d.%d.%d?"
-
-#: src/net.c:295
+#: src/net.c:242
 msgid "Queue flushed"
 msgstr "Wachtrij leeggemaakt"
 
 msgid "Queue flushed"
 msgstr "Wachtrij leeggemaakt"
 
-#: src/net.c:310
+#: src/net.c:257
 #, c-format
 msgid "Flushing send queue for %s (%s)"
 msgstr "Legen van verzend-wachtrij voor %s (%s)"
 
 #, c-format
 msgid "Flushing send queue for %s (%s)"
 msgstr "Legen van verzend-wachtrij voor %s (%s)"
 
-#: src/net.c:318
+#: src/net.c:265
 #, c-format
 msgid "Flushing receive queue for %s (%s)"
 msgstr "Legen van de ontvangst-wachtrij voor %s (%s)"
 
 #, c-format
 msgid "Flushing receive queue for %s (%s)"
 msgstr "Legen van de ontvangst-wachtrij voor %s (%s)"
 
-#: src/net.c:336
+#: src/net.c:283
 #, 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!"
 
 #, 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!"
 
-#: src/net.c:348 src/net.c:361
-msgid "There is no remote host I can send this packet to!"
-msgstr "Er is geen partner waar ik dit pakket naar kan sturen!"
-
-#: src/net.c:375
+#: src/net.c:297
 #, c-format
 #, c-format
-msgid "Indirect packet to %s via %s"
-msgstr "Indirect pakket naar %s via %s"
+msgid "Could not open UDP connection to %s (%s)"
+msgstr "Kon geen UDP verbinding openen naar %s (%s)"
 
 
-#: src/net.c:380
+#: src/net.c:305
 #, c-format
 #, c-format
-msgid "Indirect look up %d.%d.%d.%d in connection list failed!"
-msgstr "Indirect opzoeken %d.%d.%d.%d in verbindingslijst mislukte!"
+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"
 
 
-#: src/net.c:390
+#: src/net.c:316
 #, c-format
 #, c-format
-msgid "Double indirection for %d.%d.%d.%d"
-msgstr "Dubbele indirectie voor %d.%d.%d.%d"
+msgid "%s (%s) is not ready, queueing packet"
+msgstr "%s (%s) is niet gereed, pakket wordt in de wachtrij gezet"
 
 
-#: src/net.c:402
+#: src/net.c:344
 #, c-format
 #, c-format
-msgid "Could not open UDP connection to %s (%s)"
-msgstr "Kon geen UDP verbinding openen naar %s (%s)"
+msgid "Could not open %s: %m"
+msgstr "Kon %s niet openen: %m"
 
 
-#: src/net.c:409
+#: src/net.c:360
 #, c-format
 #, c-format
-msgid "%s (%s) has no valid key, queueing packet"
-msgstr "%s (%s) heeft geen geldige sleutel, pakket wordt in de wachtrij gezet"
+msgid "%s is a new style tun/tap device"
+msgstr "%s is een nieuwe stijl tun/tap apparaat"
 
 
-#: src/net.c:419
-#, c-format
-msgid "%s (%s) is not ready, queueing packet"
-msgstr "%s (%s) is niet gereed, pakket wordt in de wachtrij gezet"
+#: src/net.c:362
+msgid "tun/tap device will be left unconfigured"
+msgstr "tun/tap apparaat wordt ongeconfigureerd gelaten"
 
 
-#: src/net.c:467
+#: src/net.c:384
 #, c-format
 msgid "Creating metasocket failed: %m"
 msgstr "Aanmaak van metasocket mislukt: %m"
 
 #, c-format
 msgid "Creating metasocket failed: %m"
 msgstr "Aanmaak van metasocket mislukt: %m"
 
-#: src/net.c:473 src/net.c:479 src/net.c:541
+#: src/net.c:390 src/net.c:396 src/net.c:458
 #, c-format
 msgid "setsockopt: %m"
 msgstr "setsockopt: %m"
 
 #, c-format
 msgid "setsockopt: %m"
 msgstr "setsockopt: %m"
 
-#: src/net.c:486 src/net.c:548
+#: src/net.c:403 src/net.c:465
 #, c-format
 msgid "fcntl: %m"
 msgstr "fcntl: %m"
 
 #, c-format
 msgid "fcntl: %m"
 msgstr "fcntl: %m"
 
-#: src/net.c:494
+#: src/net.c:411
 #, c-format
 msgid "Unable to bind listen socket to interface %s: %m"
 msgstr "Kon luistersocket niet binden aan interface %s: %m"
 
 #, c-format
 msgid "Unable to bind listen socket to interface %s: %m"
 msgstr "Kon luistersocket niet binden aan interface %s: %m"
 
-#: src/net.c:510
+#: src/net.c:427
 #, c-format
 msgid "Can't bind to port %hd/tcp: %m"
 msgstr "Kan niet aan poort %hd/tcp binden: %m"
 
 #, c-format
 msgid "Can't bind to port %hd/tcp: %m"
 msgstr "Kan niet aan poort %hd/tcp binden: %m"
 
-#: src/net.c:516
+#: src/net.c:433
 #, c-format
 msgid "listen: %m"
 msgstr "listen: %m"
 
 #, c-format
 msgid "listen: %m"
 msgstr "listen: %m"
 
-#: src/net.c:535
+#: src/net.c:452
 #, c-format
 msgid "Creating socket failed: %m"
 msgstr "Aanmaak socket mislukte: %m"
 
 #, c-format
 msgid "Creating socket failed: %m"
 msgstr "Aanmaak socket mislukte: %m"
 
-#: src/net.c:559
+#: src/net.c:476
 #, c-format
 msgid "Can't bind to port %hd/udp: %m"
 msgstr "Kan niet aan poort %hd/udp binden: %m"
 
 #, c-format
 msgid "Can't bind to port %hd/udp: %m"
 msgstr "Kan niet aan poort %hd/udp binden: %m"
 
-#: src/net.c:576
+#: src/net.c:493
 #, c-format
 msgid "Trying to connect to %s"
 msgstr "Poging tot verbinding met %s"
 
 #, c-format
 msgid "Trying to connect to %s"
 msgstr "Poging tot verbinding met %s"
 
-#: src/net.c:586
+#: src/net.c:503
 #, c-format
 msgid "Creating socket for %s port %d failed: %m"
 msgstr "Aanmaken socket voor %s poort %d mislukt: %m"
 
 #, c-format
 msgid "Creating socket for %s port %d failed: %m"
 msgstr "Aanmaken socket voor %s poort %d mislukt: %m"
 
-#: src/net.c:597
+#: src/net.c:514
 #, c-format
 msgid "%s port %hd: %m"
 msgstr "%s poort %hd: %m"
 
 #, c-format
 msgid "%s port %hd: %m"
 msgstr "%s poort %hd: %m"
 
-#: src/net.c:604
+#: src/net.c:521
 #, c-format
 msgid "fcntl for %s port %d: %m"
 msgstr "fcntl voor %s poort %d: %m"
 
 #, c-format
 msgid "fcntl for %s port %d: %m"
 msgstr "fcntl voor %s poort %d: %m"
 
-#: src/net.c:610
+#: src/net.c:527
 #, c-format
 msgid "Connected to %s port %hd"
 msgstr "Verbonden met %s poort %hd"
 
 #, c-format
 msgid "Connected to %s port %hd"
 msgstr "Verbonden met %s poort %hd"
 
-#: src/net.c:630
+#: src/net.c:547
 #, c-format
 msgid "Error looking up `%s': %m"
 msgstr "Fout bij het opzoeken van `%s': %m"
 
 #, c-format
 msgid "Error looking up `%s': %m"
 msgstr "Fout bij het opzoeken van `%s': %m"
 
-#: src/net.c:640
+#: src/net.c:557
 #, c-format
 msgid "Could not set up a meta connection to %s"
 msgstr "Kon geen metaverbinding aangaan met %s"
 
 #, c-format
 msgid "Could not set up a meta connection to %s"
 msgstr "Kon geen metaverbinding aangaan met %s"
 
-#: src/net.c:665
-msgid "No value for my VPN IP given"
-msgstr "Geen waarde gegeven voor mijn VPN IP adres"
+#: src/net.c:586
+msgid "Name for tinc daemon required!"
+msgstr "Naam voor tinc daemon verplicht!"
+
+#: src/net.c:594
+msgid "Invalid name for myself!"
+msgstr "Ongelige naam voor mijzelf!"
+
+#: src/net.c:600
+msgid "Cannot open host configuration file for myself!"
+msgstr "Kan host configuratie bestand voor mijzelf niet openen!"
 
 
-#: src/net.c:690
-msgid "Unable to set up a listening socket"
-msgstr "Kon geen luistersocket aanmaken"
+#: src/net.c:619
+msgid "Unable to set up a listening socket!"
+msgstr "Kon geen luistersocket aanmaken!"
 
 
-#: src/net.c:696
-msgid "Unable to set up an incoming vpn data socket"
-msgstr "Kon geen socket maken voor inkomend vpn verkeer"
+#: 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.c:703
+#: src/net.c:632
 #, c-format
 msgid "Ready: listening on port %hd"
 msgstr "Gereed: luisterend op poort %hd"
 
 #, c-format
 msgid "Ready: listening on port %hd"
 msgstr "Gereed: luisterend op poort %hd"
 
-#: src/net.c:730
+#: 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"
 
 #, 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.c:768
+#: 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"
 
 #, c-format
 msgid "Trying to re-establish outgoing connection in %d seconds"
 msgstr "Poging tot herstellen van uitgaande verbinding over %d seconden"
 
-#: src/net.c:806
+#: src/net.c:736
 msgid "Terminating"
 msgstr "Beëindigen"
 
 msgid "Terminating"
 msgstr "Beëindigen"
 
-#: src/net.c:820
+#: src/net.c:750
 #, c-format
 msgid "Opening UDP socket to %s"
 msgstr "Bezig met openen UDP socket naar %s"
 
 #, c-format
 msgid "Opening UDP socket to %s"
 msgstr "Bezig met openen UDP socket naar %s"
 
-#: src/net.c:825
+#: src/net.c:755
 #, c-format
 msgid "Creating UDP socket failed: %m"
 msgstr "Aanmaak UDP socket mislukte: %m"
 
 #, c-format
 msgid "Creating UDP socket failed: %m"
 msgstr "Aanmaak UDP socket mislukte: %m"
 
-#: src/net.c:835
+#: src/net.c:765
 #, c-format
 msgid "Connecting to %s port %d failed: %m"
 msgstr "Verbinding naar %s poort %d mislukt: %m"
 
 #, c-format
 msgid "Connecting to %s port %d failed: %m"
 msgstr "Verbinding naar %s poort %d mislukt: %m"
 
-#: src/net.c:843 src/net.c:930 src/net.c:1128
-#, c-format
-msgid "This is a bug: %s:%d: %d:%m %s (%s)"
-msgstr "Dit is een programmeerfout: %s:%d: %d:%m %s (%s)"
-
-#: src/net.c:868
+#: src/net.c:798
 #, c-format
 msgid "Error: getpeername: %m"
 msgstr "Fout: getpeername: %m"
 
 #, c-format
 msgid "Error: getpeername: %m"
 msgstr "Fout: getpeername: %m"
 
-#: src/net.c:881
+#: src/net.c:813
 #, c-format
 msgid "Connection from %s port %d"
 msgstr "Verbinding van %s poort %d"
 
 #, c-format
 msgid "Connection from %s port %d"
 msgstr "Verbinding van %s poort %d"
 
-#: src/net.c:936
+#: src/net.c:861
+#, c-format
+msgid "This is a bug: %s:%d: %d:%m"
+msgstr "Dit is een programmeerfout: %s:%d: %d:%m"
+
+#: src/net.c:867
 #, c-format
 #, c-format
-msgid "Incoming data socket error for %s (%s): %s"
-msgstr "Fout op socket voor inkomend verkeer voor %s (%s): %s"
+msgid "Incoming data socket error: %s"
+msgstr "Fout op socket voor inkomend verkeer: %s"
 
 
-#: src/net.c:945
+#: src/net.c:873
 #, c-format
 #, c-format
-msgid "Receiving packet from %s (%s) failed: %m"
-msgstr "Ontvangst pakket van %s (%s) mislukt: %m"
+msgid "Receiving packet failed: %m"
+msgstr "Ontvangst pakket mislukt: %m"
 
 
-#: src/net.c:993
+#: src/net.c:894
 #, c-format
 msgid "Closing connection with %s (%s)"
 msgstr "Beëindigen verbinding met %s (%s)"
 
 #, c-format
 msgid "Closing connection with %s (%s)"
 msgstr "Beëindigen verbinding met %s (%s)"
 
-#: src/net.c:1037
+#: src/net.c:937
 msgid "Trying to re-establish outgoing connection in 5 seconds"
 msgstr "Poging tot herstellen van uitgaande verbinding over 5 seconden"
 
 msgid "Trying to re-establish outgoing connection in 5 seconds"
 msgstr "Poging tot herstellen van uitgaande verbinding over 5 seconden"
 
-#: src/net.c:1067
+#: src/net.c:967
 #, c-format
 msgid "%s (%s) didn't respond to PING"
 msgstr "%s (%s) antwoordde niet op ping"
 
 #, c-format
 msgid "%s (%s) didn't respond to PING"
 msgstr "%s (%s) antwoordde niet op ping"
 
-#: src/net.c:1098
+#: src/net.c:998
 #, c-format
 msgid "Accepting a new connection failed: %m"
 msgstr "Aanname van nieuwe verbinding is mislukt: %m"
 
 #, c-format
 msgid "Accepting a new connection failed: %m"
 msgstr "Aanname van nieuwe verbinding is mislukt: %m"
 
-#: src/net.c:1106
+#: src/net.c:1006
 msgid "Closed attempted connection"
 msgstr "Aangenomen verbinding verbroken"
 
 msgid "Closed attempted connection"
 msgstr "Aangenomen verbinding verbroken"
 
-#: src/net.c:1134
-#, c-format
-msgid "Metadata socket error for %s (%s): %s"
-msgstr "Fout op socket voor metaverkeer voor %s (%s): %s"
-
-#: src/net.c:1141
-msgid "Metadata read buffer overflow!"
-msgstr "Metadata ontvangstbuffer overloop!"
-
-#: src/net.c:1154
-#, c-format
-msgid "Connection closed by %s (%s)"
-msgstr "Verbinding verbroken door %s (%s)"
-
-#: src/net.c:1158
-#, c-format
-msgid "Metadata socket read error for %s (%s): %m"
-msgstr "Fout op socket voor metaverkeer voor %s (%s) tijdens lezen: %m"
-
-#: src/net.c:1200
-#, c-format
-msgid "Got request from %s (%s): %s"
-msgstr "Ontving verzoek van %s (%s): %s"
-
-#: src/net.c:1206
-#, c-format
-msgid "Unknown request from %s (%s)"
-msgstr "Onbekend verzoek van %s (%s)"
-
-#: src/net.c:1213
-#, c-format
-msgid "Error while processing request from %s (%s)"
-msgstr "Fout tijdens afhandelen van verzoek van %s (%s)"
-
-#: src/net.c:1220
-#, c-format
-msgid "Bogus data received from %s (%s)"
-msgstr "Onzinnige data ontvangen van %s (%s)"
-
-#: src/net.c:1266
+#: src/net.c:1041
 #, c-format
 msgid "Outgoing data socket error for %s (%s): %s"
 msgstr "Fout op socket voor uitgaand verkeer voor %s (%s): %s"
 
 #, c-format
 msgid "Outgoing data socket error for %s (%s): %s"
 msgstr "Fout op socket voor uitgaand verkeer voor %s (%s): %s"
 
-#: src/net.c:1302
+#: src/net.c:1077
 #, c-format
 msgid "Error while reading from tapdevice: %m"
 msgstr "Fout tijdens lezen van tap-apparaatbestand tijdens lezen: %m"
 
 #, c-format
 msgid "Error while reading from tapdevice: %m"
 msgstr "Fout tijdens lezen van tap-apparaatbestand tijdens lezen: %m"
 
-#: src/net.c:1312
+#: src/net.c:1087
 #, c-format
 #, c-format
-msgid "Non-IP ethernet frame %04x from "
-msgstr "Niet-IP ethernet pakket %04x van "
+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"
 
 
-#: src/net.c:1320
-msgid "Dropping short packet"
-msgstr "Te kort pakket genegeerd"
+#: src/net.c:1094
+#, 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"
 
 
-#: src/net.c:1359
+#: src/net.c:1133
 #, c-format
 msgid "Error while waiting for input: %m"
 msgstr "Fout tijdens wachten op invoer: %m"
 
 #, c-format
 msgid "Error while waiting for input: %m"
 msgstr "Fout tijdens wachten op invoer: %m"
 
-#: src/net.c:1371
-msgid "Unable to reread configuration file, exiting"
-msgstr "Fout tijdens herlezen configuratie bestand, beëindigen"
-
-#: src/netutl.c:220
+#: src/netutl.c:115
 #, c-format
 msgid "Error looking up `%s': %s\n"
 msgstr "Fout bij het opzoeken van `%s': %s\n"
 
 #, c-format
 msgid "Error looking up `%s': %s\n"
 msgstr "Fout bij het opzoeken van `%s': %s\n"
 
-#: src/netutl.c:244
-msgid "Connection list:"
-msgstr "Verbindingslijst:"
-
-#: src/netutl.c:248
+#: src/protocol.c:80
 #, c-format
 #, c-format
-msgid ""
-"%s netmask %d.%d.%d.%d at %s port %hd flags %d sockets %d, %d status %04x"
-msgstr ""
-"%s netmask %d.%d.%d.%d op %s poort %hd vlaggen %hd sockets %d, %d status %04x"
+msgid "Output buffer overflow while sending %s to %s (%s)"
+msgstr "Uitvoer buffer overvol tijdens zenden %s naar %s (%s)"
 
 
-#: src/protocol.c:56
+#: src/protocol.c:87
 #, c-format
 #, c-format
-msgid "Sending ACK to %s (%s)"
-msgstr "Verzending ACK naar %s (%s)"
+msgid "Sending %s to %s (%s)"
+msgstr "Verzending %s naar %s (%s)"
 
 
-#: src/protocol.c:63
+#: src/protocol.c:101
 #, c-format
 #, c-format
-msgid "Send failed: %d:%d: %m"
-msgstr "Verzenden mislukte: %d:%d: %m"
+msgid "Unknown request from %s (%s)"
+msgstr "Onbekend verzoek van %s (%s)"
 
 
-#: src/protocol.c:74
+#: src/protocol.c:108
 #, c-format
 #, c-format
-msgid "Sending TERMREQ to %s (%s)"
-msgstr "Verzending TERMREQ naar %s (%s)"
+msgid "Got %s from %s (%s)"
+msgstr "Kreeg %s van %s (%s)"
 
 
-#: src/protocol.c:82 src/protocol.c:100 src/protocol.c:118 src/protocol.c:137
-#: src/protocol.c:143 src/protocol.c:161 src/protocol.c:179 src/protocol.c:218
-#: src/protocol.c:236 src/protocol.c:264 src/protocol.c:285 src/protocol.c:303
-#: src/protocol.c:346 src/protocol.c:376 src/protocol.c:866 src/protocol.c:969
+#: src/protocol.c:114
 #, c-format
 #, c-format
-msgid "Send failed: %s:%d: %m"
-msgstr "Verzenden mislukte: %s:%d: %m"
+msgid "Error while processing %s from %s (%s)"
+msgstr "Fout tijdens afhandelen %s van %s (%s)"
 
 
-#: src/protocol.c:93
+#: src/protocol.c:121
 #, c-format
 #, c-format
-msgid "Sending TIMEOUT to %s (%s)"
-msgstr "Verzending TIMEOUT naar %s (%s)"
+msgid "Bogus data received from %s (%s)"
+msgstr "Onzinnige data ontvangen van %s (%s)"
 
 
-#: src/protocol.c:111
+#: src/protocol.c:167
 #, c-format
 #, c-format
-msgid "Sending DEL_HOST for %s (%s) to %s (%s)"
-msgstr "Verzending DEL_HOST voor %s (%s) naar %s (%s)"
+msgid "Got bad ID from %s"
+msgstr "Kreeg ongeldige ID van %s"
 
 
-#: src/protocol.c:130
+#: src/protocol.c:175
 #, c-format
 #, c-format
-msgid "Sending PACKET to %s (%s)"
-msgstr "Verzending PACKET naar %s (%s)"
+msgid "Peer %s (%s) uses incompatible version %d"
+msgstr "Ander %s (%s) gebruikt een niet-compatibel protocol versie %d"
 
 
-#: src/protocol.c:154
+#: src/protocol.c:184
 #, c-format
 #, c-format
-msgid "Sending PING to %s (%s)"
-msgstr "Verzending PING naar %s (%s)"
+msgid "Peer %s uses invalid identity name"
+msgstr "Ander %s gebruikt een ongeldige identiteitsnaam"
 
 
-#: src/protocol.c:172
+#: src/protocol.c:192
 #, c-format
 #, c-format
-msgid "Sending PONG to %s (%s)"
-msgstr "Verzending PONG naar %s (%s)"
+msgid "Peer %s had unknown identity (%s)"
+msgstr "Ander %s heeft een onbekende identiteit (%s)"
 
 
-#: src/protocol.c:211
+#: src/protocol.c:207
 #, c-format
 #, c-format
-msgid "Sending ADD_HOST for %s (%s) to %s (%s)"
-msgstr "Verzending ADD_HOST voor %s (%s) naar %s (%s)"
+msgid "Uplink %s (%s) is already in our connection list"
+msgstr "%s (%s) staat al in onze verbindingslijst"
 
 
-#: src/protocol.c:229
+#: src/protocol.c:253
 #, c-format
 #, c-format
-msgid "Sending KEY_CHANGED origin %s to %s (%s)"
-msgstr "Verzending KEY_CHANGED herkomst %s naar %s (%s)"
+msgid "Got bad CHALLENGE from %s (%s)"
+msgstr "Kreeg ongeldige CHALLENGE van %s (%s)"
 
 
-#: src/protocol.c:257
+#: src/protocol.c:261
 #, c-format
 #, c-format
-msgid "Sending BASIC_INFO to %s"
-msgstr "Verzending BASIC_INFO naar %s"
+msgid "Intruder: wrong challenge length from %s (%s)"
+msgstr "Indringer: verkeerde lengte voor uitdaging van %s (%s)"
 
 
-#: src/protocol.c:278
+#: src/protocol.c:287
 #, c-format
 #, c-format
-msgid "Sending PASSPHRASE to %s (%s)"
-msgstr "Verzending PASSPHRASE naar %s (%s)"
+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"
 
 
-#: src/protocol.c:296
+#: src/protocol.c:318
 #, c-format
 #, c-format
-msgid "Sending PUBLIC_KEY to %s (%s)"
-msgstr "Verzending PUBLIC_KEY naar %s (%s)"
+msgid "Got bad CHAL_REPLY from %s (%s)"
+msgstr "Kreeg ongeldige CHAL_REPLY van %s (%s)"
 
 
-#: src/protocol.c:333
+#: src/protocol.c:327
 #, c-format
 #, c-format
-msgid "Attempting to send REQ_KEY to %d.%d.%d.%d, which does not exist?"
-msgstr "Poging tot verzenden REQ_KEY naar %d.%d.%d.%d, die niet bestaat?"
+msgid "Intruder: wrong challenge reply length from %s (%s)"
+msgstr "Indringer: verkeerde lengte van antwoord op uitdaging van %s (%s)"
 
 
-#: src/protocol.c:339
+#: src/protocol.c:344
 #, c-format
 #, c-format
-msgid "Sending REQ_KEY to %s (%s)"
-msgstr "Verzending REQ_KEY naar %s (%s)"
+msgid "Intruder: wrong challenge reply from %s (%s)"
+msgstr "Indringer: verkeerd antwoord op de uitdaging van %s (%s)"
 
 
-#: src/protocol.c:363
+#: src/protocol.c:386
 #, c-format
 #, c-format
-msgid "Attempting to send ANS_KEY to %d.%d.%d.%d, which does not exist?"
-msgstr "Poging tot verzenden ANS_KEY naar %d.%d.%d.%d, die niet bestaat?"
+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"
 
 
-#: src/protocol.c:369
+#: src/protocol.c:398
 #, c-format
 #, c-format
-msgid "Sending ANS_KEY to %s (%s)"
-msgstr "Verzending ANS_KEY naar %s (%s)"
+msgid "Connection with %s (%s) activated"
+msgstr "Verbinding met %s (%s) geactiveerd"
 
 
-#: src/protocol.c:424
+#: src/protocol.c:438
 #, c-format
 #, c-format
-msgid "Got BASIC_INFO from %s"
-msgstr "Kreeg BASIC_INFO van %s"
+msgid "Got bad ADD_SUBNET from %s (%s)"
+msgstr "Kreeg ongeldige ADD_SUBNET van %s (%s)"
 
 
-#: src/protocol.c:428
+#: src/protocol.c:447
 #, c-format
 #, c-format
-msgid "Got bad BASIC_INFO from %s"
-msgstr "Kreeg ongeldige BASIC_INFO van %s"
+msgid "Got bad ADD_SUBNET from %s (%s): invalid identity name"
+msgstr "Kreeg ongeldige ADD_SUBNET van %s (%s): ongeldige identiteitsnaam"
 
 
-#: src/protocol.c:437
+#: src/protocol.c:456
 #, c-format
 #, c-format
-msgid "Peer uses incompatible protocol version %d"
-msgstr "De ander gebruikt een niet-compatibel protocol versie %d"
+msgid "Got bad ADD_SUBNET from %s (%s): invalid subnet string"
+msgstr "Kreeg ongeldige ADD_SUBNET van %s (%s): ongeldig subnet"
 
 
-#: src/protocol.c:452
+#: src/protocol.c:467
 #, c-format
 #, c-format
-msgid "Uplink %s (%s) is already in our connection list"
-msgstr "%s (%s) staat al in onze verbindingslijst"
+msgid "Warning: got ADD_SUBNET from %s (%s) for ourself, restarting"
+msgstr "Waarschuwing: kreeg ADD_SUBNET van %s (%s) voor onszelf, herstart"
 
 
-#: src/protocol.c:482
+#: src/protocol.c:478
 #, c-format
 #, c-format
-msgid "Got bad PASSPHRASE from %s (%s)"
-msgstr "Kreeg ongeldige PASSPHRASE van %s (%s)"
+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"
 
 
-#: src/protocol.c:489
+#: src/protocol.c:506
 #, c-format
 #, c-format
-msgid "Got PASSPHRASE from %s (%s)"
-msgstr "Kreeg PASSPHRASE van %s (%s)"
+msgid "Got bad DEL_SUBNET from %s (%s)"
+msgstr "Kreeg ongeldige DEL_SUBNET van %s (%s)"
 
 
-#: src/protocol.c:507
+#: src/protocol.c:515
 #, c-format
 #, c-format
-msgid "Got bad PUBLIC_KEY from %s (%s)"
-msgstr "Kreeg ongeldige PUBLIC_KEY van %s (%s)"
+msgid "Got bad DEL_SUBNET from %s (%s): invalid identity name"
+msgstr "Kreeg ongeldige DEL_SUBNET van %s (%s): ongeldige identiteitsnaam"
 
 
-#: src/protocol.c:513
+#: src/protocol.c:524
 #, c-format
 #, c-format
-msgid "Got PUBLIC_KEY from %s (%s)"
-msgstr "Kreeg PUBLIC_KEY van %s (%s)"
+msgid "Got bad DEL_SUBNET from %s (%s): invalid subnet string"
+msgstr "Kreeg ongeldige DEL_SUBNET van %s (%s): ongeldige identiteitsnaam"
 
 
-#. intruder!
-#: src/protocol.c:519
+#: src/protocol.c:535
 #, c-format
 #, c-format
-msgid "Intruder from %s: passphrase for %s does not match!"
-msgstr "Indringer van %s: wachwoord voor %s komt niet overeen!"
+msgid "Warning: got DEL_SUBNET from %s (%s) for ourself, restarting"
+msgstr "Waarschuwing: kreeg DEL_SUBNET van %s (%s) voor onszelf, herstart"
 
 
-#: src/protocol.c:538
+#: src/protocol.c:546
 #, c-format
 #, c-format
-msgid "Removing old entry for %s at %s in favour of new connection from %s"
+msgid "Got DEL_SUBNET for %s from %s (%s) which is not in our connection list"
 msgstr ""
 msgstr ""
-"Verwijdering oude verbinding voor %s op %s in voordeel van nieuwe verbinding "
-"van %s"
+"Kreeg DEL_SUBNET voor %d.%d.%d.%d van %s (%s) die niet voorkomt in onze "
+"verbindingslijst"
 
 
-#: src/protocol.c:547 src/protocol.c:567
+#: src/protocol.c:577
 #, c-format
 #, c-format
-msgid "Connection with %s (%s) activated"
-msgstr "Verbinding met %s (%s) geactiveerd"
+msgid "Got bad ADD_HOST from %s (%s)"
+msgstr "Kreeg ongeldige ADD_HOST van %s (%s)"
 
 
-#: src/protocol.c:561
+#: src/protocol.c:585
 #, c-format
 #, c-format
-msgid "Got ACK from %s (%s)"
-msgstr "Kreeg ACK van  %s (%s)"
+msgid "Got bad ADD_HOST from %s (%s): invalid identity name"
+msgstr "Kreeg ongeldige ADD_HOST van %s (%s): ongeldige identiteitsnaam"
 
 
-#: src/protocol.c:583
+#: src/protocol.c:594
 #, c-format
 #, c-format
-msgid "Got unauthorized TERMREQ from %s (%s)"
-msgstr "Kreeg niet-geautoriseerde TERMREQ van %s (%s)"
+msgid "Warning: got ADD_HOST from %s (%s) for ourself, restarting"
+msgstr "Waarschuwing: kreeg ADD_HOST van %s (%s) voor onszelf, herstart"
 
 
-#: src/protocol.c:589
+#: src/protocol.c:604
 #, c-format
 #, c-format
-msgid "Got TERMREQ from %s (%s)"
-msgstr "Kreeg TERMREQ van %s (%s)"
+msgid "Warning: got ADD_HOST from %s (%s) from ourself, restarting"
+msgstr "Waarschuwing: kreeg ADD_HOST van %s (%s) van onszelf, herstart"
 
 
-#: src/protocol.c:604
+#: src/protocol.c:614
 #, c-format
 #, c-format
-msgid "Got unauthorized TIMEOUT from %s (%s)"
-msgstr "Kreeg niet-geautoriseerde TIMEOUT van %s (%s)"
+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"
 
 
-#: src/protocol.c:610
+#: src/protocol.c:633
 #, c-format
 #, c-format
-msgid "Got TIMEOUT from %s (%s)"
-msgstr "Kreeg TIMEOUT van %s (%s)"
+msgid "Got duplicate ADD_HOST for %s (%s) from %s (%s)"
+msgstr "Kreeg een tweede ADD_HOST voor %s (%s) van %s (%s)"
 
 
-#: src/protocol.c:626
+#: src/protocol.c:640
 #, c-format
 #, c-format
-msgid "Got unauthorized DEL_HOST from %s (%s)"
-msgstr "Kreeg niet-geautoriseerde DEL_HOST van %s (%s)"
+msgid "Removing old entry for %s (%s)"
+msgstr "Verwijdering oude verbinding voor %s (%s)"
 
 
-#: src/protocol.c:633
+#: src/protocol.c:683
 #, c-format
 msgid "Got bad DEL_HOST from %s (%s)"
 msgstr "Kreeg ongeldige DEL_HOST van %s (%s)"
 
 #, c-format
 msgid "Got bad DEL_HOST from %s (%s)"
 msgstr "Kreeg ongeldige DEL_HOST van %s (%s)"
 
-#: src/protocol.c:640
+#: src/protocol.c:692
 #, c-format
 #, c-format
-msgid "Got DEL_HOST for %d.%d.%d.%d from %s (%s) which does not exist?"
-msgstr "Kreeg DEL_HOST voor %d.%d.%d.%d van %s (%s), die niet bestaat?"
+msgid "Got bad DEL_HOST from %s (%s): invalid identity name"
+msgstr "Kreeg ongeldige DEL_HOST van %s (%s): ongeldige identiteitsnaam"
 
 
-#: src/protocol.c:648
+#: src/protocol.c:701
 #, c-format
 msgid "Warning: got DEL_HOST from %s (%s) for ourself, restarting"
 msgstr "Waarschuwing: kreeg DEL_HOST van %s (%s) voor onszelf, herstart"
 
 #, c-format
 msgid "Warning: got DEL_HOST from %s (%s) for ourself, restarting"
 msgstr "Waarschuwing: kreeg DEL_HOST van %s (%s) voor onszelf, herstart"
 
-#: src/protocol.c:655
+#: src/protocol.c:712
 #, c-format
 #, c-format
-msgid "Got DEL_HOST for %s (%s) from %s (%s)"
-msgstr "Kreeg DEL_HOST voor %s (%s) van %s (%s)"
+msgid "Warning: got DEL_HOST from %s (%s) from ourself, restarting"
+msgstr "Waarschuwing: kreeg DEL_HOST van %s (%s) van onszelf, herstart"
 
 
-#: src/protocol.c:674
+#: src/protocol.c:722
 #, c-format
 #, c-format
-msgid "Got unauthorized PACKET from %s (%s)"
-msgstr "Kreeg niet-geautoriseerde PACKET van %s (%s)"
-
-#: src/protocol.c:681
-#, c-format
-msgid "Got bad PACKET from %s (%s)"
-msgstr "Kreeg ongeldige PACKET van %s (%s)"
-
-#: src/protocol.c:688
-#, c-format
-msgid "Got too big PACKET from %s (%s)"
-msgstr "Kreeg een te grote PACKET van %s (%s)"
-
-#: src/protocol.c:694
-#, c-format
-msgid "Got PACKET length %d from %s (%s)"
-msgstr "Kreeg PACKET met lengte %d van %s (%s)"
-
-#: src/protocol.c:708
-#, c-format
-msgid "Got unauthorized PING from %s (%s)"
-msgstr "Kreeg niet-geautoriseerde PING van %s (%s)"
-
-#: src/protocol.c:714
-#, c-format
-msgid "Got PING from %s (%s)"
-msgstr "Kreeg PING van %s (%s)"
-
-#: src/protocol.c:730
-#, c-format
-msgid "Got unauthorized PONG from %s (%s)"
-msgstr "Kreeg niet-geautoriseerde PONG van %s (%s)"
+msgid ""
+"Got DEL_HOST from %s (%s) with origin %s which is not in our connection list"
+msgstr ""
+"Kreeg DEL_HOST voor %s (%s) met herkomst %s die niet in onze "
+"verbindingslijst voorkomt"
 
 
-#: src/protocol.c:736
+#: src/protocol.c:734
 #, c-format
 #, c-format
-msgid "Got PONG from %s (%s)"
-msgstr "Kreeg PONG van %s (%s)"
+msgid "Got DEL_HOST from %s (%s) for %s which is not in our connection list"
+msgstr ""
+"Kreeg DEL_HOST van %s (%s) voor %s die niet in onze verbindingslijst voorkomt"
 
 
-#: src/protocol.c:755
+#: src/protocol.c:744
 #, c-format
 #, c-format
-msgid "Got unauthorized ADD_HOST from %s (%s)"
-msgstr "Kreeg niet-geautoriseerde ADD_HOST van %s (%s)"
+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"
 
 
-#: src/protocol.c:762
+#: src/protocol.c:776
 #, c-format
 #, c-format
-msgid "Got bad ADD_HOST from %s (%s)"
-msgstr "Kreeg ongeldige ADD_HOST van %s (%s)"
+msgid "Got bad STATUS from %s (%s)"
+msgstr "Kreeg ongeldige STATUS van %s (%s)"
 
 
-#: src/protocol.c:772
+#: src/protocol.c:783
 #, 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 "Status message from %s (%s): %s: %s"
+msgstr "Ontving statusbericht van %s (%s): %s: %s"
 
 
-#: src/protocol.c:779
+#: src/protocol.c:807
 #, c-format
 #, c-format
-msgid "Removing old entry for %s (%s)"
-msgstr "Verwijdering oude verbinding voor %s (%s)"
+msgid "Got bad ERROR from %s (%s)"
+msgstr "Kreeg ongeldige ERROR van %s (%s)"
 
 
-#: src/protocol.c:789
+#: src/protocol.c:814
 #, 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 "Error message from %s (%s): %s: %s"
+msgstr "Ontving foutmelding van %s (%s): %s: %s"
 
 
-#: src/protocol.c:809
+#: src/protocol.c:892
 #, c-format
 #, c-format
-msgid "Got ADD_HOST for %s (%s) from %s (%s)"
-msgstr "Kreeg ADD_HOST voor %s (%s) van %s (%s)"
+msgid "Got bad KEY_CHANGED from %s (%s)"
+msgstr "Kreeg ongeldige KEY_CHANGED van %s (%s)"
 
 
-#: src/protocol.c:827
+#: src/protocol.c:899
 #, c-format
 #, c-format
-msgid "Got unauthorized REQ_KEY from %s (%s)"
-msgstr "Kreeg niet-geautoriseerde REQ_KEY van %s (%s)"
+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"
 
 
-#: src/protocol.c:834
+#: src/protocol.c:929
 #, c-format
 msgid "Got bad REQ_KEY from %s (%s)"
 msgstr "Kreeg ongeldige REQ_KEY van %s (%s)"
 
 #, c-format
 msgid "Got bad REQ_KEY from %s (%s)"
 msgstr "Kreeg ongeldige REQ_KEY van %s (%s)"
 
-#: src/protocol.c:840
-#, c-format
-msgid "Got REQ_KEY origin %d.%d.%d.%d destination %d.%d.%d.%d from %s (%s)"
-msgstr "Kreeg REQ_KEY herkmonst %d.%d.%d.%d bestemming %d.%d.%d.%d van %s (%s)"
-
-#: src/protocol.c:853
-#, c-format
-msgid "Attempting to forward REQ_KEY to %d.%d.%d.%d, which does not exist?"
-msgstr "Poging tot doorsturen REQ_KEY naar %d.%d.%d.%d, die niet bestaat?"
-
-#: src/protocol.c:859
+#: src/protocol.c:936
 #, c-format
 #, c-format
-msgid "Forwarding REQ_KEY to %s (%s)"
-msgstr "Doorsturen REQ_KEY naar %s (%s)"
+msgid ""
+"Got REQ_KEY from %s (%s) origin %s which does not exist in our connection "
+"list"
+msgstr ""
+"Kreeg REQ_KEY van %s (%s) herkomst %s die niet in onze verbindingslijst "
+"voorkomt"
 
 
-#: src/protocol.c:918
+#: src/protocol.c:952
 #, c-format
 #, c-format
-msgid "Got unauthorized ANS_KEY from %s (%s)"
-msgstr "Kreeg niet-geautoriseerde ANS_KEY van %s (%s)"
+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"
 
 
-#: src/protocol.c:925
+#: src/protocol.c:980
 #, c-format
 msgid "Got bad ANS_KEY from %s (%s)"
 msgstr "Kreeg ongeldige ANS_KEY van %s (%s)"
 
 #, c-format
 msgid "Got bad ANS_KEY from %s (%s)"
 msgstr "Kreeg ongeldige ANS_KEY van %s (%s)"
 
-#: src/protocol.c:931
-#, c-format
-msgid "Got ANS_KEY origin %d.%d.%d.%d destination %d.%d.%d.%d from %s (%s)"
-msgstr "Kreeg ANS_KEY herkomst %d.%d.%d.%d bestemming %d.%d.%d.%d van %s (%s)"
-
-#: src/protocol.c:940
+#: src/protocol.c:987
 #, c-format
 msgid ""
 #, c-format
 msgid ""
-"Receiving ANS_KEY origin %d.%d.%d.%d from %s (%s), which does not exist?"
-msgstr "Kreeg ANS_KEY herkomst %d.%d.%d.%d van %s (%s), die niet bestaat?"
-
-#: src/protocol.c:956
-#, c-format
-msgid "Attempting to forward ANS_KEY to %d.%d.%d.%d, which does not exist?"
-msgstr "Poging tot doorsturen ANS_KEY naar %d.%d.%d.%d, die niet besttaat?"
-
-#: src/protocol.c:962
-#, c-format
-msgid "Forwarding ANS_KEY to %s (%s)"
-msgstr "Doorsturen ANS_KEY naar %s (%s)"
-
-#: src/protocol.c:983
-#, c-format
-msgid "Got unauthorized KEY_CHANGED from %s (%s)"
-msgstr "Kreeg niet-geautoriseerde KEY_CHANGED van %s (%s)"
-
-#: src/protocol.c:990
-#, c-format
-msgid "Got bad KEY_CHANGED from %s (%s)"
-msgstr "Kreeg ongeldige KEY_CHANGED van %s (%s)"
+"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"
 
 
-#: src/protocol.c:999
+#: src/protocol.c:1003
 #, c-format
 #, c-format
-msgid "Got KEY_CHANGED origin %d.%d.%d.%d from %s (%s), which does not exist?"
-msgstr "Kreeg KEY_CHANGED herkomst %d.%d.%d.%d van %s (%s), die niet bestaat?"
+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:1005
+#: src/protocol.c:1016
 #, c-format
 #, c-format
-msgid "Got KEY_CHANGED origin %s from %s (%s)"
-msgstr "Kreeg KEY_CHANGED herkomst %s van %s (%s)"
+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/tincd.c:96
+#: src/tincd.c:94
 #, 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:99
+#: src/tincd.c:97
 #, c-format
 msgid ""
 "Usage: %s [option]...\n"
 #, c-format
 msgid ""
 "Usage: %s [option]...\n"
@@ -786,23 +711,23 @@ msgstr ""
 "Gebruik: %s [optie]...\n"
 "\n"
 
 "Gebruik: %s [optie]...\n"
 "\n"
 
-#: src/tincd.c:100
+#: src/tincd.c:98
 msgid ""
 msgid ""
-"  -c, --config=FILE     Read configuration options from FILE.\n"
+"  -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"
 msgstr ""
 "  -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"
 msgstr ""
-"  -c, --config=BESTAND  Lees configuratie uit BESTAND.\n"
+"  -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"
 
 "  -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:106
+#: src/tincd.c:104
 msgid ""
 "      --help            Display this help and exit.\n"
 "      --version         Output version information and exit.\n"
 msgid ""
 "      --help            Display this help and exit.\n"
 "      --version         Output version information and exit.\n"
@@ -812,143 +737,153 @@ msgstr ""
 "      --version         Geef versie informatie en beëindig.\n"
 "\n"
 
 "      --version         Geef versie informatie en beëindig.\n"
 "\n"
 
-#: src/tincd.c:108
+#: src/tincd.c:106
 msgid "Report bugs to tinc@nl.linux.org.\n"
 msgstr ""
 "Meld fouten in het programma aan tinc@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"
+"Meld fouten in de vertaling aan vertaling@nl.linux.org.\n"
 
 
-#: src/tincd.c:146
+#: src/tincd.c:144
 #, c-format
 msgid "Invalid timeout value `%s'.\n"
 msgstr "Ongeldige timeout waarde `%s'.\n"
 
 #, c-format
 msgid "Invalid timeout value `%s'.\n"
 msgstr "Ongeldige timeout waarde `%s'.\n"
 
-#: src/tincd.c:160
+#: src/tincd.c:158
 #, c-format
 msgid "Memory exhausted (last is %s:%d) (couldn't allocate %d bytes), exiting."
 msgstr ""
 "Geheugen is vol (laatste %s:%d) (kon geen %d bytes vrijmaken), beëindigen."
 
 #, c-format
 msgid "Memory exhausted (last is %s:%d) (couldn't allocate %d bytes), exiting."
 msgstr ""
 "Geheugen is vol (laatste %s:%d) (kon geen %d bytes vrijmaken), beëindigen."
 
-#: src/tincd.c:215
+#: src/tincd.c:213
 #, c-format
 msgid "tincd %s (%s %s) starting, debug level %d"
 msgstr "tincd %s (%s %s) gestart, debugniveau %d"
 
 #, c-format
 msgid "tincd %s (%s %s) starting, debug level %d"
 msgstr "tincd %s (%s %s) gestart, debugniveau %d"
 
-#: src/tincd.c:218
+#: src/tincd.c:216
 #, c-format
 msgid "tincd %s starting"
 msgstr "tincd %s gestart"
 
 #, c-format
 msgid "tincd %s starting"
 msgstr "tincd %s gestart"
 
-#: src/tincd.c:233
+#: src/tincd.c:231
 #, c-format
 msgid "Total bytes written: tap %d, socket %d; bytes read: tap %d, socket %d"
 msgstr ""
 "Totaal aantal bytes geschreven: tap %d, socket %d; bytes gelezen: top %d, "
 "socket %d."
 
 #, c-format
 msgid "Total bytes written: tap %d, socket %d; bytes read: tap %d, socket %d"
 msgstr ""
 "Totaal aantal bytes geschreven: tap %d, socket %d; bytes gelezen: top %d, "
 "socket %d."
 
-#: src/tincd.c:251
+#: src/tincd.c:249
 #, 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"
 
 #, 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"
 
-#: src/tincd.c:254
+#: 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"
 
 #, c-format
 msgid "A tincd is already running with pid %d.\n"
 msgstr "Een tincd draait al met procesnummer %d.\n"
 
-#: src/tincd.c:275
+#: 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"
 
 #, c-format
 msgid "No other tincd is running for net `%s'.\n"
 msgstr "Geen andere tincd gevonden voor net `%s'.\n"
 
-#: src/tincd.c:277
+#: src/tincd.c:275
 msgid "No other tincd is running.\n"
 msgstr "Geen andere tincd gevonden.\n"
 
 msgid "No other tincd is running.\n"
 msgstr "Geen andere tincd gevonden.\n"
 
-#: src/tincd.c:284
+#: src/tincd.c:282
 msgid "Removing stale lock file.\n"
 msgstr "Ongebruikt vergrendelingsbestand verwijderd.\n"
 
 msgid "Removing stale lock file.\n"
 msgstr "Ongebruikt vergrendelingsbestand verwijderd.\n"
 
-#: src/tincd.c:334
+#. Do some intl stuff right now
+#: src/tincd.c:325
+msgid "unknown"
+msgstr "onbekend"
+
+#: src/tincd.c:331
 #, 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:335
+#: src/tincd.c:332
 msgid ""
 msgid ""
-"Copyright (C) 1998,1999,2000 Ivo Timmermans and others,\n"
-"see the AUTHORS file for a complete list.\n"
+"Copyright (C) 1998,1999,2000 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"
 "\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"
-"\n"
 msgstr ""
 msgstr ""
-"Copyright (C) 1998,1999,2000 Ivo Timmermans en anderen,\n"
-"zie het bestand AUTHORS voor een volledige lijst.\n"
+"Copyright (C) 1998,1999,2000 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 "
 "programmatuur,\n"
 "en je bent welkom om het te distribueren onder bepaalde voorwaarden;\n"
 "zie het bestand COPYING voor details.\n"
 "\n"
 "tinc wordt gedistribueerd ZONDER ENIGE GARANTIE.  Dit is vrije "
 "programmatuur,\n"
 "en je bent welkom om het te distribueren onder bepaalde voorwaarden;\n"
 "zie het bestand COPYING voor details.\n"
-"\n"
-
-#: src/tincd.c:340
-msgid ""
-"This product includes software developed by Eric Young (eay@mincom.oz.au)\n"
-msgstr ""
-"Dit produkt bevat programmatuur ontwikkeld door Eric Young "
-"(eay@mincom.oz.au)\n"
 
 
-#: src/tincd.c:350
+#: 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"
 
 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:380
+#: src/tincd.c:377
+msgid "Unrecoverable error"
+msgstr "Onherstelbare fout"
+
+#: src/tincd.c:382
 #, c-format
 #, c-format
-msgid "Unrecoverable error, restarting in %d seconds!"
-msgstr "Onherstelbare fout, herstart in %d seconden!"
+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/tincd.c:389
+#: src/tincd.c:397
 msgid "Got TERM signal"
 msgstr "Kreeg TERM signaal"
 
 msgid "Got TERM signal"
 msgstr "Kreeg TERM signaal"
 
-#: src/tincd.c:397
+#: src/tincd.c:405
 msgid "Got QUIT signal"
 msgstr "Kreeg QUIT signaal"
 
 msgid "Got QUIT signal"
 msgstr "Kreeg QUIT signaal"
 
-#: src/tincd.c:404
+#: src/tincd.c:412
 msgid "Got another SEGV signal: not restarting"
 msgstr "Kreeg nog een SEGV signaal: niet herstarten"
 
 msgid "Got another SEGV signal: not restarting"
 msgstr "Kreeg nog een SEGV signaal: niet herstarten"
 
-#: src/tincd.c:412
-#, c-format
-msgid "Got SEGV signal after %s line %d, trying to re-execute"
-msgstr "Kreeg SEGV signaal na %s regel %d, probeer opnieuw opstarten"
+#: src/tincd.c:419
+msgid "Got SEGV signal"
+msgstr "Kreeg SEGV signaal"
 
 
-#: src/tincd.c:415
-msgid "Got SEGV signal, trying to re-execute"
-msgstr "Kreeg SEGV signaal, probeer opnieuw opstarten"
+#: src/tincd.c:424
+msgid "Trying to re-execute in 5 seconds..."
+msgstr "Poging tot herstaren over 5 seconden..."
 
 
-#: src/tincd.c:427
+#: src/tincd.c:442
 msgid "Got HUP signal, rereading configuration and restarting"
 msgstr "Kreeg HUP signaal, herlezen configuratie en herstarten"
 
 msgid "Got HUP signal, rereading configuration and restarting"
 msgstr "Kreeg HUP signaal, herlezen configuratie en herstarten"
 
-#: src/tincd.c:435
+#: src/tincd.c:450
 msgid "Got INT signal, exiting"
 msgstr "Kreeg INT signaal, beëindigen"
 
 msgid "Got INT signal, exiting"
 msgstr "Kreeg INT signaal, beëindigen"
 
-#: src/tincd.c:449
+#: src/tincd.c:464
 msgid "Got USR2 signal, forcing new key generation"
 msgstr "Kreeg USR2 signaal, nieuwe sleutels geforceerd"
 
 msgid "Got USR2 signal, forcing new key generation"
 msgstr "Kreeg USR2 signaal, nieuwe sleutels geforceerd"
 
-#: src/tincd.c:457
+#: src/tincd.c:473
 #, c-format
 #, c-format
-msgid "Got unexpected signal %d after %s line %d"
-msgstr "Kreeg onverwacht signaal %d na %s regel %d"
+msgid "Got unexpected signal %d (%s)"
+msgstr "Kreeg onverwacht signaal %d (%s)"
 
 
-#: src/tincd.c:460
-#, c-format
-msgid "Got unexpected signal %d"
-msgstr "Kreeg onverwacht signaal %d"
+#~ msgid "Illegal passphrase in %s; size would be %d"
+#~ msgstr "Ongeldig wachtwoord in %s; grootte zou %d zijn"
+
+#~ msgid "Generating %d bits keys"
+#~ msgstr "%d bits sleutel genereren"
+
+#~ msgid "Opening /dev/urandom failed: %m"
+#~ msgstr "Openen van /dev/urandom mislukt: %m"
+
+#~ msgid "Encryption key set to %s"
+#~ msgstr "Sleutel ingesteld op %s"
index 740f434..4fc374f 100644 (file)
@@ -19,7 +19,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id: conf.c,v 1.9.4.13 2000/10/14 17:04:12 guus Exp $
+    $Id: conf.c,v 1.9.4.14 2000/10/15 00:59:34 guus Exp $
 */
 
 
 */
 
 
 #include "connlist.h"
 #include "system.h"
 
 #include "connlist.h"
 #include "system.h"
 
-config_t *config;
+config_t *config = NULL;
 int debug_lvl = 0;
 int timeout = 0; /* seconds before timeout */
 char *confbase = NULL;           /* directory in which all config files are */
 int debug_lvl = 0;
 int timeout = 0; /* seconds before timeout */
 char *confbase = NULL;           /* directory in which all config files are */
+char *netname = NULL;            /* name of the vpn network */
 
 /* Will be set if HUP signal is received. It will be processed when it is safe. */
 int sighup = 0;
 
 /* Will be set if HUP signal is received. It will be processed when it is safe. */
 int sighup = 0;
@@ -58,6 +59,7 @@ static internal_config_t hazahaza[] = {
   { "ConnectTo",    connectto,      TYPE_NAME },
   { "PingTimeout",  pingtimeout,    TYPE_INT },
   { "TapDevice",    tapdevice,      TYPE_NAME },
   { "ConnectTo",    connectto,      TYPE_NAME },
   { "PingTimeout",  pingtimeout,    TYPE_INT },
   { "TapDevice",    tapdevice,      TYPE_NAME },
+  { "TapSubnet",    tapsubnet,      TYPE_IP },
   { "PrivateKey",   privatekey,     TYPE_NAME },
   { "KeyExpire",    keyexpire,      TYPE_INT },
   { "Hostnames",    resolve_dns,    TYPE_BOOL },
   { "PrivateKey",   privatekey,     TYPE_NAME },
   { "KeyExpire",    keyexpire,      TYPE_INT },
   { "Hostnames",    resolve_dns,    TYPE_BOOL },
@@ -116,22 +118,17 @@ cp
 
   if(p->data.val)
     {
 
   if(p->data.val)
     {
-      if(*cfg)
-        {
-          r = *cfg;
-          while(r->next)
-            r = r->next;
-          r->next = p;
-        }
-      else
-        *cfg = p;
-      p->next = NULL;
+      p->next = *cfg;
+      *cfg = p;
+cp
       return p;
     }
       return p;
     }
-
-  free(p);
+  else
+    {
+      free(p);
 cp
 cp
-  return NULL;
+      return NULL;
+    }
 }
 
 /*
 }
 
 /*
@@ -215,7 +212,7 @@ int read_server_config()
   char *fname;
   int x;
 cp
   char *fname;
   int x;
 cp
-  asprintf(fname, "%s/tinc.conf", confbase);
+  asprintf(&fname, "%s/tinc.conf", confbase);
   x = read_config_file(&config, fname);
   free(fname);
 cp
   x = read_config_file(&config, fname);
   free(fname);
 cp
@@ -230,10 +227,9 @@ const config_t *get_config_val(config_t *p, which_t type)
 cp
   for(p = config; p != NULL; p = p->next)
     if(p->which == type)
 cp
   for(p = config; p != NULL; p = p->next)
     if(p->which == type)
-      return p;
+      break;
 cp
 cp
-  /* Not found */
-  return NULL;
+  return p;
 }
 
 /*
 }
 
 /*
@@ -246,10 +242,9 @@ cp
   for(p = config; p != NULL; p = p->next)
     if(p->which == type)
       if(--index < 0)
   for(p = config; p != NULL; p = p->next)
     if(p->which == type)
       if(--index < 0)
-        return p;
+        break;
 cp  
 cp  
-  /* Not found */
-  return NULL;
+  return p;
 }
 
 /*
 }
 
 /*
index a1ab162..1517057 100644 (file)
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id: conf.h,v 1.6.4.12 2000/10/14 17:04:13 guus Exp $
+    $Id: conf.h,v 1.6.4.13 2000/10/15 00:59:34 guus Exp $
 */
 
 #ifndef __TINC_CONF_H__
 */
 
 #ifndef __TINC_CONF_H__
@@ -35,6 +35,7 @@ typedef enum which_t {
   connectto,
   pingtimeout,
   tapdevice,
   connectto,
   pingtimeout,
   tapdevice,
+  tapsubnet,
   privatekey,
   keyexpire,
   resolve_dns,
   privatekey,
   keyexpire,
   resolve_dns,
@@ -88,6 +89,7 @@ extern int timeout;
 extern int upstreamindex;
 extern int sighup;
 extern char *confbase;
 extern int upstreamindex;
 extern int sighup;
 extern char *confbase;
+extern char *netname;
 
 extern config_t *add_config_val(config_t **, int, char *);
 extern int read_config_file(config_t **, const char *);
 
 extern config_t *add_config_val(config_t **, int, char *);
 extern int read_config_file(config_t **, const char *);
index f1b0eba..b1e3146 100644 (file)
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id: connlist.c,v 1.1.2.3 2000/10/14 17:04:13 guus Exp $
+    $Id: connlist.c,v 1.1.2.4 2000/10/15 00:59:34 guus Exp $
 */
 
 #include <syslog.h>
 */
 
 #include <syslog.h>
@@ -53,7 +53,7 @@ cp
     destroy_queue(p->sq);
   if(p->rq)
     destroy_queue(p->rq);
     destroy_queue(p->sq);
   if(p->rq)
     destroy_queue(p->rq);
-  if(p->name)
+  if(p->name && p->name!=unknown)
     free(p->name);
   if(p->hostname)
     free(p->hostname);
     free(p->name);
   if(p->hostname)
     free(p->hostname);
@@ -61,6 +61,8 @@ cp
     RSA_free(p->public_key);
   if(p->cipher_pktkey)
     free(p->cipher_pktkey);
     RSA_free(p->public_key);
   if(p->cipher_pktkey)
     free(p->cipher_pktkey);
+  if(p->buffer)
+    free(p->buffer);
   free(p);
 cp
 }
   free(p);
 cp
 }
@@ -214,7 +216,7 @@ int read_host_config(conn_list_t *cl)
   char *fname;
   int x;
 cp
   char *fname;
   int x;
 cp
-  asprintf(fname, "%s/hosts/%s", confbase, cl->name);
+  asprintf(&fname, "%s/hosts/%s", confbase, cl->name);
   x = read_config_file(&cl->config, fname);
   free(fname);
 cp
   x = read_config_file(&cl->config, fname);
   free(fname);
 cp
index fa2e1ec..a27bd77 100644 (file)
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id: genauth.c,v 1.7.4.1 2000/10/11 12:07:27 guus Exp $
+    $Id: genauth.c,v 1.7.4.2 2000/10/15 00:59:34 guus Exp $
 */
 
 #include "config.h"
 */
 
 #include "config.h"
@@ -98,7 +98,8 @@ int main(int argc, char **argv)
 
   fprintf(stderr, _("Done.\n"));
 
 
   fprintf(stderr, _("Done.\n"));
 
-  printf("Public key:\t%s\nPrivate key:\t%s\n", BN_bn2hex(key->n), BN_bn2hex(key->d));
+  printf(_("Public key:  %s\n"), BN_bn2hex(key->n));
+  printf(_("Private key: %s\n"), BN_bn2hex(key->d));
 
   return 0;
 }
 
   return 0;
 }
index 3cd2c53..0a40d8c 100644 (file)
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id: meta.c,v 1.1.2.3 2000/10/11 22:00:58 guus Exp $
+    $Id: meta.c,v 1.1.2.4 2000/10/15 00:59:34 guus Exp $
 */
 
 #include "config.h"
 */
 
 #include "config.h"
@@ -42,6 +42,8 @@ cp
     syslog(LOG_DEBUG, _("Sending %d bytes of metadata to %s (%s): %s"), length,
            cl->name, cl->hostname, buffer);
 
     syslog(LOG_DEBUG, _("Sending %d bytes of metadata to %s (%s): %s"), length,
            cl->name, cl->hostname, buffer);
 
+  buffer[length-1]='\n';
+  
   if(cl->status.encryptout)
     {
       EVP_EncryptUpdate(cl->cipher_outctx, outbuf, &outlen, buffer, length);
   if(cl->status.encryptout)
     {
       EVP_EncryptUpdate(cl->cipher_outctx, outbuf, &outlen, buffer, length);
index c7d3acc..0e251be 100644 (file)
--- a/src/net.c
+++ b/src/net.c
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id: net.c,v 1.35.4.35 2000/10/14 17:04:13 guus Exp $
+    $Id: net.c,v 1.35.4.36 2000/10/15 00:59:34 guus Exp $
 */
 
 #include "config.h"
 */
 
 #include "config.h"
 #include <syslog.h>
 #include <unistd.h>
 
 #include <syslog.h>
 #include <unistd.h>
 
+/* Next two includes are for tun/tap support */
+#include <net/if.h>
+#include "/usr/src/linux/include/linux/if_tun.h"
+
 #include <utils.h>
 #include <xalloc.h>
 
 #include <utils.h>
 #include <xalloc.h>
 
@@ -59,6 +63,8 @@ int total_socket_out = 0;
 int upstreamindex = 0;
 static int seconds_till_retry;
 
 int upstreamindex = 0;
 static int seconds_till_retry;
 
+char *unknown = NULL;
+
 /*
   strip off the MAC adresses of an ethernet frame
 */
 /*
   strip off the MAC adresses of an ethernet frame
 */
@@ -326,19 +332,38 @@ int setup_tap_fd(void)
   int nfd;
   const char *tapfname;
   config_t const *cfg;
   int nfd;
   const char *tapfname;
   config_t const *cfg;
+  struct ifreq ifr;
 cp  
 cp  
-  if((cfg = get_config_val(config, tapdevice)) == NULL)
-    tapfname = "/dev/tap0";
-  else
+  if((cfg = get_config_val(config, tapdevice)))
     tapfname = cfg->data.ptr;
     tapfname = cfg->data.ptr;
-
+  else
+    tapfname = "/dev/misc/net/tun";
+cp
   if((nfd = open(tapfname, O_RDWR | O_NONBLOCK)) < 0)
     {
       syslog(LOG_ERR, _("Could not open %s: %m"), tapfname);
       return -1;
     }
   if((nfd = open(tapfname, O_RDWR | O_NONBLOCK)) < 0)
     {
       syslog(LOG_ERR, _("Could not open %s: %m"), tapfname);
       return -1;
     }
-
+cp
   tap_fd = nfd;
   tap_fd = nfd;
+
+  /* Ok now check if this is an old ethertap or a new tun/tap thingie */
+  
+  memset(&ifr, 0, sizeof(ifr));
+cp
+  ifr.ifr_flags = IFF_TAP;
+  if (netname)
+    strncpy(ifr.ifr_name, netname, IFNAMSIZ);
+cp
+  if (!ioctl(tap_fd, TUNSETIFF, (void *) &ifr))
+  { 
+    syslog(LOG_INFO, _("%s is a new style tun/tap device"), tapfname);
+    if((cfg = get_config_val(config, tapsubnet)) == NULL)
+      syslog(LOG_INFO, _("tun/tap device will be left unconfigured"));
+    else
+      /* Setup inetaddr/netmask etc */;
+  }
+  
 cp
   return 0;
 }
 cp
   return 0;
 }
@@ -554,6 +579,7 @@ cp
 
   asprintf(&myself->hostname, "MYSELF"); /* FIXME? Do hostlookup on ourselves? */
   myself->flags = 0;
 
   asprintf(&myself->hostname, "MYSELF"); /* FIXME? Do hostlookup on ourselves? */
   myself->flags = 0;
+  myself->protocol_version = PROT_CURRENT;
 
   if(!(cfg = get_config_val(config, tincname))) /* Not acceptable */
     {
 
   if(!(cfg = get_config_val(config, tincname))) /* Not acceptable */
     {
@@ -590,13 +616,13 @@ cp
 
   if((myself->meta_socket = setup_listen_meta_socket(myself->port)) < 0)
     {
 
   if((myself->meta_socket = setup_listen_meta_socket(myself->port)) < 0)
     {
-      syslog(LOG_ERR, _("Unable to set up a listening socket"));
+      syslog(LOG_ERR, _("Unable to set up a listening socket!"));
       return -1;
     }
 
   if((myself->socket = setup_vpn_in_socket(myself->port)) < 0)
     {
       return -1;
     }
 
   if((myself->socket = setup_vpn_in_socket(myself->port)) < 0)
     {
-      syslog(LOG_ERR, _("Unable to set up an incoming vpn data socket"));
+      syslog(LOG_ERR, _("Unable to set up an incoming vpn data socket!"));
       close(myself->meta_socket);
       return -1;
     }
       close(myself->meta_socket);
       return -1;
     }
@@ -773,10 +799,12 @@ cp
       return NULL;
     }
 
       return NULL;
     }
 
+  p->name = unknown;
   p->address = ntohl(ci.sin_addr.s_addr);
   p->hostname = hostlookup(ci.sin_addr.s_addr);
   p->meta_socket = sfd;
   p->status.meta = 1;
   p->address = ntohl(ci.sin_addr.s_addr);
   p->hostname = hostlookup(ci.sin_addr.s_addr);
   p->meta_socket = sfd;
   p->status.meta = 1;
+  p->buffer = xmalloc(MAXBUFSIZE);
   p->buflen = 0;
   p->last_ping_time = time(NULL);
   p->want_ping = 0;
   p->buflen = 0;
   p->last_ping_time = time(NULL);
   p->want_ping = 0;
index 2547b1e..40f3ff0 100644 (file)
--- a/src/net.h
+++ b/src/net.h
@@ -16,7 +16,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id: net.h,v 1.9.4.16 2000/10/14 17:04:15 guus Exp $
+    $Id: net.h,v 1.9.4.17 2000/10/15 00:59:35 guus Exp $
 */
 
 #ifndef __TINC_NET_H__
 */
 
 #ifndef __TINC_NET_H__
@@ -44,7 +44,7 @@
                       ((unsigned char*)&(x))[1],((unsigned char*)&(x))[0]
 #endif
 
                       ((unsigned char*)&(x))[1],((unsigned char*)&(x))[0]
 #endif
 
-#define MAXBUFSIZE 2048 /* Probably way too much, but it must fit every possible request. */
+#define MAXBUFSIZE 4096 /* Probably way too much, but it must fit every possible request. */
 
 /* flags */
 #define INDIRECTDATA        0x0001 /* Used to indicate that this host has to be reached indirect */
 
 /* flags */
 #define INDIRECTDATA        0x0001 /* Used to indicate that this host has to be reached indirect */
@@ -124,6 +124,8 @@ extern int total_tap_out;
 extern int total_socket_in;
 extern int total_socket_out;
 
 extern int total_socket_in;
 extern int total_socket_out;
 
+extern char *unknown;
+
 extern char *request_name[256];
 extern char *status_text[10];
 
 extern char *request_name[256];
 extern char *status_text[10];
 
index 42b41eb..97e35e3 100644 (file)
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id: protocol.c,v 1.28.4.39 2000/10/14 17:04:15 guus Exp $
+    $Id: protocol.c,v 1.28.4.40 2000/10/15 00:59:35 guus Exp $
 */
 
 #include "config.h"
 */
 
 #include "config.h"
@@ -52,40 +52,40 @@ int check_id(char *id)
   int i;
 
   for (i = 0; i < strlen(id); i++)
   int i;
 
   for (i = 0; i < strlen(id); i++)
-    {
-      if(!isalpha(id[i]) && id[i] != '_')
-        {
-          return 0;
-        }
-    }
-
-  return 1;
+    if(!isalnum(id[i]) && id[i] != '_')
+      return -1;
+          
+  return 0;
 }
 
 /* Generic request routines - takes care of logging and error detection as well */
 
 }
 
 /* Generic request routines - takes care of logging and error detection as well */
 
-int send_request(conn_list_t *cl, const char *format, int request, /*args*/ ...)
+int send_request(conn_list_t *cl, const char *format, ...)
 {
   va_list args;
 {
   va_list args;
-  char buffer[MAXBUFSIZE+1];
-  int len;
+  char buffer[MAXBUFSIZE];
+  int len, request;
 
 cp
   /* Use vsnprintf instead of vasprintf: faster, no memory fragmentation, cleanup is automatic,
      and there is a limit on the input buffer anyway */
 
 
 cp
   /* Use vsnprintf instead of vasprintf: faster, no memory fragmentation, cleanup is automatic,
      and there is a limit on the input buffer anyway */
 
-  va_start(args, request);
-  len = vsnprintf(buffer, MAXBUFSIZE+1, format, args);
+  va_start(args, format);
+  len = vsnprintf(buffer, MAXBUFSIZE, format, args);
+  request = va_arg(args, int);
   va_end(args);
 
   va_end(args);
 
-  if(len < 0 || len > MAXBUFSIZE)
+  if(len < 0 || len > MAXBUFSIZE-1)
     {
       syslog(LOG_ERR, _("Output buffer overflow while sending %s to %s (%s)"), request_name[request], cl->name, cl->hostname);
       return -1;
     }
 
     {
       syslog(LOG_ERR, _("Output buffer overflow while sending %s to %s (%s)"), request_name[request], cl->name, cl->hostname);
       return -1;
     }
 
+  len++;
+
   if(debug_lvl >= DEBUG_PROTOCOL)
     syslog(LOG_DEBUG, _("Sending %s to %s (%s)"), request_name[request], cl->name, cl->hostname);
   if(debug_lvl >= DEBUG_PROTOCOL)
     syslog(LOG_DEBUG, _("Sending %s to %s (%s)"), request_name[request], cl->name, cl->hostname);
+
 cp
   return send_meta(cl, buffer, len);
 }
 cp
   return send_meta(cl, buffer, len);
 }
@@ -179,7 +179,7 @@ cp
 
   /* Check if identity is a valid name */
 
 
   /* Check if identity is a valid name */
 
-  if(!check_id(cl->name))
+  if(check_id(cl->name))
     {
       syslog(LOG_ERR, _("Peer %s uses invalid identity name"), cl->hostname);
       return -1;
     {
       syslog(LOG_ERR, _("Peer %s uses invalid identity name"), cl->hostname);
       return -1;
@@ -227,14 +227,14 @@ cp
 
   if(!cl->hischallenge)
     cl->hischallenge = xmalloc(CHAL_LENGTH);
 
   if(!cl->hischallenge)
     cl->hischallenge = xmalloc(CHAL_LENGTH);
-
+cp
   /* Copy random data to the buffer */
 
   RAND_bytes(cl->hischallenge, CHAL_LENGTH);
   /* Copy random data to the buffer */
 
   RAND_bytes(cl->hischallenge, CHAL_LENGTH);
-
+cp
   /* Convert the random data to a hexadecimal formatted string */
 
   /* Convert the random data to a hexadecimal formatted string */
 
-  bin2hex(cl->hischallenge,buffer,CHAL_LENGTH);
+  bin2hex(cl->hischallenge, buffer, CHAL_LENGTH);
   buffer[CHAL_LENGTH*2] = '\0';
 
   /* Send the challenge */
   buffer[CHAL_LENGTH*2] = '\0';
 
   /* Send the challenge */
@@ -442,7 +442,7 @@ cp
 
   /* Check if owner name is a valid */
 
 
   /* Check if owner name is a valid */
 
-  if(!check_id(name))
+  if(check_id(name))
     {
       syslog(LOG_ERR, _("Got bad ADD_SUBNET from %s (%s): invalid identity name"), cl->name, cl->hostname);
       free(name); free(subnetstr);
     {
       syslog(LOG_ERR, _("Got bad ADD_SUBNET from %s (%s): invalid identity name"), cl->name, cl->hostname);
       free(name); free(subnetstr);
@@ -510,7 +510,7 @@ cp
 
   /* Check if owner name is a valid */
 
 
   /* Check if owner name is a valid */
 
-  if(!check_id(name))
+  if(check_id(name))
     {
       syslog(LOG_ERR, _("Got bad DEL_SUBNET from %s (%s): invalid identity name"), cl->name, cl->hostname);
       free(name); free(subnetstr);
     {
       syslog(LOG_ERR, _("Got bad DEL_SUBNET from %s (%s): invalid identity name"), cl->name, cl->hostname);
       free(name); free(subnetstr);
@@ -580,7 +580,7 @@ cp
 
   /* Check if identity is a valid name */
 
 
   /* Check if identity is a valid name */
 
-  if(!check_id(new->name) || !check_id(sender))
+  if(check_id(new->name) || check_id(sender))
     {
       syslog(LOG_ERR, _("Got bad ADD_HOST from %s (%s): invalid identity name"), cl->name, cl->hostname);
       free(sender);
     {
       syslog(LOG_ERR, _("Got bad ADD_HOST from %s (%s): invalid identity name"), cl->name, cl->hostname);
       free(sender);
@@ -687,7 +687,7 @@ cp
 
   /* Check if identity is a valid name */
 
 
   /* Check if identity is a valid name */
 
-  if(!check_id(name) || !check_id(sender))
+  if(check_id(name) || check_id(sender))
     {
       syslog(LOG_ERR, _("Got bad DEL_HOST from %s (%s): invalid identity name"), cl->name, cl->hostname);
       free(name); free(sender);
     {
       syslog(LOG_ERR, _("Got bad DEL_HOST from %s (%s): invalid identity name"), cl->name, cl->hostname);
       free(name); free(sender);
@@ -804,12 +804,12 @@ int error_h(conn_list_t *cl)
 cp
   if(sscanf(cl->buffer, "%*d %d %as", &errno, &errorstring) != 2)
     {
 cp
   if(sscanf(cl->buffer, "%*d %d %as", &errno, &errorstring) != 2)
     {
-       syslog(LOG_ERR, _("Got bad error from %s (%s)"),
+       syslog(LOG_ERR, _("Got bad ERROR from %s (%s)"),
               cl->name, cl->hostname);
        return -1;
     }
 
               cl->name, cl->hostname);
        return -1;
     }
 
-  if(debug_lvl > DEBUG_error)
+  if(debug_lvl > DEBUG_ERROR)
     {
       syslog(LOG_NOTICE, _("Error message from %s (%s): %s: %s"),
              cl->name, cl->hostname, strerror(errno), errorstring);
     {
       syslog(LOG_NOTICE, _("Error message from %s (%s): %s: %s"),
              cl->name, cl->hostname, strerror(errno), errorstring);
index 1104178..2737258 100644 (file)
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id: protocol.h,v 1.5.4.10 2000/10/11 22:01:02 guus Exp $
+    $Id: protocol.h,v 1.5.4.11 2000/10/15 00:59:36 guus Exp $
 */
 
 #ifndef __TINC_PROTOCOL_H__
 */
 
 #ifndef __TINC_PROTOCOL_H__
@@ -37,7 +37,7 @@
    quite large.
  */
 
    quite large.
  */
 
-#define CHAL_LENGTH 2048
+#define CHAL_LENGTH 1024 /* Okay, this is probably waaaaaaaaaaay too large */
 
 /* Request numbers */
 
 
 /* Request numbers */
 
index a7312ba..12b78ef 100644 (file)
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id: subnet.c,v 1.1.2.3 2000/10/11 22:01:02 guus Exp $
+    $Id: subnet.c,v 1.1.2.4 2000/10/15 00:59:37 guus Exp $
 */
 
 #include "config.h"
 */
 
 #include "config.h"
@@ -145,7 +145,7 @@ cp
   switch(subnet->type)
     {
       case SUBNET_MAC:
   switch(subnet->type)
     {
       case SUBNET_MAC:
-        asprintf(netstr, "%d,%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", subnet->type,
+        asprintf(&netstr, "%d,%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", subnet->type,
                    subnet->net.mac.address.x[0],
                    subnet->net.mac.address.x[1],
                    subnet->net.mac.address.x[2],
                    subnet->net.mac.address.x[0],
                    subnet->net.mac.address.x[1],
                    subnet->net.mac.address.x[2],
@@ -153,9 +153,9 @@ cp
                    subnet->net.mac.address.x[4],
                    subnet->net.mac.address.x[5]);
       case SUBNET_IPV4:
                    subnet->net.mac.address.x[4],
                    subnet->net.mac.address.x[5]);
       case SUBNET_IPV4:
-        asprintf(netstr, "%d,%lx:%lx", subnet->type, subnet->net.ipv4.address, subnet->net.ipv4.mask);
+        asprintf(&netstr, "%d,%lx:%lx", subnet->type, subnet->net.ipv4.address, subnet->net.ipv4.mask);
       case SUBNET_IPV6:
       case SUBNET_IPV6:
-        asprintf(netstr, "%d,%hx:%hx:%hx:%hx:%hx:%hx:%hx:%hx/%hx:%hx:%hx:%hx:%hx:%hx:%hx:%hx",
+        asprintf(&netstr, "%d,%hx:%hx:%hx:%hx:%hx:%hx:%hx:%hx/%hx:%hx:%hx:%hx:%hx:%hx:%hx:%hx",
                    subnet->net.ipv6.address.x[0],
                    subnet->net.ipv6.address.x[1],
                    subnet->net.ipv6.address.x[2],
                    subnet->net.ipv6.address.x[0],
                    subnet->net.ipv6.address.x[1],
                    subnet->net.ipv6.address.x[2],
index b016e12..0536d96 100644 (file)
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id: tincd.c,v 1.10.4.11 2000/10/14 17:04:16 guus Exp $
+    $Id: tincd.c,v 1.10.4.12 2000/10/15 00:59:37 guus Exp $
 */
 
 #include "config.h"
 */
 
 #include "config.h"
@@ -64,7 +64,6 @@ static int kill_tincd = 0;
 static int do_detach = 1;
 
 char *identname;                 /* program name for syslog */
 static int do_detach = 1;
 
 char *identname;                 /* program name for syslog */
-char *netname = NULL;            /* name of the vpn network */
 char *pidfilename;               /* pid file location */
 static pid_t ppid;               /* pid of non-detached part */
 char **g_argv;                   /* a copy of the cmdline arguments */
 char *pidfilename;               /* pid file location */
 static pid_t ppid;               /* pid of non-detached part */
 char **g_argv;                   /* a copy of the cmdline arguments */
@@ -180,7 +179,7 @@ int detach(void)
       if(pid) /* parent process */
        {
          signal(SIGTERM, parent_exit);
       if(pid) /* parent process */
        {
          signal(SIGTERM, parent_exit);
-         sleep(600); /* wait 10 minutes */
+//       sleep(600); /* wait 10 minutes */
          exit(1);
        }
     }
          exit(1);
        }
     }
@@ -302,6 +301,7 @@ void make_names(void)
     }
   else
     {
     }
   else
     {
+      netname = "bla";
       if(!pidfilename)
         pidfilename = "/var/run/tinc.pid";
       if(!confbase)
       if(!pidfilename)
         pidfilename = "/var/run/tinc.pid";
       if(!confbase)
@@ -320,17 +320,20 @@ main(int argc, char **argv, char **envp)
   bindtextdomain (PACKAGE, LOCALEDIR);
   textdomain (PACKAGE);
 
   bindtextdomain (PACKAGE, LOCALEDIR);
   textdomain (PACKAGE);
 
+  /* Do some intl stuff right now */
+  
+  unknown = _("unknown");
+
   parse_options(argc, argv, envp);
 
   if(show_version)
     {
       printf(_("%s version %s (built %s %s, protocol %d)\n"), PACKAGE, VERSION, __DATE__, __TIME__, PROT_CURRENT);
   parse_options(argc, argv, envp);
 
   if(show_version)
     {
       printf(_("%s version %s (built %s %s, protocol %d)\n"), PACKAGE, VERSION, __DATE__, __TIME__, PROT_CURRENT);
-      printf(_("Copyright (C) 1998,1999,2000 Ivo Timmermans and others,\n"
-              "see the AUTHORS file for a complete list.\n\n"
+      printf(_("Copyright (C) 1998,1999,2000 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"
               "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\n"));
-      printf(_("This product includes software developed by Eric Young (eay@mincom.oz.au)\n"));
+              "see the file COPYING for details.\n"));
 
       return 0;
     }
 
       return 0;
     }
@@ -365,14 +368,25 @@ main(int argc, char **argv, char **envp)
 */
   for(;;)
     {
 */
   for(;;)
     {
-      setup_network_connections();
-
-      main_loop();
-
-      cleanup_and_exit(1);
-
-      syslog(LOG_ERR, _("Unrecoverable error, restarting in %d seconds!"), MAXTIMEOUT);
-      sleep(MAXTIMEOUT);
+      if(!setup_network_connections())
+        {
+          main_loop();
+          cleanup_and_exit(1);
+         }
+      
+      syslog(LOG_ERR, _("Unrecoverable error"));
+      cp_trace();
+
+      if(do_detach)
+        {
+          syslog(LOG_NOTICE, _("Restarting in %d seconds!"), MAXTIMEOUT);
+          sleep(MAXTIMEOUT);
+        }
+      else
+        {
+          syslog(LOG_ERR, _("Aieee! Not restarting."));
+          exit(0);
+        }
     }
 }
 
     }
 }
 
@@ -395,23 +409,30 @@ sigquit_handler(int a)
 RETSIGTYPE
 sigsegv_square(int a)
 {
 RETSIGTYPE
 sigsegv_square(int a)
 {
-  syslog(LOG_NOTICE, _("Got another SEGV signal: not restarting"));
+  syslog(LOG_ERR, _("Got another SEGV signal: not restarting"));
   exit(0);
 }
 
 RETSIGTYPE
 sigsegv_handler(int a)
 {
   exit(0);
 }
 
 RETSIGTYPE
 sigsegv_handler(int a)
 {
-  if(cp_file)
-    syslog(LOG_NOTICE, _("Got SEGV signal after %s line %d, trying to re-execute"),
-          cp_file, cp_line);
-  else
-    syslog(LOG_NOTICE, _("Got SEGV signal, trying to re-execute"));
+  syslog(LOG_ERR, _("Got SEGV signal"));
+  cp_trace();
 
 
-  signal(SIGSEGV, sigsegv_square);
-  close_network_connections();
-  remove_pid(pidfilename);
-  execvp(g_argv[0], g_argv);
+  if(do_detach)
+    {
+      syslog(LOG_NOTICE, _("Trying to re-execute in 5 seconds..."));
+      signal(SIGSEGV, sigsegv_square);
+      close_network_connections();
+      sleep(5);
+      remove_pid(pidfilename);
+      execvp(g_argv[0], g_argv);
+    }
+  else
+    {
+      syslog(LOG_NOTICE, _("Aieee! Not restarting."));
+      exit(0);
+    }
 }
 
 RETSIGTYPE
 }
 
 RETSIGTYPE
@@ -449,11 +470,8 @@ sigusr2_handler(int a)
 RETSIGTYPE
 sighuh(int a)
 {
 RETSIGTYPE
 sighuh(int a)
 {
-  if(cp_file)
-    syslog(LOG_NOTICE, _("Got unexpected %s after %s line %d"),
-          strsignal(a), cp_file, cp_line);
-  else
-    syslog(LOG_NOTICE, _("Got unexpected %s"), strsignal(a));
+  syslog(LOG_WARNING, _("Got unexpected signal %d (%s)"), a, strsignal(a));
+  cp_trace();
 }
 
 void
 }
 
 void