refactoring dns service to take stub code into separate library for use in gns2dns...
authorChristian Grothoff <christian@grothoff.org>
Tue, 21 Aug 2012 06:01:06 +0000 (06:01 +0000)
committerChristian Grothoff <christian@grothoff.org>
Tue, 21 Aug 2012 06:01:06 +0000 (06:01 +0000)
po/de.po
po/es.po
po/sv.po
po/vi.po
po/zh_CN.po
src/dns/Makefile.am
src/dns/dnsstub.c [new file with mode: 0644]
src/dns/gnunet-service-dns.c
src/include/Makefile.am
src/include/gnunet_dnsstub_lib.h [new file with mode: 0644]

index 7069452372f2332ec8084ec285f70e5eff39ff34..6161788be270efa3999847c79091273ddcc503d0 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNUnet 0.7.0b\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
-"POT-Creation-Date: 2012-07-20 19:29+0200\n"
+"POT-Creation-Date: 2012-08-17 00:17+0200\n"
 "PO-Revision-Date: 2006-03-17 21:37+0100\n"
 "Last-Translator: Nils Durner <durner@gnunet.org>\n"
 "Language-Team: German <de@li.org>\n"
@@ -716,7 +716,7 @@ msgid "# keepalive messages sent"
 msgstr "# Klartext PING Nachrichten gesendet"
 
 #: src/core/gnunet-service-core_kx.c:1236
-#: src/transport/gnunet-service-transport_validation.c:1096
+#: src/transport/gnunet-service-transport_validation.c:1108
 #, fuzzy
 msgid "# PONG messages received"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
@@ -818,11 +818,11 @@ msgstr "Ungültige Nachricht des Typs %u empfangen. Nachricht wird verworfen.\n"
 #: src/fs/gnunet-service-fs_cp.c:622 src/fs/gnunet-service-fs_cp.c:1530
 #: src/topology/gnunet-daemon-topology.c:709
 #: src/topology/gnunet-daemon-topology.c:810
-#: src/transport/gnunet-service-transport_neighbours.c:890
-#: src/transport/gnunet-service-transport_neighbours.c:1106
-#: src/transport/gnunet-service-transport_neighbours.c:1115
-#: src/transport/gnunet-service-transport_neighbours.c:2637
-#: src/transport/gnunet-service-transport_neighbours.c:2899
+#: src/transport/gnunet-service-transport_neighbours.c:873
+#: src/transport/gnunet-service-transport_neighbours.c:1089
+#: src/transport/gnunet-service-transport_neighbours.c:1098
+#: src/transport/gnunet-service-transport_neighbours.c:2620
+#: src/transport/gnunet-service-transport_neighbours.c:2882
 #, fuzzy
 msgid "# peers connected"
 msgstr "# verbundener Knoten"
@@ -889,8 +889,8 @@ msgstr ""
 #: src/mysql/mysql.c:591 src/mysql/mysql.c:607
 #: src/namestore/plugin_namestore_postgres.c:52
 #: src/namestore/plugin_namestore_sqlite.c:51 src/util/crypto_ksk.c:49
-#: src/util/crypto_rsa.c:66 src/include/gnunet_common.h:535
-#: src/include/gnunet_common.h:542
+#: src/util/crypto_rsa.c:66 src/include/gnunet_common.h:543
+#: src/include/gnunet_common.h:550
 #, c-format
 msgid "`%s' failed at %s:%d with error: %s\n"
 msgstr "`%s' schlug bei %s:%d mit dem Fehler %s fehl\n"
@@ -1671,11 +1671,11 @@ msgstr "Empfangene Client-Nachricht ist ungültig.\n"
 msgid "Configured DNS exit `%s' is not working / valid.\n"
 msgstr ""
 
-#: src/dns/gnunet-service-dns.c:1497 src/exit/gnunet-daemon-exit.c:2674
+#: src/dns/gnunet-service-dns.c:1497 src/exit/gnunet-daemon-exit.c:2673
 msgid "# Inbound MESH tunnels created"
 msgstr ""
 
-#: src/dns/gnunet-service-dns.c:1561 src/exit/gnunet-daemon-exit.c:3033
+#: src/dns/gnunet-service-dns.c:1561 src/exit/gnunet-daemon-exit.c:3032
 #, c-format
 msgid "`%s' must be installed SUID, refusing to run\n"
 msgstr ""
@@ -1699,200 +1699,200 @@ msgstr "Beschädigte Nachricht von Knoten `%s' in %s:%d empfangen.\n"
 msgid "Got duplicate service records for `%s:%u'\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:563
+#: src/exit/gnunet-daemon-exit.c:561
 #, fuzzy
 msgid "# Bytes transmitted via mesh tunnels"
 msgstr "# Bytes des Typs %d übertragen"
 
-#: src/exit/gnunet-daemon-exit.c:679 src/exit/gnunet-daemon-exit.c:2069
-#: src/exit/gnunet-daemon-exit.c:2319 src/vpn/gnunet-service-vpn.c:1394
-#: src/vpn/gnunet-service-vpn.c:1795 src/vpn/gnunet-service-vpn.c:1958
+#: src/exit/gnunet-daemon-exit.c:678 src/exit/gnunet-daemon-exit.c:2068
+#: src/exit/gnunet-daemon-exit.c:2318 src/vpn/gnunet-service-vpn.c:1392
+#: src/vpn/gnunet-service-vpn.c:1793 src/vpn/gnunet-service-vpn.c:1956
 msgid "# ICMPv4 packets dropped (type not allowed)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:716 src/exit/gnunet-daemon-exit.c:2128
-#: src/exit/gnunet-daemon-exit.c:2378 src/vpn/gnunet-service-vpn.c:1450
-#: src/vpn/gnunet-service-vpn.c:1854 src/vpn/gnunet-service-vpn.c:1991
+#: src/exit/gnunet-daemon-exit.c:715 src/exit/gnunet-daemon-exit.c:2127
+#: src/exit/gnunet-daemon-exit.c:2377 src/vpn/gnunet-service-vpn.c:1448
+#: src/vpn/gnunet-service-vpn.c:1852 src/vpn/gnunet-service-vpn.c:1989
 msgid "# ICMPv6 packets dropped (type not allowed)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:756
+#: src/exit/gnunet-daemon-exit.c:755
 msgid "# ICMP packets dropped (not allowed)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:763
+#: src/exit/gnunet-daemon-exit.c:762
 msgid "ICMP Packet dropped, have no matching connection information\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:840
+#: src/exit/gnunet-daemon-exit.c:839
 msgid "UDP Packet dropped, have no matching connection information\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:915
+#: src/exit/gnunet-daemon-exit.c:914
 msgid "TCP Packet dropped, have no matching connection information\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:968
+#: src/exit/gnunet-daemon-exit.c:967
 #, fuzzy
 msgid "# Packets received from TUN"
 msgstr "# Bytes empfangen über HTTP"
 
-#: src/exit/gnunet-daemon-exit.c:982
+#: src/exit/gnunet-daemon-exit.c:981
 #, fuzzy
 msgid "# Bytes received from TUN"
 msgstr "# Bytes empfangen über HTTP"
 
-#: src/exit/gnunet-daemon-exit.c:1008
+#: src/exit/gnunet-daemon-exit.c:1007
 msgid "IPv4 packet options received.  Ignored.\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1035
+#: src/exit/gnunet-daemon-exit.c:1034
 #, c-format
 msgid "IPv4 packet with unsupported next header %u received.  Ignored.\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1081
+#: src/exit/gnunet-daemon-exit.c:1080
 #, c-format
 msgid "IPv6 packet with unsupported next header %d received.  Ignored.\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1089
+#: src/exit/gnunet-daemon-exit.c:1088
 #, c-format
 msgid "Packet from unknown protocol %u received.  Ignored.\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1471
+#: src/exit/gnunet-daemon-exit.c:1470
 #, fuzzy
 msgid "# TCP packets sent via TUN"
 msgstr "# Bytes gesendet über UDP"
 
-#: src/exit/gnunet-daemon-exit.c:1571
+#: src/exit/gnunet-daemon-exit.c:1570
 #, fuzzy
 msgid "# TCP service creation requests received via mesh"
 msgstr "# Client Trace-Anfragen empfangen"
 
-#: src/exit/gnunet-daemon-exit.c:1574 src/exit/gnunet-daemon-exit.c:1653
-#: src/exit/gnunet-daemon-exit.c:1763 src/exit/gnunet-daemon-exit.c:1993
-#: src/exit/gnunet-daemon-exit.c:2235 src/exit/gnunet-daemon-exit.c:2516
-#: src/exit/gnunet-daemon-exit.c:2616
+#: src/exit/gnunet-daemon-exit.c:1573 src/exit/gnunet-daemon-exit.c:1652
+#: src/exit/gnunet-daemon-exit.c:1762 src/exit/gnunet-daemon-exit.c:1992
+#: src/exit/gnunet-daemon-exit.c:2234 src/exit/gnunet-daemon-exit.c:2515
+#: src/exit/gnunet-daemon-exit.c:2615
 #, fuzzy
 msgid "# Bytes received from MESH"
 msgstr "# Bytes empfangen über HTTP"
 
-#: src/exit/gnunet-daemon-exit.c:1607 src/exit/gnunet-daemon-exit.c:2638
+#: src/exit/gnunet-daemon-exit.c:1606 src/exit/gnunet-daemon-exit.c:2637
 #, c-format
 msgid "No service found for %s on port %d!\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1611
+#: src/exit/gnunet-daemon-exit.c:1610
 #, fuzzy
 msgid "# TCP requests dropped (no such service)"
 msgstr "# gap Anfragen verworfen: Kollision in RT"
 
-#: src/exit/gnunet-daemon-exit.c:1656
+#: src/exit/gnunet-daemon-exit.c:1655
 #, fuzzy
 msgid "# TCP IP-exit creation requests received via mesh"
 msgstr "# Client Trace-Anfragen empfangen"
 
-#: src/exit/gnunet-daemon-exit.c:1766
+#: src/exit/gnunet-daemon-exit.c:1765
 #, fuzzy
 msgid "# TCP data requests received via mesh"
 msgstr "# Client Trace-Anfragen empfangen"
 
-#: src/exit/gnunet-daemon-exit.c:1780
+#: src/exit/gnunet-daemon-exit.c:1779
 #, fuzzy
 msgid "# TCP DATA requests dropped (no session)"
 msgstr "# gap Anfragen verworfen: Kollision in RT"
 
-#: src/exit/gnunet-daemon-exit.c:1830
+#: src/exit/gnunet-daemon-exit.c:1829
 #, fuzzy
 msgid "# ICMP packets sent via TUN"
 msgstr "# Bytes gesendet über UDP"
 
-#: src/exit/gnunet-daemon-exit.c:1996
+#: src/exit/gnunet-daemon-exit.c:1995
 #, fuzzy
 msgid "# ICMP IP-exit requests received via mesh"
 msgstr "# Client Trace-Anfragen empfangen"
 
-#: src/exit/gnunet-daemon-exit.c:2238
+#: src/exit/gnunet-daemon-exit.c:2237
 #, fuzzy
 msgid "# ICMP service requests received via mesh"
 msgstr "Empfangene Client-Nachricht ist ungültig.\n"
 
-#: src/exit/gnunet-daemon-exit.c:2304 src/vpn/gnunet-service-vpn.c:1384
-#: src/vpn/gnunet-service-vpn.c:1952
+#: src/exit/gnunet-daemon-exit.c:2303 src/vpn/gnunet-service-vpn.c:1382
+#: src/vpn/gnunet-service-vpn.c:1950
 msgid "# ICMPv4 packets dropped (impossible PT to v6)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:2363 src/vpn/gnunet-service-vpn.c:1420
-#: src/vpn/gnunet-service-vpn.c:1432 src/vpn/gnunet-service-vpn.c:1842
+#: src/exit/gnunet-daemon-exit.c:2362 src/vpn/gnunet-service-vpn.c:1418
+#: src/vpn/gnunet-service-vpn.c:1430 src/vpn/gnunet-service-vpn.c:1840
 msgid "# ICMPv6 packets dropped (impossible PT to v4)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:2413
+#: src/exit/gnunet-daemon-exit.c:2412
 #, fuzzy
 msgid "# UDP packets sent via TUN"
 msgstr "# Bytes gesendet über UDP"
 
-#: src/exit/gnunet-daemon-exit.c:2519
+#: src/exit/gnunet-daemon-exit.c:2518
 #, fuzzy
 msgid "# UDP IP-exit requests received via mesh"
 msgstr "# Client Trace-Anfragen empfangen"
 
-#: src/exit/gnunet-daemon-exit.c:2619
+#: src/exit/gnunet-daemon-exit.c:2618
 #, fuzzy
 msgid "# UDP service requests received via mesh"
 msgstr "# Client Trace-Anfragen empfangen"
 
-#: src/exit/gnunet-daemon-exit.c:2642
+#: src/exit/gnunet-daemon-exit.c:2641
 #, fuzzy
 msgid "# UDP requests dropped (no such service)"
 msgstr "# gap Anfragen verworfen: Kollision in RT"
 
-#: src/exit/gnunet-daemon-exit.c:2883
+#: src/exit/gnunet-daemon-exit.c:2882
 #, c-format
 msgid "No addresses found for hostname `%s' of service `%s'!\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:2897 src/exit/gnunet-daemon-exit.c:2909
+#: src/exit/gnunet-daemon-exit.c:2896 src/exit/gnunet-daemon-exit.c:2908
 #, c-format
 msgid "Service `%s' configured for IPv4, but IPv4 is disabled!\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:2920
+#: src/exit/gnunet-daemon-exit.c:2919
 #, c-format
 msgid "No IP addresses found for hostname `%s' of service `%s'!\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3049
+#: src/exit/gnunet-daemon-exit.c:3048
 msgid ""
 "This system does not support IPv4, will disable IPv4 functions despite them "
 "being enabled in the configuration\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3057
+#: src/exit/gnunet-daemon-exit.c:3056
 msgid ""
 "This system does not support IPv6, will disable IPv6 functions despite them "
 "being enabled in the configuration\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3064
+#: src/exit/gnunet-daemon-exit.c:3063
 msgid ""
 "Cannot enable IPv4 exit but disable IPv4 on TUN interface, will use "
 "ENABLE_IPv4=YES\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3070
+#: src/exit/gnunet-daemon-exit.c:3069
 msgid ""
 "Cannot enable IPv6 exit but disable IPv6 on TUN interface, will use "
 "ENABLE_IPv6=YES\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3076 src/pt/gnunet-daemon-pt.c:884
+#: src/exit/gnunet-daemon-exit.c:3075 src/pt/gnunet-daemon-pt.c:884
 msgid "No useful service enabled.  Exiting.\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3241
+#: src/exit/gnunet-daemon-exit.c:3240
 msgid "Daemon to run to provide an IP exit node for the VPN"
 msgstr ""
 
@@ -3238,28 +3238,29 @@ msgstr "Anzahl an Nachrichten, die pro Durchlauf verwendet wird"
 msgid "Failed to connect to GNS\n"
 msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
 
-#: src/gns/gnunet-gns.c:341
-msgid "try to shorten a given GNS name"
-msgstr ""
+#: src/gns/gnunet-gns.c:358
+#, fuzzy
+msgid "try to shorten a given name"
+msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
 
-#: src/gns/gnunet-gns.c:344
-msgid "Lookup a record using GNS (NOT IMPLEMENTED)"
+#: src/gns/gnunet-gns.c:361
+msgid "Lookup a record for the given name"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:347
+#: src/gns/gnunet-gns.c:364
 msgid "Get the authority of a particular name"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:350
+#: src/gns/gnunet-gns.c:367
 #, fuzzy
-msgid "Specify the type of the record lookup"
+msgid "Specify the type of the record to lookup"
 msgstr "Die Priorität des Inhalts angeben"
 
-#: src/gns/gnunet-gns.c:353
+#: src/gns/gnunet-gns.c:370
 msgid "No unneeded output"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:367
+#: src/gns/gnunet-gns.c:384
 msgid "GNUnet GNS access tool"
 msgstr ""
 
@@ -3318,7 +3319,7 @@ msgstr "Fehler beim Aktualisieren der Daten des Moduls `%s'\n"
 msgid "Failed to connect to namestore\n"
 msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden."
 
-#: src/gns/gnunet-gns-fcfsd.c:789 src/gns/gnunet-gns-proxy.c:2667
+#: src/gns/gnunet-gns-fcfsd.c:789 src/gns/gnunet-gns-proxy.c:2901
 #, fuzzy
 msgid "Failed to start HTTP server\n"
 msgstr "Fehler beim Starten der Collection.\n"
@@ -3327,25 +3328,25 @@ msgstr "Fehler beim Starten der Collection.\n"
 msgid "GNUnet GNS first come first serve registration service"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:2300
+#: src/gns/gnunet-gns-proxy.c:2532
 #, fuzzy, c-format
 msgid "Unable to import private key from file `%s'\n"
 msgstr "Fehler beim Anlegen des Benutzerkontos:"
 
-#: src/gns/gnunet-gns-proxy.c:2329
+#: src/gns/gnunet-gns-proxy.c:2561
 #, fuzzy, c-format
 msgid "Unable to import certificate %s\n"
 msgstr "Fehler beim Speichern der Konfigurationsdatei `%s':"
 
-#: src/gns/gnunet-gns-proxy.c:3328
+#: src/gns/gnunet-gns-proxy.c:3578
 msgid "listen on specified port"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3331
+#: src/gns/gnunet-gns-proxy.c:3581
 msgid "pem file to use as CA"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3346
+#: src/gns/gnunet-gns-proxy.c:3596
 msgid "GNUnet GNS proxy"
 msgstr ""
 
@@ -3707,36 +3708,46 @@ msgstr "`%s' ist nicht verfügbar."
 msgid "Could not start hostlist HTTP server on port %u\n"
 msgstr "Der Transportdienst auf Port %d konnte nicht gestartet werden.\n"
 
-#: src/integration-tests/connection_watchdog.c:997
+#: src/integration-tests/connection_watchdog.c:1001
 #, fuzzy, c-format
 msgid "Transport plugin: `%s' port %llu\n"
 msgstr "Der Transportdienst auf Port %d konnte nicht gestartet werden.\n"
 
-#: src/integration-tests/connection_watchdog.c:1030
+#: src/integration-tests/connection_watchdog.c:1034
 #, fuzzy, c-format
 msgid "Found %u transport plugins: `%s'\n"
 msgstr "Teste Transport(e) %s\n"
 
-#: src/integration-tests/connection_watchdog.c:1089
+#: src/integration-tests/connection_watchdog.c:1093
 msgid "Send ping messages to test connectivity (default == NO)"
 msgstr ""
 
-#: src/integration-tests/connection_watchdog.c:1099
+#: src/integration-tests/connection_watchdog.c:1103
 #: src/template/gnunet-template.c:71
 #, fuzzy
 msgid "help text"
 msgstr "Hilfetext für -t"
 
-#: src/mesh/gnunet-service-mesh.c:5904
+#: src/mesh/gnunet-service-mesh.c:7110
 msgid "Wrong CORE service\n"
 msgstr ""
 
-#: src/mesh/gnunet-service-mesh.c:6116
-#, fuzzy
-msgid "Mesh service is lacking key configuration settings.  Exiting.\n"
+#: src/mesh/gnunet-service-mesh.c:7328 src/mesh/gnunet-service-mesh.c:7340
+#: src/mesh/gnunet-service-mesh.c:7352 src/mesh/gnunet-service-mesh.c:7364
+#: src/mesh/gnunet-service-mesh.c:7376 src/mesh/gnunet-service-mesh.c:7388
+#: src/mesh/gnunet-service-mesh.c:7400 src/mesh/gnunet-service-mesh.c:7412
+#, fuzzy, c-format
+msgid "Mesh service is lacking key configuration settings (%s).  Exiting.\n"
 msgstr "GNUnet Konfiguration"
 
-#: src/mesh/gnunet-service-mesh.c:6125
+#: src/mesh/gnunet-service-mesh.c:7424 src/mesh/gnunet-service-mesh.c:7435
+#, fuzzy, c-format
+msgid ""
+"Mesh service is lacking key configuration settings (%s). Using default "
+"(%u).\n"
+msgstr "GNUnet Konfiguration"
+
+#: src/mesh/gnunet-service-mesh.c:7446
 #, fuzzy
 msgid "Mesh service could not access hostkey.  Exiting.\n"
 msgstr "Auf die Namespace Informationen konnte nicht zugegriffen werden.\n"
@@ -4358,7 +4369,7 @@ msgid ""
 "might have been lost!\n"
 msgstr ""
 
-#: src/testbed/testbed_api.c:204
+#: src/testbed/testbed_api.c:246
 #, fuzzy, c-format
 msgid "Adding host %u failed with error: %s\n"
 msgstr "`%s' schlug bei %s:%d mit dem Fehler %s fehl\n"
@@ -4522,7 +4533,7 @@ msgstr ""
 msgid "Starting service %s for peer `%4s'\n"
 msgstr "Collection `%s' begonnen.\n"
 
-#: src/testing_old/testing.c:1207 src/testing_old/testing_group.c:6155
+#: src/testing_old/testing.c:1207 src/testing_old/testing_group.c:6172
 #, fuzzy, c-format
 msgid "Could not start `%s' process to copy configuration directory.\n"
 msgstr ""
@@ -4610,12 +4621,12 @@ msgstr ""
 msgid "Unknown topology specification, can't connect peers!\n"
 msgstr "Syntaxfehler in Topolgieangabe, Bytes werden übersprungen.\n"
 
-#: src/testing_old/testing_group.c:5945
-#, fuzzy
-msgid "Could not read hostkeys file!\n"
+#: src/testing_old/testing_group.c:5962
+#, fuzzy, c-format
+msgid "Could not read hostkeys file `%s'!\n"
 msgstr "Fehler beim Lesen der Freunde-Liste von `%s'\n"
 
-#: src/testing_old/testing_group.c:6012
+#: src/testing_old/testing_group.c:6029
 #, fuzzy, c-format
 msgid "Could not create configuration for peer number %u on `%s'!\n"
 msgstr "Auf die Namespace Informationen konnte nicht zugegriffen werden.\n"
@@ -4866,117 +4877,117 @@ msgstr "# verschlüsselter PONG Nachrichten empfangen"
 msgid "# refreshed my HELLO"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1057
+#: src/transport/gnunet-service-transport_neighbours.c:1040
 #, fuzzy
 msgid "# DISCONNECT messages sent"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1174
-#: src/transport/gnunet-service-transport_neighbours.c:1511
+#: src/transport/gnunet-service-transport_neighbours.c:1157
+#: src/transport/gnunet-service-transport_neighbours.c:1494
 #, fuzzy
 msgid "# bytes in message queue for other peers"
 msgstr "# Bytes ausgehender Nachrichten verworfen"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1179
+#: src/transport/gnunet-service-transport_neighbours.c:1162
 #, fuzzy
 msgid "# messages transmitted to other peers"
 msgstr "# Bytes des Typs %d übertragen"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1184
+#: src/transport/gnunet-service-transport_neighbours.c:1167
 #, fuzzy
 msgid "# transmission failures for messages to other peers"
 msgstr "# Bytes ausgehender Nachrichten verworfen"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1241
+#: src/transport/gnunet-service-transport_neighbours.c:1224
 msgid "# messages timed out while in transport queue"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1283
+#: src/transport/gnunet-service-transport_neighbours.c:1266
 #, fuzzy
 msgid "# keepalives sent"
 msgstr "# p2p Trace-Antworten gesendet"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1307
+#: src/transport/gnunet-service-transport_neighbours.c:1290
 #, fuzzy
 msgid "# KEEPALIVE messages discarded (peer unknown)"
 msgstr "# defragmentierter Nachrichten"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1315
+#: src/transport/gnunet-service-transport_neighbours.c:1298
 #, fuzzy
 msgid "# KEEPALIVE messages discarded (no session)"
 msgstr "# defragmentierter Nachrichten"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1352
+#: src/transport/gnunet-service-transport_neighbours.c:1335
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSE messages discarded (not connected)"
 msgstr "# defragmentierter Nachrichten"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1361
+#: src/transport/gnunet-service-transport_neighbours.c:1344
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSE messages discarded (not expected)"
 msgstr "# defragmentierter Nachrichten"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1417
+#: src/transport/gnunet-service-transport_neighbours.c:1400
 #, fuzzy
 msgid "# messages discarded due to lack of neighbour record"
 msgstr "# defragmentierter Nachrichten"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1451
+#: src/transport/gnunet-service-transport_neighbours.c:1434
 #, fuzzy
 msgid "# bandwidth quota violations by other peers"
 msgstr "Verfolgt die Bandbreitennutzung von gnunetd"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1467
+#: src/transport/gnunet-service-transport_neighbours.c:1450
 msgid "# ms throttling suggested"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2613
+#: src/transport/gnunet-service-transport_neighbours.c:2596
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (no peer)"
 msgstr "COUNT Nachrichten versenden"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2628
-#: src/transport/gnunet-service-transport_neighbours.c:2662
+#: src/transport/gnunet-service-transport_neighbours.c:2611
+#: src/transport/gnunet-service-transport_neighbours.c:2645
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (not ready)"
 msgstr "COUNT Nachrichten versenden"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2675
+#: src/transport/gnunet-service-transport_neighbours.c:2658
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (waiting on ATS)"
 msgstr "COUNT Nachrichten versenden"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2708
+#: src/transport/gnunet-service-transport_neighbours.c:2691
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (disconnecting)"
 msgstr "COUNT Nachrichten versenden"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2892
+#: src/transport/gnunet-service-transport_neighbours.c:2875
 #, fuzzy
 msgid "# unexpected SESSION ACK messages"
 msgstr "# verschlüsselter PONG Nachrichten gesendet"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2947
+#: src/transport/gnunet-service-transport_neighbours.c:2930
 msgid "# SET QUOTA messages ignored (no such peer)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2961
+#: src/transport/gnunet-service-transport_neighbours.c:2944
 msgid "# disconnects due to quota of 0"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2992
+#: src/transport/gnunet-service-transport_neighbours.c:2975
 msgid "# disconnect messages ignored (old format)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3003
+#: src/transport/gnunet-service-transport_neighbours.c:2986
 msgid "# disconnect messages ignored (timestamp)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3034
+#: src/transport/gnunet-service-transport_neighbours.c:3017
 msgid "# other peer asked to disconnect from us"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3129
+#: src/transport/gnunet-service-transport_neighbours.c:3112
 #, fuzzy
 msgid "# disconnected from peer upon explicit request"
 msgstr "# gap Anfragen verworfen: Kollision in RT"
@@ -5015,23 +5026,23 @@ msgstr "# PING Nachrichten erstellt"
 msgid "Received a PING message with validation bug from `%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:989
+#: src/transport/gnunet-service-transport_validation.c:1001
 msgid "# PONGs unicast via reliable transport"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:998
+#: src/transport/gnunet-service-transport_validation.c:1010
 msgid "# PONGs multicast to all available addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1120
+#: src/transport/gnunet-service-transport_validation.c:1135
 msgid "# PONGs dropped, no matching pending validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1145
+#: src/transport/gnunet-service-transport_validation.c:1164
 msgid "# PONGs dropped, signature expired"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1199
+#: src/transport/gnunet-service-transport_validation.c:1218
 #, fuzzy, c-format
 msgid "Adding `%s' without addresses for peer `%s'\n"
 msgstr "Adresse des Knotens `%s' konnte nicht ermittelt werden.\n"
@@ -5244,92 +5255,92 @@ msgstr "# Bytes gesendet über TCP"
 msgid "# bytes dropped by SMTP (outgoing)"
 msgstr "# Bytes verworfen von TCP (ausgehend)"
 
-#: src/transport/plugin_transport_tcp.c:590
+#: src/transport/plugin_transport_tcp.c:591
 #, c-format
 msgid "Unexpected address length: %u bytes\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:766
-#: src/transport/plugin_transport_tcp.c:855
-#: src/transport/plugin_transport_tcp.c:905
-#: src/transport/plugin_transport_tcp.c:991
-#: src/transport/plugin_transport_tcp.c:1129
-#: src/transport/plugin_transport_tcp.c:1146
+#: src/transport/plugin_transport_tcp.c:767
+#: src/transport/plugin_transport_tcp.c:856
+#: src/transport/plugin_transport_tcp.c:906
+#: src/transport/plugin_transport_tcp.c:992
+#: src/transport/plugin_transport_tcp.c:1130
+#: src/transport/plugin_transport_tcp.c:1147
 #, fuzzy
 msgid "# bytes currently in TCP buffers"
 msgstr "# Bytes gesendet über TCP"
 
-#: src/transport/plugin_transport_tcp.c:773
-#: src/transport/plugin_transport_tcp.c:962
-#: src/transport/plugin_transport_tcp.c:1806
-#: src/transport/plugin_transport_tcp.c:2423
+#: src/transport/plugin_transport_tcp.c:774
+#: src/transport/plugin_transport_tcp.c:963
+#: src/transport/plugin_transport_tcp.c:1807
+#: src/transport/plugin_transport_tcp.c:2424
 #, fuzzy
 msgid "# TCP sessions active"
 msgstr "# Sitzungsschlüssel akzeptiert"
 
-#: src/transport/plugin_transport_tcp.c:859
+#: src/transport/plugin_transport_tcp.c:860
 #, fuzzy
 msgid "# bytes discarded by TCP (timeout)"
 msgstr "# Bytes verworfen von TCP (ausgehend)"
 
