- 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
-    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
 #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";
 
@@ -37,19 +40,33 @@ int charhex2bin(char c)
     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]);
 }
 
-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--)
     {
-      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
-    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
@@ -26,18 +27,21 @@ enum {
   DEBUG_CONNECTIONS = 0,
   DEBUG_PROTOCOL,
   DEBUG_STATUS,
-  DEBUG_error,
+  DEBUG_ERROR,
   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__ */
index 976c6fd..df8b507 100644 (file)
@@ -4,10 +4,12 @@
 # Package source files
 
 lib/pidfile.c
+lib/utils.c
 src/conf.c
-src/encr.c
 src/genauth.c
+src/meta.c
 src/net.c
 src/netutl.c
 src/protocol.c
+src/subnet.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"
-"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"
@@ -13,773 +13,677 @@ msgstr ""
 "Content-Type: text/plain; charset=iso-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: src/conf.c:178
+#: src/conf.c:164
 #, 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
-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
-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
-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
-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
-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
-msgid "Generating %d bits keys"
+msgid "Generating %d bits keys:\n"
 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
-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
-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:118
+#: src/net.c:115
 #, 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
-msgid "Receiving packet of %d bytes from %s (%s)"
+msgid "Receiving packet of %d bytes"
 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"
 
-#: 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"
 
-#: 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 "
 
-#: 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 "
 
-#: src/net.c:336
+#: src/net.c:283
 #, 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
-msgid "Indirect packet to %s via %s"
+msgid "No valid key known yet for %s (%s), queueing packet"
 msgstr ""
 
-#: src/net.c:380
+#: src/net.c:316
 #, c-format
-msgid "Indirect look up %d.%d.%d.%d in connection list failed!"
+msgid "%s (%s) is not ready, queueing packet"
 msgstr ""
 
-#: src/net.c:390
+#: src/net.c:344
 #, 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
-msgid "%s (%s) has no valid key, queueing packet"
+msgid "%s is a new style tun/tap device"
 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 ""
 
-#: src/net.c:467
+#: src/net.c:384
 #, 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"
 
-#: src/net.c:486 src/net.c:548
+#: src/net.c:403 src/net.c:465
 #, 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 ""
 
-#: 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"
 
-#: src/net.c:516
+#: src/net.c:433
 #, 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"
 
-#: 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"
 
-#: src/net.c:576
+#: src/net.c:493
 #, 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"
 
-#: src/net.c:597
+#: src/net.c:514
 #, 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 ""
 
-#: src/net.c:610
+#: src/net.c:527
 #, 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"
 
-#: 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."
 
-#: 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"
 
-#: 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"
 
-#: src/net.c:703
+#: src/net.c:632
 #, 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."
 
-#: 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."
 
-#: src/net.c:806
+#: src/net.c:736
 #, 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 "
 
-#: src/net.c:825
+#: src/net.c:755
 #, 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"
 
-#: 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"
 
-#: src/net.c:881
+#: src/net.c:813
 #, 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
-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"
 
-#: src/net.c:945
+#: src/net.c:873
 #, fuzzy, c-format
-msgid "Receiving packet from %s (%s) failed: %m"
+msgid "Receiving packet failed: %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."
 
-#: 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."
 
-#: src/net.c:1067
+#: src/net.c:967
 #, 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"
 
-#: src/net.c:1106
+#: src/net.c:1006
 #, 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"
 
-#: src/net.c:1302
+#: src/net.c:1077
 #, 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 "
 
-#: 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"
 
-#: 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"
 
-#: src/netutl.c:244
-msgid "Connection list:"
-msgstr "Lista de conexiones:"
-
-#: src/netutl.c:248
+#: src/protocol.c:80
 #, 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 ""
 
-#: src/protocol.c:56
+#: src/protocol.c:87
 #, fuzzy, c-format
-msgid "Sending ACK to %s (%s)"
+msgid "Sending %s to %s (%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
-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
-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
-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
-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
-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
-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
-msgid "Sending ADD_HOST for %s (%s) to %s (%s)"
+msgid "Peer %s uses invalid identity name"
 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
-msgid "Attempting to send REQ_KEY to %d.%d.%d.%d, which does not exist?"
+msgid "Peer %s had unknown identity (%s)"
 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
-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 ""
 
-#: 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
-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 ""
-"La máquina remota usa una versión incompatible del protocolo (versión %d)."
 
-#: src/protocol.c:452
+#: src/protocol.c:287
 #, 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 ""
 
-#: 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
-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 ""
 
-#: 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."
 
-#: 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
-msgid "Got unauthorized TIMEOUT from %s (%s)"
+msgid "Warning: got ADD_SUBNET from %s (%s) for ourself, restarting"
 msgstr ""
 
-#: src/protocol.c:610
+#: src/protocol.c:478
 #, 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 ""
 
-#: src/protocol.c:626
+#: src/protocol.c:506
 #, 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"
 
-#: src/protocol.c:633
+#: src/protocol.c:515
 #, 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"
 
-#: 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
-msgid "Got DEL_HOST for %s (%s) from %s (%s)"
+msgid "Warning: got DEL_SUBNET from %s (%s) for ourself, restarting"
 msgstr ""
 
-#: src/protocol.c:674
+#: src/protocol.c:546
 #, 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 ""
 
-#: 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
-msgid "Got PACKET length %d from %s (%s)"
+msgid "Warning: got ADD_HOST from %s (%s) for ourself, restarting"
 msgstr ""
 
-#: src/protocol.c:708
+#: src/protocol.c:604
 #, c-format
-msgid "Got unauthorized PING from %s (%s)"
+msgid "Warning: got ADD_HOST from %s (%s) from ourself, restarting"
 msgstr ""
 
-#: src/protocol.c:714
+#: src/protocol.c:614
 #, 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 ""
 
-#: src/protocol.c:730
+#: src/protocol.c:633
 #, c-format
-msgid "Got unauthorized PONG from %s (%s)"
+msgid "Got duplicate ADD_HOST for %s (%s) from %s (%s)"
 msgstr ""
 
-#: src/protocol.c:736
+#: src/protocol.c:640
 #, c-format
-msgid "Got PONG from %s (%s)"
+msgid "Removing old entry for %s (%s)"
 msgstr ""
 
-#: src/protocol.c:755
+#: src/protocol.c:683
 #, 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
-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
-msgid "Got duplicate ADD_HOST for %s (%s) from %s (%s)"
+msgid "Warning: got DEL_HOST from %s (%s) for ourself, restarting"
 msgstr ""
 
-#: src/protocol.c:779
+#: src/protocol.c:712
 #, c-format
-msgid "Removing old entry for %s (%s)"
+msgid "Warning: got DEL_HOST from %s (%s) from ourself, restarting"
 msgstr ""
 
-#: src/protocol.c:789
+#: src/protocol.c:722
 #, 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 ""
 
-#: src/protocol.c:809
+#: src/protocol.c:734
 #, 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 ""
 
-#: 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
-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
-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 ""
 
-#: src/protocol.c:925
+#: src/protocol.c:929
 #, 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
-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 ""
 
-#: src/protocol.c:940
+#: src/protocol.c:952
 #, 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 ""
 
-#: 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
-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 ""
 
-#: 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
-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
-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 ""
 
-#: 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"
 
-#: src/tincd.c:99
+#: src/tincd.c:97
 #, c-format
 msgid ""
 "Usage: %s [option]...\n"
@@ -788,9 +692,10 @@ msgstr ""
 "Modo de empleo: %s [opción]...\n"
 "\n"
 
-#: src/tincd.c:100
+#: src/tincd.c:98
+#, fuzzy
 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"
@@ -805,7 +710,7 @@ msgstr ""
 "  -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"
@@ -815,75 +720,80 @@ msgstr ""
 "      --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"
 
-#: 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"
 
-#: 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."
 
-#: 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."
 
-#: src/tincd.c:218
+#: src/tincd.c:216
 #, 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."
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: src/tincd.c:284
+#: src/tincd.c:282
 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 ""
 
-#: src/tincd.c:335
+#: src/tincd.c:332
+#, fuzzy
 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"
 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"
 
-#: 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"
 
-#: src/tincd.c:380
+#: src/tincd.c:377
+msgid "Unrecoverable error"
+msgstr ""
+
+#: src/tincd.c:382
 #, 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 ""
 
-#: src/tincd.c:389
+#: src/tincd.c:397
 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"
 
-#: src/tincd.c:404
+#: src/tincd.c:412
 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
-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 ""
 
-#: src/tincd.c:435
+#: src/tincd.c:450
 #, 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"
 
-#: 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
-msgid "Got unexpected signal %d"
+msgid "Got unexpected signal %d (%s)"
 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"
 
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.
-#
 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"
-"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"
 
-#: src/conf.c:178
+#: src/conf.c:164
 #, 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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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:118
+#: src/net.c:115
 #, 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
-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"
 
-#: 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"
 
-#: 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)"
 
-#: 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)"
 
-#: 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!"
 
-#: 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
-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
-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
-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
-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
-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"
 
-#: 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"
 
-#: src/net.c:486 src/net.c:548
+#: src/net.c:403 src/net.c:465
 #, 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"
 
-#: 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"
 
-#: src/net.c:516
+#: src/net.c:433
 #, 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"
 
-#: 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"
 
-#: src/net.c:576
+#: src/net.c:493
 #, 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"
 
-#: src/net.c:597
+#: src/net.c:514
 #, 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"
 
-#: src/net.c:610
+#: src/net.c:527
 #, 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: src/net.c:806
+#: src/net.c:736
 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"
 
-#: src/net.c:825
+#: src/net.c:755
 #, 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"
 
-#: 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"
 
-#: src/net.c:881
+#: src/net.c:813
 #, 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
-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
-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)"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: src/net.c:1106
+#: src/net.c:1006
 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"
 
-#: 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"
 
-#: src/net.c:1312
+#: src/net.c:1087
 #, 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"
 
-#: 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"
 
-#: src/netutl.c:244
-msgid "Connection list:"
-msgstr "Verbindingslijst:"
-
-#: src/netutl.c:248
+#: src/protocol.c:80
 #, 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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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 ""
-"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
-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
-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
-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
-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
-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
-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
-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)"
 