-#: src/transport/plugin_transport_tcp.c:908
+#: src/transport/plugin_transport_tcp.c:909
 #, fuzzy
 msgid "# bytes transmitted via TCP"
 msgstr "# Bytes des Typs %d übertragen"
 
-#: src/transport/plugin_transport_tcp.c:995
+#: src/transport/plugin_transport_tcp.c:996
 #, fuzzy
 msgid "# bytes discarded by TCP (disconnect)"
 msgstr "# Bytes verworfen von TCP (ausgehend)"
 
-#: src/transport/plugin_transport_tcp.c:1335
+#: src/transport/plugin_transport_tcp.c:1336
 #, c-format
 msgid "Address of unexpected length: %u\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1446
+#: src/transport/plugin_transport_tcp.c:1447
 msgid "# transport-service disconnect requests for TCP"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1847
+#: src/transport/plugin_transport_tcp.c:1848
 #, fuzzy
 msgid "# TCP WELCOME messages received"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
 
-#: src/transport/plugin_transport_tcp.c:2018
+#: src/transport/plugin_transport_tcp.c:2019
 msgid "# bytes received via TCP"
 msgstr "# Bytes empfangen über TCP"
 
-#: src/transport/plugin_transport_tcp.c:2088
+#: src/transport/plugin_transport_tcp.c:2089
 msgid "# network-level TCP disconnect events"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2312 src/util/service.c:946
+#: src/transport/plugin_transport_tcp.c:2313 src/util/service.c:946
 #: src/util/service.c:952
 #, c-format
 msgid "Require valid port number for service `%s' in configuration!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2326
+#: src/transport/plugin_transport_tcp.c:2327
 #, fuzzy
 msgid "Failed to start service.\n"
 msgstr "Fehler beim Starten der Collection.\n"
 
-#: src/transport/plugin_transport_tcp.c:2388
+#: src/transport/plugin_transport_tcp.c:2389
 #, fuzzy, c-format
 msgid "Failed to find option %s in section %s!\n"
 msgstr "Fehler beim Binden an UDP Port %d.\n"
 
-#: src/transport/plugin_transport_tcp.c:2411
+#: src/transport/plugin_transport_tcp.c:2412
 #, fuzzy, c-format
 msgid "TCP transport listening on port %llu\n"
 msgstr "Der Transportdienst auf Port %d konnte nicht gestartet werden.\n"
 
-#: src/transport/plugin_transport_tcp.c:2415
+#: src/transport/plugin_transport_tcp.c:2416
 msgid "TCP transport not listening on any port (client only)\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2419
+#: src/transport/plugin_transport_tcp.c:2420
 #, c-format
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr ""
@@ -5379,7 +5390,7 @@ msgstr ""
 msgid "Invalid IPv6 address: `%s'\n"
 msgstr "Ungültiger Parameter: `%s'\n"
 
-#: src/transport/plugin_transport_unix.c:1351
+#: src/transport/plugin_transport_unix.c:1346
 #, fuzzy
 msgid "Failed to open UNIX sockets\n"
 msgstr "Datei wurde als `%s' gespeichert.\n"
@@ -5637,7 +5648,7 @@ msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
 msgid "Attempt to connect to `%s' failed\n"
 msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
 
-#: src/util/container_bloomfilter.c:510
+#: src/util/container_bloomfilter.c:518
 #, c-format
 msgid ""
 "Size of file on disk is incorrect for this Bloom filter (want %llu, have "
@@ -5716,17 +5727,17 @@ msgstr "RSA Signaturüberprüfung fehlgeschlagen bei %s:%d: %s\n"
 msgid "`%s' failed for drive `%S': %u\n"
 msgstr "`%s' fehlgeschlagen für Laufwerk %s: %u\n"
 
-#: src/util/disk.c:1135
+#: src/util/disk.c:1140
 #, fuzzy, c-format
 msgid "Expected `%s' to be a directory!\n"
 msgstr "`%s' erwartet, dass `%s' ein Verzeichnis ist!\n"
 
-#: src/util/disk.c:1489 src/util/service.c:1665
+#: src/util/disk.c:1494 src/util/service.c:1665
 #, fuzzy, c-format
 msgid "Cannot obtain information about user `%s': %s\n"
 msgstr "Fehler beim Speichern der Konfigurationsdatei: `%s': %s.\n"
 
-#: src/util/disk.c:1861
+#: src/util/disk.c:1866
 #, fuzzy, c-format
 msgid "No `%s' specified for service `%s' in configuration.\n"
 msgstr "In der Konfigurationsdatei wurden keine Anwendungen definiert!\n"
@@ -5885,14 +5896,14 @@ msgid ""
 "Fatal internal logic error, process hangs in `%s' (abort with CTRL-C)!\n"
 msgstr ""
 
-#: src/util/os_installation.c:329
+#: src/util/os_installation.c:325
 #, c-format
 msgid ""
 "Could not determine installation path for %s.  Set `%s' environment "
 "variable.\n"
 msgstr ""
 
-#: src/util/os_installation.c:526
+#: src/util/os_installation.c:522
 #, fuzzy, c-format
 msgid "Could not find binary `%s' in PATH!\n"
 msgstr "Knoten `%s' konnte nicht in der Routing Tabelle gefunden werden!\n"
@@ -6188,7 +6199,7 @@ msgstr ""
 msgid "Invalid IPv6 address `%s': %s\n"
 msgstr "Ungültiger Parameter: `%s'\n"
 
-#: src/vpn/gnunet-service-vpn.c:511 src/vpn/gnunet-service-vpn.c:1071
+#: src/vpn/gnunet-service-vpn.c:511 src/vpn/gnunet-service-vpn.c:1069
 #, fuzzy
 msgid "# Active tunnels"
 msgstr "GNUnet Konfiguration"
@@ -6198,96 +6209,96 @@ msgstr "GNUnet Konfiguration"
 msgid "# peers connected to mesh tunnels"
 msgstr "# verbundener Knoten"
 
-#: src/vpn/gnunet-service-vpn.c:699
+#: src/vpn/gnunet-service-vpn.c:698
 #, fuzzy
 msgid "# Bytes given to mesh for transmission"
 msgstr "# PING Nachrichten erstellt"
 
-#: src/vpn/gnunet-service-vpn.c:737
+#: src/vpn/gnunet-service-vpn.c:736
 #, fuzzy
 msgid "# Bytes dropped in mesh queue (overflow)"
 msgstr "# Bytes verworfen von UDP (outgoing)"
 
-#: src/vpn/gnunet-service-vpn.c:772
+#: src/vpn/gnunet-service-vpn.c:770
 #, fuzzy
 msgid "# Mesh tunnels created"
 msgstr "# dht Anfragen weitergeleitet"
 
-#: src/vpn/gnunet-service-vpn.c:795
+#: src/vpn/gnunet-service-vpn.c:793
 #, fuzzy
 msgid "Failed to setup mesh tunnel!\n"
 msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n"
 
-#: src/vpn/gnunet-service-vpn.c:973
+#: src/vpn/gnunet-service-vpn.c:971
 #, c-format
 msgid "Protocol %u not supported, dropping\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1291
+#: src/vpn/gnunet-service-vpn.c:1289
 msgid "# ICMPv4 packets dropped (not allowed)"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1312
+#: src/vpn/gnunet-service-vpn.c:1310
 msgid "# ICMPv6 packets dropped (not allowed)"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1517
+#: src/vpn/gnunet-service-vpn.c:1515
 #, fuzzy
 msgid "# Packets received from TUN interface"
 msgstr "Empfangene Client-Nachricht ist ungültig.\n"
 
-#: src/vpn/gnunet-service-vpn.c:1555 src/vpn/gnunet-service-vpn.c:1596
+#: src/vpn/gnunet-service-vpn.c:1553 src/vpn/gnunet-service-vpn.c:1594
 #, c-format
 msgid "Packet received for unmapped destination `%s' (dropping it)\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1606
+#: src/vpn/gnunet-service-vpn.c:1604
 msgid "Received IPv4 packet with options (dropping it)\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1620
+#: src/vpn/gnunet-service-vpn.c:1618
 #, c-format
 msgid "Received packet of unknown protocol %d from TUN (dropping it)\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1704
+#: src/vpn/gnunet-service-vpn.c:1702
 #, fuzzy
 msgid "# ICMP packets received from mesh"
 msgstr "Empfangene Client-Nachricht ist ungültig.\n"
 
-#: src/vpn/gnunet-service-vpn.c:2045
+#: src/vpn/gnunet-service-vpn.c:2043
 #, fuzzy
 msgid "# UDP packets received from mesh"
 msgstr "Empfangene Client-Nachricht ist ungültig.\n"
 
-#: src/vpn/gnunet-service-vpn.c:2203
+#: src/vpn/gnunet-service-vpn.c:2201
 #, fuzzy
 msgid "# TCP packets received from mesh"
 msgstr "Empfangene Client-Nachricht ist ungültig.\n"
 
-#: src/vpn/gnunet-service-vpn.c:2354
+#: src/vpn/gnunet-service-vpn.c:2352
 msgid "Failed to find unallocated IPv4 address in VPN's range\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:2409
+#: src/vpn/gnunet-service-vpn.c:2407
 #, fuzzy
 msgid "Failed to find unallocated IPv6 address in VPN's range\n"
 msgstr "Die öffentliche IPv6-Adresse konnte nicht ermittelt werden!\n"
 
-#: src/vpn/gnunet-service-vpn.c:2448 src/vpn/gnunet-service-vpn.c:2661
+#: src/vpn/gnunet-service-vpn.c:2446 src/vpn/gnunet-service-vpn.c:2659
 #, fuzzy
 msgid "# Active destinations"
 msgstr "GNUnet Konfiguration"
 
-#: src/vpn/gnunet-service-vpn.c:2734
+#: src/vpn/gnunet-service-vpn.c:2732
 msgid "Failed to allocate IP address for new destination\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:3141
+#: src/vpn/gnunet-service-vpn.c:3139
 msgid "IPv6 support disabled as this system does not support IPv6\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:3173
+#: src/vpn/gnunet-service-vpn.c:3171
 msgid "IPv4 support disabled as this system does not support IPv4\n"
 msgstr ""
 
@@ -6363,18 +6374,18 @@ msgstr "# Bytes empfangen über UDP"
 msgid "Setup tunnels via VPN."
 msgstr ""
 
-#: src/include/gnunet_common.h:507 src/include/gnunet_common.h:512
-#: src/include/gnunet_common.h:518
+#: src/include/gnunet_common.h:515 src/include/gnunet_common.h:520
+#: src/include/gnunet_common.h:526
 #, fuzzy, c-format
 msgid "Assertion failed at %s:%d.\n"
 msgstr "Absicherung fehlgeschlagen bei %s:%d.\n"
 
-#: src/include/gnunet_common.h:528
+#: src/include/gnunet_common.h:536
 #, fuzzy, c-format
 msgid "External protocol violation detected at %s:%d.\n"
 msgstr "Absicherung fehlgeschlagen bei %s:%d.\n"
 
-#: src/include/gnunet_common.h:549 src/include/gnunet_common.h:556
+#: src/include/gnunet_common.h:557 src/include/gnunet_common.h:564
 #, fuzzy, c-format
 msgid "`%s' failed on file `%s' at %s:%d with error: %s\n"
 msgstr "`%s' schlug bei Datei `%s' fehl. Ort: %s:%d. Fehler: %s\n"
index ea564e79cf6db3dce89061ce067f90e8122c0181..5d92bc09da325e38f7f93aed1dcee394870dcdcb 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNUnet 0.7.0e\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
-"POT-Creation-Date: 2012-07-20 19:29+0200\n"
+"POT-Creation-Date: 2012-08-17 00:17+0200\n"
 "PO-Revision-Date: 2006-06-29 12:05+0200\n"
 "Last-Translator: Miguel Angel Arruga <miguel.13@telefonica.net>\n"
 "Language-Team: Spanish\n"
@@ -712,7 +712,7 @@ msgid "# keepalive messages sent"
 msgstr "# mensajes PONG encriptados recibidos"
 
 #: src/core/gnunet-service-core_kx.c:1236
-#: src/transport/gnunet-service-transport_validation.c:1096
+#: src/transport/gnunet-service-transport_validation.c:1108
 #, fuzzy
 msgid "# PONG messages received"
 msgstr "# mensajes PONG encriptados recibidos"
@@ -814,11 +814,11 @@ msgstr "Mensaje no válido del tipo %u recibido.  Omitiendo.\n"
 #: src/fs/gnunet-service-fs_cp.c:622 src/fs/gnunet-service-fs_cp.c:1530
 #: src/topology/gnunet-daemon-topology.c:709
 #: src/topology/gnunet-daemon-topology.c:810
-#: src/transport/gnunet-service-transport_neighbours.c:890
-#: src/transport/gnunet-service-transport_neighbours.c:1106
-#: src/transport/gnunet-service-transport_neighbours.c:1115
-#: src/transport/gnunet-service-transport_neighbours.c:2637
-#: src/transport/gnunet-service-transport_neighbours.c:2899
+#: src/transport/gnunet-service-transport_neighbours.c:873
+#: src/transport/gnunet-service-transport_neighbours.c:1089
+#: src/transport/gnunet-service-transport_neighbours.c:1098
+#: src/transport/gnunet-service-transport_neighbours.c:2620
+#: src/transport/gnunet-service-transport_neighbours.c:2882
 #, fuzzy
 msgid "# peers connected"
 msgstr "# de pares conectados"
@@ -884,8 +884,8 @@ msgstr ""
 #: src/mysql/mysql.c:591 src/mysql/mysql.c:607
 #: src/namestore/plugin_namestore_postgres.c:52
 #: src/namestore/plugin_namestore_sqlite.c:51 src/util/crypto_ksk.c:49
-#: src/util/crypto_rsa.c:66 src/include/gnunet_common.h:535
-#: src/include/gnunet_common.h:542
+#: src/util/crypto_rsa.c:66 src/include/gnunet_common.h:543
+#: src/include/gnunet_common.h:550
 #, c-format
 msgid "`%s' failed at %s:%d with error: %s\n"
 msgstr "'%s' falló en %s: %d con el error: %s\n"
@@ -1662,11 +1662,11 @@ msgstr "El mensaje recibido del cliente es inválido\n"
 msgid "Configured DNS exit `%s' is not working / valid.\n"
 msgstr ""
 
-#: src/dns/gnunet-service-dns.c:1497 src/exit/gnunet-daemon-exit.c:2674
+#: src/dns/gnunet-service-dns.c:1497 src/exit/gnunet-daemon-exit.c:2673
 msgid "# Inbound MESH tunnels created"
 msgstr ""
 
-#: src/dns/gnunet-service-dns.c:1561 src/exit/gnunet-daemon-exit.c:3033
+#: src/dns/gnunet-service-dns.c:1561 src/exit/gnunet-daemon-exit.c:3032
 #, c-format
 msgid "`%s' must be installed SUID, refusing to run\n"
 msgstr ""
@@ -1690,200 +1690,200 @@ msgstr "Recibido mensaje corrupto del par '%s' en %s:%d.\n"
 msgid "Got duplicate service records for `%s:%u'\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:563
+#: src/exit/gnunet-daemon-exit.c:561
 #, fuzzy
 msgid "# Bytes transmitted via mesh tunnels"
 msgstr "# bytes desencriptados"
 
-#: src/exit/gnunet-daemon-exit.c:679 src/exit/gnunet-daemon-exit.c:2069
-#: src/exit/gnunet-daemon-exit.c:2319 src/vpn/gnunet-service-vpn.c:1394
-#: src/vpn/gnunet-service-vpn.c:1795 src/vpn/gnunet-service-vpn.c:1958
+#: src/exit/gnunet-daemon-exit.c:678 src/exit/gnunet-daemon-exit.c:2068
+#: src/exit/gnunet-daemon-exit.c:2318 src/vpn/gnunet-service-vpn.c:1392
+#: src/vpn/gnunet-service-vpn.c:1793 src/vpn/gnunet-service-vpn.c:1956
 msgid "# ICMPv4 packets dropped (type not allowed)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:716 src/exit/gnunet-daemon-exit.c:2128
-#: src/exit/gnunet-daemon-exit.c:2378 src/vpn/gnunet-service-vpn.c:1450
-#: src/vpn/gnunet-service-vpn.c:1854 src/vpn/gnunet-service-vpn.c:1991
+#: src/exit/gnunet-daemon-exit.c:715 src/exit/gnunet-daemon-exit.c:2127
+#: src/exit/gnunet-daemon-exit.c:2377 src/vpn/gnunet-service-vpn.c:1448
+#: src/vpn/gnunet-service-vpn.c:1852 src/vpn/gnunet-service-vpn.c:1989
 msgid "# ICMPv6 packets dropped (type not allowed)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:756
+#: src/exit/gnunet-daemon-exit.c:755
 msgid "# ICMP packets dropped (not allowed)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:763
+#: src/exit/gnunet-daemon-exit.c:762
 msgid "ICMP Packet dropped, have no matching connection information\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:840
+#: src/exit/gnunet-daemon-exit.c:839
 msgid "UDP Packet dropped, have no matching connection information\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:915
+#: src/exit/gnunet-daemon-exit.c:914
 msgid "TCP Packet dropped, have no matching connection information\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:968
+#: src/exit/gnunet-daemon-exit.c:967
 #, fuzzy
 msgid "# Packets received from TUN"
 msgstr "# bytes recibidos vía HTTP"
 
-#: src/exit/gnunet-daemon-exit.c:982
+#: src/exit/gnunet-daemon-exit.c:981
 #, fuzzy
 msgid "# Bytes received from TUN"
 msgstr "# bytes recibidos vía HTTP"
 
-#: src/exit/gnunet-daemon-exit.c:1008
+#: src/exit/gnunet-daemon-exit.c:1007
 msgid "IPv4 packet options received.  Ignored.\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1035
+#: src/exit/gnunet-daemon-exit.c:1034
 #, c-format
 msgid "IPv4 packet with unsupported next header %u received.  Ignored.\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1081
+#: src/exit/gnunet-daemon-exit.c:1080
 #, c-format
 msgid "IPv6 packet with unsupported next header %d received.  Ignored.\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1089
+#: src/exit/gnunet-daemon-exit.c:1088
 #, c-format
 msgid "Packet from unknown protocol %u received.  Ignored.\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1471
+#: src/exit/gnunet-daemon-exit.c:1470
 #, fuzzy
 msgid "# TCP packets sent via TUN"
 msgstr "# bytes enviados vía UDP"
 
-#: src/exit/gnunet-daemon-exit.c:1571
+#: src/exit/gnunet-daemon-exit.c:1570
 #, fuzzy
 msgid "# TCP service creation requests received via mesh"
 msgstr "# mensajes PONG encriptados recibidos"
 
-#: src/exit/gnunet-daemon-exit.c:1574 src/exit/gnunet-daemon-exit.c:1653
-#: src/exit/gnunet-daemon-exit.c:1763 src/exit/gnunet-daemon-exit.c:1993
-#: src/exit/gnunet-daemon-exit.c:2235 src/exit/gnunet-daemon-exit.c:2516
-#: src/exit/gnunet-daemon-exit.c:2616
+#: src/exit/gnunet-daemon-exit.c:1573 src/exit/gnunet-daemon-exit.c:1652
+#: src/exit/gnunet-daemon-exit.c:1762 src/exit/gnunet-daemon-exit.c:1992
+#: src/exit/gnunet-daemon-exit.c:2234 src/exit/gnunet-daemon-exit.c:2515
+#: src/exit/gnunet-daemon-exit.c:2615
 #, fuzzy
 msgid "# Bytes received from MESH"
 msgstr "# bytes recibidos vía HTTP"
 
-#: src/exit/gnunet-daemon-exit.c:1607 src/exit/gnunet-daemon-exit.c:2638
+#: src/exit/gnunet-daemon-exit.c:1606 src/exit/gnunet-daemon-exit.c:2637
 #, c-format
 msgid "No service found for %s on port %d!\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1611
+#: src/exit/gnunet-daemon-exit.c:1610
 #, fuzzy
 msgid "# TCP requests dropped (no such service)"
 msgstr "# Anuncios de los pares recibidos"
 
-#: src/exit/gnunet-daemon-exit.c:1656
+#: src/exit/gnunet-daemon-exit.c:1655
 #, fuzzy
 msgid "# TCP IP-exit creation requests received via mesh"
 msgstr "# mensajes PONG encriptados recibidos"
 
-#: src/exit/gnunet-daemon-exit.c:1766
+#: src/exit/gnunet-daemon-exit.c:1765
 #, fuzzy
 msgid "# TCP data requests received via mesh"
 msgstr "# mensajes PONG encriptados recibidos"
 
-#: src/exit/gnunet-daemon-exit.c:1780
+#: src/exit/gnunet-daemon-exit.c:1779
 #, fuzzy
 msgid "# TCP DATA requests dropped (no session)"
 msgstr "# Anuncios de los pares recibidos"
 
-#: src/exit/gnunet-daemon-exit.c:1830
+#: src/exit/gnunet-daemon-exit.c:1829
 #, fuzzy
 msgid "# ICMP packets sent via TUN"
 msgstr "# bytes enviados vía UDP"
 
-#: src/exit/gnunet-daemon-exit.c:1996
+#: src/exit/gnunet-daemon-exit.c:1995
 #, fuzzy
 msgid "# ICMP IP-exit requests received via mesh"
 msgstr "# mensajes PONG encriptados recibidos"
 
-#: src/exit/gnunet-daemon-exit.c:2238
+#: src/exit/gnunet-daemon-exit.c:2237
 #, fuzzy
 msgid "# ICMP service requests received via mesh"
 msgstr "El mensaje recibido del cliente es inválido\n"
 
-#: src/exit/gnunet-daemon-exit.c:2304 src/vpn/gnunet-service-vpn.c:1384
-#: src/vpn/gnunet-service-vpn.c:1952
+#: src/exit/gnunet-daemon-exit.c:2303 src/vpn/gnunet-service-vpn.c:1382
+#: src/vpn/gnunet-service-vpn.c:1950
 msgid "# ICMPv4 packets dropped (impossible PT to v6)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:2363 src/vpn/gnunet-service-vpn.c:1420
-#: src/vpn/gnunet-service-vpn.c:1432 src/vpn/gnunet-service-vpn.c:1842
+#: src/exit/gnunet-daemon-exit.c:2362 src/vpn/gnunet-service-vpn.c:1418
+#: src/vpn/gnunet-service-vpn.c:1430 src/vpn/gnunet-service-vpn.c:1840
 msgid "# ICMPv6 packets dropped (impossible PT to v4)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:2413
+#: src/exit/gnunet-daemon-exit.c:2412
 #, fuzzy
 msgid "# UDP packets sent via TUN"
 msgstr "# bytes enviados vía UDP"
 
-#: src/exit/gnunet-daemon-exit.c:2519
+#: src/exit/gnunet-daemon-exit.c:2518
 #, fuzzy
 msgid "# UDP IP-exit requests received via mesh"
 msgstr "# mensajes PONG encriptados recibidos"
 
-#: src/exit/gnunet-daemon-exit.c:2619
+#: src/exit/gnunet-daemon-exit.c:2618
 #, fuzzy
 msgid "# UDP service requests received via mesh"
 msgstr "# mensajes PONG encriptados recibidos"
 
-#: src/exit/gnunet-daemon-exit.c:2642
+#: src/exit/gnunet-daemon-exit.c:2641
 #, fuzzy
 msgid "# UDP requests dropped (no such service)"
 msgstr "# Anuncios de los pares recibidos"
 
-#: src/exit/gnunet-daemon-exit.c:2883
+#: src/exit/gnunet-daemon-exit.c:2882
 #, c-format
 msgid "No addresses found for hostname `%s' of service `%s'!\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:2897 src/exit/gnunet-daemon-exit.c:2909
+#: src/exit/gnunet-daemon-exit.c:2896 src/exit/gnunet-daemon-exit.c:2908
 #, c-format
 msgid "Service `%s' configured for IPv4, but IPv4 is disabled!\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:2920
+#: src/exit/gnunet-daemon-exit.c:2919
 #, c-format
 msgid "No IP addresses found for hostname `%s' of service `%s'!\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3049
+#: src/exit/gnunet-daemon-exit.c:3048
 msgid ""
 "This system does not support IPv4, will disable IPv4 functions despite them "
 "being enabled in the configuration\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3057
+#: src/exit/gnunet-daemon-exit.c:3056
 msgid ""
 "This system does not support IPv6, will disable IPv6 functions despite them "
 "being enabled in the configuration\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3064
+#: src/exit/gnunet-daemon-exit.c:3063
 msgid ""
 "Cannot enable IPv4 exit but disable IPv4 on TUN interface, will use "
 "ENABLE_IPv4=YES\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3070
+#: src/exit/gnunet-daemon-exit.c:3069
 msgid ""
 "Cannot enable IPv6 exit but disable IPv6 on TUN interface, will use "
 "ENABLE_IPv6=YES\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3076 src/pt/gnunet-daemon-pt.c:884
+#: src/exit/gnunet-daemon-exit.c:3075 src/pt/gnunet-daemon-pt.c:884
 msgid "No useful service enabled.  Exiting.\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3241
+#: src/exit/gnunet-daemon-exit.c:3240
 msgid "Daemon to run to provide an IP exit node for the VPN"
 msgstr ""
 
@@ -3221,28 +3221,29 @@ msgstr "número de mensajes a usar por iteración"
 msgid "Failed to connect to GNS\n"
 msgstr "Fallo al conectar a gnunetd.\n"
 
-#: src/gns/gnunet-gns.c:341
-msgid "try to shorten a given GNS name"
-msgstr ""
+#: src/gns/gnunet-gns.c:358
+#, fuzzy
+msgid "try to shorten a given name"
+msgstr "Fallo al conectar a gnunetd.\n"
 
-#: src/gns/gnunet-gns.c:344
-msgid "Lookup a record using GNS (NOT IMPLEMENTED)"
+#: src/gns/gnunet-gns.c:361
+msgid "Lookup a record for the given name"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:347
+#: src/gns/gnunet-gns.c:364
 msgid "Get the authority of a particular name"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:350
+#: src/gns/gnunet-gns.c:367
 #, fuzzy
-msgid "Specify the type of the record lookup"
+msgid "Specify the type of the record to lookup"
 msgstr "especifica la prioridad del contenido"
 
-#: src/gns/gnunet-gns.c:353
+#: src/gns/gnunet-gns.c:370
 msgid "No unneeded output"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:367
+#: src/gns/gnunet-gns.c:384
 msgid "GNUnet GNS access tool"
 msgstr ""
 
@@ -3299,7 +3300,7 @@ msgstr "Falló al actualizar los datos del módulo '%s'\n"
 msgid "Failed to connect to namestore\n"
 msgstr "Fallo al conectarse a gnunetd"
 
-#: src/gns/gnunet-gns-fcfsd.c:789 src/gns/gnunet-gns-proxy.c:2667
+#: src/gns/gnunet-gns-fcfsd.c:789 src/gns/gnunet-gns-proxy.c:2901
 #, fuzzy
 msgid "Failed to start HTTP server\n"
 msgstr "Falló al comenzar la recolección.\n"
@@ -3308,25 +3309,25 @@ msgstr "Falló al comenzar la recolección.\n"
 msgid "GNUnet GNS first come first serve registration service"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:2300
+#: src/gns/gnunet-gns-proxy.c:2532
 #, fuzzy, c-format
 msgid "Unable to import private key from file `%s'\n"
 msgstr "Imposible crear la cuenta de usuario:"
 
-#: src/gns/gnunet-gns-proxy.c:2329
+#: src/gns/gnunet-gns-proxy.c:2561
 #, fuzzy, c-format
 msgid "Unable to import certificate %s\n"
 msgstr "Imposible guardar el fichero de configuración '%s':"
 
-#: src/gns/gnunet-gns-proxy.c:3328
+#: src/gns/gnunet-gns-proxy.c:3578
 msgid "listen on specified port"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3331
+#: src/gns/gnunet-gns-proxy.c:3581
 msgid "pem file to use as CA"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3346
+#: src/gns/gnunet-gns-proxy.c:3596
 msgid "GNUnet GNS proxy"
 msgstr ""
 
@@ -3688,36 +3689,46 @@ msgstr "'%s' no esta disponible."
 msgid "Could not start hostlist HTTP server on port %u\n"
 msgstr ""
 
-#: src/integration-tests/connection_watchdog.c:997
+#: src/integration-tests/connection_watchdog.c:1001
 #, fuzzy, c-format
 msgid "Transport plugin: `%s' port %llu\n"
 msgstr "Probando transporte(s) %s\n"
 
-#: src/integration-tests/connection_watchdog.c:1030
+#: src/integration-tests/connection_watchdog.c:1034
 #, fuzzy, c-format
 msgid "Found %u transport plugins: `%s'\n"
 msgstr "Probando transporte(s) %s\n"
 
-#: src/integration-tests/connection_watchdog.c:1089
+#: src/integration-tests/connection_watchdog.c:1093
 msgid "Send ping messages to test connectivity (default == NO)"
 msgstr ""
 
-#: src/integration-tests/connection_watchdog.c:1099
+#: src/integration-tests/connection_watchdog.c:1103
 #: src/template/gnunet-template.c:71
 #, fuzzy
 msgid "help text"
 msgstr "texto de ayuda para -t"
 
-#: src/mesh/gnunet-service-mesh.c:5904
+#: src/mesh/gnunet-service-mesh.c:7110
 msgid "Wrong CORE service\n"
 msgstr ""
 
-#: src/mesh/gnunet-service-mesh.c:6116
-#, fuzzy
-msgid "Mesh service is lacking key configuration settings.  Exiting.\n"
+#: src/mesh/gnunet-service-mesh.c:7328 src/mesh/gnunet-service-mesh.c:7340
+#: src/mesh/gnunet-service-mesh.c:7352 src/mesh/gnunet-service-mesh.c:7364
+#: src/mesh/gnunet-service-mesh.c:7376 src/mesh/gnunet-service-mesh.c:7388
+#: src/mesh/gnunet-service-mesh.c:7400 src/mesh/gnunet-service-mesh.c:7412
+#, fuzzy, c-format
+msgid "Mesh service is lacking key configuration settings (%s).  Exiting.\n"
 msgstr "Configuración de GNUnet"
 
-#: src/mesh/gnunet-service-mesh.c:6125
+#: src/mesh/gnunet-service-mesh.c:7424 src/mesh/gnunet-service-mesh.c:7435
+#, fuzzy, c-format
+msgid ""
+"Mesh service is lacking key configuration settings (%s). Using default "
+"(%u).\n"
+msgstr "Configuración de GNUnet"
+
+#: src/mesh/gnunet-service-mesh.c:7446
 #, fuzzy
 msgid "Mesh service could not access hostkey.  Exiting.\n"
 msgstr "Imposible acceder a la información del espacio.\n"
@@ -4337,7 +4348,7 @@ msgid ""
 "might have been lost!\n"
 msgstr ""
 
-#: src/testbed/testbed_api.c:204
+#: src/testbed/testbed_api.c:246
 #, fuzzy, c-format
 msgid "Adding host %u failed with error: %s\n"
 msgstr "'%s' falló con el código de error %d: %s"
@@ -4494,7 +4505,7 @@ msgstr ""
 msgid "Starting service %s for peer `%4s'\n"
 msgstr "Iniciada colección '%s'.\n"
 
-#: src/testing_old/testing.c:1207 src/testing_old/testing_group.c:6155
+#: src/testing_old/testing.c:1207 src/testing_old/testing_group.c:6172
 #, fuzzy, c-format
 msgid "Could not start `%s' process to copy configuration directory.\n"
 msgstr "Imposible acceder a la información del espacio.\n"
@@ -4575,12 +4586,12 @@ msgstr ""
 msgid "Unknown topology specification, can't connect peers!\n"
 msgstr ""
 
-#: src/testing_old/testing_group.c:5945
-#, fuzzy
-msgid "Could not read hostkeys file!\n"
+#: src/testing_old/testing_group.c:5962
+#, fuzzy, c-format
+msgid "Could not read hostkeys file `%s'!\n"
 msgstr "Imposible inicializar la aplicación '%s'\n"
 
-#: src/testing_old/testing_group.c:6012
+#: src/testing_old/testing_group.c:6029
 #, fuzzy, c-format
 msgid "Could not create configuration for peer number %u on `%s'!\n"
 msgstr "Imposible acceder a la información del espacio.\n"
@@ -4833,116 +4844,116 @@ msgstr "# mensajes PONG encriptados recibidos"
 msgid "# refreshed my HELLO"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1057
+#: src/transport/gnunet-service-transport_neighbours.c:1040
 #, fuzzy
 msgid "# DISCONNECT messages sent"
 msgstr "# mensajes PONG encriptados recibidos"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1174
-#: src/transport/gnunet-service-transport_neighbours.c:1511
+#: src/transport/gnunet-service-transport_neighbours.c:1157
+#: src/transport/gnunet-service-transport_neighbours.c:1494
 #, fuzzy
 msgid "# bytes in message queue for other peers"
 msgstr "# bytes de mensajes salientes omitidos"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1179
+#: src/transport/gnunet-service-transport_neighbours.c:1162
 #, fuzzy
 msgid "# messages transmitted to other peers"
 msgstr "# bytes recibidos por TCP"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1184
+#: src/transport/gnunet-service-transport_neighbours.c:1167
 #, fuzzy
 msgid "# transmission failures for messages to other peers"
 msgstr "# bytes de mensajes salientes omitidos"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1241
+#: src/transport/gnunet-service-transport_neighbours.c:1224
 msgid "# messages timed out while in transport queue"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1283
+#: src/transport/gnunet-service-transport_neighbours.c:1266
 #, fuzzy
 msgid "# keepalives sent"
 msgstr "# claves de la sesión mandadas"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1307
+#: src/transport/gnunet-service-transport_neighbours.c:1290
 #, fuzzy
 msgid "# KEEPALIVE messages discarded (peer unknown)"
 msgstr "# mensajes defragmentados"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1315
+#: src/transport/gnunet-service-transport_neighbours.c:1298
 #, fuzzy
 msgid "# KEEPALIVE messages discarded (no session)"
 msgstr "# mensajes defragmentados"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1352
+#: src/transport/gnunet-service-transport_neighbours.c:1335
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSE messages discarded (not connected)"
 msgstr "# mensajes defragmentados"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1361
+#: src/transport/gnunet-service-transport_neighbours.c:1344
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSE messages discarded (not expected)"
 msgstr "# mensajes defragmentados"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1417
+#: src/transport/gnunet-service-transport_neighbours.c:1400
 #, fuzzy
 msgid "# messages discarded due to lack of neighbour record"
 msgstr "# mensajes defragmentados"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1451
+#: src/transport/gnunet-service-transport_neighbours.c:1434
 msgid "# bandwidth quota violations by other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1467
+#: src/transport/gnunet-service-transport_neighbours.c:1450
 msgid "# ms throttling suggested"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2613
+#: src/transport/gnunet-service-transport_neighbours.c:2596
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (no peer)"
 msgstr "envia COUNT mensajes"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2628
-#: src/transport/gnunet-service-transport_neighbours.c:2662
+#: src/transport/gnunet-service-transport_neighbours.c:2611
+#: src/transport/gnunet-service-transport_neighbours.c:2645
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (not ready)"
 msgstr "envia COUNT mensajes"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2675
+#: src/transport/gnunet-service-transport_neighbours.c:2658
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (waiting on ATS)"
 msgstr "envia COUNT mensajes"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2708
+#: src/transport/gnunet-service-transport_neighbours.c:2691
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (disconnecting)"
 msgstr "envia COUNT mensajes"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2892
+#: src/transport/gnunet-service-transport_neighbours.c:2875
 #, fuzzy
 msgid "# unexpected SESSION ACK messages"
 msgstr "# de pares conectados"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2947
+#: src/transport/gnunet-service-transport_neighbours.c:2930
 msgid "# SET QUOTA messages ignored (no such peer)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2961
+#: src/transport/gnunet-service-transport_neighbours.c:2944
 msgid "# disconnects due to quota of 0"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2992
+#: src/transport/gnunet-service-transport_neighbours.c:2975
 msgid "# disconnect messages ignored (old format)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3003
+#: src/transport/gnunet-service-transport_neighbours.c:2986
 msgid "# disconnect messages ignored (timestamp)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3034
+#: src/transport/gnunet-service-transport_neighbours.c:3017
 msgid "# other peer asked to disconnect from us"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3129
+#: src/transport/gnunet-service-transport_neighbours.c:3112
 #, fuzzy
 msgid "# disconnected from peer upon explicit request"
 msgstr "# Anuncios de los pares recibidos"
@@ -4981,23 +4992,23 @@ msgstr "# mensajes PONG encriptados recibidos"
 msgid "Received a PING message with validation bug from `%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:989
+#: src/transport/gnunet-service-transport_validation.c:1001
 msgid "# PONGs unicast via reliable transport"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:998
+#: src/transport/gnunet-service-transport_validation.c:1010
 msgid "# PONGs multicast to all available addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1120
+#: src/transport/gnunet-service-transport_validation.c:1135
 msgid "# PONGs dropped, no matching pending validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1145
+#: src/transport/gnunet-service-transport_validation.c:1164
 msgid "# PONGs dropped, signature expired"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1199
+#: src/transport/gnunet-service-transport_validation.c:1218
 #, fuzzy, c-format
 msgid "Adding `%s' without addresses for peer `%s'\n"
 msgstr "Imposible obtener la dirección del par '%s'.\n"
@@ -5204,92 +5215,92 @@ msgstr "# bytes enviados por TCP"
 msgid "# bytes dropped by SMTP (outgoing)"
 msgstr "# bytes omitidos por TCP (salientes)"
 
-#: src/transport/plugin_transport_tcp.c:590
+#: src/transport/plugin_transport_tcp.c:591
 #, c-format
 msgid "Unexpected address length: %u bytes\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:766
-#: src/transport/plugin_transport_tcp.c:855
-#: src/transport/plugin_transport_tcp.c:905
-#: src/transport/plugin_transport_tcp.c:991
-#: src/transport/plugin_transport_tcp.c:1129
-#: src/transport/plugin_transport_tcp.c:1146
+#: src/transport/plugin_transport_tcp.c:767
+#: src/transport/plugin_transport_tcp.c:856
+#: src/transport/plugin_transport_tcp.c:906
+#: src/transport/plugin_transport_tcp.c:992
+#: src/transport/plugin_transport_tcp.c:1130
+#: src/transport/plugin_transport_tcp.c:1147
 #, fuzzy
 msgid "# bytes currently in TCP buffers"
 msgstr "# bytes enviados por TCP"
 
-#: src/transport/plugin_transport_tcp.c:773
-#: src/transport/plugin_transport_tcp.c:962
-#: src/transport/plugin_transport_tcp.c:1806
-#: src/transport/plugin_transport_tcp.c:2423
+#: src/transport/plugin_transport_tcp.c:774
+#: src/transport/plugin_transport_tcp.c:963
+#: src/transport/plugin_transport_tcp.c:1807
+#: src/transport/plugin_transport_tcp.c:2424
 #, fuzzy
 msgid "# TCP sessions active"
 msgstr "# claves de la sesión aceptadas"
 
-#: src/transport/plugin_transport_tcp.c:859
+#: src/transport/plugin_transport_tcp.c:860
 #, fuzzy
 msgid "# bytes discarded by TCP (timeout)"
 msgstr "# bytes omitidos por TCP (salientes)"
 
-#: src/transport/plugin_transport_tcp.c:908
+#: src/transport/plugin_transport_tcp.c:909
 #, fuzzy
 msgid "# bytes transmitted via TCP"
 msgstr "# bytes desencriptados"
 
-#: src/transport/plugin_transport_tcp.c:995
+#: src/transport/plugin_transport_tcp.c:996
 #, fuzzy
 msgid "# bytes discarded by TCP (disconnect)"
 msgstr "# bytes omitidos por TCP (salientes)"
 
-#: src/transport/plugin_transport_tcp.c:1335
+#: src/transport/plugin_transport_tcp.c:1336
 #, c-format
 msgid "Address of unexpected length: %u\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1446
+#: src/transport/plugin_transport_tcp.c:1447
 msgid "# transport-service disconnect requests for TCP"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1847
+#: src/transport/plugin_transport_tcp.c:1848
 #, fuzzy
 msgid "# TCP WELCOME messages received"
 msgstr "# mensajes PONG encriptados recibidos"
 
-#: src/transport/plugin_transport_tcp.c:2018
+#: src/transport/plugin_transport_tcp.c:2019
 msgid "# bytes received via TCP"
 msgstr "# bytes recibidos por TCP"
 
-#: src/transport/plugin_transport_tcp.c:2088
+#: src/transport/plugin_transport_tcp.c:2089
 msgid "# network-level TCP disconnect events"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2312 src/util/service.c:946
+#: src/transport/plugin_transport_tcp.c:2313 src/util/service.c:946
 #: src/util/service.c:952
 #, c-format
 msgid "Require valid port number for service `%s' in configuration!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2326
+#: src/transport/plugin_transport_tcp.c:2327
 #, fuzzy
 msgid "Failed to start service.\n"
 msgstr "Falló al comenzar la recolección.\n"
 
-#: src/transport/plugin_transport_tcp.c:2388
+#: src/transport/plugin_transport_tcp.c:2389
 #, fuzzy, c-format
 msgid "Failed to find option %s in section %s!\n"
 msgstr "Fallo al conectar a gnunetd.\n"
 
-#: src/transport/plugin_transport_tcp.c:2411
+#: src/transport/plugin_transport_tcp.c:2412
 #, c-format
 msgid "TCP transport listening on port %llu\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2415
+#: src/transport/plugin_transport_tcp.c:2416
 msgid "TCP transport not listening on any port (client only)\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2419
+#: src/transport/plugin_transport_tcp.c:2420
 #, c-format
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr ""
@@ -5339,7 +5350,7 @@ msgstr ""
 msgid "Invalid IPv6 address: `%s'\n"
 msgstr "Argumento no válido: '%s'\n"
 
-#: src/transport/plugin_transport_unix.c:1351
+#: src/transport/plugin_transport_unix.c:1346
 #, fuzzy
 msgid "Failed to open UNIX sockets\n"
 msgstr "Fichero almacenado en '%s'.\n"
@@ -5598,7 +5609,7 @@ msgstr "Fallo al conectar a gnunetd.\n"
 msgid "Attempt to connect to `%s' failed\n"
 msgstr "Fallo al conectar a gnunetd.\n"
 
-#: src/util/container_bloomfilter.c:510
+#: src/util/container_bloomfilter.c:518
 #, c-format
 msgid ""
 "Size of file on disk is incorrect for this Bloom filter (want %llu, have "
@@ -5677,17 +5688,17 @@ msgstr "La verificación de la firma RSA fallo en %s: %d: %s\n"
 msgid "`%s' failed for drive `%S': %u\n"
 msgstr "'%s' falló para la unidad %s: %u\n"
 
-#: src/util/disk.c:1135
+#: src/util/disk.c:1140
 #, fuzzy, c-format
 msgid "Expected `%s' to be a directory!\n"
 msgstr "¡'%s' se esperaba que '%s' fuera un directorio!\n"
 
-#: src/util/disk.c:1489 src/util/service.c:1665
+#: src/util/disk.c:1494 src/util/service.c:1665
 #, fuzzy, c-format
 msgid "Cannot obtain information about user `%s': %s\n"
 msgstr "Imposible guardar el fichero de configuración '%s': %s.\n"
 
-#: src/util/disk.c:1861
+#: src/util/disk.c:1866
 #, fuzzy, c-format
 msgid "No `%s' specified for service `%s' in configuration.\n"
 msgstr "¡Ninguna aplicación definida en la configuración!\n"
@@ -5844,14 +5855,14 @@ msgid ""
 "Fatal internal logic error, process hangs in `%s' (abort with CTRL-C)!\n"
 msgstr ""
 
-#: src/util/os_installation.c:329
+#: src/util/os_installation.c:325
 #, c-format
 msgid ""
 "Could not determine installation path for %s.  Set `%s' environment "
 "variable.\n"
 msgstr ""
 
-#: src/util/os_installation.c:526
+#: src/util/os_installation.c:522
 #, fuzzy, c-format
 msgid "Could not find binary `%s' in PATH!\n"
 msgstr "¡Imposible encontrar el par '%s' en la tabla de enrutado!\n"
@@ -6148,7 +6159,7 @@ msgstr ""
 msgid "Invalid IPv6 address `%s': %s\n"
 msgstr "Argumento no válido: '%s'\n"
 
-#: src/vpn/gnunet-service-vpn.c:511 src/vpn/gnunet-service-vpn.c:1071
+#: src/vpn/gnunet-service-vpn.c:511 src/vpn/gnunet-service-vpn.c:1069
 #, fuzzy
 msgid "# Active tunnels"
 msgstr "Configuración de GNUnet"
@@ -6158,96 +6169,96 @@ msgstr "Configuración de GNUnet"
 msgid "# peers connected to mesh tunnels"
 msgstr "# de pares conectados"
 
-#: src/vpn/gnunet-service-vpn.c:699
+#: src/vpn/gnunet-service-vpn.c:698
 #, fuzzy
 msgid "# Bytes given to mesh for transmission"
 msgstr "# bytes de mensajes salientes omitidos"
 
-#: src/vpn/gnunet-service-vpn.c:737
+#: src/vpn/gnunet-service-vpn.c:736
 #, fuzzy
 msgid "# Bytes dropped in mesh queue (overflow)"
 msgstr "# bytes omitidos por UDP (salientes)"
 
-#: src/vpn/gnunet-service-vpn.c:772
+#: src/vpn/gnunet-service-vpn.c:770
 #, fuzzy
 msgid "# Mesh tunnels created"
 msgstr "# mensajes PONG encriptados recibidos"
 
-#: src/vpn/gnunet-service-vpn.c:795
+#: src/vpn/gnunet-service-vpn.c:793
 #, fuzzy
 msgid "Failed to setup mesh tunnel!\n"
 msgstr "Fallo en las estadísticas del tráfico.\n"
 
-#: src/vpn/gnunet-service-vpn.c:973
+#: src/vpn/gnunet-service-vpn.c:971
 #, c-format
 msgid "Protocol %u not supported, dropping\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1291
+#: src/vpn/gnunet-service-vpn.c:1289
 msgid "# ICMPv4 packets dropped (not allowed)"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1312
+#: src/vpn/gnunet-service-vpn.c:1310
 msgid "# ICMPv6 packets dropped (not allowed)"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1517
+#: src/vpn/gnunet-service-vpn.c:1515
 #, fuzzy
 msgid "# Packets received from TUN interface"
 msgstr "El mensaje recibido del cliente es inválido\n"
 
-#: src/vpn/gnunet-service-vpn.c:1555 src/vpn/gnunet-service-vpn.c:1596
+#: src/vpn/gnunet-service-vpn.c:1553 src/vpn/gnunet-service-vpn.c:1594
 #, c-format
 msgid "Packet received for unmapped destination `%s' (dropping it)\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1606
+#: src/vpn/gnunet-service-vpn.c:1604
 msgid "Received IPv4 packet with options (dropping it)\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1620
+#: src/vpn/gnunet-service-vpn.c:1618
 #, c-format
 msgid "Received packet of unknown protocol %d from TUN (dropping it)\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1704
+#: src/vpn/gnunet-service-vpn.c:1702
 #, fuzzy
 msgid "# ICMP packets received from mesh"
 msgstr "El mensaje recibido del cliente es inválido\n"
 
-#: src/vpn/gnunet-service-vpn.c:2045
+#: src/vpn/gnunet-service-vpn.c:2043
 #, fuzzy
 msgid "# UDP packets received from mesh"
 msgstr "El mensaje recibido del cliente es inválido\n"
 
-#: src/vpn/gnunet-service-vpn.c:2203
+#: src/vpn/gnunet-service-vpn.c:2201
 #, fuzzy
 msgid "# TCP packets received from mesh"
 msgstr "El mensaje recibido del cliente es inválido\n"
 
-#: src/vpn/gnunet-service-vpn.c:2354
+#: src/vpn/gnunet-service-vpn.c:2352
 msgid "Failed to find unallocated IPv4 address in VPN's range\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:2409
+#: src/vpn/gnunet-service-vpn.c:2407
 #, fuzzy
 msgid "Failed to find unallocated IPv6 address in VPN's range\n"
 msgstr "¡Falló al obtener mi dirección IPv6 (externa)!\n"
 
-#: src/vpn/gnunet-service-vpn.c:2448 src/vpn/gnunet-service-vpn.c:2661
+#: src/vpn/gnunet-service-vpn.c:2446 src/vpn/gnunet-service-vpn.c:2659
 #, fuzzy
 msgid "# Active destinations"
 msgstr "Configuración de GNUnet"
 
-#: src/vpn/gnunet-service-vpn.c:2734
+#: src/vpn/gnunet-service-vpn.c:2732
 msgid "Failed to allocate IP address for new destination\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:3141
+#: src/vpn/gnunet-service-vpn.c:3139
 msgid "IPv6 support disabled as this system does not support IPv6\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:3173
+#: src/vpn/gnunet-service-vpn.c:3171
 msgid "IPv4 support disabled as this system does not support IPv4\n"
 msgstr ""
 
@@ -6323,18 +6334,18 @@ msgstr "# bytes recibidos vía UDP"
 msgid "Setup tunnels via VPN."
 msgstr ""
 
-#: src/include/gnunet_common.h:507 src/include/gnunet_common.h:512
-#: src/include/gnunet_common.h:518
+#: src/include/gnunet_common.h:515 src/include/gnunet_common.h:520
+#: src/include/gnunet_common.h:526
 #, fuzzy, c-format
 msgid "Assertion failed at %s:%d.\n"
 msgstr "La verificación de la firma RSA fallo en %s: %d: %s\n"
 
-#: src/include/gnunet_common.h:528
+#: src/include/gnunet_common.h:536
 #, fuzzy, c-format
 msgid "External protocol violation detected at %s:%d.\n"
 msgstr "La verificación de la firma RSA fallo en %s: %d: %s\n"
 
-#: src/include/gnunet_common.h:549 src/include/gnunet_common.h:556
+#: src/include/gnunet_common.h:557 src/include/gnunet_common.h:564
 #, fuzzy, c-format
 msgid "`%s' failed on file `%s' at %s:%d with error: %s\n"
 msgstr "'%s' falló en el fichero '%s' en %s: %d con el error: %s\n"
index d8c73530f963bdb47c32cc6b00cf1e829ac9a5d0..768df821eb6f4818e27ccb3893ec16172563193a 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNUnet 0.7.0b\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
-"POT-Creation-Date: 2012-07-20 19:29+0200\n"
+"POT-Creation-Date: 2012-08-17 00:17+0200\n"
 "PO-Revision-Date: 2006-01-21 17:16+0100\n"
 "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -707,7 +707,7 @@ msgid "# keepalive messages sent"
 msgstr "# PING-meddelanden i klartext skickade"
 
 #: src/core/gnunet-service-core_kx.c:1236
-#: src/transport/gnunet-service-transport_validation.c:1096
+#: src/transport/gnunet-service-transport_validation.c:1108
 #, fuzzy
 msgid "# PONG messages received"
 msgstr "# krypterade PONG-meddelanden mottagna"
@@ -809,11 +809,11 @@ msgstr ""
 #: src/fs/gnunet-service-fs_cp.c:622 src/fs/gnunet-service-fs_cp.c:1530
 #: src/topology/gnunet-daemon-topology.c:709
 #: src/topology/gnunet-daemon-topology.c:810
-#: src/transport/gnunet-service-transport_neighbours.c:890
-#: src/transport/gnunet-service-transport_neighbours.c:1106
-#: src/transport/gnunet-service-transport_neighbours.c:1115
-#: src/transport/gnunet-service-transport_neighbours.c:2637
-#: src/transport/gnunet-service-transport_neighbours.c:2899
+#: src/transport/gnunet-service-transport_neighbours.c:873
+#: src/transport/gnunet-service-transport_neighbours.c:1089
+#: src/transport/gnunet-service-transport_neighbours.c:1098
+#: src/transport/gnunet-service-transport_neighbours.c:2620
+#: src/transport/gnunet-service-transport_neighbours.c:2882
 #, fuzzy
 msgid "# peers connected"
 msgstr "# av anslutna parter"
@@ -879,8 +879,8 @@ msgstr ""
 #: src/mysql/mysql.c:591 src/mysql/mysql.c:607
 #: src/namestore/plugin_namestore_postgres.c:52
 #: src/namestore/plugin_namestore_sqlite.c:51 src/util/crypto_ksk.c:49
-#: src/util/crypto_rsa.c:66 src/include/gnunet_common.h:535
-#: src/include/gnunet_common.h:542
+#: src/util/crypto_rsa.c:66 src/include/gnunet_common.h:543
+#: src/include/gnunet_common.h:550
 #, c-format
 msgid "`%s' failed at %s:%d with error: %s\n"
 msgstr "\"%s\" misslyckades vid %s:%d med fel: %s\n"
@@ -1643,11 +1643,11 @@ msgstr "Meddelande mottaget från klient är ogiltig.\n"
 msgid "Configured DNS exit `%s' is not working / valid.\n"
 msgstr ""
 
-#: src/dns/gnunet-service-dns.c:1497 src/exit/gnunet-daemon-exit.c:2674
+#: src/dns/gnunet-service-dns.c:1497 src/exit/gnunet-daemon-exit.c:2673
 msgid "# Inbound MESH tunnels created"
 msgstr ""
 
-#: src/dns/gnunet-service-dns.c:1561 src/exit/gnunet-daemon-exit.c:3033
+#: src/dns/gnunet-service-dns.c:1561 src/exit/gnunet-daemon-exit.c:3032
 #, c-format
 msgid "`%s' must be installed SUID, refusing to run\n"
 msgstr ""
@@ -1671,199 +1671,199 @@ msgstr "Mottog skadat meddelande från motpart \"%s\"i %s:%d.\n"
 msgid "Got duplicate service records for `%s:%u'\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:563
+#: src/exit/gnunet-daemon-exit.c:561
 #, fuzzy
 msgid "# Bytes transmitted via mesh tunnels"
 msgstr "# byte skickade av typen %d"
 
-#: src/exit/gnunet-daemon-exit.c:679 src/exit/gnunet-daemon-exit.c:2069
-#: src/exit/gnunet-daemon-exit.c:2319 src/vpn/gnunet-service-vpn.c:1394
-#: src/vpn/gnunet-service-vpn.c:1795 src/vpn/gnunet-service-vpn.c:1958
+#: src/exit/gnunet-daemon-exit.c:678 src/exit/gnunet-daemon-exit.c:2068
+#: src/exit/gnunet-daemon-exit.c:2318 src/vpn/gnunet-service-vpn.c:1392
+#: src/vpn/gnunet-service-vpn.c:1793 src/vpn/gnunet-service-vpn.c:1956
 msgid "# ICMPv4 packets dropped (type not allowed)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:716 src/exit/gnunet-daemon-exit.c:2128
-#: src/exit/gnunet-daemon-exit.c:2378 src/vpn/gnunet-service-vpn.c:1450
-#: src/vpn/gnunet-service-vpn.c:1854 src/vpn/gnunet-service-vpn.c:1991
+#: src/exit/gnunet-daemon-exit.c:715 src/exit/gnunet-daemon-exit.c:2127
+#: src/exit/gnunet-daemon-exit.c:2377 src/vpn/gnunet-service-vpn.c:1448
+#: src/vpn/gnunet-service-vpn.c:1852 src/vpn/gnunet-service-vpn.c:1989
 msgid "# ICMPv6 packets dropped (type not allowed)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:756
+#: src/exit/gnunet-daemon-exit.c:755
 msgid "# ICMP packets dropped (not allowed)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:763
+#: src/exit/gnunet-daemon-exit.c:762
 msgid "ICMP Packet dropped, have no matching connection information\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:840
+#: src/exit/gnunet-daemon-exit.c:839
 msgid "UDP Packet dropped, have no matching connection information\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:915
+#: src/exit/gnunet-daemon-exit.c:914
 msgid "TCP Packet dropped, have no matching connection information\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:968
+#: src/exit/gnunet-daemon-exit.c:967
 #, fuzzy
 msgid "# Packets received from TUN"
 msgstr "# byte mottagna via HTTP"
 
-#: src/exit/gnunet-daemon-exit.c:982
+#: src/exit/gnunet-daemon-exit.c:981
 #, fuzzy
 msgid "# Bytes received from TUN"
 msgstr "# byte mottagna via HTTP"
 
-#: src/exit/gnunet-daemon-exit.c:1008
+#: src/exit/gnunet-daemon-exit.c:1007
 msgid "IPv4 packet options received.  Ignored.\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1035
+#: src/exit/gnunet-daemon-exit.c:1034
 #, c-format
 msgid "IPv4 packet with unsupported next header %u received.  Ignored.\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1081
+#: src/exit/gnunet-daemon-exit.c:1080
 #, c-format
 msgid "IPv6 packet with unsupported next header %d received.  Ignored.\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1089
+#: src/exit/gnunet-daemon-exit.c:1088
 #, c-format
 msgid "Packet from unknown protocol %u received.  Ignored.\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1471
+#: src/exit/gnunet-daemon-exit.c:1470
 #, fuzzy
 msgid "# TCP packets sent via TUN"
 msgstr "# byte skickade via UDP"
 
-#: src/exit/gnunet-daemon-exit.c:1571
+#: src/exit/gnunet-daemon-exit.c:1570
 msgid "# TCP service creation requests received via mesh"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1574 src/exit/gnunet-daemon-exit.c:1653
-#: src/exit/gnunet-daemon-exit.c:1763 src/exit/gnunet-daemon-exit.c:1993
-#: src/exit/gnunet-daemon-exit.c:2235 src/exit/gnunet-daemon-exit.c:2516
-#: src/exit/gnunet-daemon-exit.c:2616
+#: src/exit/gnunet-daemon-exit.c:1573 src/exit/gnunet-daemon-exit.c:1652
+#: src/exit/gnunet-daemon-exit.c:1762 src/exit/gnunet-daemon-exit.c:1992
+#: src/exit/gnunet-daemon-exit.c:2234 src/exit/gnunet-daemon-exit.c:2515
+#: src/exit/gnunet-daemon-exit.c:2615
 #, fuzzy
 msgid "# Bytes received from MESH"
 msgstr "# byte mottagna via HTTP"
 
-#: src/exit/gnunet-daemon-exit.c:1607 src/exit/gnunet-daemon-exit.c:2638
+#: src/exit/gnunet-daemon-exit.c:1606 src/exit/gnunet-daemon-exit.c:2637
 #, c-format
 msgid "No service found for %s on port %d!\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1611
+#: src/exit/gnunet-daemon-exit.c:1610
 #, fuzzy
 msgid "# TCP requests dropped (no such service)"
 msgstr "# byte mottogs via TCP"
 