-#: src/protocol.c:640
+#: src/protocol.c:692
 #, 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"
 
-#: src/protocol.c:655
+#: src/protocol.c:712
 #, 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
-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
-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
-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
-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
-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
-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
-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
-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
-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)"
 
-#: 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
-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
-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)"
 
-#: 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 ""
-"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
-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
-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"
 
-#: src/tincd.c:99
+#: src/tincd.c:97
 #, c-format
 msgid ""
 "Usage: %s [option]...\n"
@@ -786,23 +711,23 @@ msgstr ""
 "Gebruik: %s [optie]...\n"
 "\n"
 
-#: src/tincd.c:100
+#: src/tincd.c:98
 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 ""
-"  -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"
 
-#: src/tincd.c:106
+#: src/tincd.c:104
 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"
 
-#: 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"
-"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"
 
-#: 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."
 
-#: 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"
 
-#: src/tincd.c:218
+#: src/tincd.c:216
 #, 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."
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: src/tincd.c:277
+#: src/tincd.c:275
 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"
 
-#: 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"
 
-#: src/tincd.c:335
+#: src/tincd.c:332
 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"
 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"
-
-#: 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"
 
-#: src/tincd.c:380
+#: src/tincd.c:377
+msgid "Unrecoverable error"
+msgstr "Onherstelbare fout"
+
+#: src/tincd.c:382
 #, 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"
 