-#: src/exit/gnunet-daemon-exit.c:1656
+#: src/exit/gnunet-daemon-exit.c:1655
 #, fuzzy
 msgid "# TCP IP-exit creation requests received via mesh"
 msgstr "# byte mottogs via TCP"
 
-#: src/exit/gnunet-daemon-exit.c:1766
+#: src/exit/gnunet-daemon-exit.c:1765
 #, fuzzy
 msgid "# TCP data requests received via mesh"
 msgstr "# byte mottogs via TCP"
 
-#: src/exit/gnunet-daemon-exit.c:1780
+#: src/exit/gnunet-daemon-exit.c:1779
 #, fuzzy
 msgid "# TCP DATA requests dropped (no session)"
 msgstr "# byte mottogs via TCP"
 
-#: src/exit/gnunet-daemon-exit.c:1830
+#: src/exit/gnunet-daemon-exit.c:1829
 #, fuzzy
 msgid "# ICMP packets sent via TUN"
 msgstr "# byte skickade via UDP"
 
-#: src/exit/gnunet-daemon-exit.c:1996
+#: src/exit/gnunet-daemon-exit.c:1995
 #, fuzzy
 msgid "# ICMP IP-exit requests received via mesh"
 msgstr "# byte mottogs via TCP"
 
-#: src/exit/gnunet-daemon-exit.c:2238
+#: src/exit/gnunet-daemon-exit.c:2237
 #, fuzzy
 msgid "# ICMP service requests received via mesh"
 msgstr "Meddelande mottaget från klient är ogiltig.\n"
 
-#: src/exit/gnunet-daemon-exit.c:2304 src/vpn/gnunet-service-vpn.c:1384
-#: src/vpn/gnunet-service-vpn.c:1952
+#: src/exit/gnunet-daemon-exit.c:2303 src/vpn/gnunet-service-vpn.c:1382
+#: src/vpn/gnunet-service-vpn.c:1950
 msgid "# ICMPv4 packets dropped (impossible PT to v6)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:2363 src/vpn/gnunet-service-vpn.c:1420
-#: src/vpn/gnunet-service-vpn.c:1432 src/vpn/gnunet-service-vpn.c:1842
+#: src/exit/gnunet-daemon-exit.c:2362 src/vpn/gnunet-service-vpn.c:1418
+#: src/vpn/gnunet-service-vpn.c:1430 src/vpn/gnunet-service-vpn.c:1840
 msgid "# ICMPv6 packets dropped (impossible PT to v4)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:2413
+#: src/exit/gnunet-daemon-exit.c:2412
 #, fuzzy
 msgid "# UDP packets sent via TUN"
 msgstr "# byte skickade via UDP"
 
-#: src/exit/gnunet-daemon-exit.c:2519
+#: src/exit/gnunet-daemon-exit.c:2518
 #, fuzzy
 msgid "# UDP IP-exit requests received via mesh"
 msgstr "# byte mottogs via TCP"
 
-#: src/exit/gnunet-daemon-exit.c:2619
+#: src/exit/gnunet-daemon-exit.c:2618
 #, fuzzy
 msgid "# UDP service requests received via mesh"
 msgstr "# byte mottogs via TCP"
 
-#: src/exit/gnunet-daemon-exit.c:2642
+#: src/exit/gnunet-daemon-exit.c:2641
 #, fuzzy
 msgid "# UDP requests dropped (no such service)"
 msgstr "# byte mottogs via TCP"
 
-#: src/exit/gnunet-daemon-exit.c:2883
+#: src/exit/gnunet-daemon-exit.c:2882
 #, c-format
 msgid "No addresses found for hostname `%s' of service `%s'!\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:2897 src/exit/gnunet-daemon-exit.c:2909
+#: src/exit/gnunet-daemon-exit.c:2896 src/exit/gnunet-daemon-exit.c:2908
 #, c-format
 msgid "Service `%s' configured for IPv4, but IPv4 is disabled!\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:2920
+#: src/exit/gnunet-daemon-exit.c:2919
 #, c-format
 msgid "No IP addresses found for hostname `%s' of service `%s'!\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3049
+#: src/exit/gnunet-daemon-exit.c:3048
 msgid ""
 "This system does not support IPv4, will disable IPv4 functions despite them "
 "being enabled in the configuration\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3057
+#: src/exit/gnunet-daemon-exit.c:3056
 msgid ""
 "This system does not support IPv6, will disable IPv6 functions despite them "
 "being enabled in the configuration\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3064
+#: src/exit/gnunet-daemon-exit.c:3063
 msgid ""
 "Cannot enable IPv4 exit but disable IPv4 on TUN interface, will use "
 "ENABLE_IPv4=YES\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3070
+#: src/exit/gnunet-daemon-exit.c:3069
 msgid ""
 "Cannot enable IPv6 exit but disable IPv6 on TUN interface, will use "
 "ENABLE_IPv6=YES\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3076 src/pt/gnunet-daemon-pt.c:884
+#: src/exit/gnunet-daemon-exit.c:3075 src/pt/gnunet-daemon-pt.c:884
 msgid "No useful service enabled.  Exiting.\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3241
+#: src/exit/gnunet-daemon-exit.c:3240
 msgid "Daemon to run to provide an IP exit node for the VPN"
 msgstr ""
 
@@ -3174,28 +3174,29 @@ msgstr "antal meddelanden att använda per iteration"
 msgid "Failed to connect to GNS\n"
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
-#: src/gns/gnunet-gns.c:341
-msgid "try to shorten a given GNS name"
-msgstr ""
+#: src/gns/gnunet-gns.c:358
+#, fuzzy
+msgid "try to shorten a given name"
+msgstr "Misslyckades att ansluta till gnunetd.\n"
 
-#: src/gns/gnunet-gns.c:344
-msgid "Lookup a record using GNS (NOT IMPLEMENTED)"
+#: src/gns/gnunet-gns.c:361
+msgid "Lookup a record for the given name"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:347
+#: src/gns/gnunet-gns.c:364
 msgid "Get the authority of a particular name"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:350
+#: src/gns/gnunet-gns.c:367
 #, fuzzy
-msgid "Specify the type of the record lookup"
+msgid "Specify the type of the record to lookup"
 msgstr "ange prioritet för innehållet"
 
-#: src/gns/gnunet-gns.c:353
+#: src/gns/gnunet-gns.c:370
 msgid "No unneeded output"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:367
+#: src/gns/gnunet-gns.c:384
 msgid "GNUnet GNS access tool"
 msgstr ""
 
@@ -3252,7 +3253,7 @@ msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
 msgid "Failed to connect to namestore\n"
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
-#: src/gns/gnunet-gns-fcfsd.c:789 src/gns/gnunet-gns-proxy.c:2667
+#: src/gns/gnunet-gns-fcfsd.c:789 src/gns/gnunet-gns-proxy.c:2901
 #, fuzzy
 msgid "Failed to start HTTP server\n"
 msgstr "Misslyckades att starta samling.\n"
@@ -3261,25 +3262,25 @@ msgstr "Misslyckades att starta samling.\n"
 msgid "GNUnet GNS first come first serve registration service"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:2300
+#: src/gns/gnunet-gns-proxy.c:2532
 #, fuzzy, c-format
 msgid "Unable to import private key from file `%s'\n"
 msgstr "Kunde inte skapa användarkonto:"
 
-#: src/gns/gnunet-gns-proxy.c:2329
+#: src/gns/gnunet-gns-proxy.c:2561
 #, fuzzy, c-format
 msgid "Unable to import certificate %s\n"
 msgstr "Kunde inte spara konfigurationsfil \"%s\":"
 
-#: src/gns/gnunet-gns-proxy.c:3328
+#: src/gns/gnunet-gns-proxy.c:3578
 msgid "listen on specified port"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3331
+#: src/gns/gnunet-gns-proxy.c:3581
 msgid "pem file to use as CA"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3346
+#: src/gns/gnunet-gns-proxy.c:3596
 msgid "GNUnet GNS proxy"
 msgstr ""
 
@@ -3632,36 +3633,46 @@ msgstr "\"%s\" är inte tillgänglig."
 msgid "Could not start hostlist HTTP server on port %u\n"
 msgstr ""
 
-#: src/integration-tests/connection_watchdog.c:997
+#: src/integration-tests/connection_watchdog.c:1001
 #, fuzzy, c-format
 msgid "Transport plugin: `%s' port %llu\n"
 msgstr "Testar transport(er) %s\n"
 
-#: src/integration-tests/connection_watchdog.c:1030
+#: src/integration-tests/connection_watchdog.c:1034
 #, fuzzy, c-format
 msgid "Found %u transport plugins: `%s'\n"
 msgstr "Testar transport(er) %s\n"
 
-#: src/integration-tests/connection_watchdog.c:1089
+#: src/integration-tests/connection_watchdog.c:1093
 msgid "Send ping messages to test connectivity (default == NO)"
 msgstr ""
 
-#: src/integration-tests/connection_watchdog.c:1099
+#: src/integration-tests/connection_watchdog.c:1103
 #: src/template/gnunet-template.c:71
 #, fuzzy
 msgid "help text"
 msgstr "hjälptext för -t"
 
-#: src/mesh/gnunet-service-mesh.c:5904
+#: src/mesh/gnunet-service-mesh.c:7110
 msgid "Wrong CORE service\n"
 msgstr ""
 
-#: src/mesh/gnunet-service-mesh.c:6116
-#, fuzzy
-msgid "Mesh service is lacking key configuration settings.  Exiting.\n"
+#: src/mesh/gnunet-service-mesh.c:7328 src/mesh/gnunet-service-mesh.c:7340
+#: src/mesh/gnunet-service-mesh.c:7352 src/mesh/gnunet-service-mesh.c:7364
+#: src/mesh/gnunet-service-mesh.c:7376 src/mesh/gnunet-service-mesh.c:7388
+#: src/mesh/gnunet-service-mesh.c:7400 src/mesh/gnunet-service-mesh.c:7412
+#, fuzzy, c-format
+msgid "Mesh service is lacking key configuration settings (%s).  Exiting.\n"
 msgstr "GNUnet-konfiguration"
 
-#: src/mesh/gnunet-service-mesh.c:6125
+#: src/mesh/gnunet-service-mesh.c:7424 src/mesh/gnunet-service-mesh.c:7435
+#, fuzzy, c-format
+msgid ""
+"Mesh service is lacking key configuration settings (%s). Using default "
+"(%u).\n"
+msgstr "GNUnet-konfiguration"
+
+#: src/mesh/gnunet-service-mesh.c:7446
 #, fuzzy
 msgid "Mesh service could not access hostkey.  Exiting.\n"
 msgstr "Kunde inte komma åt namnrymdsinformation.\n"
@@ -4276,7 +4287,7 @@ msgid ""
 "might have been lost!\n"
 msgstr ""
 
-#: src/testbed/testbed_api.c:204
+#: src/testbed/testbed_api.c:246
 #, fuzzy, c-format
 msgid "Adding host %u failed with error: %s\n"
 msgstr "\"%s\" misslyckades vid %s:%d med fel: %s\n"
@@ -4433,7 +4444,7 @@ msgstr ""
 msgid "Starting service %s for peer `%4s'\n"
 msgstr "Startade samling \"%s\".\n"
 
-#: src/testing_old/testing.c:1207 src/testing_old/testing_group.c:6155
+#: src/testing_old/testing.c:1207 src/testing_old/testing_group.c:6172
 #, fuzzy, c-format
 msgid "Could not start `%s' process to copy configuration directory.\n"
 msgstr "Kunde inte skapa värdnyckel!\n"
@@ -4512,12 +4523,12 @@ msgstr ""
 msgid "Unknown topology specification, can't connect peers!\n"
 msgstr ""
 
-#: src/testing_old/testing_group.c:5945
-#, fuzzy
-msgid "Could not read hostkeys file!\n"
+#: src/testing_old/testing_group.c:5962
+#, fuzzy, c-format
+msgid "Could not read hostkeys file `%s'!\n"
 msgstr "Kunde inte skapa värdnyckel!\n"
 
-#: src/testing_old/testing_group.c:6012
+#: src/testing_old/testing_group.c:6029
 #, fuzzy, c-format
 msgid "Could not create configuration for peer number %u on `%s'!\n"
 msgstr "Kunde inte komma åt namnrymdsinformation.\n"
@@ -4766,115 +4777,115 @@ msgstr "# krypterade PONG-meddelanden mottagna"
 msgid "# refreshed my HELLO"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1057
+#: src/transport/gnunet-service-transport_neighbours.c:1040
 #, fuzzy
 msgid "# DISCONNECT messages sent"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1174
-#: src/transport/gnunet-service-transport_neighbours.c:1511
+#: src/transport/gnunet-service-transport_neighbours.c:1157
+#: src/transport/gnunet-service-transport_neighbours.c:1494
 msgid "# bytes in message queue for other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1179
+#: src/transport/gnunet-service-transport_neighbours.c:1162
 #, fuzzy
 msgid "# messages transmitted to other peers"
 msgstr "# byte skickade av typen %d"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1184
+#: src/transport/gnunet-service-transport_neighbours.c:1167
 #, fuzzy
 msgid "# transmission failures for messages to other peers"
 msgstr "# byte skickade av typen %d"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1241
+#: src/transport/gnunet-service-transport_neighbours.c:1224
 msgid "# messages timed out while in transport queue"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1283
+#: src/transport/gnunet-service-transport_neighbours.c:1266
 #, fuzzy
 msgid "# keepalives sent"
 msgstr "# sessionsnycklar skickade"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1307
+#: src/transport/gnunet-service-transport_neighbours.c:1290
 #, fuzzy
 msgid "# KEEPALIVE messages discarded (peer unknown)"
 msgstr "Nätverksannonsering avstängd i konfigurationen!\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1315
+#: src/transport/gnunet-service-transport_neighbours.c:1298
 #, fuzzy
 msgid "# KEEPALIVE messages discarded (no session)"
 msgstr "Nätverksannonsering avstängd i konfigurationen!\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1352
+#: src/transport/gnunet-service-transport_neighbours.c:1335
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSE messages discarded (not connected)"
 msgstr "Nätverksannonsering avstängd i konfigurationen!\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1361
+#: src/transport/gnunet-service-transport_neighbours.c:1344
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSE messages discarded (not expected)"
 msgstr "Nätverksannonsering avstängd i konfigurationen!\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1417
+#: src/transport/gnunet-service-transport_neighbours.c:1400
 #, fuzzy
 msgid "# messages discarded due to lack of neighbour record"
 msgstr "Nätverksannonsering avstängd i konfigurationen!\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1451
+#: src/transport/gnunet-service-transport_neighbours.c:1434
 msgid "# bandwidth quota violations by other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1467
+#: src/transport/gnunet-service-transport_neighbours.c:1450
 msgid "# ms throttling suggested"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2613
+#: src/transport/gnunet-service-transport_neighbours.c:2596
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (no peer)"
 msgstr "skicka ANTAL meddelanden"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2628
-#: src/transport/gnunet-service-transport_neighbours.c:2662
+#: src/transport/gnunet-service-transport_neighbours.c:2611
+#: src/transport/gnunet-service-transport_neighbours.c:2645
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (not ready)"
 msgstr "skicka ANTAL meddelanden"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2675
+#: src/transport/gnunet-service-transport_neighbours.c:2658
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (waiting on ATS)"
 msgstr "skicka ANTAL meddelanden"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2708
+#: src/transport/gnunet-service-transport_neighbours.c:2691
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (disconnecting)"
 msgstr "skicka ANTAL meddelanden"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2892
+#: src/transport/gnunet-service-transport_neighbours.c:2875
 #, fuzzy
 msgid "# unexpected SESSION ACK messages"
 msgstr "# krypterade PONG-meddelanden skickade"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2947
+#: src/transport/gnunet-service-transport_neighbours.c:2930
 msgid "# SET QUOTA messages ignored (no such peer)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2961
+#: src/transport/gnunet-service-transport_neighbours.c:2944
 msgid "# disconnects due to quota of 0"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2992
+#: src/transport/gnunet-service-transport_neighbours.c:2975
 msgid "# disconnect messages ignored (old format)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3003
+#: src/transport/gnunet-service-transport_neighbours.c:2986
 msgid "# disconnect messages ignored (timestamp)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3034
+#: src/transport/gnunet-service-transport_neighbours.c:3017
 msgid "# other peer asked to disconnect from us"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3129
+#: src/transport/gnunet-service-transport_neighbours.c:3112
 #, fuzzy
 msgid "# disconnected from peer upon explicit request"
 msgstr "# av anslutna parter"
@@ -4913,23 +4924,23 @@ msgstr "# PING-meddelanden skapade"
 msgid "Received a PING message with validation bug from `%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:989
+#: src/transport/gnunet-service-transport_validation.c:1001
 msgid "# PONGs unicast via reliable transport"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:998
+#: src/transport/gnunet-service-transport_validation.c:1010
 msgid "# PONGs multicast to all available addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1120
+#: src/transport/gnunet-service-transport_validation.c:1135
 msgid "# PONGs dropped, no matching pending validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1145
+#: src/transport/gnunet-service-transport_validation.c:1164
 msgid "# PONGs dropped, signature expired"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1199
+#: src/transport/gnunet-service-transport_validation.c:1218
 #, fuzzy, c-format
 msgid "Adding `%s' without addresses for peer `%s'\n"
 msgstr "Motpart \"%s\" med pålitlighet %8u och adress \"%s\"\n"
@@ -5139,92 +5150,92 @@ msgstr "# byte skickades via TCP"
 msgid "# bytes dropped by SMTP (outgoing)"
 msgstr "# byte kastade via TCP (utgående)"
 
-#: src/transport/plugin_transport_tcp.c:590
+#: src/transport/plugin_transport_tcp.c:591
 #, c-format
 msgid "Unexpected address length: %u bytes\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:766
-#: src/transport/plugin_transport_tcp.c:855
-#: src/transport/plugin_transport_tcp.c:905
-#: src/transport/plugin_transport_tcp.c:991
-#: src/transport/plugin_transport_tcp.c:1129
-#: src/transport/plugin_transport_tcp.c:1146
+#: src/transport/plugin_transport_tcp.c:767
+#: src/transport/plugin_transport_tcp.c:856
+#: src/transport/plugin_transport_tcp.c:906
+#: src/transport/plugin_transport_tcp.c:992
+#: src/transport/plugin_transport_tcp.c:1130
+#: src/transport/plugin_transport_tcp.c:1147
 #, fuzzy
 msgid "# bytes currently in TCP buffers"
 msgstr "# byte skickades via TCP"
 
-#: src/transport/plugin_transport_tcp.c:773
-#: src/transport/plugin_transport_tcp.c:962
-#: src/transport/plugin_transport_tcp.c:1806
-#: src/transport/plugin_transport_tcp.c:2423
+#: src/transport/plugin_transport_tcp.c:774
+#: src/transport/plugin_transport_tcp.c:963
+#: src/transport/plugin_transport_tcp.c:1807
+#: src/transport/plugin_transport_tcp.c:2424
 #, fuzzy
 msgid "# TCP sessions active"
 msgstr "# sessionsnycklar accepterade"
 
-#: src/transport/plugin_transport_tcp.c:859
+#: src/transport/plugin_transport_tcp.c:860
 #, fuzzy
 msgid "# bytes discarded by TCP (timeout)"
 msgstr "# byte kastade via TCP (utgående)"
 
-#: src/transport/plugin_transport_tcp.c:908
+#: src/transport/plugin_transport_tcp.c:909
 #, fuzzy
 msgid "# bytes transmitted via TCP"
 msgstr "# byte skickade av typen %d"
 
-#: src/transport/plugin_transport_tcp.c:995
+#: src/transport/plugin_transport_tcp.c:996
 #, fuzzy
 msgid "# bytes discarded by TCP (disconnect)"
 msgstr "# byte kastade via TCP (utgående)"
 
-#: src/transport/plugin_transport_tcp.c:1335
+#: src/transport/plugin_transport_tcp.c:1336
 #, c-format
 msgid "Address of unexpected length: %u\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1446
+#: src/transport/plugin_transport_tcp.c:1447
 msgid "# transport-service disconnect requests for TCP"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1847
+#: src/transport/plugin_transport_tcp.c:1848
 #, fuzzy
 msgid "# TCP WELCOME messages received"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/plugin_transport_tcp.c:2018
+#: src/transport/plugin_transport_tcp.c:2019
 msgid "# bytes received via TCP"
 msgstr "# byte mottogs via TCP"
 
-#: src/transport/plugin_transport_tcp.c:2088
+#: src/transport/plugin_transport_tcp.c:2089
 msgid "# network-level TCP disconnect events"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2312 src/util/service.c:946
+#: src/transport/plugin_transport_tcp.c:2313 src/util/service.c:946
 #: src/util/service.c:952
 #, c-format
 msgid "Require valid port number for service `%s' in configuration!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2326
+#: src/transport/plugin_transport_tcp.c:2327
 #, fuzzy
 msgid "Failed to start service.\n"
 msgstr "Misslyckades att starta samling.\n"
 
-#: src/transport/plugin_transport_tcp.c:2388
+#: src/transport/plugin_transport_tcp.c:2389
 #, fuzzy, c-format
 msgid "Failed to find option %s in section %s!\n"
 msgstr "Misslyckades att binda till UDP-port %d.\n"
 
-#: src/transport/plugin_transport_tcp.c:2411
+#: src/transport/plugin_transport_tcp.c:2412
 #, c-format
 msgid "TCP transport listening on port %llu\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2415
+#: src/transport/plugin_transport_tcp.c:2416
 msgid "TCP transport not listening on any port (client only)\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2419
+#: src/transport/plugin_transport_tcp.c:2420
 #, c-format
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr ""
@@ -5274,7 +5285,7 @@ msgstr ""
 msgid "Invalid IPv6 address: `%s'\n"
 msgstr "Ogiltigt svar på \"%s\".\n"
 
-#: src/transport/plugin_transport_unix.c:1351
+#: src/transport/plugin_transport_unix.c:1346
 #, fuzzy
 msgid "Failed to open UNIX sockets\n"
 msgstr "Misslyckades att leverera \"%s\" meddelande.\n"
@@ -5530,7 +5541,7 @@ msgstr "Kan inte ansluta till %u.%u.%u.%u:%u: %s\n"
 msgid "Attempt to connect to `%s' failed\n"
 msgstr " Anslutning misslyckades\n"
 
-#: src/util/container_bloomfilter.c:510
+#: src/util/container_bloomfilter.c:518
 #, c-format
 msgid ""
 "Size of file on disk is incorrect for this Bloom filter (want %llu, have "
@@ -5609,17 +5620,17 @@ msgstr ""
 msgid "`%s' failed for drive `%S': %u\n"
 msgstr "\"%s\" misslyckades för enhet %s: %u\n"
 
-#: src/util/disk.c:1135
+#: src/util/disk.c:1140
 #, fuzzy, c-format
 msgid "Expected `%s' to be a directory!\n"
 msgstr "\"%s\" förväntade att \"%s\" skulle vara en katalog!\n"
 
-#: src/util/disk.c:1489 src/util/service.c:1665
+#: src/util/disk.c:1494 src/util/service.c:1665
 #, fuzzy, c-format
 msgid "Cannot obtain information about user `%s': %s\n"
 msgstr "Kan inte öppna konfigurationsfil \"%s\".\n"
 
-#: src/util/disk.c:1861
+#: src/util/disk.c:1866
 #, fuzzy, c-format
 msgid "No `%s' specified for service `%s' in configuration.\n"
 msgstr "Inga applikationer definierade i konfiguration!\n"
@@ -5778,14 +5789,14 @@ msgid ""
 "Fatal internal logic error, process hangs in `%s' (abort with CTRL-C)!\n"
 msgstr ""
 
-#: src/util/os_installation.c:329
+#: src/util/os_installation.c:325
 #, c-format
 msgid ""
 "Could not determine installation path for %s.  Set `%s' environment "
 "variable.\n"
 msgstr ""
 
-#: src/util/os_installation.c:526
+#: src/util/os_installation.c:522
 #, fuzzy, c-format
 msgid "Could not find binary `%s' in PATH!\n"
 msgstr "Kunde inte hitta motpart \"%s\" i routingtabell!\n"
@@ -6081,7 +6092,7 @@ msgstr ""
 msgid "Invalid IPv6 address `%s': %s\n"
 msgstr "Ogiltigt svar på \"%s\".\n"
 
-#: src/vpn/gnunet-service-vpn.c:511 src/vpn/gnunet-service-vpn.c:1071
+#: src/vpn/gnunet-service-vpn.c:511 src/vpn/gnunet-service-vpn.c:1069
 #, fuzzy
 msgid "# Active tunnels"
 msgstr "Nätverksanslutning"
@@ -6091,95 +6102,95 @@ msgstr "Nätverksanslutning"
 msgid "# peers connected to mesh tunnels"
 msgstr "# av anslutna parter"
 
-#: src/vpn/gnunet-service-vpn.c:699
+#: src/vpn/gnunet-service-vpn.c:698
 #, fuzzy
 msgid "# Bytes given to mesh for transmission"
 msgstr "# PING-meddelanden skapade"
 
-#: src/vpn/gnunet-service-vpn.c:737
+#: src/vpn/gnunet-service-vpn.c:736
 #, fuzzy
 msgid "# Bytes dropped in mesh queue (overflow)"
 msgstr "# byte kastade via UDP (utgående)"
 
-#: src/vpn/gnunet-service-vpn.c:772
+#: src/vpn/gnunet-service-vpn.c:770
 #, fuzzy
 msgid "# Mesh tunnels created"
 msgstr "# PING-meddelanden skapade"
 
-#: src/vpn/gnunet-service-vpn.c:795
+#: src/vpn/gnunet-service-vpn.c:793
 #, fuzzy
 msgid "Failed to setup mesh tunnel!\n"
 msgstr "Kunde inte skapa värdnyckel!\n"
 
-#: src/vpn/gnunet-service-vpn.c:973
+#: src/vpn/gnunet-service-vpn.c:971
 #, c-format
 msgid "Protocol %u not supported, dropping\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1291
+#: src/vpn/gnunet-service-vpn.c:1289
 msgid "# ICMPv4 packets dropped (not allowed)"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1312
+#: src/vpn/gnunet-service-vpn.c:1310
 msgid "# ICMPv6 packets dropped (not allowed)"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1517
+#: src/vpn/gnunet-service-vpn.c:1515
 #, fuzzy
 msgid "# Packets received from TUN interface"
 msgstr "Meddelande mottaget från klient är ogiltig.\n"
 
-#: src/vpn/gnunet-service-vpn.c:1555 src/vpn/gnunet-service-vpn.c:1596
+#: src/vpn/gnunet-service-vpn.c:1553 src/vpn/gnunet-service-vpn.c:1594
 #, c-format
 msgid "Packet received for unmapped destination `%s' (dropping it)\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1606
+#: src/vpn/gnunet-service-vpn.c:1604
 msgid "Received IPv4 packet with options (dropping it)\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1620
+#: src/vpn/gnunet-service-vpn.c:1618
 #, c-format
 msgid "Received packet of unknown protocol %d from TUN (dropping it)\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1704
+#: src/vpn/gnunet-service-vpn.c:1702
 #, fuzzy
 msgid "# ICMP packets received from mesh"
 msgstr "Meddelande mottaget från klient är ogiltig.\n"
 
-#: src/vpn/gnunet-service-vpn.c:2045
+#: src/vpn/gnunet-service-vpn.c:2043
 #, fuzzy
 msgid "# UDP packets received from mesh"
 msgstr "Meddelande mottaget från klient är ogiltig.\n"
 
-#: src/vpn/gnunet-service-vpn.c:2203
+#: src/vpn/gnunet-service-vpn.c:2201
 #, fuzzy
 msgid "# TCP packets received from mesh"
 msgstr "Meddelande mottaget från klient är ogiltig.\n"
 
-#: src/vpn/gnunet-service-vpn.c:2354
+#: src/vpn/gnunet-service-vpn.c:2352
 msgid "Failed to find unallocated IPv4 address in VPN's range\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:2409
+#: src/vpn/gnunet-service-vpn.c:2407
 msgid "Failed to find unallocated IPv6 address in VPN's range\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:2448 src/vpn/gnunet-service-vpn.c:2661
+#: src/vpn/gnunet-service-vpn.c:2446 src/vpn/gnunet-service-vpn.c:2659
 #, fuzzy
 msgid "# Active destinations"
 msgstr "Nätverksanslutning"
 
-#: src/vpn/gnunet-service-vpn.c:2734
+#: src/vpn/gnunet-service-vpn.c:2732
 msgid "Failed to allocate IP address for new destination\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:3141
+#: src/vpn/gnunet-service-vpn.c:3139
 msgid "IPv6 support disabled as this system does not support IPv6\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:3173
+#: src/vpn/gnunet-service-vpn.c:3171
 msgid "IPv4 support disabled as this system does not support IPv4\n"
 msgstr ""
 
@@ -6255,18 +6266,18 @@ msgstr "# byte mottagna via UDP"
 msgid "Setup tunnels via VPN."
 msgstr ""
 
-#: src/include/gnunet_common.h:507 src/include/gnunet_common.h:512
-#: src/include/gnunet_common.h:518
+#: src/include/gnunet_common.h:515 src/include/gnunet_common.h:520
+#: src/include/gnunet_common.h:526
 #, fuzzy, c-format
 msgid "Assertion failed at %s:%d.\n"
 msgstr "\"%s\" misslyckades vid %s:%d med fel: \"%s\".\n"
 
-#: src/include/gnunet_common.h:528
+#: src/include/gnunet_common.h:536
 #, c-format
 msgid "External protocol violation detected at %s:%d.\n"
 msgstr ""
 
-#: src/include/gnunet_common.h:549 src/include/gnunet_common.h:556
+#: src/include/gnunet_common.h:557 src/include/gnunet_common.h:564
 #, c-format
 msgid "`%s' failed on file `%s' at %s:%d with error: %s\n"
 msgstr "\"%s\" misslyckades för fil \"%s\" vid %s:%d med fel: %s\n"
index 0f66b11fd1faf6ea64d983cb879d05b7c6ffd9bd..c2f662e357e87c1f54dfd6b6e3a08fc0d8e8ea7b 100644 (file)
--- a/po/vi.po
+++ b/po/vi.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnunet 0.8.0a\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
-"POT-Creation-Date: 2012-07-20 19:29+0200\n"
+"POT-Creation-Date: 2012-08-17 00:17+0200\n"
 "PO-Revision-Date: 2008-09-10 22:05+0930\n"
 "Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
 "Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
@@ -726,7 +726,7 @@ msgid "# keepalive messages sent"
 msgstr "# các thông báo PING nhập thô được gửi"
 
 #: src/core/gnunet-service-core_kx.c:1236
-#: src/transport/gnunet-service-transport_validation.c:1096
+#: src/transport/gnunet-service-transport_validation.c:1108
 #, fuzzy
 msgid "# PONG messages received"
 msgstr "# các thông báo PONG đã mật mã được nhận"
@@ -828,11 +828,11 @@ msgstr ""
 #: src/fs/gnunet-service-fs_cp.c:622 src/fs/gnunet-service-fs_cp.c:1530
 #: src/topology/gnunet-daemon-topology.c:709
 #: src/topology/gnunet-daemon-topology.c:810
-#: src/transport/gnunet-service-transport_neighbours.c:890
-#: src/transport/gnunet-service-transport_neighbours.c:1106
-#: src/transport/gnunet-service-transport_neighbours.c:1115
-#: src/transport/gnunet-service-transport_neighbours.c:2637
-#: src/transport/gnunet-service-transport_neighbours.c:2899
+#: src/transport/gnunet-service-transport_neighbours.c:873
+#: src/transport/gnunet-service-transport_neighbours.c:1089
+#: src/transport/gnunet-service-transport_neighbours.c:1098
+#: src/transport/gnunet-service-transport_neighbours.c:2620
+#: src/transport/gnunet-service-transport_neighbours.c:2882
 #, fuzzy
 msgid "# peers connected"
 msgstr "# của các đồng đẳng đã kết nối"
@@ -899,8 +899,8 @@ msgstr "# các yêu cầu được lọc theo bộ lọc bloom"
 #: src/mysql/mysql.c:591 src/mysql/mysql.c:607
 #: src/namestore/plugin_namestore_postgres.c:52
 #: src/namestore/plugin_namestore_sqlite.c:51 src/util/crypto_ksk.c:49
-#: src/util/crypto_rsa.c:66 src/include/gnunet_common.h:535
-#: src/include/gnunet_common.h:542
+#: src/util/crypto_rsa.c:66 src/include/gnunet_common.h:543
+#: src/include/gnunet_common.h:550
 #, c-format
 msgid "`%s' failed at %s:%d with error: %s\n"
 msgstr "« %s » bị lỗi tại %s:%d với lỗi: %s\n"
@@ -1680,11 +1680,11 @@ msgstr "# các đáp ứng lỗ hổng được gửi cho trình/máy khách"
 msgid "Configured DNS exit `%s' is not working / valid.\n"
 msgstr ""
 
-#: src/dns/gnunet-service-dns.c:1497 src/exit/gnunet-daemon-exit.c:2674
+#: src/dns/gnunet-service-dns.c:1497 src/exit/gnunet-daemon-exit.c:2673
 msgid "# Inbound MESH tunnels created"
 msgstr ""
 
-#: src/dns/gnunet-service-dns.c:1561 src/exit/gnunet-daemon-exit.c:3033
+#: src/dns/gnunet-service-dns.c:1561 src/exit/gnunet-daemon-exit.c:3032
 #, c-format
 msgid "`%s' must be installed SUID, refusing to run\n"
 msgstr ""
@@ -1708,200 +1708,200 @@ msgstr "Nhận được thông báo bị hỏng từ đồng đẳng « %s » tr
 msgid "Got duplicate service records for `%s:%u'\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:563
+#: src/exit/gnunet-daemon-exit.c:561
 #, fuzzy
 msgid "# Bytes transmitted via mesh tunnels"
 msgstr "# các byte được gửi"
 
-#: src/exit/gnunet-daemon-exit.c:679 src/exit/gnunet-daemon-exit.c:2069
-#: src/exit/gnunet-daemon-exit.c:2319 src/vpn/gnunet-service-vpn.c:1394
-#: src/vpn/gnunet-service-vpn.c:1795 src/vpn/gnunet-service-vpn.c:1958
+#: src/exit/gnunet-daemon-exit.c:678 src/exit/gnunet-daemon-exit.c:2068
+#: src/exit/gnunet-daemon-exit.c:2318 src/vpn/gnunet-service-vpn.c:1392
+#: src/vpn/gnunet-service-vpn.c:1793 src/vpn/gnunet-service-vpn.c:1956
 msgid "# ICMPv4 packets dropped (type not allowed)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:716 src/exit/gnunet-daemon-exit.c:2128
-#: src/exit/gnunet-daemon-exit.c:2378 src/vpn/gnunet-service-vpn.c:1450
-#: src/vpn/gnunet-service-vpn.c:1854 src/vpn/gnunet-service-vpn.c:1991
+#: src/exit/gnunet-daemon-exit.c:715 src/exit/gnunet-daemon-exit.c:2127
+#: src/exit/gnunet-daemon-exit.c:2377 src/vpn/gnunet-service-vpn.c:1448
+#: src/vpn/gnunet-service-vpn.c:1852 src/vpn/gnunet-service-vpn.c:1989
 msgid "# ICMPv6 packets dropped (type not allowed)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:756
+#: src/exit/gnunet-daemon-exit.c:755
 msgid "# ICMP packets dropped (not allowed)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:763
+#: src/exit/gnunet-daemon-exit.c:762
 msgid "ICMP Packet dropped, have no matching connection information\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:840
+#: src/exit/gnunet-daemon-exit.c:839
 msgid "UDP Packet dropped, have no matching connection information\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:915
+#: src/exit/gnunet-daemon-exit.c:914
 msgid "TCP Packet dropped, have no matching connection information\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:968
+#: src/exit/gnunet-daemon-exit.c:967
 #, fuzzy
 msgid "# Packets received from TUN"
 msgstr "# các byte đã nhận qua HTTP"
 
-#: src/exit/gnunet-daemon-exit.c:982
+#: src/exit/gnunet-daemon-exit.c:981
 #, fuzzy
 msgid "# Bytes received from TUN"
 msgstr "# các byte đã nhận qua HTTP"
 
-#: src/exit/gnunet-daemon-exit.c:1008
+#: src/exit/gnunet-daemon-exit.c:1007
 msgid "IPv4 packet options received.  Ignored.\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1035
+#: src/exit/gnunet-daemon-exit.c:1034
 #, c-format
 msgid "IPv4 packet with unsupported next header %u received.  Ignored.\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1081
+#: src/exit/gnunet-daemon-exit.c:1080
 #, c-format
 msgid "IPv6 packet with unsupported next header %d received.  Ignored.\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1089
+#: src/exit/gnunet-daemon-exit.c:1088
 #, c-format
 msgid "Packet from unknown protocol %u received.  Ignored.\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1471
+#: src/exit/gnunet-daemon-exit.c:1470
 #, fuzzy
 msgid "# TCP packets sent via TUN"
 msgstr "# các byte đã gửi qua UDP"
 
-#: src/exit/gnunet-daemon-exit.c:1571
+#: src/exit/gnunet-daemon-exit.c:1570
 #, fuzzy
 msgid "# TCP service creation requests received via mesh"
 msgstr "# các yêu cầu danh sách máy được nhận"
 
-#: src/exit/gnunet-daemon-exit.c:1574 src/exit/gnunet-daemon-exit.c:1653
-#: src/exit/gnunet-daemon-exit.c:1763 src/exit/gnunet-daemon-exit.c:1993
-#: src/exit/gnunet-daemon-exit.c:2235 src/exit/gnunet-daemon-exit.c:2516
-#: src/exit/gnunet-daemon-exit.c:2616
+#: src/exit/gnunet-daemon-exit.c:1573 src/exit/gnunet-daemon-exit.c:1652
+#: src/exit/gnunet-daemon-exit.c:1762 src/exit/gnunet-daemon-exit.c:1992
+#: src/exit/gnunet-daemon-exit.c:2234 src/exit/gnunet-daemon-exit.c:2515
+#: src/exit/gnunet-daemon-exit.c:2615
 #, fuzzy
 msgid "# Bytes received from MESH"
 msgstr "# các byte đã nhận qua HTTP"
 
-#: src/exit/gnunet-daemon-exit.c:1607 src/exit/gnunet-daemon-exit.c:2638
+#: src/exit/gnunet-daemon-exit.c:1606 src/exit/gnunet-daemon-exit.c:2637
 #, c-format
 msgid "No service found for %s on port %d!\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1611
+#: src/exit/gnunet-daemon-exit.c:1610
 #, fuzzy
 msgid "# TCP requests dropped (no such service)"
 msgstr "# các yêu cầu lỗ hổng bị bỏ do trọng tải"
 
-#: src/exit/gnunet-daemon-exit.c:1656
+#: src/exit/gnunet-daemon-exit.c:1655
 #, fuzzy
 msgid "# TCP IP-exit creation requests received via mesh"
 msgstr "# các yêu cầu danh sách máy được nhận"
 
-#: src/exit/gnunet-daemon-exit.c:1766
+#: src/exit/gnunet-daemon-exit.c:1765
 #, fuzzy
 msgid "# TCP data requests received via mesh"
 msgstr "# các yêu cầu get (lấy) dht được nhận"
 
-#: src/exit/gnunet-daemon-exit.c:1780
+#: src/exit/gnunet-daemon-exit.c:1779
 #, fuzzy
 msgid "# TCP DATA requests dropped (no session)"
 msgstr "# các yêu cầu lỗ hổng bị bỏ do trọng tải"
 
-#: src/exit/gnunet-daemon-exit.c:1830
+#: src/exit/gnunet-daemon-exit.c:1829
 #, fuzzy
 msgid "# ICMP packets sent via TUN"
 msgstr "# các byte đã gửi qua UDP"
 
-#: src/exit/gnunet-daemon-exit.c:1996
+#: src/exit/gnunet-daemon-exit.c:1995
 #, fuzzy
 msgid "# ICMP IP-exit requests received via mesh"
 msgstr "# các yêu cầu get (lấy) dht được nhận"
 
-#: src/exit/gnunet-daemon-exit.c:2238
+#: src/exit/gnunet-daemon-exit.c:2237
 #, fuzzy
 msgid "# ICMP service requests received via mesh"
 msgstr "# các đáp ứng lỗ hổng được gửi cho trình/máy khách"
 
-#: src/exit/gnunet-daemon-exit.c:2304 src/vpn/gnunet-service-vpn.c:1384
-#: src/vpn/gnunet-service-vpn.c:1952
+#: src/exit/gnunet-daemon-exit.c:2303 src/vpn/gnunet-service-vpn.c:1382
+#: src/vpn/gnunet-service-vpn.c:1950
 msgid "# ICMPv4 packets dropped (impossible PT to v6)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:2363 src/vpn/gnunet-service-vpn.c:1420
-#: src/vpn/gnunet-service-vpn.c:1432 src/vpn/gnunet-service-vpn.c:1842
+#: src/exit/gnunet-daemon-exit.c:2362 src/vpn/gnunet-service-vpn.c:1418
+#: src/vpn/gnunet-service-vpn.c:1430 src/vpn/gnunet-service-vpn.c:1840
 msgid "# ICMPv6 packets dropped (impossible PT to v4)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:2413
+#: src/exit/gnunet-daemon-exit.c:2412
 #, fuzzy
 msgid "# UDP packets sent via TUN"
 msgstr "# các byte đã gửi qua UDP"
 
-#: src/exit/gnunet-daemon-exit.c:2519
+#: src/exit/gnunet-daemon-exit.c:2518
 #, fuzzy
 msgid "# UDP IP-exit requests received via mesh"
 msgstr "# các yêu cầu get (lấy) dht được nhận"
 
-#: src/exit/gnunet-daemon-exit.c:2619
+#: src/exit/gnunet-daemon-exit.c:2618
 #, fuzzy
 msgid "# UDP service requests received via mesh"
 msgstr "# các yêu cầu get (lấy) dht được nhận"
 
-#: src/exit/gnunet-daemon-exit.c:2642
+#: src/exit/gnunet-daemon-exit.c:2641
 #, fuzzy
 msgid "# UDP requests dropped (no such service)"
 msgstr "# các yêu cầu lỗ hổng bị bỏ do trọng tải"
 
-#: src/exit/gnunet-daemon-exit.c:2883
+#: src/exit/gnunet-daemon-exit.c:2882
 #, c-format
 msgid "No addresses found for hostname `%s' of service `%s'!\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:2897 src/exit/gnunet-daemon-exit.c:2909
+#: src/exit/gnunet-daemon-exit.c:2896 src/exit/gnunet-daemon-exit.c:2908
 #, c-format
 msgid "Service `%s' configured for IPv4, but IPv4 is disabled!\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:2920
+#: src/exit/gnunet-daemon-exit.c:2919
 #, c-format
 msgid "No IP addresses found for hostname `%s' of service `%s'!\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3049
+#: src/exit/gnunet-daemon-exit.c:3048
 msgid ""
 "This system does not support IPv4, will disable IPv4 functions despite them "
 "being enabled in the configuration\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3057
+#: src/exit/gnunet-daemon-exit.c:3056
 msgid ""
 "This system does not support IPv6, will disable IPv6 functions despite them "
 "being enabled in the configuration\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3064
+#: src/exit/gnunet-daemon-exit.c:3063
 msgid ""
 "Cannot enable IPv4 exit but disable IPv4 on TUN interface, will use "
 "ENABLE_IPv4=YES\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3070
+#: src/exit/gnunet-daemon-exit.c:3069
 msgid ""
 "Cannot enable IPv6 exit but disable IPv6 on TUN interface, will use "
 "ENABLE_IPv6=YES\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3076 src/pt/gnunet-daemon-pt.c:884
+#: src/exit/gnunet-daemon-exit.c:3075 src/pt/gnunet-daemon-pt.c:884
 msgid "No useful service enabled.  Exiting.\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3241
+#: src/exit/gnunet-daemon-exit.c:3240
 msgid "Daemon to run to provide an IP exit node for the VPN"
 msgstr ""
 
@@ -3242,28 +3242,29 @@ msgstr "đặt số trình nền cần khởi chạy"
 msgid "Failed to connect to GNS\n"
 msgstr "Lỗi kết nối đến gnunetd.\n"
 
-#: src/gns/gnunet-gns.c:341
-msgid "try to shorten a given GNS name"
-msgstr ""
+#: src/gns/gnunet-gns.c:358
+#, fuzzy
+msgid "try to shorten a given name"
+msgstr "Lỗi kết nối đến gnunetd.\n"
 
-#: src/gns/gnunet-gns.c:344
-msgid "Lookup a record using GNS (NOT IMPLEMENTED)"
+#: src/gns/gnunet-gns.c:361
+msgid "Lookup a record for the given name"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:347
+#: src/gns/gnunet-gns.c:364
 msgid "Get the authority of a particular name"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:350
+#: src/gns/gnunet-gns.c:367
 #, fuzzy
-msgid "Specify the type of the record lookup"
+msgid "Specify the type of the record to lookup"
 msgstr "xác định mức ưu tiên của nội dung"
 
-#: src/gns/gnunet-gns.c:353
+#: src/gns/gnunet-gns.c:370
 msgid "No unneeded output"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:367
+#: src/gns/gnunet-gns.c:384
 msgid "GNUnet GNS access tool"
 msgstr ""
 
@@ -3321,7 +3322,7 @@ msgstr "Lỗi cập nhật dữ liệu cho mô-đun « %s »\n"
 msgid "Failed to connect to namestore\n"
 msgstr "Không kết nối được đến trình nền gnunetd."
 
-#: src/gns/gnunet-gns-fcfsd.c:789 src/gns/gnunet-gns-proxy.c:2667
+#: src/gns/gnunet-gns-fcfsd.c:789 src/gns/gnunet-gns-proxy.c:2901
 #, fuzzy
 msgid "Failed to start HTTP server\n"
 msgstr "Lỗi bắt đầu thu thập.\n"
@@ -3330,25 +3331,25 @@ msgstr "Lỗi bắt đầu thu thập.\n"
 msgid "GNUnet GNS first come first serve registration service"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:2300
+#: src/gns/gnunet-gns-proxy.c:2532
 #, fuzzy, c-format
 msgid "Unable to import private key from file `%s'\n"
 msgstr "Không thể tạo tài khoản người dùng:"
 
-#: src/gns/gnunet-gns-proxy.c:2329
+#: src/gns/gnunet-gns-proxy.c:2561
 #, fuzzy, c-format
 msgid "Unable to import certificate %s\n"
 msgstr "Không thể lưu tập tin cấu hình « %s »:"
 
-#: src/gns/gnunet-gns-proxy.c:3328
+#: src/gns/gnunet-gns-proxy.c:3578
 msgid "listen on specified port"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3331
+#: src/gns/gnunet-gns-proxy.c:3581
 msgid "pem file to use as CA"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3346
+#: src/gns/gnunet-gns-proxy.c:3596
 msgid "GNUnet GNS proxy"
 msgstr ""
 
@@ -3716,35 +3717,45 @@ msgstr "« %s » không sẵn sàng.\n"
 msgid "Could not start hostlist HTTP server on port %u\n"
 msgstr "Cổng cho trình phục vụ HTTP danh sách máy chủ thống nhất"
 
-#: src/integration-tests/connection_watchdog.c:997
+#: src/integration-tests/connection_watchdog.c:1001
 #, fuzzy, c-format
 msgid "Transport plugin: `%s' port %llu\n"
 msgstr "Đang nạp các truyền tải « %s »\n"
 
-#: src/integration-tests/connection_watchdog.c:1030
+#: src/integration-tests/connection_watchdog.c:1034
 #, fuzzy, c-format
 msgid "Found %u transport plugins: `%s'\n"
 msgstr "Đang nạp các truyền tải « %s »\n"
 
-#: src/integration-tests/connection_watchdog.c:1089
+#: src/integration-tests/connection_watchdog.c:1093
 msgid "Send ping messages to test connectivity (default == NO)"
 msgstr ""
 
-#: src/integration-tests/connection_watchdog.c:1099
+#: src/integration-tests/connection_watchdog.c:1103
 #: src/template/gnunet-template.c:71
 msgid "help text"
 msgstr ""
 
-#: src/mesh/gnunet-service-mesh.c:5904
+#: src/mesh/gnunet-service-mesh.c:7110
 msgid "Wrong CORE service\n"
 msgstr ""
 
-#: src/mesh/gnunet-service-mesh.c:6116
-#, fuzzy
-msgid "Mesh service is lacking key configuration settings.  Exiting.\n"
+#: src/mesh/gnunet-service-mesh.c:7328 src/mesh/gnunet-service-mesh.c:7340
+#: src/mesh/gnunet-service-mesh.c:7352 src/mesh/gnunet-service-mesh.c:7364
+#: src/mesh/gnunet-service-mesh.c:7376 src/mesh/gnunet-service-mesh.c:7388
+#: src/mesh/gnunet-service-mesh.c:7400 src/mesh/gnunet-service-mesh.c:7412
+#, fuzzy, c-format
+msgid "Mesh service is lacking key configuration settings (%s).  Exiting.\n"
 msgstr "Lưu cấu hình ngay bây giờ không?"
 
-#: src/mesh/gnunet-service-mesh.c:6125
+#: src/mesh/gnunet-service-mesh.c:7424 src/mesh/gnunet-service-mesh.c:7435
+#, fuzzy, c-format
+msgid ""
+"Mesh service is lacking key configuration settings (%s). Using default "
+"(%u).\n"
+msgstr "Lưu cấu hình ngay bây giờ không?"
+
+#: src/mesh/gnunet-service-mesh.c:7446
 #, fuzzy
 msgid "Mesh service could not access hostkey.  Exiting.\n"
 msgstr "Không thể truy cập đến thông tin về không gian tên.\n"
@@ -4366,7 +4377,7 @@ msgid ""
 "might have been lost!\n"
 msgstr ""
 
-#: src/testbed/testbed_api.c:204
+#: src/testbed/testbed_api.c:246
 #, fuzzy, c-format
 msgid "Adding host %u failed with error: %s\n"
 msgstr "« %s » thất bại với mã lỗi %d: %s\n"
@@ -4523,7 +4534,7 @@ msgstr ""
 msgid "Starting service %s for peer `%4s'\n"
 msgstr "Đang bắt đầu tài về « %s »\n"
 
-#: src/testing_old/testing.c:1207 src/testing_old/testing_group.c:6155
+#: src/testing_old/testing.c:1207 src/testing_old/testing_group.c:6172
 #, fuzzy, c-format
 msgid "Could not start `%s' process to copy configuration directory.\n"
 msgstr "Không thể truy cập đến thông tin về không gian tên.\n"
@@ -4604,12 +4615,12 @@ msgstr ""
 msgid "Unknown topology specification, can't connect peers!\n"
 msgstr "Lỗi cú pháp trong sự xác định địa hình học, đang bỏ qua các byte.\n"
 
-#: src/testing_old/testing_group.c:5945
-#, fuzzy
-msgid "Could not read hostkeys file!\n"
+#: src/testing_old/testing_group.c:5962
+#, fuzzy, c-format
+msgid "Could not read hostkeys file `%s'!\n"
 msgstr "Không thể đọc danh sách bạn bè « %s »\n"
 
-#: src/testing_old/testing_group.c:6012
+#: src/testing_old/testing_group.c:6029
 #, fuzzy, c-format
 msgid "Could not create configuration for peer number %u on `%s'!\n"
 msgstr "Không thể truy cập đến thông tin về không gian tên.\n"
@@ -4867,117 +4878,117 @@ msgstr "# các thông báo PONG đã mật mã được nhận"
 msgid "# refreshed my HELLO"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1057
+#: src/transport/gnunet-service-transport_neighbours.c:1040
 #, fuzzy
 msgid "# DISCONNECT messages sent"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1174
-#: src/transport/gnunet-service-transport_neighbours.c:1511
+#: src/transport/gnunet-service-transport_neighbours.c:1157
+#: src/transport/gnunet-service-transport_neighbours.c:1494
 #, fuzzy
 msgid "# bytes in message queue for other peers"
 msgstr "# các byte thông báo gửi đi bị loại bỏ"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1179
+#: src/transport/gnunet-service-transport_neighbours.c:1162
 #, fuzzy
 msgid "# messages transmitted to other peers"
 msgstr "# các byte kiểu %d được gửi "
 
-#: src/transport/gnunet-service-transport_neighbours.c:1184
+#: src/transport/gnunet-service-transport_neighbours.c:1167
 #, fuzzy
 msgid "# transmission failures for messages to other peers"
 msgstr "# các byte thông báo gửi đi bị loại bỏ"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1241
+#: src/transport/gnunet-service-transport_neighbours.c:1224
 msgid "# messages timed out while in transport queue"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1283
+#: src/transport/gnunet-service-transport_neighbours.c:1266
 #, fuzzy
 msgid "# keepalives sent"
 msgstr "# các khoá phiên chạy được gửi"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1307
+#: src/transport/gnunet-service-transport_neighbours.c:1290
 #, fuzzy
 msgid "# KEEPALIVE messages discarded (peer unknown)"
 msgstr "# các thông báo được chắp liền"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1315
+#: src/transport/gnunet-service-transport_neighbours.c:1298
 #, fuzzy
 msgid "# KEEPALIVE messages discarded (no session)"
 msgstr "# các thông báo được chắp liền"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1352
+#: src/transport/gnunet-service-transport_neighbours.c:1335
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSE messages discarded (not connected)"
 msgstr "# các thông báo được chắp liền"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1361
+#: src/transport/gnunet-service-transport_neighbours.c:1344
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSE messages discarded (not expected)"
 msgstr "# các thông báo được chắp liền"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1417
+#: src/transport/gnunet-service-transport_neighbours.c:1400
 #, fuzzy
 msgid "# messages discarded due to lack of neighbour record"
 msgstr "# các thông báo được chắp liền"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1451
+#: src/transport/gnunet-service-transport_neighbours.c:1434
 #, fuzzy
 msgid "# bandwidth quota violations by other peers"
 msgstr "theo dõi gnunetd sử dụng dải thông"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1467
+#: src/transport/gnunet-service-transport_neighbours.c:1450
 msgid "# ms throttling suggested"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2613
+#: src/transport/gnunet-service-transport_neighbours.c:2596
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (no peer)"
 msgstr "gửi ĐẾM thông báo"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2628
-#: src/transport/gnunet-service-transport_neighbours.c:2662
+#: src/transport/gnunet-service-transport_neighbours.c:2611
+#: src/transport/gnunet-service-transport_neighbours.c:2645
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (not ready)"
 msgstr "gửi ĐẾM thông báo"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2675
+#: src/transport/gnunet-service-transport_neighbours.c:2658
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (waiting on ATS)"
 msgstr "gửi ĐẾM thông báo"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2708
+#: src/transport/gnunet-service-transport_neighbours.c:2691
 #, fuzzy
 msgid "# unexpected CONNECT_ACK messages (disconnecting)"
 msgstr "gửi ĐẾM thông báo"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2892
+#: src/transport/gnunet-service-transport_neighbours.c:2875
 #, fuzzy
 msgid "# unexpected SESSION ACK messages"
 msgstr "# các thông báo PONG đã mật mã được gửi"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2947
+#: src/transport/gnunet-service-transport_neighbours.c:2930
 msgid "# SET QUOTA messages ignored (no such peer)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2961
+#: src/transport/gnunet-service-transport_neighbours.c:2944
 msgid "# disconnects due to quota of 0"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2992
+#: src/transport/gnunet-service-transport_neighbours.c:2975
 msgid "# disconnect messages ignored (old format)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3003
+#: src/transport/gnunet-service-transport_neighbours.c:2986
 msgid "# disconnect messages ignored (timestamp)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3034
+#: src/transport/gnunet-service-transport_neighbours.c:3017
 msgid "# other peer asked to disconnect from us"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3129
+#: src/transport/gnunet-service-transport_neighbours.c:3112
 #, fuzzy
 msgid "# disconnected from peer upon explicit request"
 msgstr "# các yêu cầu lỗ hổng bị bỏ do trọng tải"
@@ -5016,23 +5027,23 @@ msgstr "# các thông báo PING được tạo"
 msgid "Received a PING message with validation bug from `%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:989
+#: src/transport/gnunet-service-transport_validation.c:1001
 msgid "# PONGs unicast via reliable transport"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:998
+#: src/transport/gnunet-service-transport_validation.c:1010
 msgid "# PONGs multicast to all available addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1120
+#: src/transport/gnunet-service-transport_validation.c:1135
 msgid "# PONGs dropped, no matching pending validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1145
+#: src/transport/gnunet-service-transport_validation.c:1164
 msgid "# PONGs dropped, signature expired"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1199
+#: src/transport/gnunet-service-transport_validation.c:1218
 #, fuzzy, c-format
 msgid "Adding `%s' without addresses for peer `%s'\n"
 msgstr "Không thể lấy địa chỉ của đồng đẳng « %s ».\n"
@@ -5238,92 +5249,92 @@ msgstr "# các byte đã gửi qua SMTP"
 msgid "# bytes dropped by SMTP (outgoing)"
 msgstr "# các byte loại đi bởi SMTP (đi ra)"
 
-#: src/transport/plugin_transport_tcp.c:590
+#: src/transport/plugin_transport_tcp.c:591
 #, fuzzy, c-format
 msgid "Unexpected address length: %u bytes\n"
 msgstr "Gặp sự kiện bất thường: %d\n"
 
-#: src/transport/plugin_transport_tcp.c:766
-#: src/transport/plugin_transport_tcp.c:855
-#: src/transport/plugin_transport_tcp.c:905
-#: src/transport/plugin_transport_tcp.c:991
-#: src/transport/plugin_transport_tcp.c:1129
-#: src/transport/plugin_transport_tcp.c:1146
+#: src/transport/plugin_transport_tcp.c:767
+#: src/transport/plugin_transport_tcp.c:856
+#: src/transport/plugin_transport_tcp.c:906
+#: src/transport/plugin_transport_tcp.c:992
+#: src/transport/plugin_transport_tcp.c:1130
+#: src/transport/plugin_transport_tcp.c:1147
 #, fuzzy
 msgid "# bytes currently in TCP buffers"
 msgstr "# các byte đã gừi qua TCP"
 
-#: src/transport/plugin_transport_tcp.c:773
-#: src/transport/plugin_transport_tcp.c:962
-#: src/transport/plugin_transport_tcp.c:1806
-#: src/transport/plugin_transport_tcp.c:2423
+#: src/transport/plugin_transport_tcp.c:774
+#: src/transport/plugin_transport_tcp.c:963
+#: src/transport/plugin_transport_tcp.c:1807
+#: src/transport/plugin_transport_tcp.c:2424
 #, fuzzy
 msgid "# TCP sessions active"
 msgstr "# các khoá phiên chạy được chấp nhận"
 