-#: src/tincd.c:397
+#: src/tincd.c:405
 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"
 
-#: 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"
 
-#: src/tincd.c:435
+#: src/tincd.c:450
 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"
 
-#: src/tincd.c:457
+#: src/tincd.c:473
 #, 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.
 
-    $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"
 
-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 */
+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;
@@ -58,6 +59,7 @@ static internal_config_t hazahaza[] = {
   { "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 },
@@ -116,22 +118,17 @@ cp
 
   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;
     }
-
-  free(p);
+  else
+    {
+      free(p);
 cp
-  return NULL;
+      return NULL;
+    }
 }
 
 /*
@@ -215,7 +212,7 @@ int read_server_config()
   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
@@ -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)
-      return p;
+      break;
 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)
-        return p;
+        break;
 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.
 
-    $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__
@@ -35,6 +35,7 @@ typedef enum which_t {
   connectto,
   pingtimeout,
   tapdevice,
+  tapsubnet,
   privatekey,
   keyexpire,
   resolve_dns,
@@ -88,6 +89,7 @@ extern int timeout;
 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 *);
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.
 
-    $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>
@@ -53,7 +53,7 @@ cp
     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);
@@ -61,6 +61,8 @@ cp
     RSA_free(p->public_key);
   if(p->cipher_pktkey)
     free(p->cipher_pktkey);
+  if(p->buffer)
+    free(p->buffer);
   free(p);
 cp
 }
@@ -214,7 +216,7 @@ int read_host_config(conn_list_t *cl)
   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
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.
 
-    $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"
@@ -98,7 +98,8 @@ int main(int argc, char **argv)
 
   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;
 }
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.
 
-    $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"
@@ -42,6 +42,8 @@ cp
     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);
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.
 
-    $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 <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>
 
@@ -59,6 +63,8 @@ int total_socket_out = 0;
 int upstreamindex = 0;
 static int seconds_till_retry;
 
+char *unknown = NULL;
+
 /*
   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;
+  struct ifreq ifr;
 cp  
-  if((cfg = get_config_val(config, tapdevice)) == NULL)
-    tapfname = "/dev/tap0";
-  else
+  if((cfg = get_config_val(config, tapdevice)))
     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;
     }
-
+cp
   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;
 }
@@ -554,6 +579,7 @@ cp
 
   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 */
     {
@@ -590,13 +616,13 @@ cp
 
   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)
     {
-      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;
     }