-#: src/transport/plugin_transport_tcp.c:859
+#: src/transport/plugin_transport_tcp.c:860
 #, fuzzy
 msgid "# bytes discarded by TCP (timeout)"
 msgstr "# các byte loại đi bởi TCP (đi ra)"
 
-#: src/transport/plugin_transport_tcp.c:908
+#: src/transport/plugin_transport_tcp.c:909
 #, fuzzy
 msgid "# bytes transmitted via TCP"
 msgstr "# các byte được gửi"
 
-#: src/transport/plugin_transport_tcp.c:995
+#: src/transport/plugin_transport_tcp.c:996
 #, fuzzy
 msgid "# bytes discarded by TCP (disconnect)"
 msgstr "# các byte loại đi bởi TCP (đi ra)"
 
-#: src/transport/plugin_transport_tcp.c:1335
+#: src/transport/plugin_transport_tcp.c:1336
 #, fuzzy, c-format
 msgid "Address of unexpected length: %u\n"
 msgstr "Gặp sự kiện bất thường: %d\n"
 
-#: src/transport/plugin_transport_tcp.c:1446
+#: src/transport/plugin_transport_tcp.c:1447
 msgid "# transport-service disconnect requests for TCP"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1847
+#: src/transport/plugin_transport_tcp.c:1848
 #, fuzzy
 msgid "# TCP WELCOME messages received"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/plugin_transport_tcp.c:2018
+#: src/transport/plugin_transport_tcp.c:2019
 msgid "# bytes received via TCP"
 msgstr "# các byte đã nhận qua TCP"
 
-#: src/transport/plugin_transport_tcp.c:2088
+#: src/transport/plugin_transport_tcp.c:2089
 msgid "# network-level TCP disconnect events"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2312 src/util/service.c:946
+#: src/transport/plugin_transport_tcp.c:2313 src/util/service.c:946
 #: src/util/service.c:952
 #, c-format
 msgid "Require valid port number for service `%s' in configuration!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2326
+#: src/transport/plugin_transport_tcp.c:2327
 #, fuzzy
 msgid "Failed to start service.\n"
 msgstr "Lỗi bắt đầu thu thập.\n"
 
-#: src/transport/plugin_transport_tcp.c:2388
+#: src/transport/plugin_transport_tcp.c:2389
 #, fuzzy, c-format
 msgid "Failed to find option %s in section %s!\n"
 msgstr "Lỗi đóng kết đến cổng %s %d.\n"
 
-#: src/transport/plugin_transport_tcp.c:2411
+#: src/transport/plugin_transport_tcp.c:2412
 #, c-format
 msgid "TCP transport listening on port %llu\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2415
+#: src/transport/plugin_transport_tcp.c:2416
 msgid "TCP transport not listening on any port (client only)\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2419
+#: src/transport/plugin_transport_tcp.c:2420
 #, c-format
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr ""
@@ -5373,7 +5384,7 @@ msgstr ""
 msgid "Invalid IPv6 address: `%s'\n"
 msgstr "Mức ưu tiên tiến trình không hợp lê « %s ».\n"
 
-#: src/transport/plugin_transport_unix.c:1351
+#: src/transport/plugin_transport_unix.c:1346
 #, fuzzy
 msgid "Failed to open UNIX sockets\n"
 msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
@@ -5630,7 +5641,7 @@ msgstr "Không thể kết nối tới %s:%u: %s\n"
 msgid "Attempt to connect to `%s' failed\n"
 msgstr " Lỗi kết nối\n"
 
-#: src/util/container_bloomfilter.c:510
+#: src/util/container_bloomfilter.c:518
 #, c-format
 msgid ""
 "Size of file on disk is incorrect for this Bloom filter (want %llu, have "
@@ -5707,17 +5718,17 @@ msgstr "Lỗi thẩm tra chữ ký RSA tại %s:%d: %s\n"
 msgid "`%s' failed for drive `%S': %u\n"
 msgstr "« %s » thất bại cho ổ đĩa « %s »: %u\n"
 
-#: src/util/disk.c:1135
+#: src/util/disk.c:1140
 #, c-format
 msgid "Expected `%s' to be a directory!\n"
 msgstr "Mong đợi « %s » là một thư mục.\n"
 
-#: src/util/disk.c:1489 src/util/service.c:1665
+#: src/util/disk.c:1494 src/util/service.c:1665
 #, c-format
 msgid "Cannot obtain information about user `%s': %s\n"
 msgstr "Không thể lấy thông tin về người dùng « %s »: %s\n"
 
-#: src/util/disk.c:1861
+#: src/util/disk.c:1866
 #, c-format
 msgid "No `%s' specified for service `%s' in configuration.\n"
 msgstr ""
@@ -5877,14 +5888,14 @@ msgid ""
 "Fatal internal logic error, process hangs in `%s' (abort with CTRL-C)!\n"
 msgstr ""
 
-#: src/util/os_installation.c:329
+#: src/util/os_installation.c:325
 #, c-format
 msgid ""
 "Could not determine installation path for %s.  Set `%s' environment "
 "variable.\n"
 msgstr ""
 
-#: src/util/os_installation.c:526
+#: src/util/os_installation.c:522
 #, fuzzy, c-format
 msgid "Could not find binary `%s' in PATH!\n"
 msgstr "Không thể đọc danh sách bạn bè « %s »\n"
@@ -6177,7 +6188,7 @@ msgstr ""
 msgid "Invalid IPv6 address `%s': %s\n"
 msgstr "Mức ưu tiên tiến trình không hợp lê « %s ».\n"
 
-#: src/vpn/gnunet-service-vpn.c:511 src/vpn/gnunet-service-vpn.c:1071
+#: src/vpn/gnunet-service-vpn.c:511 src/vpn/gnunet-service-vpn.c:1069
 #, fuzzy
 msgid "# Active tunnels"
 msgstr "# các kết nối dht"
@@ -6187,95 +6198,95 @@ msgstr "# các kết nối dht"
 msgid "# peers connected to mesh tunnels"
 msgstr "# của các đồng đẳng đã kết nối"
 
-#: src/vpn/gnunet-service-vpn.c:699
+#: src/vpn/gnunet-service-vpn.c:698
 #, fuzzy
 msgid "# Bytes given to mesh for transmission"
 msgstr "# các thông báo PING được tạo"
 
-#: src/vpn/gnunet-service-vpn.c:737
+#: src/vpn/gnunet-service-vpn.c:736
 #, fuzzy
 msgid "# Bytes dropped in mesh queue (overflow)"
 msgstr "# các byte loại bỏ bởi UDP (đi ra)"
 
-#: src/vpn/gnunet-service-vpn.c:772
+#: src/vpn/gnunet-service-vpn.c:770
 #, fuzzy
 msgid "# Mesh tunnels created"
 msgstr "# các truy vấn lỗ hổng được định tuyến"
 
-#: src/vpn/gnunet-service-vpn.c:795
+#: src/vpn/gnunet-service-vpn.c:793
 #, fuzzy
 msgid "Failed to setup mesh tunnel!\n"
 msgstr "Lỗi lấy thông kê về truyền tải.\n"
 
-#: src/vpn/gnunet-service-vpn.c:973
+#: src/vpn/gnunet-service-vpn.c:971
 #, c-format
 msgid "Protocol %u not supported, dropping\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1291
+#: src/vpn/gnunet-service-vpn.c:1289
 msgid "# ICMPv4 packets dropped (not allowed)"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1312
+#: src/vpn/gnunet-service-vpn.c:1310
 msgid "# ICMPv6 packets dropped (not allowed)"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1517
+#: src/vpn/gnunet-service-vpn.c:1515
 #, fuzzy
 msgid "# Packets received from TUN interface"
 msgstr "# các đáp ứng lỗ hổng được gửi cho trình/máy khách"
 
-#: src/vpn/gnunet-service-vpn.c:1555 src/vpn/gnunet-service-vpn.c:1596
+#: src/vpn/gnunet-service-vpn.c:1553 src/vpn/gnunet-service-vpn.c:1594
 #, c-format
 msgid "Packet received for unmapped destination `%s' (dropping it)\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1606
+#: src/vpn/gnunet-service-vpn.c:1604
 msgid "Received IPv4 packet with options (dropping it)\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1620
+#: src/vpn/gnunet-service-vpn.c:1618
 #, c-format
 msgid "Received packet of unknown protocol %d from TUN (dropping it)\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1704
+#: src/vpn/gnunet-service-vpn.c:1702
 #, fuzzy
 msgid "# ICMP packets received from mesh"
 msgstr "# các đáp ứng lỗ hổng được gửi cho trình/máy khách"
 
-#: src/vpn/gnunet-service-vpn.c:2045
+#: src/vpn/gnunet-service-vpn.c:2043
 #, fuzzy
 msgid "# UDP packets received from mesh"
 msgstr "# các đáp ứng lỗ hổng được gửi cho trình/máy khách"
 
-#: src/vpn/gnunet-service-vpn.c:2203
+#: src/vpn/gnunet-service-vpn.c:2201
 #, fuzzy
 msgid "# TCP packets received from mesh"
 msgstr "# các đáp ứng lỗ hổng được gửi cho trình/máy khách"
 
-#: src/vpn/gnunet-service-vpn.c:2354
+#: src/vpn/gnunet-service-vpn.c:2352
 msgid "Failed to find unallocated IPv4 address in VPN's range\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:2409
+#: src/vpn/gnunet-service-vpn.c:2407
 msgid "Failed to find unallocated IPv6 address in VPN's range\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:2448 src/vpn/gnunet-service-vpn.c:2661
+#: src/vpn/gnunet-service-vpn.c:2446 src/vpn/gnunet-service-vpn.c:2659
 #, fuzzy
 msgid "# Active destinations"
 msgstr "# các kết nối dht"
 
-#: src/vpn/gnunet-service-vpn.c:2734
+#: src/vpn/gnunet-service-vpn.c:2732
 msgid "Failed to allocate IP address for new destination\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:3141
+#: src/vpn/gnunet-service-vpn.c:3139
 msgid "IPv6 support disabled as this system does not support IPv6\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:3173
+#: src/vpn/gnunet-service-vpn.c:3171
 msgid "IPv4 support disabled as this system does not support IPv4\n"
 msgstr ""
 
@@ -6351,18 +6362,18 @@ msgstr "# các byte đã nhận qua UDP"
 msgid "Setup tunnels via VPN."
 msgstr ""
 
-#: src/include/gnunet_common.h:507 src/include/gnunet_common.h:512
-#: src/include/gnunet_common.h:518
+#: src/include/gnunet_common.h:515 src/include/gnunet_common.h:520
+#: src/include/gnunet_common.h:526
 #, fuzzy, c-format
 msgid "Assertion failed at %s:%d.\n"
 msgstr "Lỗi nội bộ : khẳng định không thành công tại %s:%d.\n"
 
-#: src/include/gnunet_common.h:528
+#: src/include/gnunet_common.h:536
 #, fuzzy, c-format
 msgid "External protocol violation detected at %s:%d.\n"
 msgstr "Lỗi nội bộ : khẳng định không thành công tại %s:%d.\n"
 
-#: src/include/gnunet_common.h:549 src/include/gnunet_common.h:556
+#: src/include/gnunet_common.h:557 src/include/gnunet_common.h:564
 #, c-format
 msgid "`%s' failed on file `%s' at %s:%d with error: %s\n"
 msgstr "« %s » thất bại ở tập tin « %s » tại %s:%d với lỗi: %s\n"
index e1432938572d8fe13a0d2fe3f13a4e831fd386a6..fc4cf6742cd8604960d69cb8fd4e4e970f57a33b 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnunet-0.8.1\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
-"POT-Creation-Date: 2012-07-20 19:29+0200\n"
+"POT-Creation-Date: 2012-08-17 00:17+0200\n"
 "PO-Revision-Date: 2011-07-09 12:12+0800\n"
 "Last-Translator: Wylmer Wang <wantinghard@gmail.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -691,7 +691,7 @@ msgid "# keepalive messages sent"
 msgstr ""
 
 #: src/core/gnunet-service-core_kx.c:1236
-#: src/transport/gnunet-service-transport_validation.c:1096
+#: src/transport/gnunet-service-transport_validation.c:1108
 msgid "# PONG messages received"
 msgstr ""
 
@@ -782,11 +782,11 @@ msgstr ""
 #: src/fs/gnunet-service-fs_cp.c:622 src/fs/gnunet-service-fs_cp.c:1530
 #: src/topology/gnunet-daemon-topology.c:709
 #: src/topology/gnunet-daemon-topology.c:810
-#: src/transport/gnunet-service-transport_neighbours.c:890
-#: src/transport/gnunet-service-transport_neighbours.c:1106
-#: src/transport/gnunet-service-transport_neighbours.c:1115
-#: src/transport/gnunet-service-transport_neighbours.c:2637
-#: src/transport/gnunet-service-transport_neighbours.c:2899
+#: src/transport/gnunet-service-transport_neighbours.c:873
+#: src/transport/gnunet-service-transport_neighbours.c:1089
+#: src/transport/gnunet-service-transport_neighbours.c:1098
+#: src/transport/gnunet-service-transport_neighbours.c:2620
+#: src/transport/gnunet-service-transport_neighbours.c:2882
 msgid "# peers connected"
 msgstr ""
 
@@ -848,8 +848,8 @@ msgstr ""
 #: src/mysql/mysql.c:591 src/mysql/mysql.c:607
 #: src/namestore/plugin_namestore_postgres.c:52
 #: src/namestore/plugin_namestore_sqlite.c:51 src/util/crypto_ksk.c:49
-#: src/util/crypto_rsa.c:66 src/include/gnunet_common.h:535
-#: src/include/gnunet_common.h:542
+#: src/util/crypto_rsa.c:66 src/include/gnunet_common.h:543
+#: src/include/gnunet_common.h:550
 #, fuzzy, c-format
 msgid "`%s' failed at %s:%d with error: %s\n"
 msgstr "“%s”于 %s:%d 处失败,错误为:%s\n"
@@ -1573,11 +1573,11 @@ msgstr ""
 msgid "Configured DNS exit `%s' is not working / valid.\n"
 msgstr ""
 
-#: src/dns/gnunet-service-dns.c:1497 src/exit/gnunet-daemon-exit.c:2674
+#: src/dns/gnunet-service-dns.c:1497 src/exit/gnunet-daemon-exit.c:2673
 msgid "# Inbound MESH tunnels created"
 msgstr ""
 
-#: src/dns/gnunet-service-dns.c:1561 src/exit/gnunet-daemon-exit.c:3033
+#: src/dns/gnunet-service-dns.c:1561 src/exit/gnunet-daemon-exit.c:3032
 #, c-format
 msgid "`%s' must be installed SUID, refusing to run\n"
 msgstr ""
@@ -1601,183 +1601,183 @@ msgstr ""
 msgid "Got duplicate service records for `%s:%u'\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:563
+#: src/exit/gnunet-daemon-exit.c:561
 msgid "# Bytes transmitted via mesh tunnels"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:679 src/exit/gnunet-daemon-exit.c:2069
-#: src/exit/gnunet-daemon-exit.c:2319 src/vpn/gnunet-service-vpn.c:1394
-#: src/vpn/gnunet-service-vpn.c:1795 src/vpn/gnunet-service-vpn.c:1958
+#: src/exit/gnunet-daemon-exit.c:678 src/exit/gnunet-daemon-exit.c:2068
+#: src/exit/gnunet-daemon-exit.c:2318 src/vpn/gnunet-service-vpn.c:1392
+#: src/vpn/gnunet-service-vpn.c:1793 src/vpn/gnunet-service-vpn.c:1956
 msgid "# ICMPv4 packets dropped (type not allowed)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:716 src/exit/gnunet-daemon-exit.c:2128
-#: src/exit/gnunet-daemon-exit.c:2378 src/vpn/gnunet-service-vpn.c:1450
-#: src/vpn/gnunet-service-vpn.c:1854 src/vpn/gnunet-service-vpn.c:1991
+#: src/exit/gnunet-daemon-exit.c:715 src/exit/gnunet-daemon-exit.c:2127
+#: src/exit/gnunet-daemon-exit.c:2377 src/vpn/gnunet-service-vpn.c:1448
+#: src/vpn/gnunet-service-vpn.c:1852 src/vpn/gnunet-service-vpn.c:1989
 msgid "# ICMPv6 packets dropped (type not allowed)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:756
+#: src/exit/gnunet-daemon-exit.c:755
 msgid "# ICMP packets dropped (not allowed)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:763
+#: src/exit/gnunet-daemon-exit.c:762
 msgid "ICMP Packet dropped, have no matching connection information\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:840
+#: src/exit/gnunet-daemon-exit.c:839
 msgid "UDP Packet dropped, have no matching connection information\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:915
+#: src/exit/gnunet-daemon-exit.c:914
 msgid "TCP Packet dropped, have no matching connection information\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:968
+#: src/exit/gnunet-daemon-exit.c:967
 msgid "# Packets received from TUN"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:982
+#: src/exit/gnunet-daemon-exit.c:981
 msgid "# Bytes received from TUN"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1008
+#: src/exit/gnunet-daemon-exit.c:1007
 msgid "IPv4 packet options received.  Ignored.\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1035
+#: src/exit/gnunet-daemon-exit.c:1034
 #, c-format
 msgid "IPv4 packet with unsupported next header %u received.  Ignored.\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1081
+#: src/exit/gnunet-daemon-exit.c:1080
 #, c-format
 msgid "IPv6 packet with unsupported next header %d received.  Ignored.\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1089
+#: src/exit/gnunet-daemon-exit.c:1088
 #, c-format
 msgid "Packet from unknown protocol %u received.  Ignored.\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1471
+#: src/exit/gnunet-daemon-exit.c:1470
 msgid "# TCP packets sent via TUN"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1571
+#: src/exit/gnunet-daemon-exit.c:1570
 msgid "# TCP service creation requests received via mesh"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1574 src/exit/gnunet-daemon-exit.c:1653
-#: src/exit/gnunet-daemon-exit.c:1763 src/exit/gnunet-daemon-exit.c:1993
-#: src/exit/gnunet-daemon-exit.c:2235 src/exit/gnunet-daemon-exit.c:2516
-#: src/exit/gnunet-daemon-exit.c:2616
+#: src/exit/gnunet-daemon-exit.c:1573 src/exit/gnunet-daemon-exit.c:1652
+#: src/exit/gnunet-daemon-exit.c:1762 src/exit/gnunet-daemon-exit.c:1992
+#: src/exit/gnunet-daemon-exit.c:2234 src/exit/gnunet-daemon-exit.c:2515
+#: src/exit/gnunet-daemon-exit.c:2615
 msgid "# Bytes received from MESH"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1607 src/exit/gnunet-daemon-exit.c:2638
+#: src/exit/gnunet-daemon-exit.c:1606 src/exit/gnunet-daemon-exit.c:2637
 #, c-format
 msgid "No service found for %s on port %d!\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1611
+#: src/exit/gnunet-daemon-exit.c:1610
 msgid "# TCP requests dropped (no such service)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1656
+#: src/exit/gnunet-daemon-exit.c:1655
 msgid "# TCP IP-exit creation requests received via mesh"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1766
+#: src/exit/gnunet-daemon-exit.c:1765
 msgid "# TCP data requests received via mesh"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1780
+#: src/exit/gnunet-daemon-exit.c:1779
 msgid "# TCP DATA requests dropped (no session)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1830
+#: src/exit/gnunet-daemon-exit.c:1829
 msgid "# ICMP packets sent via TUN"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:1996
+#: src/exit/gnunet-daemon-exit.c:1995
 msgid "# ICMP IP-exit requests received via mesh"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:2238
+#: src/exit/gnunet-daemon-exit.c:2237
 msgid "# ICMP service requests received via mesh"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:2304 src/vpn/gnunet-service-vpn.c:1384
-#: src/vpn/gnunet-service-vpn.c:1952
+#: src/exit/gnunet-daemon-exit.c:2303 src/vpn/gnunet-service-vpn.c:1382
+#: src/vpn/gnunet-service-vpn.c:1950
 msgid "# ICMPv4 packets dropped (impossible PT to v6)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:2363 src/vpn/gnunet-service-vpn.c:1420
-#: src/vpn/gnunet-service-vpn.c:1432 src/vpn/gnunet-service-vpn.c:1842
+#: src/exit/gnunet-daemon-exit.c:2362 src/vpn/gnunet-service-vpn.c:1418
+#: src/vpn/gnunet-service-vpn.c:1430 src/vpn/gnunet-service-vpn.c:1840
 msgid "# ICMPv6 packets dropped (impossible PT to v4)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:2413
+#: src/exit/gnunet-daemon-exit.c:2412
 msgid "# UDP packets sent via TUN"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:2519
+#: src/exit/gnunet-daemon-exit.c:2518
 msgid "# UDP IP-exit requests received via mesh"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:2619
+#: src/exit/gnunet-daemon-exit.c:2618
 msgid "# UDP service requests received via mesh"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:2642
+#: src/exit/gnunet-daemon-exit.c:2641
 msgid "# UDP requests dropped (no such service)"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:2883
+#: src/exit/gnunet-daemon-exit.c:2882
 #, c-format
 msgid "No addresses found for hostname `%s' of service `%s'!\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:2897 src/exit/gnunet-daemon-exit.c:2909
+#: src/exit/gnunet-daemon-exit.c:2896 src/exit/gnunet-daemon-exit.c:2908
 #, c-format
 msgid "Service `%s' configured for IPv4, but IPv4 is disabled!\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:2920
+#: src/exit/gnunet-daemon-exit.c:2919
 #, c-format
 msgid "No IP addresses found for hostname `%s' of service `%s'!\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3049
+#: src/exit/gnunet-daemon-exit.c:3048
 msgid ""
 "This system does not support IPv4, will disable IPv4 functions despite them "
 "being enabled in the configuration\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3057
+#: src/exit/gnunet-daemon-exit.c:3056
 msgid ""
 "This system does not support IPv6, will disable IPv6 functions despite them "
 "being enabled in the configuration\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3064
+#: src/exit/gnunet-daemon-exit.c:3063
 msgid ""
 "Cannot enable IPv4 exit but disable IPv4 on TUN interface, will use "
 "ENABLE_IPv4=YES\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3070
+#: src/exit/gnunet-daemon-exit.c:3069
 msgid ""
 "Cannot enable IPv6 exit but disable IPv6 on TUN interface, will use "
 "ENABLE_IPv6=YES\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3076 src/pt/gnunet-daemon-pt.c:884
+#: src/exit/gnunet-daemon-exit.c:3075 src/pt/gnunet-daemon-pt.c:884
 msgid "No useful service enabled.  Exiting.\n"
 msgstr ""
 
-#: src/exit/gnunet-daemon-exit.c:3241
+#: src/exit/gnunet-daemon-exit.c:3240
 msgid "Daemon to run to provide an IP exit node for the VPN"
 msgstr ""
 
@@ -3039,27 +3039,28 @@ msgstr ""
 msgid "Failed to connect to GNS\n"
 msgstr "初始化“%s”服务失败。\n"
 
-#: src/gns/gnunet-gns.c:341
-msgid "try to shorten a given GNS name"
-msgstr ""
+#: src/gns/gnunet-gns.c:358
+#, fuzzy
+msgid "try to shorten a given name"
+msgstr "初始化“%s”服务失败。\n"
 
-#: src/gns/gnunet-gns.c:344
-msgid "Lookup a record using GNS (NOT IMPLEMENTED)"
+#: src/gns/gnunet-gns.c:361
+msgid "Lookup a record for the given name"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:347
+#: src/gns/gnunet-gns.c:364
 msgid "Get the authority of a particular name"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:350
-msgid "Specify the type of the record lookup"
+#: src/gns/gnunet-gns.c:367
+msgid "Specify the type of the record to lookup"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:353
+#: src/gns/gnunet-gns.c:370
 msgid "No unneeded output"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:367
+#: src/gns/gnunet-gns.c:384
 msgid "GNUnet GNS access tool"
 msgstr ""
 
@@ -3116,7 +3117,7 @@ msgstr "无法为守护程序创建用户账户。"
 msgid "Failed to connect to namestore\n"
 msgstr "初始化“%s”服务失败。\n"
 
-#: src/gns/gnunet-gns-fcfsd.c:789 src/gns/gnunet-gns-proxy.c:2667
+#: src/gns/gnunet-gns-fcfsd.c:789 src/gns/gnunet-gns-proxy.c:2901
 #, fuzzy
 msgid "Failed to start HTTP server\n"
 msgstr "初始化“%s”服务失败。\n"
@@ -3125,25 +3126,25 @@ msgstr "初始化“%s”服务失败。\n"
 msgid "GNUnet GNS first come first serve registration service"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:2300
+#: src/gns/gnunet-gns-proxy.c:2532
 #, fuzzy, c-format
 msgid "Unable to import private key from file `%s'\n"
 msgstr "无法创建用户账户:"
 
-#: src/gns/gnunet-gns-proxy.c:2329
+#: src/gns/gnunet-gns-proxy.c:2561
 #, fuzzy, c-format
 msgid "Unable to import certificate %s\n"
 msgstr "无法保存配置文件“%s”:"
 
-#: src/gns/gnunet-gns-proxy.c:3328
+#: src/gns/gnunet-gns-proxy.c:3578
 msgid "listen on specified port"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3331
+#: src/gns/gnunet-gns-proxy.c:3581
 msgid "pem file to use as CA"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3346
+#: src/gns/gnunet-gns-proxy.c:3596
 msgid "GNUnet GNS proxy"
 msgstr ""
 
@@ -3492,35 +3493,45 @@ msgstr "“%s”不可用。\n"
 msgid "Could not start hostlist HTTP server on port %u\n"
 msgstr ""
 
-#: src/integration-tests/connection_watchdog.c:997
+#: src/integration-tests/connection_watchdog.c:1001
 #, c-format
 msgid "Transport plugin: `%s' port %llu\n"
 msgstr ""
 
-#: src/integration-tests/connection_watchdog.c:1030
+#: src/integration-tests/connection_watchdog.c:1034
 #, fuzzy, c-format
 msgid "Found %u transport plugins: `%s'\n"
 msgstr "解析配置文件“%s”失败\n"
 
-#: src/integration-tests/connection_watchdog.c:1089
+#: src/integration-tests/connection_watchdog.c:1093
 msgid "Send ping messages to test connectivity (default == NO)"
 msgstr ""
 
-#: src/integration-tests/connection_watchdog.c:1099
+#: src/integration-tests/connection_watchdog.c:1103
 #: src/template/gnunet-template.c:71
 msgid "help text"
 msgstr ""
 
-#: src/mesh/gnunet-service-mesh.c:5904
+#: src/mesh/gnunet-service-mesh.c:7110
 msgid "Wrong CORE service\n"
 msgstr ""
 
-#: src/mesh/gnunet-service-mesh.c:6116
-#, fuzzy
-msgid "Mesh service is lacking key configuration settings.  Exiting.\n"
+#: src/mesh/gnunet-service-mesh.c:7328 src/mesh/gnunet-service-mesh.c:7340
+#: src/mesh/gnunet-service-mesh.c:7352 src/mesh/gnunet-service-mesh.c:7364
+#: src/mesh/gnunet-service-mesh.c:7376 src/mesh/gnunet-service-mesh.c:7388
+#: src/mesh/gnunet-service-mesh.c:7400 src/mesh/gnunet-service-mesh.c:7412
+#, fuzzy, c-format
+msgid "Mesh service is lacking key configuration settings (%s).  Exiting.\n"
 msgstr "立即保存配置?"
 
-#: src/mesh/gnunet-service-mesh.c:6125
+#: src/mesh/gnunet-service-mesh.c:7424 src/mesh/gnunet-service-mesh.c:7435
+#, fuzzy, c-format
+msgid ""
+"Mesh service is lacking key configuration settings (%s). Using default "
+"(%u).\n"
+msgstr "立即保存配置?"
+
+#: src/mesh/gnunet-service-mesh.c:7446
 #, fuzzy
 msgid "Mesh service could not access hostkey.  Exiting.\n"
 msgstr "找不到接口“%s”的一个 IP 地址。\n"
@@ -4118,7 +4129,7 @@ msgid ""
 "might have been lost!\n"
 msgstr ""
 
-#: src/testbed/testbed_api.c:204
+#: src/testbed/testbed_api.c:246
 #, fuzzy, c-format
 msgid "Adding host %u failed with error: %s\n"
 msgstr "“%s”以错误码 %d 失败:%s\n"
@@ -4272,7 +4283,7 @@ msgstr ""
 msgid "Starting service %s for peer `%4s'\n"
 msgstr "卸载 GNUnet 服务"
 
-#: src/testing_old/testing.c:1207 src/testing_old/testing_group.c:6155
+#: src/testing_old/testing.c:1207 src/testing_old/testing_group.c:6172
 #, fuzzy, c-format
 msgid "Could not start `%s' process to copy configuration directory.\n"
 msgstr "找不到主机“%s”的 IP:%s\n"
@@ -4353,12 +4364,12 @@ msgstr ""
 msgid "Unknown topology specification, can't connect peers!\n"
 msgstr ""
 
-#: src/testing_old/testing_group.c:5945
-#, fuzzy
-msgid "Could not read hostkeys file!\n"
+#: src/testing_old/testing_group.c:5962
+#, fuzzy, c-format
+msgid "Could not read hostkeys file `%s'!\n"
 msgstr "找不到接口“%s”的一个 IP 地址。\n"
 
-#: src/testing_old/testing_group.c:6012
+#: src/testing_old/testing_group.c:6029
 #, fuzzy, c-format
 msgid "Could not create configuration for peer number %u on `%s'!\n"
 msgstr "解析配置文件“%s”失败\n"
@@ -4604,101 +4615,101 @@ msgstr ""
 msgid "# refreshed my HELLO"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1057
+#: src/transport/gnunet-service-transport_neighbours.c:1040
 msgid "# DISCONNECT messages sent"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1174
-#: src/transport/gnunet-service-transport_neighbours.c:1511
+#: src/transport/gnunet-service-transport_neighbours.c:1157
+#: src/transport/gnunet-service-transport_neighbours.c:1494
 msgid "# bytes in message queue for other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1179
+#: src/transport/gnunet-service-transport_neighbours.c:1162
 msgid "# messages transmitted to other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1184
+#: src/transport/gnunet-service-transport_neighbours.c:1167
 msgid "# transmission failures for messages to other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1241
+#: src/transport/gnunet-service-transport_neighbours.c:1224
 msgid "# messages timed out while in transport queue"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1283
+#: src/transport/gnunet-service-transport_neighbours.c:1266
 msgid "# keepalives sent"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1307
+#: src/transport/gnunet-service-transport_neighbours.c:1290
 msgid "# KEEPALIVE messages discarded (peer unknown)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1315
+#: src/transport/gnunet-service-transport_neighbours.c:1298
 msgid "# KEEPALIVE messages discarded (no session)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1352
+#: src/transport/gnunet-service-transport_neighbours.c:1335
 msgid "# KEEPALIVE_RESPONSE messages discarded (not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1361
+#: src/transport/gnunet-service-transport_neighbours.c:1344
 msgid "# KEEPALIVE_RESPONSE messages discarded (not expected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1417
+#: src/transport/gnunet-service-transport_neighbours.c:1400
 msgid "# messages discarded due to lack of neighbour record"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1451
+#: src/transport/gnunet-service-transport_neighbours.c:1434
 msgid "# bandwidth quota violations by other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1467
+#: src/transport/gnunet-service-transport_neighbours.c:1450
 msgid "# ms throttling suggested"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2613
+#: src/transport/gnunet-service-transport_neighbours.c:2596
 msgid "# unexpected CONNECT_ACK messages (no peer)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2628
-#: src/transport/gnunet-service-transport_neighbours.c:2662
+#: src/transport/gnunet-service-transport_neighbours.c:2611
+#: src/transport/gnunet-service-transport_neighbours.c:2645
 msgid "# unexpected CONNECT_ACK messages (not ready)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2675
+#: src/transport/gnunet-service-transport_neighbours.c:2658
 msgid "# unexpected CONNECT_ACK messages (waiting on ATS)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2708
+#: src/transport/gnunet-service-transport_neighbours.c:2691
 msgid "# unexpected CONNECT_ACK messages (disconnecting)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2892
+#: src/transport/gnunet-service-transport_neighbours.c:2875
 msgid "# unexpected SESSION ACK messages"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2947
+#: src/transport/gnunet-service-transport_neighbours.c:2930
 msgid "# SET QUOTA messages ignored (no such peer)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2961
+#: src/transport/gnunet-service-transport_neighbours.c:2944
 msgid "# disconnects due to quota of 0"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2992
+#: src/transport/gnunet-service-transport_neighbours.c:2975
 msgid "# disconnect messages ignored (old format)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3003
+#: src/transport/gnunet-service-transport_neighbours.c:2986
 msgid "# disconnect messages ignored (timestamp)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3034
+#: src/transport/gnunet-service-transport_neighbours.c:3017
 msgid "# other peer asked to disconnect from us"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3129
+#: src/transport/gnunet-service-transport_neighbours.c:3112
 msgid "# disconnected from peer upon explicit request"
 msgstr ""
 
@@ -4734,23 +4745,23 @@ msgstr ""
 msgid "Received a PING message with validation bug from `%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:989
+#: src/transport/gnunet-service-transport_validation.c:1001
 msgid "# PONGs unicast via reliable transport"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:998
+#: src/transport/gnunet-service-transport_validation.c:1010
 msgid "# PONGs multicast to all available addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1120
+#: src/transport/gnunet-service-transport_validation.c:1135
 msgid "# PONGs dropped, no matching pending validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1145
+#: src/transport/gnunet-service-transport_validation.c:1164
 msgid "# PONGs dropped, signature expired"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1199
+#: src/transport/gnunet-service-transport_validation.c:1218
 #, c-format
 msgid "Adding `%s' without addresses for peer `%s'\n"
 msgstr ""
@@ -4956,86 +4967,86 @@ msgstr ""
 msgid "# bytes dropped by SMTP (outgoing)"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:590
+#: src/transport/plugin_transport_tcp.c:591
 #, c-format
 msgid "Unexpected address length: %u bytes\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:766
-#: src/transport/plugin_transport_tcp.c:855
-#: src/transport/plugin_transport_tcp.c:905
-#: src/transport/plugin_transport_tcp.c:991
-#: src/transport/plugin_transport_tcp.c:1129
-#: src/transport/plugin_transport_tcp.c:1146
+#: src/transport/plugin_transport_tcp.c:767
+#: src/transport/plugin_transport_tcp.c:856
+#: src/transport/plugin_transport_tcp.c:906
+#: src/transport/plugin_transport_tcp.c:992
+#: src/transport/plugin_transport_tcp.c:1130
+#: src/transport/plugin_transport_tcp.c:1147
 msgid "# bytes currently in TCP buffers"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:773
-#: src/transport/plugin_transport_tcp.c:962
-#: src/transport/plugin_transport_tcp.c:1806
-#: src/transport/plugin_transport_tcp.c:2423
+#: src/transport/plugin_transport_tcp.c:774
+#: src/transport/plugin_transport_tcp.c:963
+#: src/transport/plugin_transport_tcp.c:1807
+#: src/transport/plugin_transport_tcp.c:2424
 msgid "# TCP sessions active"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:859
+#: src/transport/plugin_transport_tcp.c:860
 msgid "# bytes discarded by TCP (timeout)"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:908
+#: src/transport/plugin_transport_tcp.c:909
 msgid "# bytes transmitted via TCP"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:995
+#: src/transport/plugin_transport_tcp.c:996
 msgid "# bytes discarded by TCP (disconnect)"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1335
+#: src/transport/plugin_transport_tcp.c:1336
 #, c-format
 msgid "Address of unexpected length: %u\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1446
+#: src/transport/plugin_transport_tcp.c:1447
 msgid "# transport-service disconnect requests for TCP"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1847
+#: src/transport/plugin_transport_tcp.c:1848
 msgid "# TCP WELCOME messages received"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2018
+#: src/transport/plugin_transport_tcp.c:2019
 msgid "# bytes received via TCP"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2088
+#: src/transport/plugin_transport_tcp.c:2089
 msgid "# network-level TCP disconnect events"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2312 src/util/service.c:946
+#: src/transport/plugin_transport_tcp.c:2313 src/util/service.c:946
 #: src/util/service.c:952
 #, c-format
 msgid "Require valid port number for service `%s' in configuration!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2326
+#: src/transport/plugin_transport_tcp.c:2327
 #, fuzzy
 msgid "Failed to start service.\n"
 msgstr "初始化“%s”服务失败。\n"
 
-#: src/transport/plugin_transport_tcp.c:2388
+#: src/transport/plugin_transport_tcp.c:2389
 #, c-format
 msgid "Failed to find option %s in section %s!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2411
+#: src/transport/plugin_transport_tcp.c:2412
 #, c-format
 msgid "TCP transport listening on port %llu\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2415
+#: src/transport/plugin_transport_tcp.c:2416
 msgid "TCP transport not listening on any port (client only)\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2419
+#: src/transport/plugin_transport_tcp.c:2420
 #, c-format
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr ""
@@ -5083,7 +5094,7 @@ msgstr ""
 msgid "Invalid IPv6 address: `%s'\n"
 msgstr "无效的进程优先级“%s”\n"
 
-#: src/transport/plugin_transport_unix.c:1351
+#: src/transport/plugin_transport_unix.c:1346
 #, fuzzy
 msgid "Failed to open UNIX sockets\n"
 msgstr "打开日志文件“%s”失败:%s\n"
@@ -5327,7 +5338,7 @@ msgstr "无法连接到 %s:%u:%s\n"
 msgid "Attempt to connect to `%s' failed\n"
 msgstr ""
 
-#: src/util/container_bloomfilter.c:510
+#: src/util/container_bloomfilter.c:518
 #, c-format
 msgid ""
 "Size of file on disk is incorrect for this Bloom filter (want %llu, have "
@@ -5404,17 +5415,17 @@ msgstr ""
 msgid "`%s' failed for drive `%S': %u\n"
 msgstr "对驱动器“%2$s”的“%1$s”操作失败:%3$u\n"
 
-#: src/util/disk.c:1135
+#: src/util/disk.c:1140
 #, c-format
 msgid "Expected `%s' to be a directory!\n"
 msgstr "“%s”应为目录!\n"
 
-#: src/util/disk.c:1489 src/util/service.c:1665
+#: src/util/disk.c:1494 src/util/service.c:1665
 #, c-format
 msgid "Cannot obtain information about user `%s': %s\n"
 msgstr "无法获取有关用户“%s”的信息:%s\n"
 
-#: src/util/disk.c:1861
+#: src/util/disk.c:1866
 #, c-format
 msgid "No `%s' specified for service `%s' in configuration.\n"
 msgstr ""
@@ -5571,14 +5582,14 @@ msgid ""
 "Fatal internal logic error, process hangs in `%s' (abort with CTRL-C)!\n"
 msgstr ""
 
-#: src/util/os_installation.c:329
+#: src/util/os_installation.c:325
 #, fuzzy, c-format
 msgid ""
 "Could not determine installation path for %s.  Set `%s' environment "
 "variable.\n"
 msgstr "无法确定安装路径。请尝试设置“%s”\n"
 
-#: src/util/os_installation.c:526
+#: src/util/os_installation.c:522
 #, fuzzy, c-format
 msgid "Could not find binary `%s' in PATH!\n"
 msgstr "找不到主机“%s”的 IP:%s\n"
@@ -5870,7 +5881,7 @@ msgstr ""
 msgid "Invalid IPv6 address `%s': %s\n"
 msgstr "无效的进程优先级“%s”\n"
 
-#: src/vpn/gnunet-service-vpn.c:511 src/vpn/gnunet-service-vpn.c:1071
+#: src/vpn/gnunet-service-vpn.c:511 src/vpn/gnunet-service-vpn.c:1069
 msgid "# Active tunnels"
 msgstr ""
 
@@ -5881,87 +5892,87 @@ msgstr ""
 "\n"
 "按任意键继续\n"
 
-#: src/vpn/gnunet-service-vpn.c:699
+#: src/vpn/gnunet-service-vpn.c:698
 msgid "# Bytes given to mesh for transmission"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:737
+#: src/vpn/gnunet-service-vpn.c:736
 msgid "# Bytes dropped in mesh queue (overflow)"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:772
+#: src/vpn/gnunet-service-vpn.c:770
 msgid "# Mesh tunnels created"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:795
+#: src/vpn/gnunet-service-vpn.c:793
 #, fuzzy
 msgid "Failed to setup mesh tunnel!\n"
 msgstr "发送消息失败。\n"
 
-#: src/vpn/gnunet-service-vpn.c:973
+#: src/vpn/gnunet-service-vpn.c:971
 #, c-format
 msgid "Protocol %u not supported, dropping\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1291
+#: src/vpn/gnunet-service-vpn.c:1289
 msgid "# ICMPv4 packets dropped (not allowed)"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1312
+#: src/vpn/gnunet-service-vpn.c:1310
 msgid "# ICMPv6 packets dropped (not allowed)"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1517
+#: src/vpn/gnunet-service-vpn.c:1515
 msgid "# Packets received from TUN interface"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1555 src/vpn/gnunet-service-vpn.c:1596
+#: src/vpn/gnunet-service-vpn.c:1553 src/vpn/gnunet-service-vpn.c:1594
 #, c-format
 msgid "Packet received for unmapped destination `%s' (dropping it)\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1606
+#: src/vpn/gnunet-service-vpn.c:1604
 msgid "Received IPv4 packet with options (dropping it)\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1620
+#: src/vpn/gnunet-service-vpn.c:1618
 #, c-format
 msgid "Received packet of unknown protocol %d from TUN (dropping it)\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:1704
+#: src/vpn/gnunet-service-vpn.c:1702
 msgid "# ICMP packets received from mesh"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:2045
+#: src/vpn/gnunet-service-vpn.c:2043
 msgid "# UDP packets received from mesh"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:2203
+#: src/vpn/gnunet-service-vpn.c:2201
 msgid "# TCP packets received from mesh"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:2354
+#: src/vpn/gnunet-service-vpn.c:2352
 msgid "Failed to find unallocated IPv4 address in VPN's range\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:2409
+#: src/vpn/gnunet-service-vpn.c:2407
 msgid "Failed to find unallocated IPv6 address in VPN's range\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:2448 src/vpn/gnunet-service-vpn.c:2661
+#: src/vpn/gnunet-service-vpn.c:2446 src/vpn/gnunet-service-vpn.c:2659
 msgid "# Active destinations"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:2734
+#: src/vpn/gnunet-service-vpn.c:2732
 msgid "Failed to allocate IP address for new destination\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:3141
+#: src/vpn/gnunet-service-vpn.c:3139
 msgid "IPv6 support disabled as this system does not support IPv6\n"
 msgstr ""
 
-#: src/vpn/gnunet-service-vpn.c:3173
+#: src/vpn/gnunet-service-vpn.c:3171
 msgid "IPv4 support disabled as this system does not support IPv4\n"
 msgstr ""
 
@@ -6035,18 +6046,18 @@ msgstr ""
 msgid "Setup tunnels via VPN."
 msgstr ""
 
-#: src/include/gnunet_common.h:507 src/include/gnunet_common.h:512
-#: src/include/gnunet_common.h:518
+#: src/include/gnunet_common.h:515 src/include/gnunet_common.h:520
+#: src/include/gnunet_common.h:526
 #, c-format
 msgid "Assertion failed at %s:%d.\n"
 msgstr ""
 
-#: src/include/gnunet_common.h:528
+#: src/include/gnunet_common.h:536
 #, c-format
 msgid "External protocol violation detected at %s:%d.\n"
 msgstr ""
 
-#: src/include/gnunet_common.h:549 src/include/gnunet_common.h:556
+#: src/include/gnunet_common.h:557 src/include/gnunet_common.h:564
 #, c-format
 msgid "`%s' failed on file `%s' at %s:%d with error: %s\n"
 msgstr ""
index 8a102c414bf61f93f4919f2dc76f2abbd0b6c141..aca8ea25cbfdd9c164e7e48ee2ae956a9955e6ae 100644 (file)
@@ -25,6 +25,7 @@ endif
 
 lib_LTLIBRARIES = \
   libgnunetdnsparser.la \
+  libgnunetdnsstub.la \
   libgnunetdns.la
 
 bin_PROGRAMS = \
@@ -70,6 +71,7 @@ gnunet_dns_redirector_DEPENDENCIES = \
 gnunet_service_dns_SOURCES = \
  gnunet-service-dns.c 
 gnunet_service_dns_LDADD = \
+  $(top_builddir)/src/dns/libgnunetdnsstub.la \
   $(top_builddir)/src/tun/libgnunettun.la \
   $(top_builddir)/src/mesh/libgnunetmesh.la \
   $(top_builddir)/src/statistics/libgnunetstatistics.la \
@@ -84,6 +86,14 @@ libgnunetdnsparser_la_LDFLAGS = \
   $(GN_LIB_LDFLAGS) \
   -version-info 0:0:0
 
+libgnunetdnsstub_la_SOURCES = \
+ dnsstub.c 
+libgnunetdnsstub_la_LIBADD = \
+ $(top_builddir)/src/util/libgnunetutil.la $(XLIB)
+libgnunetdnsstub_la_LDFLAGS = \
+  $(GN_LIB_LDFLAGS) \
+  -version-info 0:0:0
+
 libgnunetdns_la_SOURCES = \
  dns_api.c dns.h
 libgnunetdns_la_LIBADD = \
diff --git a/src/dns/dnsstub.c b/src/dns/dnsstub.c
new file mode 100644 (file)
index 0000000..383b1d6
--- /dev/null
@@ -0,0 +1,520 @@
+/*
+     This file is part of GNUnet.
+     (C) 2012 Christian Grothoff (and other contributing authors)
+
+     GNUnet is free software; you can redistribute it and/or modify
+     it under the terms of the GNU General Public License as published
+     by the Free Software Foundation; either version 3, or (at your
+     option) any later version.
+
+     GNUnet is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+
+     You should have received a copy of the GNU General Public License
+     along with GNUnet; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+     Boston, MA 02111-1307, USA.
+*/
+/**
+ * @file dns/dnsstub.c
+ * @brief DNS stub resolver which sends DNS requests to an actual resolver
+ * @author Christian Grothoff
+ */
+#include "platform.h"
+#include "gnunet_util_lib.h"
+#include "gnunet_dnsstub_lib.h"
+
+/**
+ * Timeout for an external (Internet-DNS) DNS resolution
+ */
+#define REQUEST_TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 5)
+
+/**
+ * How many DNS sockets do we open at most at the same time?
+ * (technical socket maximum is this number x2 for IPv4+IPv6)
+ */
+#define DNS_SOCKET_MAX 128
+
+
+/**
+ * UDP socket we are using for sending DNS requests to the Internet.
+ */
+struct GNUNET_DNSSTUB_RequestSocket
+{
+  
+  /**
+   * UDP socket we use for this request for IPv4
+   */
+  struct GNUNET_NETWORK_Handle *dnsout4;
+
+  /**
+   * UDP socket we use for this request for IPv6
+   */
+  struct GNUNET_NETWORK_Handle *dnsout6;
+
+  /**
+   * Function to call with result.
+   */
+  GNUNET_DNSSTUB_ResultCallback rc;
+
+  /**
+   * Closure for 'rc'.
+   */
+  void *rc_cls;
+
+  /**
+   * Task for reading from dnsout4 and dnsout6.
+   */
+  GNUNET_SCHEDULER_TaskIdentifier read_task;
+
+  /**
+   * When should this request time out?
+   */
+  struct GNUNET_TIME_Absolute timeout;
+
+  /**
+   * Address we sent the DNS request to.
+   */
+  struct sockaddr_storage addr;
+
+  /**
+   * Number of bytes in 'addr'.
+   */
+  socklen_t addrlen;
+
+};
+
+
+struct GNUNET_DNSSTUB_Context
+{
+
+  /**
+   * Array of all open sockets for DNS requests. 
+   */
+  struct GNUNET_DNSSTUB_RequestSocket sockets[DNS_SOCKET_MAX];
+
+  /**
+   * IP address to use for the DNS server if we are a DNS exit service
+   * (for VPN via mesh); otherwise NULL.
+   */
+  char *dns_exit;
+};
+
+
+
+/**
+ * We're done with a GNUNET_DNSSTUB_RequestSocket, close it for now.
+ *
+ * @param rs request socket to clean up
+ */
+static void
+cleanup_rs (struct GNUNET_DNSSTUB_RequestSocket *rs)
+{
+  if (NULL != rs->dnsout4)
+  {
+    GNUNET_NETWORK_socket_close (rs->dnsout4);
+    rs->dnsout4 = NULL;
+  }
+  if (NULL != rs->dnsout6)
+  {
+    GNUNET_NETWORK_socket_close (rs->dnsout6);
+    rs->dnsout6 = NULL;
+  }
+  if (GNUNET_SCHEDULER_NO_TASK != rs->read_task)
+  {
+    GNUNET_SCHEDULER_cancel (rs->read_task);
+    rs->read_task = GNUNET_SCHEDULER_NO_TASK;
+  }
+}
+
+
+/**
+ * Open source port for sending DNS requests
+ *
+ * @param af AF_INET or AF_INET6
+ * @return GNUNET_OK on success
+ */ 
+static struct GNUNET_NETWORK_Handle *
+open_socket (int af)
+{
+  struct sockaddr_in a4;
+  struct sockaddr_in6 a6;
+  struct sockaddr *sa;
+  socklen_t alen;
+  struct GNUNET_NETWORK_Handle *ret;
+
+  ret = GNUNET_NETWORK_socket_create (af, SOCK_DGRAM, 0);
+  if (NULL == ret)
+    return NULL;
+  switch (af)
+  {
+  case AF_INET:
+    memset (&a4, 0, alen = sizeof (struct sockaddr_in));
+    sa = (struct sockaddr *) &a4;
+    break;
+  case AF_INET6:
+    memset (&a6, 0, alen = sizeof (struct sockaddr_in6));
+    sa = (struct sockaddr *) &a6;
+    break;
+  default:
+    GNUNET_break (0);
+    GNUNET_NETWORK_socket_close (ret);
+    return NULL;
+  }
+  sa->sa_family = af;
+  if (GNUNET_OK != GNUNET_NETWORK_socket_bind (ret,
+                                              sa, 
+                                              alen))
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 
+               _("Could not bind to any port: %s\n"),
+               STRERROR (errno));
+    GNUNET_NETWORK_socket_close (ret);
+    return NULL;
+  }
+  return ret;
+}
+
+
+/**
+ * Read a DNS response from the (unhindered) UDP-Socket
+ *
+ * @param cls socket to read from
+ * @param tc scheduler context (must be shutdown or read ready)
+ */
+static void
+read_response (void *cls,
+              const struct GNUNET_SCHEDULER_TaskContext *tc);
+
+
+/**
+ * Get a socket of the specified address family to send out a
+ * UDP DNS request to the Internet.  
+ *
+ * @param af desired address family
+ * @return NULL on error (given AF not "supported")
+ */
+static struct GNUNET_DNSSTUB_RequestSocket *
+get_request_socket (struct GNUNET_DNSSTUB_Context *ctx,
+                   int af)
+{
+  struct GNUNET_DNSSTUB_RequestSocket *rs;
+  struct GNUNET_NETWORK_FDSet *rset;
+
+  rs = &ctx->sockets[GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_NONCE, 
+                                              DNS_SOCKET_MAX)];
+  rs->timeout = GNUNET_TIME_relative_to_absolute (REQUEST_TIMEOUT);
+  switch (af)
+  {
+  case AF_INET:
+    if (NULL == rs->dnsout4)
+      rs->dnsout4 = open_socket (AF_INET);
+    break;
+  case AF_INET6:
+    if (NULL == rs->dnsout6)
+      rs->dnsout6 = open_socket (AF_INET6);
+    break;
+  default:
+    return NULL;
+  }  
+  if (GNUNET_SCHEDULER_NO_TASK != rs->read_task)
+  {
+    GNUNET_SCHEDULER_cancel (rs->read_task);
+    rs->read_task = GNUNET_SCHEDULER_NO_TASK;
+  }
+  if ( (NULL == rs->dnsout4) &&
+       (NULL == rs->dnsout6) )
+    return NULL;
+  rset = GNUNET_NETWORK_fdset_create ();
+  if (NULL != rs->dnsout4)
+    GNUNET_NETWORK_fdset_set (rset, rs->dnsout4);
+  if (NULL != rs->dnsout6)
+    GNUNET_NETWORK_fdset_set (rset, rs->dnsout6);
+  rs->read_task = GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
+                                              REQUEST_TIMEOUT,
+                                              rset,
+                                              NULL,
+                                              &read_response, rs);
+  GNUNET_NETWORK_fdset_destroy (rset);
+  return rs;
+}
+
+
+/**
+ * Perform DNS resolution.
+ *
+ * @param ctx stub resolver to use
+ * @param af address family to use
+ * @param request DNS request to transmit
+ * @param request_len number of bytes in msg
+ * @param rc function to call with result
+ * @param rc_cls closure for 'rc'
+ * @return socket used for the request, NULL on error
+ */
+struct GNUNET_DNSSTUB_RequestSocket *
+GNUNET_DNSSTUB_resolve (struct GNUNET_DNSSTUB_Context *ctx,
+                       const struct sockaddr *sa,
+                       socklen_t sa_len,
+                       const void *request,
+                       size_t request_len,
+                       GNUNET_DNSSTUB_ResultCallback rc,
+                       void *rc_cls)
+{
+  struct GNUNET_DNSSTUB_RequestSocket *rs;
+  struct GNUNET_NETWORK_Handle *ret;
+  int af;
+
+  af = sa->sa_family;
+  if (NULL == (rs = get_request_socket (ctx, af)))
+    return NULL;
+  if (NULL != rs->dnsout4)
+    ret = rs->dnsout4;
+  else
+    ret = rs->dnsout6;
+  GNUNET_assert (NULL != ret);
+  rs->rc = rc;
+  rs->rc_cls = rc_cls;
+  GNUNET_NETWORK_socket_sendto (ret,
+                               request,
+                               request_len,
+                               sa,
+                               sa_len);
+  return rs;
+}
+
+
+/**
+ * Perform DNS resolution using our default IP from init.
+ *
+ * @param ctx stub resolver to use
+ * @param request DNS request to transmit
+ * @param request_len number of bytes in msg
+ * @param rc function to call with result
+ * @param rc_cls closure for 'rc'
+ * @return socket used for the request, NULL on error
+ */
+struct GNUNET_DNSSTUB_RequestSocket *
+GNUNET_DNSSTUB_resolve2 (struct GNUNET_DNSSTUB_Context *ctx,
+                        const void *request,
+                        size_t request_len,
+                        GNUNET_DNSSTUB_ResultCallback rc,
+                        void *rc_cls)
+{
+  int af;
+  struct sockaddr_in v4;
+  struct sockaddr_in6 v6;
+  struct sockaddr *so;
+  socklen_t salen;
+  struct GNUNET_NETWORK_Handle *dnsout;
+  struct GNUNET_DNSSTUB_RequestSocket *rs;
+
+  memset (&v4, 0, sizeof (v4));
+  memset (&v6, 0, sizeof (v6));
+  if (1 == inet_pton (AF_INET, ctx->dns_exit, &v4.sin_addr))
+  {
+    salen = sizeof (v4);
+    v4.sin_family = AF_INET;
+    v4.sin_port = htons (53);
+#if HAVE_SOCKADDR_IN_SIN_LEN
+    v4.sin_len = (u_char) salen;
+#endif
+    so = (struct sockaddr *) &v4;
+    af = AF_INET;
+  }
+  else if (1 == inet_pton (AF_INET6, ctx->dns_exit, &v6.sin6_addr))
+  {
+    salen = sizeof (v6);
+    v6.sin6_family = AF_INET6;
+    v6.sin6_port = htons (53);
+#if HAVE_SOCKADDR_IN_SIN_LEN
+    v6.sin6_len = (u_char) salen;
+#endif
+    so = (struct sockaddr *) &v6;
+    af = AF_INET6;
+  }  
+  else
+  {
+    GNUNET_break (0);
+    return NULL;
+  }
+  if (NULL == (rs = get_request_socket (ctx, af)))
+    return NULL;
+  if (NULL != rs->dnsout4)
+    dnsout = rs->dnsout4;
+  else
+    dnsout = rs->dnsout6;
+  if (NULL == dnsout)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+               _("Configured DNS exit `%s' is not working / valid.\n"),
+               ctx->dns_exit);
+    return NULL;
+  }
+  memcpy (&rs->addr,
+         so,
+         salen);
+  rs->addrlen = salen;
+  GNUNET_NETWORK_socket_sendto (dnsout,
+                               request,
+                               request_len, so, salen); 
+  rs->timeout = GNUNET_TIME_relative_to_absolute (REQUEST_TIMEOUT);
+  
+  return rs;
+
+}
+
+
+/**
+ * Actually do the reading of a DNS packet from our UDP socket and see
+ * if we have a valid, matching, pending request.
+ *
+ * @param rs request socket with callback details
+ * @param dnsout socket to read from
+ * @return GNUNET_OK on success, GNUNET_NO on drop, GNUNET_SYSERR on IO-errors (closed socket)
+ */
+static int
+do_dns_read (struct GNUNET_DNSSTUB_RequestSocket *rs,
+            struct GNUNET_NETWORK_Handle *dnsout)
+{
+  struct sockaddr_storage addr;
+  socklen_t addrlen;
+  struct GNUNET_TUN_DnsHeader *dns;
+  ssize_t r;
+  int len;
+
+#ifndef MINGW
+  if (0 != ioctl (GNUNET_NETWORK_get_fd (dnsout), FIONREAD, &len))
+  {
+    /* conservative choice: */
+    len = UINT16_MAX;
+  }
+#else
+  /* port the code above? */
+  len = UINT16_MAX;
+#endif
+
+  {
+    unsigned char buf[len] GNUNET_ALIGN;
+
+    addrlen = sizeof (addr);
+    memset (&addr, 0, sizeof (addr));  
+    r = GNUNET_NETWORK_socket_recvfrom (dnsout, 
+                                       buf, sizeof (buf),
+                                       (struct sockaddr*) &addr, &addrlen);
+    if (-1 == r)
+    {
+      GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR, "recvfrom");
+      GNUNET_NETWORK_socket_close (dnsout);
+      return GNUNET_SYSERR;
+    }
+    if (sizeof (struct GNUNET_TUN_DnsHeader) > r)
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 
+                 _("Received DNS response that is too small (%u bytes)"),
+                 r);
+      return GNUNET_NO;
+    }
+    dns = (struct GNUNET_TUN_DnsHeader *) buf;
+    if ( (addrlen != rs->addrlen) ||
+        (0 != memcmp (&rs->addr,
+                      &addr,
+                      addrlen)) ||      
+       (0 == GNUNET_TIME_absolute_get_remaining (rs->timeout).rel_value) )
+      return GNUNET_NO;
+    rs->rc (rs->rc_cls,
+           rs,
+           dns,
+           r);
+  }  
+  return GNUNET_OK;
+}
+
+
+/**
+ * Read a DNS response from the (unhindered) UDP-Socket
+ *
+ * @param cls socket to read from
+ * @param tc scheduler context (must be shutdown or read ready)
+ */
+static void
+read_response (void *cls,
+              const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+  struct GNUNET_DNSSTUB_RequestSocket *rs = cls;
+  struct GNUNET_NETWORK_FDSet *rset;
+
+  rs->read_task = GNUNET_SCHEDULER_NO_TASK;
+  if (0 == (tc->reason & GNUNET_SCHEDULER_REASON_READ_READY))
+  {
+    /* timeout or shutdown */
+    cleanup_rs (rs);
+    return;
+  }
+  /* read and process ready sockets */
+  if ((NULL != rs->dnsout4) &&
+      (GNUNET_NETWORK_fdset_isset (tc->read_ready, rs->dnsout4)) &&
+      (GNUNET_SYSERR == do_dns_read (rs, rs->dnsout4)))
+    rs->dnsout4 = NULL;
+  if ((NULL != rs->dnsout6) &&
+      (GNUNET_NETWORK_fdset_isset (tc->read_ready, rs->dnsout6)) &&
+      (GNUNET_SYSERR == do_dns_read (rs, rs->dnsout6)))
+    rs->dnsout6 = NULL;
+
+  /* re-schedule read task */
+  rset = GNUNET_NETWORK_fdset_create ();
+  if (NULL != rs->dnsout4)
+    GNUNET_NETWORK_fdset_set (rset, rs->dnsout4);
+  if (NULL != rs->dnsout6)
+    GNUNET_NETWORK_fdset_set (rset, rs->dnsout6);
+  rs->read_task = GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
+                                              GNUNET_TIME_absolute_get_remaining (rs->timeout),
+                                              rset,
+                                              NULL,
+                                              &read_response, rs);
+  GNUNET_NETWORK_fdset_destroy (rset);
+}
+
+
+
+/**
+ * Start a DNS stub resolver.
+ *
+ * @param dns_ip target IP address to use
+ * @return NULL on error
+ */
+struct GNUNET_DNSSTUB_Context *
+GNUNET_DNSSTUB_start (const char *dns_ip)
+{
+  struct GNUNET_DNSSTUB_Context *ctx;
+  
+  ctx = GNUNET_malloc (sizeof (struct GNUNET_DNSSTUB_Context));
+  if (NULL != dns_ip)
+    ctx->dns_exit = GNUNET_strdup (dns_ip);
+  return ctx;
+}
+
+
+/**
+ * Cleanup DNSSTUB resolver.
+ *
+ * @param ctx stub resolver to clean up
+ */
+void
+GNUNET_DNSSTUB_stop (struct GNUNET_DNSSTUB_Context *ctx)
+{
+  unsigned int i;
+
+  for (i=0;i<=UINT16_MAX;i++)
+    cleanup_rs (&ctx->sockets[i]);
+  if (NULL != ctx->dns_exit)
+  {
+    GNUNET_free (ctx->dns_exit);
+    ctx->dns_exit = NULL;
+  }
+  GNUNET_free (ctx);
+}
+
+
+/* end of dnsstub.c */
index 76ea1390f40a44c44008433886e63d51f8b99731..b13f156a9bc63814fb317600c0e68e25d6fede90 100644 (file)
 #include "dns.h"
 #include "gnunet_dns_service.h"
 #include "gnunet_dnsparser_lib.h"