@@ -773,10 +799,12 @@ cp
       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->buffer = xmalloc(MAXBUFSIZE);
   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.
 
-    $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__
@@ -44,7 +44,7 @@
                       ((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 */
@@ -124,6 +124,8 @@ extern int total_tap_out;
 extern int total_socket_in;
 extern int total_socket_out;
 
+extern char *unknown;
+
 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.
 
-    $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"
@@ -52,40 +52,40 @@ int check_id(char *id)
   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 */
 
-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;
-  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 */
 
-  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);
 
-  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;
     }
 
+  len++;
+
   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);
 }
@@ -179,7 +179,7 @@ cp
 
   /* 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;
@@ -227,14 +227,14 @@ cp
 
   if(!cl->hischallenge)
     cl->hischallenge = xmalloc(CHAL_LENGTH);
-
+cp
   /* Copy random data to the buffer */
 
   RAND_bytes(cl->hischallenge, CHAL_LENGTH);
-
+cp
   /* 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 */
@@ -442,7 +442,7 @@ cp
 
   /* 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);
@@ -510,7 +510,7 @@ cp
 
   /* 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);
@@ -580,7 +580,7 @@ cp
 
   /* 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);
@@ -687,7 +687,7 @@ cp
 
   /* 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);
@@ -804,12 +804,12 @@ int error_h(conn_list_t *cl)
 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;
     }
 
-  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);
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.
 
-    $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__
@@ -37,7 +37,7 @@
    quite large.
  */
 
-#define CHAL_LENGTH 2048
+#define CHAL_LENGTH 1024 /* Okay, this is probably waaaaaaaaaaay too large */
 
 /* 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.
 
-    $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"
@@ -145,7 +145,7 @@ cp
   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],
@@ -153,9 +153,9 @@ cp
                    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:
-        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],
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.
 
-    $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"
@@ -64,7 +64,6 @@ static int kill_tincd = 0;
 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 */
@@ -180,7 +179,7 @@ int detach(void)
       if(pid) /* parent process */
        {
          signal(SIGTERM, parent_exit);
-         sleep(600); /* wait 10 minutes */
+//       sleep(600); /* wait 10 minutes */
          exit(1);
        }
     }
@@ -302,6 +301,7 @@ void make_names(void)
     }
   else
     {
+      netname = "bla";
       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);
 
+  /* 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);
-      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"
-              "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;
     }
@@ -365,14 +368,25 @@ main(int argc, char **argv, char **envp)
 */
   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)
 {
-  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)
 {
-  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
@@ -449,11 +470,8 @@ sigusr2_handler(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