+#include "gnunet_dnsstub_lib.h"
 #include "gnunet_mesh_service.h"
 #include "gnunet_statistics_service.h"
 #include "gnunet_tun_lib.h"
 
 
-/**
- * Timeout for an external (Internet-DNS) DNS resolution
- */
-#define REQUEST_TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 5)
-
-/**
- * How many DNS sockets do we open at most at the same time?
- * (technical socket maximum is this number x2 for IPv4+IPv6)
- */
-#define DNS_SOCKET_MAX 128
-
 /**
  * Phases each request goes through.
  */
@@ -136,34 +126,6 @@ struct ClientRecord
 };
 
 
-/**
- * UDP socket we are using for sending DNS requests to the Internet.
- */
-struct RequestSocket
-{
-  
-  /**
-   * UDP socket we use for this request for IPv4
-   */
-  struct GNUNET_NETWORK_Handle *dnsout4;
-
-  /**
-   * UDP socket we use for this request for IPv6
-   */
-  struct GNUNET_NETWORK_Handle *dnsout6;
-
-  /**
-   * Task for reading from dnsout4 and dnsout6.
-   */
-  GNUNET_SCHEDULER_TaskIdentifier read_task;
-
-  /**
-   * When should this socket be closed?
-   */
-  struct GNUNET_TIME_Absolute timeout;
-};
-
-
 /**
  * Entry we keep for each active request.
  */ 
@@ -184,10 +146,9 @@ struct RequestRecord
 
   /**
    * Socket we are using to transmit this request (must match if we receive
-   * a response).  Must NOT be freed as part of this request record (as it
-   * might be shared with other requests).
+   * a response).
    */
-  struct GNUNET_NETWORK_Handle *dnsout;
+  struct GNUNET_DNSSTUB_RequestSocket *rs;
 
   /**
    * Source address of the original request (for sending response).
@@ -199,11 +160,6 @@ struct RequestRecord
    */
   struct sockaddr_storage dst_addr;
 
-  /**
-   * When should this request time out?
-   */
-  struct GNUNET_TIME_Absolute timeout;
-
   /**
    * ID of this request, also basis for hashing.  Lowest 16 bit will
    * be our message ID when doing a global DNS request and our index
@@ -252,25 +208,9 @@ struct TunnelState
 
   /**
    * Socket we are using to transmit this request (must match if we receive
-   * a response).  Must NOT be freed as part of this request record (as it
-   * might be shared with other requests).
-   */
-  struct GNUNET_NETWORK_Handle *dnsout;
-
-  /**
-   * Address we sent the DNS request to.
-   */
-  struct sockaddr_storage addr;
-
-  /**
-   * When should this request time out?
+   * a response).
    */
-  struct GNUNET_TIME_Absolute timeout;
-
-  /**
-   * Number of bytes in 'addr'.
-   */
-  socklen_t addrlen;
+  struct GNUNET_DNSSTUB_RequestSocket *rs;
 
   /**
    * Number of bytes in 'reply'.
@@ -329,63 +269,31 @@ static struct ClientRecord *clients_tail;
  */
 static struct GNUNET_SERVER_NotificationContext *nc;
 
-/**
- * Array of all open requests.
- */
-static struct RequestRecord requests[UINT16_MAX + 1];
-
 /**
  * Array of all open requests from tunnels.
  */
 static struct TunnelState *tunnels[UINT16_MAX + 1];
 
 /**
- * Array of all open sockets for DNS requests. 
+ * Array of all open requests.
  */
-static struct RequestSocket sockets[DNS_SOCKET_MAX];
+static struct RequestRecord requests[UINT16_MAX + 1];
 
 /**
  * Generator for unique request IDs.
  */
 static uint64_t request_id_gen;
 
-/**
- * IP address to use for the DNS server if we are a DNS exit service
- * (for VPN via mesh); otherwise NULL.
- */
-static char *dns_exit;
-
 /**
  * Handle to the MESH service (for receiving DNS queries), or NULL 
  * if we are not a DNS exit.
  */
 static struct GNUNET_MESH_Handle *mesh;
 
-
 /**
- * We're done with a RequestSocket, close it for now.
- *
- * @param rs request socket to clean up
+ * Handle to the DNS Stub resolver.
  */
-static void
-cleanup_rs (struct RequestSocket *rs)
-{
-  if (NULL != rs->dnsout4)
-  {
-    GNUNET_NETWORK_socket_close (rs->dnsout4);
-    rs->dnsout4 = NULL;
-  }
-  if (NULL != rs->dnsout6)
-  {
-    GNUNET_NETWORK_socket_close (rs->dnsout6);
-    rs->dnsout6 = NULL;
-  }
-  if (GNUNET_SCHEDULER_NO_TASK != rs->read_task)
-  {
-    GNUNET_SCHEDULER_cancel (rs->read_task);
-    rs->read_task = GNUNET_SCHEDULER_NO_TASK;
-  }
-}
+static struct GNUNET_DNSSTUB_Context *dnsstub;
 
 
 /**
@@ -430,10 +338,10 @@ cleanup_task (void *cls GNUNET_UNUSED,
     GNUNET_STATISTICS_destroy (stats, GNUNET_NO);
     stats = NULL;
   }
-  if (NULL != dns_exit)
+  if (NULL != dnsstub)
   {
-    GNUNET_free (dns_exit);
-    dns_exit = NULL;
+    GNUNET_DNSSTUB_stop (dnsstub);
+    dnsstub = NULL;
   }
   if (NULL != mesh)
   {
@@ -443,54 +351,6 @@ cleanup_task (void *cls GNUNET_UNUSED,
 }
 
 
-/**
- * Open source port for sending DNS requests
- *
- * @param af AF_INET or AF_INET6
- * @return GNUNET_OK on success
- */ 
-static struct GNUNET_NETWORK_Handle *
-open_socket (int af)
-{
-  struct sockaddr_in a4;
-  struct sockaddr_in6 a6;
-  struct sockaddr *sa;
-  socklen_t alen;
-  struct GNUNET_NETWORK_Handle *ret;
-
-  ret = GNUNET_NETWORK_socket_create (af, SOCK_DGRAM, 0);
-  if (NULL == ret)
-    return NULL;
-  switch (af)
-  {
-  case AF_INET:
-    memset (&a4, 0, alen = sizeof (struct sockaddr_in));
-    sa = (struct sockaddr *) &a4;
-    break;
-  case AF_INET6:
-    memset (&a6, 0, alen = sizeof (struct sockaddr_in6));
-    sa = (struct sockaddr *) &a6;
-    break;
-  default:
-    GNUNET_break (0);
-    GNUNET_NETWORK_socket_close (ret);
-    return NULL;
-  }
-  sa->sa_family = af;
-  if (GNUNET_OK != GNUNET_NETWORK_socket_bind (ret,
-                                              sa, 
-                                              alen))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 
-               _("Could not bind to any port: %s\n"),
-               STRERROR (errno));
-    GNUNET_NETWORK_socket_close (ret);
-    return NULL;
-  }
-  return ret;
-}
-
-
 /**
  * We're done with some request, finish processing.
  *
@@ -677,70 +537,21 @@ send_request_to_client (struct RequestRecord *rr,
 }
 
 
-/**
- * Read a DNS response from the (unhindered) UDP-Socket
- *
- * @param cls socket to read from
- * @param tc scheduler context (must be shutdown or read ready)
- */
-static void
-read_response (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc);
-
 
 /**
- * Get a socket of the specified address family to send out a
- * UDP DNS request to the Internet.  
+ * Callback called from DNSSTUB resolver when a resolution
+ * succeeded.
  *
- * @param af desired address family
- * @return NULL on error (given AF not "supported")
+ * @param cls NULL
+ * @param rs the socket that received the response
+ * @param dns the response itself
+ * @param r number of bytes in dns
  */
-static struct GNUNET_NETWORK_Handle *
-get_request_socket (int af)
-{
-  struct RequestSocket *rs;
-  struct GNUNET_NETWORK_FDSet *rset;
-  static struct GNUNET_NETWORK_Handle *ret;
-
-  rs = &sockets[GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_NONCE, 
-                                         DNS_SOCKET_MAX)];
-  rs->timeout = GNUNET_TIME_relative_to_absolute (REQUEST_TIMEOUT);
-  switch (af)
-  {
-  case AF_INET:
-    if (NULL == rs->dnsout4)
-      rs->dnsout4 = open_socket (AF_INET);
-    ret = rs->dnsout4;
-    break;
-  case AF_INET6:
-    if (NULL == rs->dnsout6)
-      rs->dnsout6 = open_socket (AF_INET6);
-    ret = rs->dnsout6;
-    break;
-  default:
-    return NULL;
-  }  
-  if (GNUNET_SCHEDULER_NO_TASK != rs->read_task)
-  {
-    GNUNET_SCHEDULER_cancel (rs->read_task);
-    rs->read_task = GNUNET_SCHEDULER_NO_TASK;
-  }
-  if ( (NULL == rs->dnsout4) &&
-       (NULL == rs->dnsout6) )
-    return NULL;
-  rset = GNUNET_NETWORK_fdset_create ();
-  if (NULL != rs->dnsout4)
-    GNUNET_NETWORK_fdset_set (rset, rs->dnsout4);
-  if (NULL != rs->dnsout6)
-    GNUNET_NETWORK_fdset_set (rset, rs->dnsout6);
-  rs->read_task = GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
-                                              REQUEST_TIMEOUT,
-                                              rset,
-                                              NULL,
-                                              &read_response, rs);
-  GNUNET_NETWORK_fdset_destroy (rset);
-  return ret;
-}
+static void
+process_dns_result (void *cls,
+                   struct GNUNET_DNSSTUB_RequestSocket *rs,
+                   const struct GNUNET_TUN_DnsHeader *dns,
+                   size_t r);
 
 
 /**
@@ -815,8 +626,14 @@ next_phase (struct RequestRecord *rr)
     }
 
     rr->phase = RP_INTERNET_DNS;
-    rr->dnsout = get_request_socket (rr->dst_addr.ss_family);
-    if (NULL == rr->dnsout)
+    rr->rs = GNUNET_DNSSTUB_resolve (dnsstub,
+                                    (struct sockaddr*) &rr->dst_addr,
+                                    salen,
+                                    rr->payload,
+                                    rr->payload_length,
+                                    &process_dns_result,
+                                    NULL);
+    if (NULL == rr->rs)
     {
       GNUNET_STATISTICS_update (stats,
                                gettext_noop ("# DNS exit failed (failed to open socket)"),
@@ -824,12 +641,6 @@ next_phase (struct RequestRecord *rr)
       cleanup_rr (rr);
       return;
     }
-    GNUNET_NETWORK_socket_sendto (rr->dnsout,
-                                 rr->payload,
-                                 rr->payload_length,
-                                 (struct sockaddr*) &rr->dst_addr,
-                                 salen);
-    rr->timeout = GNUNET_TIME_relative_to_absolute (REQUEST_TIMEOUT);
     return;
   case RP_INTERNET_DNS:
     rr->phase = RP_MODIFY;
@@ -956,68 +767,32 @@ transmit_reply_to_mesh (void *cls,
 }
 
 
+
 /**
- * Actually do the reading of a DNS packet from our UDP socket and see
- * if we have a valid, matching, pending request.
+ * Callback called from DNSSTUB resolver when a resolution
+ * succeeded.
  *
- * @param dnsout socket to read from
- * @return GNUNET_OK on success, GNUNET_NO on drop, GNUNET_SYSERR on IO-errors (closed socket)
+ * @param cls NULL
+ * @param rs the socket that received the response
+ * @param dns the response itself
+ * @param r number of bytes in dns
  */
-static int
-do_dns_read (struct GNUNET_NETWORK_Handle *dnsout)
+static void
+process_dns_result (void *cls,
+                   struct GNUNET_DNSSTUB_RequestSocket *rs,
+                   const struct GNUNET_TUN_DnsHeader *dns,
+                   size_t r)
 {
-  struct sockaddr_storage addr;
-  socklen_t addrlen;
-  struct GNUNET_TUN_DnsHeader *dns;
   struct RequestRecord *rr;
   struct TunnelState *ts;
-  ssize_t r;
-  int len;
-
-#ifndef MINGW
-  if (0 != ioctl (GNUNET_NETWORK_get_fd (dnsout), FIONREAD, &len))
-  {
-    /* conservative choice: */
-    len = UINT16_MAX;
-  }
-#else
-  /* port the code above? */
-  len = UINT16_MAX;
-#endif
-
-  {
-    unsigned char buf[len] GNUNET_ALIGN;
-
-    addrlen = sizeof (addr);
-    memset (&addr, 0, sizeof (addr));  
-    r = GNUNET_NETWORK_socket_recvfrom (dnsout, 
-                                       buf, sizeof (buf),
-                                       (struct sockaddr*) &addr, &addrlen);
-    if (-1 == r)
-    {
-      GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR, "recvfrom");
-      GNUNET_NETWORK_socket_close (dnsout);
-      return GNUNET_SYSERR;
-    }
-    if (sizeof (struct GNUNET_TUN_DnsHeader) > r)
-    {
-      GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 
-                 _("Received DNS response that is too small (%u bytes)"),
-                 r);
-      return GNUNET_NO;
-    }
-    dns = (struct GNUNET_TUN_DnsHeader *) buf;
-    /* Handle case that this is a reply to a request from a MESH DNS tunnel */
-    ts = tunnels[dns->id];
-    if ( (NULL == ts) ||
-        (ts->dnsout != dnsout) ||
-        (addrlen != ts->addrlen) ||
-        (0 != memcmp (&ts->addr,
-                      &addr,
-                      addrlen)) ||      
-        (0 == GNUNET_TIME_absolute_get_remaining (ts->timeout).rel_value) )
-      ts = NULL; /* DNS responder address missmatch */
-    if (NULL != ts)
+    
+  GNUNET_assert (NULL == cls);
+  /* Handle case that this is a reply to a request from a MESH DNS tunnel */
+  ts = tunnels[dns->id];
+  if ( (NULL == ts) ||
+       (ts->rs != rs) )
+    ts = NULL; /* DNS responder address missmatch */
+  if (NULL != ts)
     {
       tunnels[dns->id] = NULL;
       GNUNET_free_non_null (ts->reply);
@@ -1034,76 +809,25 @@ do_dns_read (struct GNUNET_NETWORK_Handle *dnsout)
                                                  &transmit_reply_to_mesh,
                                                  ts);
     }
-    /* Handle case that this is a reply to a local request (intercepted from TUN interface) */
-    rr = &requests[dns->id];
-    if ( (rr->phase != RP_INTERNET_DNS) ||
-        (rr->dnsout != dnsout) ||
-        (0 != memcmp (&rr->dst_addr,
-                      &addr,
-                      addrlen)) ||
-        (0 == GNUNET_TIME_absolute_get_remaining (rr->timeout).rel_value) )
+  /* Handle case that this is a reply to a local request (intercepted from TUN interface) */
+  rr = &requests[dns->id];
+  if ( (rr->phase != RP_INTERNET_DNS) ||
+       (rr->rs != rs) )
     {
       if (NULL == ts)
-      {
-       /* unexpected / bogus reply */
-       GNUNET_STATISTICS_update (stats,
-                                 gettext_noop ("# External DNS response discarded (no matching request)"),
-                                 1, GNUNET_NO);
-      }
-      return GNUNET_NO
+       {
+         /* unexpected / bogus reply */
+         GNUNET_STATISTICS_update (stats,
+                                   gettext_noop ("# External DNS response discarded (no matching request)"),
+                                   1, GNUNET_NO);
+       }
+      return; 
     }
-    GNUNET_free_non_null (rr->payload);
-    rr->payload = GNUNET_malloc (r);
-    memcpy (rr->payload, buf, r);
-    rr->payload_length = r;
-    next_phase (rr);
-  }  
-  return GNUNET_OK;
-}
-
-
-/**
- * Read a DNS response from the (unhindered) UDP-Socket
- *
- * @param cls socket to read from
- * @param tc scheduler context (must be shutdown or read ready)
- */
-static void
-read_response (void *cls,
-              const struct GNUNET_SCHEDULER_TaskContext *tc)
-{
-  struct RequestSocket *rs = cls;
-  struct GNUNET_NETWORK_FDSet *rset;
-
-  rs->read_task = GNUNET_SCHEDULER_NO_TASK;
-  if (0 == (tc->reason & GNUNET_SCHEDULER_REASON_READ_READY))
-  {
-    /* timeout or shutdown */
-    cleanup_rs (rs);
-    return;
-  }
-  /* read and process ready sockets */
-  if ((NULL != rs->dnsout4) &&
-      (GNUNET_NETWORK_fdset_isset (tc->read_ready, rs->dnsout4)) &&
-      (GNUNET_SYSERR == do_dns_read (rs->dnsout4)))
-    rs->dnsout4 = NULL;
-  if ((NULL != rs->dnsout6) &&
-      (GNUNET_NETWORK_fdset_isset (tc->read_ready, rs->dnsout6)) &&
-      (GNUNET_SYSERR == do_dns_read (rs->dnsout6)))
-    rs->dnsout6 = NULL;
-
-  /* re-schedule read task */
-  rset = GNUNET_NETWORK_fdset_create ();
-  if (NULL != rs->dnsout4)
-    GNUNET_NETWORK_fdset_set (rset, rs->dnsout4);
-  if (NULL != rs->dnsout6)
-    GNUNET_NETWORK_fdset_set (rset, rs->dnsout6);
-  rs->read_task = GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
-                                              GNUNET_TIME_absolute_get_remaining (rs->timeout),
-                                              rset,
-                                              NULL,
-                                              &read_response, rs);
-  GNUNET_NETWORK_fdset_destroy (rset);
+  GNUNET_free_non_null (rr->payload);
+  rr->payload = GNUNET_malloc (r);
+  memcpy (rr->payload, dns, r);
+  rr->payload_length = r;
+  next_phase (rr);
 }
 
 
@@ -1410,11 +1134,7 @@ receive_dns_request (void *cls GNUNET_UNUSED, struct GNUNET_MESH_Tunnel *tunnel,
   size_t dlen = mlen - sizeof (struct GNUNET_MessageHeader);
   char buf[dlen] GNUNET_ALIGN;
   struct GNUNET_TUN_DnsHeader *dout;
-  struct sockaddr_in v4;
-  struct sockaddr_in6 v6;
-  struct sockaddr *so;
-  socklen_t salen;
-  
   if (dlen < sizeof (struct GNUNET_TUN_DnsHeader))
   {
     GNUNET_break_op (0);
@@ -1428,51 +1148,14 @@ receive_dns_request (void *cls GNUNET_UNUSED, struct GNUNET_MESH_Tunnel *tunnel,
                                                   UINT16_MAX + 1);
   tunnels[ts->my_id] = ts;
   memcpy (buf, dns, dlen);
-  dout = (struct GNUNET_TUN_DnsHeader*) buf;
+  dout = (struct GNUNET_TUN_DnsHeader *) buf;
   dout->id = ts->my_id;
-  memset (&v4, 0, sizeof (v4));
-  memset (&v6, 0, sizeof (v6));
-  if (1 == inet_pton (AF_INET, dns_exit, &v4.sin_addr))
-  {
-    salen = sizeof (v4);
-    v4.sin_family = AF_INET;
-    v4.sin_port = htons (53);
-#if HAVE_SOCKADDR_IN_SIN_LEN
-    v4.sin_len = (u_char) salen;
-#endif
-    so = (struct sockaddr *) &v4;
-    ts->dnsout = get_request_socket (AF_INET);
-  }
-  else if (1 == inet_pton (AF_INET6, dns_exit, &v6.sin6_addr))
-  {
-    salen = sizeof (v6);
-    v6.sin6_family = AF_INET6;
-    v6.sin6_port = htons (53);
-#if HAVE_SOCKADDR_IN_SIN_LEN
-    v6.sin6_len = (u_char) salen;
-#endif
-    so = (struct sockaddr *) &v6;
-    ts->dnsout = get_request_socket (AF_INET6);
-  }  
-  else
-  {
-    GNUNET_break (0);
+  ts->rs = GNUNET_DNSSTUB_resolve2 (dnsstub,
+                                   buf, dlen,
+                                   &process_dns_result,
+                                   NULL);
+  if (NULL == ts->rs)
     return GNUNET_SYSERR;
-  }
-  if (NULL == ts->dnsout)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-               _("Configured DNS exit `%s' is not working / valid.\n"),
-               dns_exit);
-    return GNUNET_SYSERR;
-  }
-  memcpy (&ts->addr,
-         so,
-         salen);
-  ts->addrlen = salen;
-  GNUNET_NETWORK_socket_sendto (ts->dnsout,
-                               buf, dlen, so, salen); 
-  ts->timeout = GNUNET_TIME_relative_to_absolute (REQUEST_TIMEOUT);
   return GNUNET_OK;
 }
 
@@ -1552,6 +1235,7 @@ run (void *cls, struct GNUNET_SERVER_Handle *server,
   char *ipv6prefix;
   struct in_addr dns_exit4;
   struct in6_addr dns_exit6;
+  char *dns_exit;
 
   cfg = cfg_;
   if (GNUNET_YES !=
@@ -1582,7 +1266,7 @@ run (void *cls, struct GNUNET_SERVER_Handle *server,
     GNUNET_free_non_null (dns_exit);
     dns_exit = NULL;
   }
-
+  dnsstub = GNUNET_DNSSTUB_start (dns_exit);
   helper_argv[0] = GNUNET_strdup ("gnunet-dns");
   if (GNUNET_SYSERR ==
       GNUNET_CONFIGURATION_get_value_string (cfg, "dns", "IFNAME", &ifc_name))
index 8a326e1bf3945762e642cd1ecd89405a72ee7e24..4bde4fbbbbf1cb835f08b5270cc6ff9e91d32e06 100644 (file)
@@ -40,6 +40,7 @@ gnunetinclude_HEADERS = \
   gnunet_dht_service.h \
   gnunet_disk_lib.h \
   gnunet_dnsparser_lib.h \
+  gnunet_dnsstub_lib.h \
   gnunet_dns_service.h \
   gnunet_dv_service.h \
   gnunet_fragmentation_lib.h \
diff --git a/src/include/gnunet_dnsstub_lib.h b/src/include/gnunet_dnsstub_lib.h
new file mode 100644 (file)
index 0000000..ffe82db
--- /dev/null
@@ -0,0 +1,115 @@
+/*
+      This file is part of GNUnet
+      (C) 2012 Christian Grothoff (and other contributing authors)
+
+      GNUnet is free software; you can redistribute it and/or modify
+      it under the terms of the GNU General Public License as published
+      by the Free Software Foundation; either version 3, or (at your
+      option) any later version.
+
+      GNUnet is distributed in the hope that it will be useful, but
+      WITHOUT ANY WARRANTY; without even the implied warranty of
+      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+      General Public License for more details.
+
+      You should have received a copy of the GNU General Public License
+      along with GNUnet; see the file COPYING.  If not, write to the
+      Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+      Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * @file include/gnunet_dnsstub_lib.h
+ * @brief API for helper library to send DNS requests to DNS resolver
+ * @author Christian Grothoff
+ */
+#ifndef GNUNET_DNSSTUB_LIB_H
+#define GNUNET_DNSSTUB_LIB_H
+
+#include "gnunet_common.h"
+#include "gnunet_tun_lib.h"
+
+/**
+ * Opaque handle to the stub resolver.
+ */ 
+struct GNUNET_DNSSTUB_Context;
+
+/**
+ * Opaque handle to a socket doing UDP requests.
+ */ 
+struct GNUNET_DNSSTUB_RequestSocket;
+
+
+/**
+ * Start a DNS stub resolver.
+ *
+ * @param dns_ip target IP address to use
+ * @return NULL on error
+ */
+struct GNUNET_DNSSTUB_Context *
+GNUNET_DNSSTUB_start (const char *dns_ip);
+
+
+/**
+ * Cleanup DNSSTUB resolver.
+ *
+ * @param ctx stub resolver to clean up
+ */
+void
+GNUNET_DNSSTUB_stop (struct GNUNET_DNSSTUB_Context *ctx);
+
+
+/**
+ * Function called with the result of a DNS resolution.
+ *
+ * @param cls closure
+ * @param rs socket that received the response
+ * @param dns dns response, never NULL
+ * @param dns_len number of bytes in 'dns'
+ */
+typedef void (*GNUNET_DNSSTUB_ResultCallback)(void *cls,
+                                             struct GNUNET_DNSSTUB_RequestSocket *rs,
+                                             const struct GNUNET_TUN_DnsHeader *dns,
+                                             size_t dns_len);
+
+
+/**
+ * Perform DNS resolution using given address.
+ *
+ * @param ctx stub resolver to use
+ * @param af address family to use
+ * @param request DNS request to transmit
+ * @param request_len number of bytes in msg
+ * @param rc function to call with result
+ * @param rc_cls closure for 'rc'
+ * @return socket used for the request, NULL on error
+ */
+struct GNUNET_DNSSTUB_RequestSocket *
+GNUNET_DNSSTUB_resolve (struct GNUNET_DNSSTUB_Context *ctx,
+                       const struct sockaddr *sa,
+                       socklen_t sa_len,
+                       const void *request,
+                       size_t request_len,
+                       GNUNET_DNSSTUB_ResultCallback rc,
+                       void *rc_cls);
+
+
+/**
+ * Perform DNS resolution using our default IP from init.
+ *
+ * @param ctx stub resolver to use
+ * @param request DNS request to transmit
+ * @param request_len number of bytes in msg
+ * @param rc function to call with result
+ * @param rc_cls closure for 'rc'
+ * @return socket used for the request, NULL on error
+ */
+struct GNUNET_DNSSTUB_RequestSocket *
+GNUNET_DNSSTUB_resolve2 (struct GNUNET_DNSSTUB_Context *ctx,
+                        const void *request,
+                        size_t request_len,
+                        GNUNET_DNSSTUB_ResultCallback rc,
+                        void *rc_cls);
+
+
+#endif