gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r17162 - in gnunet: . po src/core src/dht src/hello src/inc


From: gnunet
Subject: [GNUnet-SVN] r17162 - in gnunet: . po src/core src/dht src/hello src/include src/util
Date: Tue, 4 Oct 2011 13:09:39 +0200

Author: grothoff
Date: 2011-10-04 13:09:39 +0200 (Tue, 04 Oct 2011)
New Revision: 17162

Modified:
   gnunet/ChangeLog
   gnunet/configure.ac
   gnunet/po/de.gmo
   gnunet/po/de.po
   gnunet/po/es.gmo
   gnunet/po/es.po
   gnunet/po/gnunet.pot
   gnunet/po/sv.gmo
   gnunet/po/sv.po
   gnunet/po/vi.gmo
   gnunet/po/vi.po
   gnunet/po/zh_CN.po
   gnunet/src/core/gnunet-service-core.c
   gnunet/src/dht/gnunet-service-dht_neighbours.c
   gnunet/src/dht/test_dht_multipeer.c
   gnunet/src/hello/hello.c
   gnunet/src/include/gnunet_common.h
   gnunet/src/util/common_logging.c
   gnunet/src/util/program.c
   gnunet/src/util/service.c
Log:
LRN's big logging rewrite (#1805):

* GNUNET_BOTTOM_LOGLEVEL and GNUNET_TOP_LOGLEVEL set global levels
Use bottom level to force logging to be more verbose than configured
Use top level to force logging to be less verbose than configured
Obviously, bottom <= top

* GNUNET_LOG sets per-component levels
GNUNET_LOG looks like this:
name[/bottom[/top]]/...
name starts with a non-digit character, must not include '/'
bottom and top must consist only of digits, or be empty
a description is only used if it matches the component exactly
as a special exception (for now) the name '*' matches any component
per-component loglevels override global loglevels
global levels override whatever is given via arguments or in config
Examples:
test_client/8/8/
run test_client with DEBUG level (usually leads to a timeout, by the way)

*/2/2/core/8/8/transport/4/4
run everything with WARNING, core - with DEBUG, transport - with INFO

*//1/peerinfo/4/
run everything with top loglevel ERROR, global/configured bottom loglevel,
and peerinfo - with bottom loglevel INFO and global/configured top loglevel

statistics/
does nothing

* Added GNUNET_ERROR_TYPE_UNSPECIFIED enum value, to hold -1.
  Its corresponding string is NULL.
* Changed the logger calls as Grothoff suggested - to use static int to hold
  the result of runtime evaluation of logability.
  Logging can be unconditionally disabled in advance by defining
  GNUNET_LOG_CALL_STATUS to 0, and enabled in advance by defining it to 1.
* Added GNUNET_CULL_LOGGING, which, if defined, completely culls out all
  logging calls at compile time.
* Log definition parsing is only done once, results are cached.
* Changed definition format, now it looks like this:
  
[component|*|];[file|*|];[function|*|];[from_line[-to_line]];level/[component...]
  All field separators are mandatory (but some fields could be empty or be '*').
  Line definition must be either empty or "number" or "number-number"
  Level definition must not be empty, and is a string representation
  of the level (i.e. DEBUG, WARNING, INFO, etc).
  Definition entry must end with a slash, whether or not there's another
  entry after it.
  File name is matched to the end of __FILE__, which allows file name
  to match not only the base name, but also directories leading to it.
* Removed default WARNING loglevel from program and service utility code.
  Now they default to NULL (UNSPECIFIED) level, which can be overriden by
  GNUNET_LOG definition, if no level is specified via config or commandline.
  Log levels from config or commandline are overriden by GNUNET_FORCE_LOG.
  If GNUNET_*LOG are undefined, and no levels came from config or commandline,
  logger internally defaults to WARNING level.

Add --enable-logging configure option




Modified: gnunet/ChangeLog
===================================================================
--- gnunet/ChangeLog    2011-10-04 09:57:35 UTC (rev 17161)
+++ gnunet/ChangeLog    2011-10-04 11:09:39 UTC (rev 17162)
@@ -1,3 +1,4 @@
+Mon Sep 19 14:16:22 CEST 2011
        Releasing GNUnet 0.9.0pre3.  Instead of listing all that has
        changed, here is the short list of what is known NOT to work,
        in order of minor flaws to major issues, by module:

Modified: gnunet/configure.ac
===================================================================
--- gnunet/configure.ac 2011-10-04 09:57:35 UTC (rev 17161)
+++ gnunet/configure.ac 2011-10-04 11:09:39 UTC (rev 17162)
@@ -193,6 +193,16 @@
   AC_MSG_ERROR([GNUnet needs libgcrypt])
 fi
 
+extra_logging=GNUNET_NO
+AC_ARG_ENABLE([logging],
+   AS_HELP_STRING([--enable-logging@<:@=value@:>@],[Enable logging calls. 
Possible values: yes,no,verbose,veryverbose ('yes' is the default)]),
+   [AS_IF([test "x$enableval" = "xyes"], [],
+          [test "x$enableval" = "xno"], 
[AC_DEFINE([GNUNET_CULL_LOGGING],[],[Define to cull all logging calls])],
+          [test "x$enableval" = "xverbose"], [extra_logging=GNUNET_YES]
+          [test "x$enableval" = "xveryverbose"], 
[extra_logging=\(GNUNET_YES+1\)])
+   ], [])
+AC_DEFINE_UNQUOTED([GNUNET_EXTRA_LOGGING],[$extra_logging],[1 if extra logging 
is enabled, 2 for very verbose extra logging, 0 otherwise])
+
 if test $build = $target
 then
 AC_MSG_CHECKING([for working HMAC])

Modified: gnunet/po/de.gmo
===================================================================
(Binary files differ)

Modified: gnunet/po/de.po
===================================================================
--- gnunet/po/de.po     2011-10-04 09:57:35 UTC (rev 17161)
+++ gnunet/po/de.po     2011-10-04 11:09:39 UTC (rev 17162)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: GNUnet 0.7.0b\n"
 "Report-Msgid-Bugs-To: address@hidden"
-"POT-Creation-Date: 2011-09-13 14:44+0200\n"
+"POT-Creation-Date: 2011-09-19 13:28+0200\n"
 "PO-Revision-Date: 2006-03-17 21:37+0100\n"
 "Last-Translator: Nils Durner <address@hidden>\n"
 "Language-Team: German <address@hidden>\n"
@@ -77,61 +77,65 @@
 msgid "Failed to start %s\n"
 msgstr "Fehler beim Starten der Collection.\n"
 
-#: src/nat/nat.c:1096 src/nat/nat.c:1113
+#: src/nat/nat.c:1096
 #, fuzzy, c-format
 msgid "Malformed %s `%s' given in configuration!\n"
 msgstr "Fehler beim Speichern der Konfiguration!"
 
-#: src/nat/nat.c:1167 src/nat/nat.c:1177
+#: src/nat/nat.c:1158 src/nat/nat.c:1168
 #, c-format
 msgid ""
 "Configuration requires `%s', but binary is not installed properly (SUID bit "
 "not set).  Option disabled.\n"
 msgstr ""
 
-#: src/nat/nat.c:1309
+#: src/nat/nat.c:1300
 msgid "Internal IP address not known, cannot use ICMP NAT traversal method\n"
 msgstr ""
 
-#: src/nat/nat.c:1321
+#: src/nat/nat.c:1312
 #, c-format
 msgid "Running gnunet-helper-nat-client %s %s %u\n"
 msgstr ""
 
-#: src/nat/gnunet-nat-server.c:290
+#: src/nat/gnunet-nat-server.c:289
 #, c-format
 msgid "Please pass valid port number as the first argument! (got `%s')\n"
 msgstr ""
 
-#: src/nat/gnunet-nat-server.c:329
+#: src/nat/gnunet-nat-server.c:328
 msgid "GNUnet NAT traversal test helper daemon"
 msgstr ""
 
-#: src/nat/nat_test.c:348
+#: src/nat/nat_test.c:349
 #, fuzzy
 msgid "Failed to connect to `gnunet-nat-server'\n"
 msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
 
-#: src/nat/nat_test.c:418
+#: src/nat/nat_test.c:419
 #, c-format
 msgid "Failed to create listen socket bound to `%s' for NAT test: %s\n"
 msgstr ""
 
-#: src/vpn/gnunet-daemon-vpn.c:1275 src/vpn/gnunet-daemon-exit.c:1455
-#: src/template/gnunet-template.c:68 src/core/test_core_api_send_to_self.c:217
+#: src/vpn/gnunet-daemon-vpn.c:1279 src/template/gnunet-template.c:68
+#: src/core/test_core_api_send_to_self.c:217
 #, fuzzy
 msgid "help text"
 msgstr "Hilfetext für -t"
 
+#: src/vpn/gnunet-daemon-exit.c:1493
+msgid "Daemon to run to provide an IP exit node for the VPN"
+msgstr ""
+
 #: src/datacache/datacache.c:108 src/datacache/datacache.c:236
-#: src/datastore/gnunet-service-datastore.c:821
+#: src/datastore/gnunet-service-datastore.c:824
 #, fuzzy
 msgid "# bytes stored"
 msgstr "# bytes in der Datenbank"
 
 #: src/datacache/datacache.c:134 src/datacache/datacache.c:142
-#: src/datastore/gnunet-service-datastore.c:1292
-#: src/datastore/gnunet-service-datastore.c:1483
+#: src/datastore/gnunet-service-datastore.c:1295
+#: src/datastore/gnunet-service-datastore.c:1486
 #: src/datastore/test_plugin_datastore.c:192
 #: src/datastore/test_plugin_datastore.c:315
 #: src/datastore/perf_plugin_datastore.c:309
@@ -168,13 +172,13 @@
 #: src/datacache/plugin_datacache_sqlite.c:122
 #: src/datacache/plugin_datacache_sqlite.c:191
 #: src/datacache/plugin_datacache_sqlite.c:232
-#: src/datacache/plugin_datacache_sqlite.c:296
-#: src/datacache/plugin_datacache_sqlite.c:305
-#: src/datacache/plugin_datacache_sqlite.c:318
-#: src/datacache/plugin_datacache_sqlite.c:325
-#: src/datacache/plugin_datacache_sqlite.c:338
-#: src/datacache/plugin_datacache_sqlite.c:346
-#: src/datacache/plugin_datacache_sqlite.c:354
+#: src/datacache/plugin_datacache_sqlite.c:295
+#: src/datacache/plugin_datacache_sqlite.c:304
+#: src/datacache/plugin_datacache_sqlite.c:315
+#: src/datacache/plugin_datacache_sqlite.c:322
+#: src/datacache/plugin_datacache_sqlite.c:332
+#: src/datacache/plugin_datacache_sqlite.c:340
+#: src/datacache/plugin_datacache_sqlite.c:348
 #: src/datacache/plugin_datacache_mysql.c:103
 #: src/datacache/plugin_datacache_mysql.c:110
 #: src/datacache/plugin_datacache_mysql.c:517
@@ -194,12 +198,12 @@
 msgid "`%s' failed at %s:%d with error: %s\n"
 msgstr "`%s' schlug bei %s:%d mit dem Fehler %s fehl\n"
 
-#: src/datacache/plugin_datacache_sqlite.c:419
+#: src/datacache/plugin_datacache_sqlite.c:413
 msgid "Sqlite datacache running\n"
 msgstr ""
 
-#: src/datacache/plugin_datacache_sqlite.c:454
-#: src/datastore/plugin_datastore_sqlite.c:405
+#: src/datacache/plugin_datacache_sqlite.c:446
+#: src/datastore/plugin_datastore_sqlite.c:420
 msgid "Tried to close sqlite without finalizing all prepared statements.\n"
 msgstr ""
 
@@ -241,7 +245,7 @@
 #: src/testing/test_testing_topology_blacklist.c:448
 #: src/testing/testing_peergroup.c:876
 #: src/testing/test_testing_large_topology.c:1022
-#: src/dht/test_dht_multipeer.c:864 src/dht/gnunet-dht-driver.c:3907
+#: src/dht/test_dht_multipeer.c:864 src/dht/gnunet-dht-driver.c:3897
 #: src/dv/test_transport_api_dv.c:1132
 #, c-format
 msgid "Invalid value `%s' for option `%s' in section `%s': expected float\n"
@@ -321,23 +325,23 @@
 msgid "Finished copying all blacklist files!\n"
 msgstr ""
 
-#: src/testing/testing_group.c:3581 src/testing/testing_group.c:3720
+#: src/testing/testing_group.c:3580 src/testing/testing_group.c:3717
 #: src/testing/testing_group.c:4925 src/testing/testing_group.c:5066
 msgid "Delaying connect, we have too many outstanding connections!\n"
 msgstr ""
 
-#: src/testing/testing_group.c:3591 src/testing/testing_group.c:4935
+#: src/testing/testing_group.c:3590 src/testing/testing_group.c:4935
 #: src/testing/testing_group.c:5076
 #, c-format
 msgid "Creating connection, outstanding_connections is %d\n"
 msgstr ""
 
-#: src/testing/testing_group.c:3603
+#: src/testing/testing_group.c:3602
 #, fuzzy, c-format
 msgid "Offering Hello of peer %s to peer %s\n"
 msgstr "Verbindung zu %u.%u.%u.%u:%u fehlgeschlagen: %s\n"
 
-#: src/testing/testing_group.c:3730
+#: src/testing/testing_group.c:3728
 #, c-format
 msgid "Creating connection, outstanding_connections is %d (max %d)\n"
 msgstr ""
@@ -513,150 +517,150 @@
 msgid "Could not create configuration for peer number %u on `%s'!\n"
 msgstr ""
 
-#: src/testing/testing_group.c:6298 src/testing/testing.c:1272
+#: src/testing/testing_group.c:6298 src/testing/testing.c:1273
 #, c-format
 msgid "Could not start `%s' process to copy configuration directory.\n"
 msgstr ""
 
-#: src/testing/testing.c:208
+#: src/testing/testing.c:209
 msgid "`scp' does not seem to terminate (timeout copying config).\n"
 msgstr ""
 
-#: src/testing/testing.c:222 src/testing/testing.c:822
+#: src/testing/testing.c:223 src/testing/testing.c:823
 #, fuzzy
 msgid "`scp' did not complete cleanly.\n"
 msgstr "`%s' ist zu keinem Knoten verbunden.\n"
 
-#: src/testing/testing.c:245
+#: src/testing/testing.c:246
 msgid "Failed to create pipe for `gnunet-peerinfo' process.\n"
 msgstr ""
 
-#: src/testing/testing.c:246
+#: src/testing/testing.c:247
 #, fuzzy
 msgid "Failed to create pipe for `ssh' process.\n"
 msgstr "Dateiformat fehlerhaft (kein GNUnet Verzeichnis?)\n"
 
-#: src/testing/testing.c:302
+#: src/testing/testing.c:303
 #, c-format
 msgid "Could not start `%s' process to create hostkey.\n"
 msgstr ""
 
-#: src/testing/testing.c:309
+#: src/testing/testing.c:310
 #, fuzzy
 msgid "Failed to start `gnunet-peerinfo' process.\n"
 msgstr "Fehler beim Starten der Collection.\n"
 
-#: src/testing/testing.c:310 src/testing/testing.c:508
+#: src/testing/testing.c:311 src/testing/testing.c:509
 #, fuzzy
 msgid "Failed to start `ssh' process.\n"
 msgstr "Fehler beim Starten der Collection.\n"
 
-#: src/testing/testing.c:372
+#: src/testing/testing.c:373
 #, fuzzy, c-format
 msgid "Error reading from gnunet-peerinfo: %s\n"
 msgstr "Fehler beim Lesen von Informationen von gnunetd.\n"
 
-#: src/testing/testing.c:376
+#: src/testing/testing.c:377
 msgid "Malformed output from gnunet-peerinfo!\n"
 msgstr ""
 
-#: src/testing/testing.c:386
+#: src/testing/testing.c:387
 #, fuzzy
 msgid "`Failed to get hostkey!\n"
 msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n"
 
-#: src/testing/testing.c:420
+#: src/testing/testing.c:421
 msgid "`Failed while waiting for topology setup!\n"
 msgstr ""
 
-#: src/testing/testing.c:500
+#: src/testing/testing.c:501
 #, c-format
 msgid "Could not start `%s' process to start GNUnet.\n"
 msgstr ""
 
-#: src/testing/testing.c:507
+#: src/testing/testing.c:508
 #, fuzzy
 msgid "Failed to start `gnunet-arm' process.\n"
 msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
 
-#: src/testing/testing.c:531 src/testing/testing.c:630
+#: src/testing/testing.c:532 src/testing/testing.c:631
 msgid "`gnunet-arm' does not seem to terminate.\n"
 msgstr ""
 
-#: src/testing/testing.c:532 src/testing/testing.c:631
-#: src/testing/testing.c:651
+#: src/testing/testing.c:533 src/testing/testing.c:632
+#: src/testing/testing.c:652
 msgid "`ssh' does not seem to terminate.\n"
 msgstr ""
 
-#: src/testing/testing.c:571 src/testing/testing.c:2072
-#: src/testing/testing.c:2091
+#: src/testing/testing.c:572 src/testing/testing.c:2074
+#: src/testing/testing.c:2093
 #, fuzzy
 msgid "Failed to connect to transport service!\n"
 msgstr "Der Transportdienst auf Port %d konnte nicht gestartet werden.\n"
 
-#: src/testing/testing.c:600
+#: src/testing/testing.c:601
 msgid "Unable to get HELLO for peer!\n"
 msgstr ""
 
-#: src/testing/testing.c:650
+#: src/testing/testing.c:651
 msgid "`gnunet-arm' terminated with non-zero exit status (or timed out)!\n"
 msgstr ""
 
-#: src/testing/testing.c:673 src/testing/testing.c:707
+#: src/testing/testing.c:674 src/testing/testing.c:708
 msgid "either `gnunet-arm' or `ssh' does not seem to terminate.\n"
 msgstr ""
 
-#: src/testing/testing.c:688 src/testing/testing.c:737
+#: src/testing/testing.c:689 src/testing/testing.c:738
 msgid "shutdown (either `gnunet-arm' or `ssh') did not complete cleanly.\n"
 msgstr ""
 
-#: src/testing/testing.c:810
+#: src/testing/testing.c:811
 msgid "`scp' does not seem to terminate.\n"
 msgstr ""
 
-#: src/testing/testing.c:988
+#: src/testing/testing.c:989
 #, fuzzy, c-format
 msgid "Starting service %s for peer `%4s'\n"
 msgstr "Collection `%s' begonnen.\n"
 
-#: src/testing/testing.c:1360 src/testing/testing.c:1443
-#: src/testing/testing.c:1581
+#: src/testing/testing.c:1361 src/testing/testing.c:1444
+#: src/testing/testing.c:1582
 #, fuzzy, c-format
 msgid "Terminating peer `%4s'\n"
 msgstr "Zugriff verweigert für `%s' bei %s:%d.\n"
 
-#: src/testing/testing.c:1533
+#: src/testing/testing.c:1534
 #, fuzzy, c-format
 msgid "Setting d->dead on peer `%4s'\n"
 msgstr "Collection `%s' begonnen.\n"
 
-#: src/testing/testing.c:1668
+#: src/testing/testing.c:1669
 msgid "Peer not yet running, can not change configuration at this point."
 msgstr ""
 
-#: src/testing/testing.c:1676
+#: src/testing/testing.c:1677
 #, fuzzy
 msgid "Failed to write new configuration to disk."
 msgstr "Fehler beim Speichern der Konfiguration!"
 
-#: src/testing/testing.c:1707
+#: src/testing/testing.c:1708
 #, fuzzy, c-format
 msgid "Could not start `%s' process to copy configuration file.\n"
 msgstr ""
 "IP(v4) dieses Hosts konnte nicht ermittelt werden. Bitte geben Sie die IP in "
 "der Konfigurationsdatei an.\n"
 
-#: src/testing/testing.c:1710
+#: src/testing/testing.c:1711
 #, fuzzy
 msgid "Failed to copy new configuration to remote machine."
 msgstr "Fehler beim Speichern der Konfiguration!"
 
-#: src/testing/testing.c:1881
+#: src/testing/testing.c:1883
 #, fuzzy
 msgid "Peers failed to connect"
 msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden."
 
-#: src/testing/testing.c:2036
+#: src/testing/testing.c:2038
 #, fuzzy
 msgid "Failed to connect to core service of first peer!\n"
 msgstr "Der Transportdienst auf Port %d konnte nicht gestartet werden.\n"
@@ -850,7 +854,7 @@
 msgstr ""
 
 #: src/hostlist/hostlist-server.c:556
-#: src/transport/gnunet-service-transport.c:458
+#: src/transport/gnunet-service-transport.c:462
 #: src/peerinfo-tool/gnunet-peerinfo.c:208 src/core/gnunet-service-core.c:4607
 #, fuzzy, c-format
 msgid "Could not access PEERINFO service.  Exiting.\n"
@@ -1075,8 +1079,8 @@
 
 #: src/topology/gnunet-daemon-topology.c:676
 #: src/topology/gnunet-daemon-topology.c:778
-#: src/transport/gnunet-service-transport_neighbours.c:432
-#: src/transport/gnunet-service-transport_neighbours.c:627
+#: src/transport/gnunet-service-transport_neighbours.c:465
+#: src/transport/gnunet-service-transport_neighbours.c:662
 #, fuzzy
 msgid "# peers connected"
 msgstr "# verbundener Knoten"
@@ -1337,24 +1341,29 @@
 "Failed to establish TCP connection to `%s:%u', no further addresses to try.\n"
 msgstr "Fehler beim Aufbauen einer Verbindung mit gnunetd.\n"
 
-#: src/util/connection.c:852 src/util/connection.c:1023
+#: src/util/connection.c:852 src/util/connection.c:1028
 #, fuzzy, c-format
 msgid "Trying to connect to `%s' (%p)\n"
 msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
 
-#: src/util/connection.c:1013
+#: src/util/connection.c:863
 #, fuzzy, c-format
+msgid "Failed to connect to `%s' (%p)\n"
+msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
+
+#: src/util/connection.c:1018
+#, fuzzy, c-format
 msgid "Attempt to connect to `%s' failed\n"
 msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
 
-#: src/util/connection.c:1529
+#: src/util/connection.c:1534
 #, c-format
 msgid ""
 "Could not satisfy pending transmission request, socket closed or connect "
 "failed (%p).\n"
 msgstr ""
 
-#: src/util/connection.c:1565
+#: src/util/connection.c:1570
 #, fuzzy, c-format
 msgid "Failed to send to `%s': %s\n"
 msgstr "Datei wurde als `%s' gespeichert.\n"
@@ -1468,7 +1477,7 @@
 "GNUNET_SERVER_receive_done after %llums\n"
 msgstr ""
 
-#: src/util/network.c:1193
+#: src/util/network.c:1194
 #, c-format
 msgid ""
 "Fatal internal logic error, process hangs in `%s' (abort with CTRL-C)!\n"
@@ -1760,7 +1769,7 @@
 "Parameter, die für lange Optionen zwingend sind, sind auch für kurze "
 "Optionen zwingend.\n"
 
-#: src/util/getopt_helpers.c:254 src/util/getopt_helpers.c:282
+#: src/util/getopt_helpers.c:253 src/util/getopt_helpers.c:281
 #, c-format
 msgid "You must pass a number to the `%s' option.\n"
 msgstr "Sie müssen für die Option `%s' zusätzlich eine Zahl angeben.\n"
@@ -2161,7 +2170,7 @@
 
 #: src/fs/gnunet-download.c:263 src/fs/gnunet-unindex.c:169
 #: src/fs/gnunet-search.c:297 src/fs/gnunet-publish.c:585
-#: src/mesh/test_mesh_small.c:674 src/dht/gnunet-dht-get-peer.c:190
+#: src/mesh/test_mesh_small.c:676 src/dht/gnunet-dht-get-peer.c:190
 #: src/dht/gnunet-dht-put.c:176 src/dht/gnunet-dht-get.c:204
 #: src/nse/gnunet-nse-profiler.c:655
 msgid "be verbose (print progress information)"
@@ -2633,81 +2642,81 @@
 msgid "MAGIC mismatch.  This is not a GNUnet directory.\n"
 msgstr "Dateiformat fehlerhaft (kein GNUnet Verzeichnis?)\n"
 
-#: src/fs/gnunet-service-fs_cp.c:693
+#: src/fs/gnunet-service-fs_cp.c:694
 #, c-format
 msgid "Migration of content to peer `%s' blocked for %llu ms\n"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:728
+#: src/fs/gnunet-service-fs_cp.c:729
 #, fuzzy
 msgid "# replies transmitted to other peers"
 msgstr "# Bytes des Typs %d übertragen"
 
-#: src/fs/gnunet-service-fs_cp.c:734
+#: src/fs/gnunet-service-fs_cp.c:735
 msgid "# replies dropped"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:763 src/fs/gnunet-service-fs_cp.c:879
-#: src/fs/gnunet-service-fs_cp.c:1289 src/fs/gnunet-service-fs_cp.c:1326
+#: src/fs/gnunet-service-fs_cp.c:764 src/fs/gnunet-service-fs_cp.c:880
+#: src/fs/gnunet-service-fs_cp.c:1290 src/fs/gnunet-service-fs_cp.c:1327
 msgid "# P2P searches active"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:836
+#: src/fs/gnunet-service-fs_cp.c:837
 msgid "# artificial delays introduced (ms)"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:899
+#: src/fs/gnunet-service-fs_cp.c:900
 #, fuzzy
 msgid "# replies received for other peers"
 msgstr "# Bytes des Typs %d empfangen"
 
-#: src/fs/gnunet-service-fs_cp.c:913
+#: src/fs/gnunet-service-fs_cp.c:914
 msgid "# replies dropped due to insufficient cover traffic"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:951
+#: src/fs/gnunet-service-fs_cp.c:952
 msgid "# P2P searches destroyed due to ultimate reply"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1018
+#: src/fs/gnunet-service-fs_cp.c:1019
 #, fuzzy
 msgid "# requests done for free (low load)"
 msgstr "# gap Anfragen verworfen: Kollision in RT"
 
-#: src/fs/gnunet-service-fs_cp.c:1042
+#: src/fs/gnunet-service-fs_cp.c:1043
 msgid "# request dropped, priority insufficient"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1052
+#: src/fs/gnunet-service-fs_cp.c:1053
 #, fuzzy
 msgid "# requests done for a price (normal load)"
 msgstr "# gap Anfragen verworfen: Kollision in RT"
 
-#: src/fs/gnunet-service-fs_cp.c:1131
+#: src/fs/gnunet-service-fs_cp.c:1132
 msgid "# GET requests received (from other peers)"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1165
+#: src/fs/gnunet-service-fs_cp.c:1166
 #, fuzzy
 msgid "# requests dropped due to initiator not being connected"
 msgstr "# gap Anfragen verworfen: Kollision in RT"
 
-#: src/fs/gnunet-service-fs_cp.c:1189
+#: src/fs/gnunet-service-fs_cp.c:1190
 #, fuzzy
 msgid "# requests dropped due to missing reverse route"
 msgstr "# gap Anfragen verworfen: Kollision in RT"
 
-#: src/fs/gnunet-service-fs_cp.c:1255
+#: src/fs/gnunet-service-fs_cp.c:1256
 #, fuzzy
 msgid "# requests dropped due TTL underflow"
 msgstr "# gap Anfragen verworfen: Kollision in RT"
 
-#: src/fs/gnunet-service-fs_cp.c:1283
+#: src/fs/gnunet-service-fs_cp.c:1284
 #, fuzzy
 msgid "# requests dropped due to higher-TTL request"
 msgstr "# gap Anfragen verworfen: Kollision in RT"
 
-#: src/fs/gnunet-service-fs_cp.c:1324
+#: src/fs/gnunet-service-fs_cp.c:1325
 #, fuzzy
 msgid "# P2P query messages received and processed"
 msgstr "# verschlüsselter PING Nachrichten empfangen"
@@ -3034,20 +3043,20 @@
 msgid "Failed to load block plugin `%s'\n"
 msgstr "Anwendung `%s' konnte nicht initialisiert werden.\n"
 
-#: src/mesh/test_mesh_small.c:687
+#: src/mesh/test_mesh_small.c:689
 msgid "Test mesh in a small network."
 msgstr ""
 
-#: src/arm/mockup-service.c:41 src/arm/gnunet-service-arm.c:859
+#: src/arm/mockup-service.c:41 src/arm/gnunet-service-arm.c:865
 #, fuzzy
 msgid "Failed to transmit shutdown ACK.\n"
 msgstr "Fehler beim Starten der Collection.\n"
 
-#: src/arm/mockup-service.c:46 src/arm/gnunet-service-arm.c:864
+#: src/arm/mockup-service.c:46 src/arm/gnunet-service-arm.c:870
 msgid "Transmitting shutdown ACK.\n"
 msgstr ""
 
-#: src/arm/mockup-service.c:69 src/arm/gnunet-service-arm.c:892
+#: src/arm/mockup-service.c:69 src/arm/gnunet-service-arm.c:898
 msgid "Initiating shutdown as requested by client.\n"
 msgstr ""
 
@@ -3102,34 +3111,34 @@
 msgid "Preparing to stop `%s'\n"
 msgstr "Collection `%s' begonnen.\n"
 
-#: src/arm/gnunet-service-arm.c:665
+#: src/arm/gnunet-service-arm.c:666
 msgid "Stopping all services\n"
 msgstr ""
 
-#: src/arm/gnunet-service-arm.c:717
+#: src/arm/gnunet-service-arm.c:723
 #, fuzzy, c-format
 msgid "Restarting service `%s'.\n"
 msgstr "Collection `%s' begonnen.\n"
 
-#: src/arm/gnunet-service-arm.c:790
+#: src/arm/gnunet-service-arm.c:796
 msgid "exit"
 msgstr ""
 
-#: src/arm/gnunet-service-arm.c:795
+#: src/arm/gnunet-service-arm.c:801
 msgid "signal"
 msgstr ""
 
-#: src/arm/gnunet-service-arm.c:800
+#: src/arm/gnunet-service-arm.c:806
 #, fuzzy
 msgid "unknown"
 msgstr "Unbekannter Fehler"
 
-#: src/arm/gnunet-service-arm.c:807
+#: src/arm/gnunet-service-arm.c:813
 #, fuzzy, c-format
 msgid "Service `%s' stopped\n"
 msgstr "Dienst gelöscht.\n"
 
-#: src/arm/gnunet-service-arm.c:821
+#: src/arm/gnunet-service-arm.c:827
 #, c-format
 msgid "Service `%s' terminated with status %s/%d, will try to restart it!\n"
 msgstr ""
@@ -3439,7 +3448,7 @@
 #: src/transport/test_plugin_transport_udp.c:185
 #: src/transport/test_plugin_transport_https.c:1271
 #: src/transport/test_plugin_transport.c:202
-#: src/transport/gnunet-service-transport.c:435
+#: src/transport/gnunet-service-transport.c:439
 #: src/transport/test_plugin_transport_http.c:1232
 msgid "Transport service is lacking key configuration settings.  Exiting.\n"
 msgstr ""
@@ -3447,7 +3456,7 @@
 #: src/transport/test_plugin_transport_udp.c:195
 #: src/transport/test_plugin_transport_https.c:1335
 #: src/transport/test_plugin_transport.c:212
-#: src/transport/gnunet-service-transport.c:444
+#: src/transport/gnunet-service-transport.c:448
 #: src/transport/test_plugin_transport_http.c:1255
 msgid "Transport service could not access hostkey.  Exiting.\n"
 msgstr ""
@@ -3462,19 +3471,19 @@
 msgid "Failed to load transport plugin for udp\n"
 msgstr "Anwendung `%s' konnte nicht initialisiert werden.\n"
 
-#: src/transport/plugin_transport_wlan.c:1422
-#: src/transport/plugin_transport_wlan.c:1617
-#: src/transport/plugin_transport_wlan.c:1736
+#: src/transport/plugin_transport_wlan.c:1436
+#: src/transport/plugin_transport_wlan.c:1631
+#: src/transport/plugin_transport_wlan.c:1750
 #, c-format
 msgid "Error writing to wlan healper. errno == %d, ERROR: %s\n"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:1854
+#: src/transport/plugin_transport_wlan.c:1868
 #, c-format
 msgid "Wlan Address len %d is wrong\n"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:2710
+#: src/transport/plugin_transport_wlan.c:2728
 #, c-format
 msgid "Finished reading from wlan-helper stdout with code: %d\n"
 msgstr ""
@@ -3513,35 +3522,35 @@
 msgid "# SET QUOTA messages received"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
 
-#: src/transport/gnunet-service-transport_neighbours.c:776
+#: src/transport/gnunet-service-transport_neighbours.c:811
 #, fuzzy
 msgid "# messages not sent (no such peer or not connected)"
 msgstr "# defragmentierter Nachrichten"
 
-#: src/transport/gnunet-service-transport_neighbours.c:796
+#: src/transport/gnunet-service-transport_neighbours.c:831
 #, fuzzy
 msgid "# bytes in message queue for other peers"
 msgstr "# Bytes ausgehender Nachrichten verworfen"
 
-#: src/transport/gnunet-service-transport_neighbours.c:864
+#: src/transport/gnunet-service-transport_neighbours.c:899
 #, fuzzy
 msgid "# bandwidth quota violations by other peers"
 msgstr "Verfolgt die Bandbreitennutzung von gnunetd"
 
-#: src/transport/gnunet-service-transport_neighbours.c:882
+#: src/transport/gnunet-service-transport_neighbours.c:917
 msgid "# ms throttling suggested"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:907
+#: src/transport/gnunet-service-transport_neighbours.c:942
 #, fuzzy
 msgid "# KEEPALIVE messages discarded (not connected)"
 msgstr "# defragmentierter Nachrichten"
 
-#: src/transport/gnunet-service-transport_neighbours.c:937
+#: src/transport/gnunet-service-transport_neighbours.c:972
 msgid "# SET QUOTA messages ignored (no such peer)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:949
+#: src/transport/gnunet-service-transport_neighbours.c:984
 msgid "# disconnects due to quota of 0"
 msgstr ""
 
@@ -3664,7 +3673,7 @@
 msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
 
 #: src/transport/test_plugin_transport_https.c:1284
-#: src/transport/plugin_transport_http.c:3321
+#: src/transport/plugin_transport_http.c:3323
 #: src/transport/test_plugin_transport_http.c:1245
 #, c-format
 msgid "Require valid port number for transport plugin `%s' in configuration!\n"
@@ -3700,6 +3709,11 @@
 "\n"
 msgstr ""
 
+#: src/transport/test_transport_api.c:120
+#, fuzzy
+msgid "Fail! Could not connect peers\n"
+msgstr "`%s': Verbindung konnte nicht hergestellt werden.\n"
+
 #: src/transport/gnunet-transport-list-connections.c:91
 #: src/peerinfo-tool/gnunet-peerinfo.c:200
 #: src/core/gnunet-core-list-connections.c:166
@@ -3765,36 +3779,36 @@
 msgid "# HTTP outbound sessions for peers active"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3349
-#: src/transport/plugin_transport_http.c:3378
+#: src/transport/plugin_transport_http.c:3351
+#: src/transport/plugin_transport_http.c:3380
 #, fuzzy
 msgid "Misconfigured address to bind to in configuration!\n"
 msgstr "In der Konfigurationsdatei wurden keine Anwendungen definiert!\n"
 
-#: src/transport/plugin_transport_http.c:3404
+#: src/transport/plugin_transport_http.c:3406
 #, fuzzy, c-format
 msgid "Required configuration options missing in section `%s'\n"
 msgstr ""
 "Es muss eine Liste von Freunden in der Konfigurationsdatei unter `%s' in der "
 "Sektion `%s' angegeben werden.\n"
 
-#: src/transport/plugin_transport_http.c:3442
+#: src/transport/plugin_transport_http.c:3444
 msgid ""
 "Could not create a new TLS certificate, program `gnunet-transport-"
 "certificate-creation' could not be started!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3458
+#: src/transport/plugin_transport_http.c:3460
 msgid "No usable TLS certificate found and creating one failed!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3610
+#: src/transport/plugin_transport_http.c:3612
 #, c-format
 msgid ""
 "HTTP Server with %s could not be started on port %u! %s plugin failed!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3626
+#: src/transport/plugin_transport_http.c:3628
 #, c-format
 msgid "Could not initialize curl multi handle, failed to start %s plugin!\n"
 msgstr ""
@@ -3899,58 +3913,58 @@
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:520
+#: src/transport/gnunet-service-transport_validation.c:518
 msgid "# address records discarded"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:606
+#: src/transport/gnunet-service-transport_validation.c:604
 #: src/core/gnunet-service-core.c:4187
 #, fuzzy
 msgid "# PING messages received"
 msgstr "# PING Nachrichten erstellt"
 
-#: src/transport/gnunet-service-transport_validation.c:628
+#: src/transport/gnunet-service-transport_validation.c:626
 #, c-format
 msgid ""
 "Not confirming PING with address `%s' since I cannot confirm having this "
 "address.\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:685
+#: src/transport/gnunet-service-transport_validation.c:683
 msgid "# PONGs unicast via reliable transport"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:694
+#: src/transport/gnunet-service-transport_validation.c:692
 msgid "# PONGs multicast to all available addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:758
+#: src/transport/gnunet-service-transport_validation.c:756
 #, c-format
 msgid ""
 "Not transmitting `%s' with `%s', message too big (%u bytes!). This should "
 "not happen.\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:792
+#: src/transport/gnunet-service-transport_validation.c:790
 #, fuzzy
 msgid "# PING without HELLO messages sent"
 msgstr "# Klartext PING Nachrichten gesendet"
 
-#: src/transport/gnunet-service-transport_validation.c:864
+#: src/transport/gnunet-service-transport_validation.c:862
 msgid "# address revalidations started"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:923
+#: src/transport/gnunet-service-transport_validation.c:921
 #: src/core/gnunet-service-core.c:4210
 #, fuzzy
 msgid "# PONG messages received"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
 
-#: src/transport/gnunet-service-transport_validation.c:945
+#: src/transport/gnunet-service-transport_validation.c:943
 msgid "# PONGs dropped, no matching pending validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:961
+#: src/transport/gnunet-service-transport_validation.c:959
 msgid "# PONGs dropped, signature expired"
 msgstr ""
 
@@ -4020,17 +4034,17 @@
 "\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:1279
+#: src/transport/plugin_transport_udp.c:1280
 #, c-format
 msgid "Given `%s' option is out of range: %llu > %u\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:1329
+#: src/transport/plugin_transport_udp.c:1330
 #, fuzzy, c-format
 msgid "Invalid IPv6 address: `%s'\n"
 msgstr "Ungültiger Parameter: `%s'\n"
 
-#: src/transport/plugin_transport_udp.c:1455
+#: src/transport/plugin_transport_udp.c:1456
 #, fuzzy
 msgid "Failed to open UDP sockets\n"
 msgstr "Fehler beim Binden an UDP6 Port %d.\n"
@@ -4401,23 +4415,23 @@
 msgid "Unable to initialize SQLite: %s.\n"
 msgstr "SQLite Datenbank konnte nicht initialisiert werden: %s.\n"
 
-#: src/datastore/plugin_datastore_sqlite.c:662
+#: src/datastore/plugin_datastore_sqlite.c:677
 #, fuzzy
 msgid "Invalid data in database.  Trying to fix (by deletion).\n"
 msgstr "Ungültige Daten in %s. Korrektur wird versucht (durch Löschung).\n"
 
-#: src/datastore/plugin_datastore_sqlite.c:1115
+#: src/datastore/plugin_datastore_sqlite.c:1130
 msgid "sqlite version to old to determine size, assuming zero\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_sqlite.c:1134
+#: src/datastore/plugin_datastore_sqlite.c:1149
 #, c-format
 msgid ""
 "Using sqlite page utilization to estimate payload (%llu pages of size %llu "
 "bytes)\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_sqlite.c:1173
+#: src/datastore/plugin_datastore_sqlite.c:1188
 #, fuzzy
 msgid "Sqlite database running\n"
 msgstr "sqlite Datenspeicher"
@@ -4470,8 +4484,8 @@
 
 #: src/datastore/gnunet-service-datastore.c:681
 #: src/datastore/gnunet-service-datastore.c:735
-#: src/datastore/gnunet-service-datastore.c:953
-#: src/datastore/gnunet-service-datastore.c:1438
+#: src/datastore/gnunet-service-datastore.c:956
+#: src/datastore/gnunet-service-datastore.c:1441
 msgid "# reserved"
 msgstr ""
 
@@ -4479,80 +4493,80 @@
 msgid "Could not find matching reservation"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:835
+#: src/datastore/gnunet-service-datastore.c:838
 #, c-format
 msgid "Need %llu bytes more space (%llu allowed, using %llu)\n"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1001
+#: src/datastore/gnunet-service-datastore.c:1004
 #, fuzzy
 msgid "# GET requests received"
 msgstr "# Client Trace-Anfragen empfangen"
 
-#: src/datastore/gnunet-service-datastore.c:1015
+#: src/datastore/gnunet-service-datastore.c:1018
 msgid "# requests filtered by bloomfilter"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1043
+#: src/datastore/gnunet-service-datastore.c:1046
 #, fuzzy
 msgid "# UPDATE requests received"
 msgstr "# Client Trace-Anfragen empfangen"
 
-#: src/datastore/gnunet-service-datastore.c:1077
+#: src/datastore/gnunet-service-datastore.c:1080
 #, fuzzy
 msgid "# GET REPLICATION requests received"
 msgstr "# Client Trace-Anfragen empfangen"
 
-#: src/datastore/gnunet-service-datastore.c:1112
+#: src/datastore/gnunet-service-datastore.c:1115
 #, fuzzy
 msgid "# GET ZERO ANONYMITY requests received"
 msgstr "# Client Trace-Anfragen empfangen"
 
-#: src/datastore/gnunet-service-datastore.c:1139
+#: src/datastore/gnunet-service-datastore.c:1142
 #, fuzzy
 msgid "Content not found"
 msgstr "Kommando `%s' wurde nicht gefunden!\n"
 
-#: src/datastore/gnunet-service-datastore.c:1149
+#: src/datastore/gnunet-service-datastore.c:1152
 msgid "# bytes removed (explicit request)"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1183
+#: src/datastore/gnunet-service-datastore.c:1186
 #, fuzzy
 msgid "# REMOVE requests received"
 msgstr "# Client Trace-Anfragen empfangen"
 
-#: src/datastore/gnunet-service-datastore.c:1227
+#: src/datastore/gnunet-service-datastore.c:1230
 #, c-format
 msgid "Datastore payload inaccurate (%lld < %lld).  Trying to fix.\n"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1300
+#: src/datastore/gnunet-service-datastore.c:1303
 #: src/datastore/test_plugin_datastore.c:322
 #: src/datastore/perf_plugin_datastore.c:420
 #, c-format
 msgid "Loading `%s' datastore plugin\n"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1309
+#: src/datastore/gnunet-service-datastore.c:1312
 #, fuzzy, c-format
 msgid "Failed to load datastore plugin for `%s'\n"
 msgstr "Anwendung `%s' konnte nicht initialisiert werden.\n"
 
-#: src/datastore/gnunet-service-datastore.c:1488
+#: src/datastore/gnunet-service-datastore.c:1491
 msgid "# quota"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1490
+#: src/datastore/gnunet-service-datastore.c:1493
 msgid "# cache size"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1500
+#: src/datastore/gnunet-service-datastore.c:1503
 #, c-format
 msgid "Could not use specified filename `%s' for bloomfilter.\n"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1513
+#: src/datastore/gnunet-service-datastore.c:1516
 #, fuzzy
 msgid "Failed to initialize bloomfilter.\n"
 msgstr "SQLite Datenbank konnte nicht initialisiert werden.\n"
@@ -4710,22 +4724,22 @@
 msgid "Failed to connect to the dv service!\n"
 msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
 
-#: src/nse/gnunet-service-nse.c:864
+#: src/nse/gnunet-service-nse.c:866
 #, c-format
 msgid "Proof of work invalid: %llu!\n"
 msgstr ""
 
-#: src/nse/gnunet-service-nse.c:1286 src/nse/gnunet-service-nse.c:1305
-#: src/nse/gnunet-service-nse.c:1326
+#: src/nse/gnunet-service-nse.c:1288 src/nse/gnunet-service-nse.c:1307
+#: src/nse/gnunet-service-nse.c:1328
 msgid "NSE service is lacking key configuration settings.  Exiting.\n"
 msgstr ""
 
-#: src/nse/gnunet-service-nse.c:1293
+#: src/nse/gnunet-service-nse.c:1295
 #, fuzzy
 msgid "Invalid work requirement for NSE service. Exiting.\n"
 msgstr "Ungültige Parameter. Abbruch.\n"
 
-#: src/nse/gnunet-service-nse.c:1314
+#: src/nse/gnunet-service-nse.c:1316
 #, fuzzy
 msgid "NSE service could not access hostkey.  Exiting.\n"
 msgstr "Auf die Namespace Informationen konnte nicht zugegriffen werden.\n"
@@ -6554,9 +6568,6 @@
 #~ msgid "`%s': Could not create hello.\n"
 #~ msgstr "`%s': Hello konnte nicht erzeugt werden.\n"
 
-#~ msgid "`%s': Could not connect.\n"
-#~ msgstr "`%s': Verbindung konnte nicht hergestellt werden.\n"
-
 #~ msgid "`%s': Could not send.\n"
 #~ msgstr "`%s': Kann nicht senden.\n"
 

Modified: gnunet/po/es.gmo
===================================================================
(Binary files differ)

Modified: gnunet/po/es.po
===================================================================
--- gnunet/po/es.po     2011-10-04 09:57:35 UTC (rev 17161)
+++ gnunet/po/es.po     2011-10-04 11:09:39 UTC (rev 17162)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: GNUnet 0.7.0e\n"
 "Report-Msgid-Bugs-To: address@hidden"
-"POT-Creation-Date: 2011-09-13 14:44+0200\n"
+"POT-Creation-Date: 2011-09-19 13:28+0200\n"
 "PO-Revision-Date: 2006-06-29 12:05+0200\n"
 "Last-Translator: Miguel Angel Arruga <address@hidden>\n"
 "Language-Team: Spanish\n"
@@ -77,61 +77,65 @@
 msgid "Failed to start %s\n"
 msgstr "Falló al comenzar la recolección.\n"
 
-#: src/nat/nat.c:1096 src/nat/nat.c:1113
+#: src/nat/nat.c:1096
 #, fuzzy, c-format
 msgid "Malformed %s `%s' given in configuration!\n"
 msgstr "Imposible guardar la configuración"
 
-#: src/nat/nat.c:1167 src/nat/nat.c:1177
+#: src/nat/nat.c:1158 src/nat/nat.c:1168
 #, c-format
 msgid ""
 "Configuration requires `%s', but binary is not installed properly (SUID bit "
 "not set).  Option disabled.\n"
 msgstr ""
 
-#: src/nat/nat.c:1309
+#: src/nat/nat.c:1300
 msgid "Internal IP address not known, cannot use ICMP NAT traversal method\n"
 msgstr ""
 
-#: src/nat/nat.c:1321
+#: src/nat/nat.c:1312
 #, c-format
 msgid "Running gnunet-helper-nat-client %s %s %u\n"
 msgstr ""
 
-#: src/nat/gnunet-nat-server.c:290
+#: src/nat/gnunet-nat-server.c:289
 #, c-format
 msgid "Please pass valid port number as the first argument! (got `%s')\n"
 msgstr ""
 
-#: src/nat/gnunet-nat-server.c:329
+#: src/nat/gnunet-nat-server.c:328
 msgid "GNUnet NAT traversal test helper daemon"
 msgstr ""
 
-#: src/nat/nat_test.c:348
+#: src/nat/nat_test.c:349
 #, fuzzy
 msgid "Failed to connect to `gnunet-nat-server'\n"
 msgstr "Fallo al conectar a gnunetd.\n"
 
-#: src/nat/nat_test.c:418
+#: src/nat/nat_test.c:419
 #, c-format
 msgid "Failed to create listen socket bound to `%s' for NAT test: %s\n"
 msgstr ""
 
-#: src/vpn/gnunet-daemon-vpn.c:1275 src/vpn/gnunet-daemon-exit.c:1455
-#: src/template/gnunet-template.c:68 src/core/test_core_api_send_to_self.c:217
+#: src/vpn/gnunet-daemon-vpn.c:1279 src/template/gnunet-template.c:68
+#: src/core/test_core_api_send_to_self.c:217
 #, fuzzy
 msgid "help text"
 msgstr "texto de ayuda para -t"
 
+#: src/vpn/gnunet-daemon-exit.c:1493
+msgid "Daemon to run to provide an IP exit node for the VPN"
+msgstr ""
+
 #: src/datacache/datacache.c:108 src/datacache/datacache.c:236
-#: src/datastore/gnunet-service-datastore.c:821
+#: src/datastore/gnunet-service-datastore.c:824
 #, fuzzy
 msgid "# bytes stored"
 msgstr "# bytes en la base de datos"
 
 #: src/datacache/datacache.c:134 src/datacache/datacache.c:142
-#: src/datastore/gnunet-service-datastore.c:1292
-#: src/datastore/gnunet-service-datastore.c:1483
+#: src/datastore/gnunet-service-datastore.c:1295
+#: src/datastore/gnunet-service-datastore.c:1486
 #: src/datastore/test_plugin_datastore.c:192
 #: src/datastore/test_plugin_datastore.c:315
 #: src/datastore/perf_plugin_datastore.c:309
@@ -168,13 +172,13 @@
 #: src/datacache/plugin_datacache_sqlite.c:122
 #: src/datacache/plugin_datacache_sqlite.c:191
 #: src/datacache/plugin_datacache_sqlite.c:232
-#: src/datacache/plugin_datacache_sqlite.c:296
-#: src/datacache/plugin_datacache_sqlite.c:305
-#: src/datacache/plugin_datacache_sqlite.c:318
-#: src/datacache/plugin_datacache_sqlite.c:325
-#: src/datacache/plugin_datacache_sqlite.c:338
-#: src/datacache/plugin_datacache_sqlite.c:346
-#: src/datacache/plugin_datacache_sqlite.c:354
+#: src/datacache/plugin_datacache_sqlite.c:295
+#: src/datacache/plugin_datacache_sqlite.c:304
+#: src/datacache/plugin_datacache_sqlite.c:315
+#: src/datacache/plugin_datacache_sqlite.c:322
+#: src/datacache/plugin_datacache_sqlite.c:332
+#: src/datacache/plugin_datacache_sqlite.c:340
+#: src/datacache/plugin_datacache_sqlite.c:348
 #: src/datacache/plugin_datacache_mysql.c:103
 #: src/datacache/plugin_datacache_mysql.c:110
 #: src/datacache/plugin_datacache_mysql.c:517
@@ -194,12 +198,12 @@
 msgid "`%s' failed at %s:%d with error: %s\n"
 msgstr "'%s' falló en %s: %d con el error: %s\n"
 
-#: src/datacache/plugin_datacache_sqlite.c:419
+#: src/datacache/plugin_datacache_sqlite.c:413
 msgid "Sqlite datacache running\n"
 msgstr ""
 
-#: src/datacache/plugin_datacache_sqlite.c:454
-#: src/datastore/plugin_datastore_sqlite.c:405
+#: src/datacache/plugin_datacache_sqlite.c:446
+#: src/datastore/plugin_datastore_sqlite.c:420
 msgid "Tried to close sqlite without finalizing all prepared statements.\n"
 msgstr ""
 
@@ -241,7 +245,7 @@
 #: src/testing/test_testing_topology_blacklist.c:448
 #: src/testing/testing_peergroup.c:876
 #: src/testing/test_testing_large_topology.c:1022
-#: src/dht/test_dht_multipeer.c:864 src/dht/gnunet-dht-driver.c:3907
+#: src/dht/test_dht_multipeer.c:864 src/dht/gnunet-dht-driver.c:3897
 #: src/dv/test_transport_api_dv.c:1132
 #, c-format
 msgid "Invalid value `%s' for option `%s' in section `%s': expected float\n"
@@ -319,23 +323,23 @@
 msgid "Finished copying all blacklist files!\n"
 msgstr ""
 
-#: src/testing/testing_group.c:3581 src/testing/testing_group.c:3720
+#: src/testing/testing_group.c:3580 src/testing/testing_group.c:3717
 #: src/testing/testing_group.c:4925 src/testing/testing_group.c:5066
 msgid "Delaying connect, we have too many outstanding connections!\n"
 msgstr ""
 
-#: src/testing/testing_group.c:3591 src/testing/testing_group.c:4935
+#: src/testing/testing_group.c:3590 src/testing/testing_group.c:4935
 #: src/testing/testing_group.c:5076
 #, c-format
 msgid "Creating connection, outstanding_connections is %d\n"
 msgstr ""
 
-#: src/testing/testing_group.c:3603
+#: src/testing/testing_group.c:3602
 #, fuzzy, c-format
 msgid "Offering Hello of peer %s to peer %s\n"
 msgstr "Imposible conectar a %u.%u.%u.%u:%u: %s\n"
 
-#: src/testing/testing_group.c:3730
+#: src/testing/testing_group.c:3728
 #, c-format
 msgid "Creating connection, outstanding_connections is %d (max %d)\n"
 msgstr ""
@@ -510,148 +514,148 @@
 msgid "Could not create configuration for peer number %u on `%s'!\n"
 msgstr ""
 
-#: src/testing/testing_group.c:6298 src/testing/testing.c:1272
+#: src/testing/testing_group.c:6298 src/testing/testing.c:1273
 #, c-format
 msgid "Could not start `%s' process to copy configuration directory.\n"
 msgstr ""
 
-#: src/testing/testing.c:208
+#: src/testing/testing.c:209
 msgid "`scp' does not seem to terminate (timeout copying config).\n"
 msgstr ""
 
-#: src/testing/testing.c:222 src/testing/testing.c:822
+#: src/testing/testing.c:223 src/testing/testing.c:823
 #, fuzzy
 msgid "`scp' did not complete cleanly.\n"
 msgstr "'%s' no esta conectado a ningún par.\n"
 
-#: src/testing/testing.c:245
+#: src/testing/testing.c:246
 msgid "Failed to create pipe for `gnunet-peerinfo' process.\n"
 msgstr ""
 
-#: src/testing/testing.c:246
+#: src/testing/testing.c:247
 #, fuzzy
 msgid "Failed to create pipe for `ssh' process.\n"
 msgstr "Error en el formato del fichero (¿no es un directorio de GNUnet?)\n"
 
-#: src/testing/testing.c:302
+#: src/testing/testing.c:303
 #, c-format
 msgid "Could not start `%s' process to create hostkey.\n"
 msgstr ""
 
-#: src/testing/testing.c:309
+#: src/testing/testing.c:310
 #, fuzzy
 msgid "Failed to start `gnunet-peerinfo' process.\n"
 msgstr "Falló al comenzar la recolección.\n"
 
-#: src/testing/testing.c:310 src/testing/testing.c:508
+#: src/testing/testing.c:311 src/testing/testing.c:509
 #, fuzzy
 msgid "Failed to start `ssh' process.\n"
 msgstr "Falló al comenzar la recolección.\n"
 
-#: src/testing/testing.c:372
+#: src/testing/testing.c:373
 #, fuzzy, c-format
 msgid "Error reading from gnunet-peerinfo: %s\n"
 msgstr "Se produjo un error leyendo información de gnunetd.\n"
 
-#: src/testing/testing.c:376
+#: src/testing/testing.c:377
 msgid "Malformed output from gnunet-peerinfo!\n"
 msgstr ""
 
-#: src/testing/testing.c:386
+#: src/testing/testing.c:387
 #, fuzzy
 msgid "`Failed to get hostkey!\n"
 msgstr "Fallo en las estadísticas del tráfico.\n"
 
-#: src/testing/testing.c:420
+#: src/testing/testing.c:421
 msgid "`Failed while waiting for topology setup!\n"
 msgstr ""
 
-#: src/testing/testing.c:500
+#: src/testing/testing.c:501
 #, c-format
 msgid "Could not start `%s' process to start GNUnet.\n"
 msgstr ""
 
-#: src/testing/testing.c:507
+#: src/testing/testing.c:508
 #, fuzzy
 msgid "Failed to start `gnunet-arm' process.\n"
 msgstr "Fallo al conectar a gnunetd.\n"
 
-#: src/testing/testing.c:531 src/testing/testing.c:630
+#: src/testing/testing.c:532 src/testing/testing.c:631
 msgid "`gnunet-arm' does not seem to terminate.\n"
 msgstr ""
 
-#: src/testing/testing.c:532 src/testing/testing.c:631
-#: src/testing/testing.c:651
+#: src/testing/testing.c:533 src/testing/testing.c:632
+#: src/testing/testing.c:652
 msgid "`ssh' does not seem to terminate.\n"
 msgstr ""
 
-#: src/testing/testing.c:571 src/testing/testing.c:2072
-#: src/testing/testing.c:2091
+#: src/testing/testing.c:572 src/testing/testing.c:2074
+#: src/testing/testing.c:2093
 #, fuzzy
 msgid "Failed to connect to transport service!\n"
 msgstr "Fallo al conectar a gnunetd.\n"
 
-#: src/testing/testing.c:600
+#: src/testing/testing.c:601
 msgid "Unable to get HELLO for peer!\n"
 msgstr ""
 
-#: src/testing/testing.c:650
+#: src/testing/testing.c:651
 msgid "`gnunet-arm' terminated with non-zero exit status (or timed out)!\n"
 msgstr ""
 
-#: src/testing/testing.c:673 src/testing/testing.c:707
+#: src/testing/testing.c:674 src/testing/testing.c:708
 msgid "either `gnunet-arm' or `ssh' does not seem to terminate.\n"
 msgstr ""
 
-#: src/testing/testing.c:688 src/testing/testing.c:737
+#: src/testing/testing.c:689 src/testing/testing.c:738
 msgid "shutdown (either `gnunet-arm' or `ssh') did not complete cleanly.\n"
 msgstr ""
 
-#: src/testing/testing.c:810
+#: src/testing/testing.c:811
 msgid "`scp' does not seem to terminate.\n"
 msgstr ""
 
-#: src/testing/testing.c:988
+#: src/testing/testing.c:989
 #, fuzzy, c-format
 msgid "Starting service %s for peer `%4s'\n"
 msgstr "Iniciada colección '%s'.\n"
 
-#: src/testing/testing.c:1360 src/testing/testing.c:1443
-#: src/testing/testing.c:1581
+#: src/testing/testing.c:1361 src/testing/testing.c:1444
+#: src/testing/testing.c:1582
 #, fuzzy, c-format
 msgid "Terminating peer `%4s'\n"
 msgstr "Permiso denegado para '%s' en %s:%d.\n"
 
-#: src/testing/testing.c:1533
+#: src/testing/testing.c:1534
 #, fuzzy, c-format
 msgid "Setting d->dead on peer `%4s'\n"
 msgstr "Iniciada colección '%s'.\n"
 
-#: src/testing/testing.c:1668
+#: src/testing/testing.c:1669
 msgid "Peer not yet running, can not change configuration at this point."
 msgstr ""
 
-#: src/testing/testing.c:1676
+#: src/testing/testing.c:1677
 #, fuzzy
 msgid "Failed to write new configuration to disk."
 msgstr "Imposible guardar la configuración"
 
-#: src/testing/testing.c:1707
+#: src/testing/testing.c:1708
 #, c-format
 msgid "Could not start `%s' process to copy configuration file.\n"
 msgstr ""
 
-#: src/testing/testing.c:1710
+#: src/testing/testing.c:1711
 #, fuzzy
 msgid "Failed to copy new configuration to remote machine."
 msgstr "Imposible guardar la configuración"
 
-#: src/testing/testing.c:1881
+#: src/testing/testing.c:1883
 #, fuzzy
 msgid "Peers failed to connect"
 msgstr "Fallo al conectar a gnunetd.\n"
 
-#: src/testing/testing.c:2036
+#: src/testing/testing.c:2038
 #, fuzzy
 msgid "Failed to connect to core service of first peer!\n"
 msgstr "Fallo al conectar a gnunetd.\n"
@@ -845,7 +849,7 @@
 msgstr ""
 
 #: src/hostlist/hostlist-server.c:556
-#: src/transport/gnunet-service-transport.c:458
+#: src/transport/gnunet-service-transport.c:462
 #: src/peerinfo-tool/gnunet-peerinfo.c:208 src/core/gnunet-service-core.c:4607
 #, fuzzy, c-format
 msgid "Could not access PEERINFO service.  Exiting.\n"
@@ -1070,8 +1074,8 @@
 
 #: src/topology/gnunet-daemon-topology.c:676
 #: src/topology/gnunet-daemon-topology.c:778
-#: src/transport/gnunet-service-transport_neighbours.c:432
-#: src/transport/gnunet-service-transport_neighbours.c:627
+#: src/transport/gnunet-service-transport_neighbours.c:465
+#: src/transport/gnunet-service-transport_neighbours.c:662
 #, fuzzy
 msgid "# peers connected"
 msgstr "# de pares conectados"
@@ -1332,24 +1336,29 @@
 "Failed to establish TCP connection to `%s:%u', no further addresses to try.\n"
 msgstr "Se produjo un error estableciendo conexión con gnunetd.\n"
 
-#: src/util/connection.c:852 src/util/connection.c:1023
+#: src/util/connection.c:852 src/util/connection.c:1028
 #, fuzzy, c-format
 msgid "Trying to connect to `%s' (%p)\n"
 msgstr "Fallo al conectar a gnunetd.\n"
 
-#: src/util/connection.c:1013
+#: src/util/connection.c:863
 #, fuzzy, c-format
+msgid "Failed to connect to `%s' (%p)\n"
+msgstr "Fallo al conectar a gnunetd.\n"
+
+#: src/util/connection.c:1018
+#, fuzzy, c-format
 msgid "Attempt to connect to `%s' failed\n"
 msgstr "Fallo al conectar a gnunetd.\n"
 
-#: src/util/connection.c:1529
+#: src/util/connection.c:1534
 #, c-format
 msgid ""
 "Could not satisfy pending transmission request, socket closed or connect "
 "failed (%p).\n"
 msgstr ""
 
-#: src/util/connection.c:1565
+#: src/util/connection.c:1570
 #, fuzzy, c-format
 msgid "Failed to send to `%s': %s\n"
 msgstr "Fichero almacenado en '%s'.\n"
@@ -1464,7 +1473,7 @@
 "GNUNET_SERVER_receive_done after %llums\n"
 msgstr ""
 
-#: src/util/network.c:1193
+#: src/util/network.c:1194
 #, c-format
 msgid ""
 "Fatal internal logic error, process hangs in `%s' (abort with CTRL-C)!\n"
@@ -1755,7 +1764,7 @@
 "Arguments mandatory for long options are also mandatory for short options.\n"
 msgstr ""
 
-#: src/util/getopt_helpers.c:254 src/util/getopt_helpers.c:282
+#: src/util/getopt_helpers.c:253 src/util/getopt_helpers.c:281
 #, c-format
 msgid "You must pass a number to the `%s' option.\n"
 msgstr "Tienes que introducir un número en la opción '%s'.\n"
@@ -2156,7 +2165,7 @@
 
 #: src/fs/gnunet-download.c:263 src/fs/gnunet-unindex.c:169
 #: src/fs/gnunet-search.c:297 src/fs/gnunet-publish.c:585
-#: src/mesh/test_mesh_small.c:674 src/dht/gnunet-dht-get-peer.c:190
+#: src/mesh/test_mesh_small.c:676 src/dht/gnunet-dht-get-peer.c:190
 #: src/dht/gnunet-dht-put.c:176 src/dht/gnunet-dht-get.c:204
 #: src/nse/gnunet-nse-profiler.c:655
 msgid "be verbose (print progress information)"
@@ -2626,79 +2635,79 @@
 msgid "MAGIC mismatch.  This is not a GNUnet directory.\n"
 msgstr "Error en el formato del fichero (¿no es un directorio de GNUnet?)\n"
 
-#: src/fs/gnunet-service-fs_cp.c:693
+#: src/fs/gnunet-service-fs_cp.c:694
 #, c-format
 msgid "Migration of content to peer `%s' blocked for %llu ms\n"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:728
+#: src/fs/gnunet-service-fs_cp.c:729
 msgid "# replies transmitted to other peers"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:734
+#: src/fs/gnunet-service-fs_cp.c:735
 msgid "# replies dropped"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:763 src/fs/gnunet-service-fs_cp.c:879
-#: src/fs/gnunet-service-fs_cp.c:1289 src/fs/gnunet-service-fs_cp.c:1326
+#: src/fs/gnunet-service-fs_cp.c:764 src/fs/gnunet-service-fs_cp.c:880
+#: src/fs/gnunet-service-fs_cp.c:1290 src/fs/gnunet-service-fs_cp.c:1327
 msgid "# P2P searches active"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:836
+#: src/fs/gnunet-service-fs_cp.c:837
 msgid "# artificial delays introduced (ms)"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:899
+#: src/fs/gnunet-service-fs_cp.c:900
 msgid "# replies received for other peers"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:913
+#: src/fs/gnunet-service-fs_cp.c:914
 msgid "# replies dropped due to insufficient cover traffic"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:951
+#: src/fs/gnunet-service-fs_cp.c:952
 msgid "# P2P searches destroyed due to ultimate reply"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1018
+#: src/fs/gnunet-service-fs_cp.c:1019
 #, fuzzy
 msgid "# requests done for free (low load)"
 msgstr "# Anuncios de los pares recibidos"
 
-#: src/fs/gnunet-service-fs_cp.c:1042
+#: src/fs/gnunet-service-fs_cp.c:1043
 msgid "# request dropped, priority insufficient"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1052
+#: src/fs/gnunet-service-fs_cp.c:1053
 #, fuzzy
 msgid "# requests done for a price (normal load)"
 msgstr "# Anuncios de los pares recibidos"
 
-#: src/fs/gnunet-service-fs_cp.c:1131
+#: src/fs/gnunet-service-fs_cp.c:1132
 msgid "# GET requests received (from other peers)"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1165
+#: src/fs/gnunet-service-fs_cp.c:1166
 #, fuzzy
 msgid "# requests dropped due to initiator not being connected"
 msgstr "# Anuncios de los pares recibidos"
 
-#: src/fs/gnunet-service-fs_cp.c:1189
+#: src/fs/gnunet-service-fs_cp.c:1190
 #, fuzzy
 msgid "# requests dropped due to missing reverse route"
 msgstr "# Anuncios de los pares recibidos"
 
-#: src/fs/gnunet-service-fs_cp.c:1255
+#: src/fs/gnunet-service-fs_cp.c:1256
 #, fuzzy
 msgid "# requests dropped due TTL underflow"
 msgstr "# Anuncios de los pares recibidos"
 
-#: src/fs/gnunet-service-fs_cp.c:1283
+#: src/fs/gnunet-service-fs_cp.c:1284
 #, fuzzy
 msgid "# requests dropped due to higher-TTL request"
 msgstr "# Anuncios de los pares recibidos"
 
-#: src/fs/gnunet-service-fs_cp.c:1324
+#: src/fs/gnunet-service-fs_cp.c:1325
 #, fuzzy
 msgid "# P2P query messages received and processed"
 msgstr "# mensajes PONG encriptados recibidos"
@@ -3024,20 +3033,20 @@
 msgid "Failed to load block plugin `%s'\n"
 msgstr "Imposible inicializar la aplicación '%s'\n"
 
-#: src/mesh/test_mesh_small.c:687
+#: src/mesh/test_mesh_small.c:689
 msgid "Test mesh in a small network."
 msgstr ""
 
-#: src/arm/mockup-service.c:41 src/arm/gnunet-service-arm.c:859
+#: src/arm/mockup-service.c:41 src/arm/gnunet-service-arm.c:865
 #, fuzzy
 msgid "Failed to transmit shutdown ACK.\n"
 msgstr "Falló al comenzar la recolección.\n"
 
-#: src/arm/mockup-service.c:46 src/arm/gnunet-service-arm.c:864
+#: src/arm/mockup-service.c:46 src/arm/gnunet-service-arm.c:870
 msgid "Transmitting shutdown ACK.\n"
 msgstr ""
 
-#: src/arm/mockup-service.c:69 src/arm/gnunet-service-arm.c:892
+#: src/arm/mockup-service.c:69 src/arm/gnunet-service-arm.c:898
 msgid "Initiating shutdown as requested by client.\n"
 msgstr ""
 
@@ -3090,34 +3099,34 @@
 msgid "Preparing to stop `%s'\n"
 msgstr "Iniciada colección '%s'.\n"
 
-#: src/arm/gnunet-service-arm.c:665
+#: src/arm/gnunet-service-arm.c:666
 #, fuzzy
 msgid "Stopping all services\n"
 msgstr "Deteniendo cron\n"
 
-#: src/arm/gnunet-service-arm.c:717
+#: src/arm/gnunet-service-arm.c:723
 #, fuzzy, c-format
 msgid "Restarting service `%s'.\n"
 msgstr "Iniciada colección '%s'.\n"
 
-#: src/arm/gnunet-service-arm.c:790
+#: src/arm/gnunet-service-arm.c:796
 msgid "exit"
 msgstr ""
 
-#: src/arm/gnunet-service-arm.c:795
+#: src/arm/gnunet-service-arm.c:801
 msgid "signal"
 msgstr ""
 
-#: src/arm/gnunet-service-arm.c:800
+#: src/arm/gnunet-service-arm.c:806
 msgid "unknown"
 msgstr "desconocido"
 
-#: src/arm/gnunet-service-arm.c:807
+#: src/arm/gnunet-service-arm.c:813
 #, fuzzy, c-format
 msgid "Service `%s' stopped\n"
 msgstr "Servicio eliminado.\n"
 
-#: src/arm/gnunet-service-arm.c:821
+#: src/arm/gnunet-service-arm.c:827
 #, c-format
 msgid "Service `%s' terminated with status %s/%d, will try to restart it!\n"
 msgstr ""
@@ -3424,7 +3433,7 @@
 #: src/transport/test_plugin_transport_udp.c:185
 #: src/transport/test_plugin_transport_https.c:1271
 #: src/transport/test_plugin_transport.c:202
-#: src/transport/gnunet-service-transport.c:435
+#: src/transport/gnunet-service-transport.c:439
 #: src/transport/test_plugin_transport_http.c:1232
 msgid "Transport service is lacking key configuration settings.  Exiting.\n"
 msgstr ""
@@ -3432,7 +3441,7 @@
 #: src/transport/test_plugin_transport_udp.c:195
 #: src/transport/test_plugin_transport_https.c:1335
 #: src/transport/test_plugin_transport.c:212
-#: src/transport/gnunet-service-transport.c:444
+#: src/transport/gnunet-service-transport.c:448
 #: src/transport/test_plugin_transport_http.c:1255
 msgid "Transport service could not access hostkey.  Exiting.\n"
 msgstr ""
@@ -3447,19 +3456,19 @@
 msgid "Failed to load transport plugin for udp\n"
 msgstr "Imposible inicializar la aplicación '%s'\n"
 
-#: src/transport/plugin_transport_wlan.c:1422
-#: src/transport/plugin_transport_wlan.c:1617
-#: src/transport/plugin_transport_wlan.c:1736
+#: src/transport/plugin_transport_wlan.c:1436
+#: src/transport/plugin_transport_wlan.c:1631
+#: src/transport/plugin_transport_wlan.c:1750
 #, c-format
 msgid "Error writing to wlan healper. errno == %d, ERROR: %s\n"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:1854
+#: src/transport/plugin_transport_wlan.c:1868
 #, c-format
 msgid "Wlan Address len %d is wrong\n"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:2710
+#: src/transport/plugin_transport_wlan.c:2728
 #, c-format
 msgid "Finished reading from wlan-helper stdout with code: %d\n"
 msgstr ""
@@ -3498,34 +3507,34 @@
 msgid "# SET QUOTA messages received"
 msgstr "# mensajes PONG encriptados recibidos"
 
-#: src/transport/gnunet-service-transport_neighbours.c:776
+#: src/transport/gnunet-service-transport_neighbours.c:811
 #, fuzzy
 msgid "# messages not sent (no such peer or not connected)"
 msgstr "# mensajes defragmentados"
 
-#: src/transport/gnunet-service-transport_neighbours.c:796
+#: src/transport/gnunet-service-transport_neighbours.c:831
 #, fuzzy
 msgid "# bytes in message queue for other peers"
 msgstr "# bytes de mensajes salientes omitidos"
 
-#: src/transport/gnunet-service-transport_neighbours.c:864
+#: src/transport/gnunet-service-transport_neighbours.c:899
 msgid "# bandwidth quota violations by other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:882
+#: src/transport/gnunet-service-transport_neighbours.c:917
 msgid "# ms throttling suggested"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:907
+#: src/transport/gnunet-service-transport_neighbours.c:942
 #, fuzzy
 msgid "# KEEPALIVE messages discarded (not connected)"
 msgstr "# mensajes defragmentados"
 
-#: src/transport/gnunet-service-transport_neighbours.c:937
+#: src/transport/gnunet-service-transport_neighbours.c:972
 msgid "# SET QUOTA messages ignored (no such peer)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:949
+#: src/transport/gnunet-service-transport_neighbours.c:984
 msgid "# disconnects due to quota of 0"
 msgstr ""
 
@@ -3648,7 +3657,7 @@
 msgstr "Falló al entregar el mensaje '%s'.\n"
 
 #: src/transport/test_plugin_transport_https.c:1284
-#: src/transport/plugin_transport_http.c:3321
+#: src/transport/plugin_transport_http.c:3323
 #: src/transport/test_plugin_transport_http.c:1245
 #, c-format
 msgid "Require valid port number for transport plugin `%s' in configuration!\n"
@@ -3684,6 +3693,11 @@
 "\n"
 msgstr ""
 
+#: src/transport/test_transport_api.c:120
+#, fuzzy
+msgid "Fail! Could not connect peers\n"
+msgstr "'%s': Imposible conectar.\n"
+
 #: src/transport/gnunet-transport-list-connections.c:91
 #: src/peerinfo-tool/gnunet-peerinfo.c:200
 #: src/core/gnunet-core-list-connections.c:166
@@ -3749,34 +3763,34 @@
 msgid "# HTTP outbound sessions for peers active"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3349
-#: src/transport/plugin_transport_http.c:3378
+#: src/transport/plugin_transport_http.c:3351
+#: src/transport/plugin_transport_http.c:3380
 #, fuzzy
 msgid "Misconfigured address to bind to in configuration!\n"
 msgstr "¡Ninguna aplicación definida en la configuración!\n"
 
-#: src/transport/plugin_transport_http.c:3404
+#: src/transport/plugin_transport_http.c:3406
 #, c-format
 msgid "Required configuration options missing in section `%s'\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3442
+#: src/transport/plugin_transport_http.c:3444
 msgid ""
 "Could not create a new TLS certificate, program `gnunet-transport-"
 "certificate-creation' could not be started!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3458
+#: src/transport/plugin_transport_http.c:3460
 msgid "No usable TLS certificate found and creating one failed!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3610
+#: src/transport/plugin_transport_http.c:3612
 #, c-format
 msgid ""
 "HTTP Server with %s could not be started on port %u! %s plugin failed!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3626
+#: src/transport/plugin_transport_http.c:3628
 #, c-format
 msgid "Could not initialize curl multi handle, failed to start %s plugin!\n"
 msgstr ""
@@ -3881,58 +3895,58 @@
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:520
+#: src/transport/gnunet-service-transport_validation.c:518
 msgid "# address records discarded"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:606
+#: src/transport/gnunet-service-transport_validation.c:604
 #: src/core/gnunet-service-core.c:4187
 #, fuzzy
 msgid "# PING messages received"
 msgstr "# mensajes PONG encriptados recibidos"
 
-#: src/transport/gnunet-service-transport_validation.c:628
+#: src/transport/gnunet-service-transport_validation.c:626
 #, c-format
 msgid ""
 "Not confirming PING with address `%s' since I cannot confirm having this "
 "address.\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:685
+#: src/transport/gnunet-service-transport_validation.c:683
 msgid "# PONGs unicast via reliable transport"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:694
+#: src/transport/gnunet-service-transport_validation.c:692
 msgid "# PONGs multicast to all available addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:758
+#: src/transport/gnunet-service-transport_validation.c:756
 #, c-format
 msgid ""
 "Not transmitting `%s' with `%s', message too big (%u bytes!). This should "
 "not happen.\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:792
+#: src/transport/gnunet-service-transport_validation.c:790
 #, fuzzy
 msgid "# PING without HELLO messages sent"
 msgstr "# mensajes de texto mandados por PING"
 
-#: src/transport/gnunet-service-transport_validation.c:864
+#: src/transport/gnunet-service-transport_validation.c:862
 msgid "# address revalidations started"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:923
+#: src/transport/gnunet-service-transport_validation.c:921
 #: src/core/gnunet-service-core.c:4210
 #, fuzzy
 msgid "# PONG messages received"
 msgstr "# mensajes PONG encriptados recibidos"
 
-#: src/transport/gnunet-service-transport_validation.c:945
+#: src/transport/gnunet-service-transport_validation.c:943
 msgid "# PONGs dropped, no matching pending validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:961
+#: src/transport/gnunet-service-transport_validation.c:959
 msgid "# PONGs dropped, signature expired"
 msgstr ""
 
@@ -3997,17 +4011,17 @@
 "\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:1279
+#: src/transport/plugin_transport_udp.c:1280
 #, c-format
 msgid "Given `%s' option is out of range: %llu > %u\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:1329
+#: src/transport/plugin_transport_udp.c:1330
 #, fuzzy, c-format
 msgid "Invalid IPv6 address: `%s'\n"
 msgstr "Argumento no válido: '%s'\n"
 
-#: src/transport/plugin_transport_udp.c:1455
+#: src/transport/plugin_transport_udp.c:1456
 #, fuzzy
 msgid "Failed to open UDP sockets\n"
 msgstr "Fichero almacenado en '%s'.\n"
@@ -4380,23 +4394,23 @@
 msgid "Unable to initialize SQLite: %s.\n"
 msgstr "Imposible inicializar SQLite.\n"
 
-#: src/datastore/plugin_datastore_sqlite.c:662
+#: src/datastore/plugin_datastore_sqlite.c:677
 #, fuzzy
 msgid "Invalid data in database.  Trying to fix (by deletion).\n"
 msgstr "Datos no válidos en %s.  Intentando fijar (por borrado).\n"
 
-#: src/datastore/plugin_datastore_sqlite.c:1115
+#: src/datastore/plugin_datastore_sqlite.c:1130
 msgid "sqlite version to old to determine size, assuming zero\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_sqlite.c:1134
+#: src/datastore/plugin_datastore_sqlite.c:1149
 #, c-format
 msgid ""
 "Using sqlite page utilization to estimate payload (%llu pages of size %llu "
 "bytes)\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_sqlite.c:1173
+#: src/datastore/plugin_datastore_sqlite.c:1188
 #, fuzzy
 msgid "Sqlite database running\n"
 msgstr "base de datos sqlite"
@@ -4449,8 +4463,8 @@
 
 #: src/datastore/gnunet-service-datastore.c:681
 #: src/datastore/gnunet-service-datastore.c:735
-#: src/datastore/gnunet-service-datastore.c:953
-#: src/datastore/gnunet-service-datastore.c:1438
+#: src/datastore/gnunet-service-datastore.c:956
+#: src/datastore/gnunet-service-datastore.c:1441
 msgid "# reserved"
 msgstr ""
 
@@ -4458,80 +4472,80 @@
 msgid "Could not find matching reservation"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:835
+#: src/datastore/gnunet-service-datastore.c:838
 #, c-format
 msgid "Need %llu bytes more space (%llu allowed, using %llu)\n"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1001
+#: src/datastore/gnunet-service-datastore.c:1004
 #, fuzzy
 msgid "# GET requests received"
 msgstr "# mensajes PONG encriptados recibidos"
 
-#: src/datastore/gnunet-service-datastore.c:1015
+#: src/datastore/gnunet-service-datastore.c:1018
 msgid "# requests filtered by bloomfilter"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1043
+#: src/datastore/gnunet-service-datastore.c:1046
 #, fuzzy
 msgid "# UPDATE requests received"
 msgstr "# mensajes PONG encriptados recibidos"
 
-#: src/datastore/gnunet-service-datastore.c:1077
+#: src/datastore/gnunet-service-datastore.c:1080
 #, fuzzy
 msgid "# GET REPLICATION requests received"
 msgstr "# mensajes PONG encriptados recibidos"
 
-#: src/datastore/gnunet-service-datastore.c:1112
+#: src/datastore/gnunet-service-datastore.c:1115
 #, fuzzy
 msgid "# GET ZERO ANONYMITY requests received"
 msgstr "# mensajes PONG encriptados recibidos"
 
-#: src/datastore/gnunet-service-datastore.c:1139
+#: src/datastore/gnunet-service-datastore.c:1142
 #, fuzzy
 msgid "Content not found"
 msgstr "¡Comando '%s' no encontrado!\n"
 
-#: src/datastore/gnunet-service-datastore.c:1149
+#: src/datastore/gnunet-service-datastore.c:1152
 msgid "# bytes removed (explicit request)"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1183
+#: src/datastore/gnunet-service-datastore.c:1186
 #, fuzzy
 msgid "# REMOVE requests received"
 msgstr "# mensajes PONG encriptados recibidos"
 
-#: src/datastore/gnunet-service-datastore.c:1227
+#: src/datastore/gnunet-service-datastore.c:1230
 #, c-format
 msgid "Datastore payload inaccurate (%lld < %lld).  Trying to fix.\n"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1300
+#: src/datastore/gnunet-service-datastore.c:1303
 #: src/datastore/test_plugin_datastore.c:322
 #: src/datastore/perf_plugin_datastore.c:420
 #, c-format
 msgid "Loading `%s' datastore plugin\n"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1309
+#: src/datastore/gnunet-service-datastore.c:1312
 #, fuzzy, c-format
 msgid "Failed to load datastore plugin for `%s'\n"
 msgstr "Imposible inicializar la aplicación '%s'\n"
 
-#: src/datastore/gnunet-service-datastore.c:1488
+#: src/datastore/gnunet-service-datastore.c:1491
 msgid "# quota"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1490
+#: src/datastore/gnunet-service-datastore.c:1493
 msgid "# cache size"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1500
+#: src/datastore/gnunet-service-datastore.c:1503
 #, c-format
 msgid "Could not use specified filename `%s' for bloomfilter.\n"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1513
+#: src/datastore/gnunet-service-datastore.c:1516
 #, fuzzy
 msgid "Failed to initialize bloomfilter.\n"
 msgstr "Imposible inicializar SQLite.\n"
@@ -4686,22 +4700,22 @@
 msgid "Failed to connect to the dv service!\n"
 msgstr "Fallo al conectar a gnunetd.\n"
 
-#: src/nse/gnunet-service-nse.c:864
+#: src/nse/gnunet-service-nse.c:866
 #, c-format
 msgid "Proof of work invalid: %llu!\n"
 msgstr ""
 
-#: src/nse/gnunet-service-nse.c:1286 src/nse/gnunet-service-nse.c:1305
-#: src/nse/gnunet-service-nse.c:1326
+#: src/nse/gnunet-service-nse.c:1288 src/nse/gnunet-service-nse.c:1307
+#: src/nse/gnunet-service-nse.c:1328
 msgid "NSE service is lacking key configuration settings.  Exiting.\n"
 msgstr ""
 
-#: src/nse/gnunet-service-nse.c:1293
+#: src/nse/gnunet-service-nse.c:1295
 #, fuzzy
 msgid "Invalid work requirement for NSE service. Exiting.\n"
 msgstr "Argumentos no válidos. Saliendo.\n"
 
-#: src/nse/gnunet-service-nse.c:1314
+#: src/nse/gnunet-service-nse.c:1316
 #, fuzzy
 msgid "NSE service could not access hostkey.  Exiting.\n"
 msgstr "Imposible acceder a la información del espacio.\n"
@@ -6353,9 +6367,6 @@
 #~ msgid "`%s': Could not create hello.\n"
 #~ msgstr "'%s': Imposible crear saludo.\n"
 
-#~ msgid "`%s': Could not connect.\n"
-#~ msgstr "'%s': Imposible conectar.\n"
-
 #~ msgid "`%s': Could not send.\n"
 #~ msgstr "'%s': Imposible mandar.\n"
 

Modified: gnunet/po/gnunet.pot
===================================================================
--- gnunet/po/gnunet.pot        2011-10-04 09:57:35 UTC (rev 17161)
+++ gnunet/po/gnunet.pot        2011-10-04 11:09:39 UTC (rev 17162)
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: address@hidden"
-"POT-Creation-Date: 2011-09-13 14:44+0200\n"
+"POT-Creation-Date: 2011-09-19 13:28+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <address@hidden>\n"
 "Language-Team: LANGUAGE <address@hidden>\n"
@@ -71,58 +71,62 @@
 msgid "Failed to start %s\n"
 msgstr ""
 
-#: src/nat/nat.c:1096 src/nat/nat.c:1113
+#: src/nat/nat.c:1096
 #, c-format
 msgid "Malformed %s `%s' given in configuration!\n"
 msgstr ""
 
-#: src/nat/nat.c:1167 src/nat/nat.c:1177
+#: src/nat/nat.c:1158 src/nat/nat.c:1168
 #, c-format
 msgid ""
 "Configuration requires `%s', but binary is not installed properly (SUID bit "
 "not set).  Option disabled.\n"
 msgstr ""
 
-#: src/nat/nat.c:1309
+#: src/nat/nat.c:1300
 msgid "Internal IP address not known, cannot use ICMP NAT traversal method\n"
 msgstr ""
 
-#: src/nat/nat.c:1321
+#: src/nat/nat.c:1312
 #, c-format
 msgid "Running gnunet-helper-nat-client %s %s %u\n"
 msgstr ""
 
-#: src/nat/gnunet-nat-server.c:290
+#: src/nat/gnunet-nat-server.c:289
 #, c-format
 msgid "Please pass valid port number as the first argument! (got `%s')\n"
 msgstr ""
 
-#: src/nat/gnunet-nat-server.c:329
+#: src/nat/gnunet-nat-server.c:328
 msgid "GNUnet NAT traversal test helper daemon"
 msgstr ""
 
-#: src/nat/nat_test.c:348
+#: src/nat/nat_test.c:349
 msgid "Failed to connect to `gnunet-nat-server'\n"
 msgstr ""
 
-#: src/nat/nat_test.c:418
+#: src/nat/nat_test.c:419
 #, c-format
 msgid "Failed to create listen socket bound to `%s' for NAT test: %s\n"
 msgstr ""
 
-#: src/vpn/gnunet-daemon-vpn.c:1275 src/vpn/gnunet-daemon-exit.c:1455
-#: src/template/gnunet-template.c:68 src/core/test_core_api_send_to_self.c:217
+#: src/vpn/gnunet-daemon-vpn.c:1279 src/template/gnunet-template.c:68
+#: src/core/test_core_api_send_to_self.c:217
 msgid "help text"
 msgstr ""
 
+#: src/vpn/gnunet-daemon-exit.c:1493
+msgid "Daemon to run to provide an IP exit node for the VPN"
+msgstr ""
+
 #: src/datacache/datacache.c:108 src/datacache/datacache.c:236
-#: src/datastore/gnunet-service-datastore.c:821
+#: src/datastore/gnunet-service-datastore.c:824
 msgid "# bytes stored"
 msgstr ""
 
 #: src/datacache/datacache.c:134 src/datacache/datacache.c:142
-#: src/datastore/gnunet-service-datastore.c:1292
-#: src/datastore/gnunet-service-datastore.c:1483
+#: src/datastore/gnunet-service-datastore.c:1295
+#: src/datastore/gnunet-service-datastore.c:1486
 #: src/datastore/test_plugin_datastore.c:192
 #: src/datastore/test_plugin_datastore.c:315
 #: src/datastore/perf_plugin_datastore.c:309
@@ -158,13 +162,13 @@
 #: src/datacache/plugin_datacache_sqlite.c:122
 #: src/datacache/plugin_datacache_sqlite.c:191
 #: src/datacache/plugin_datacache_sqlite.c:232
-#: src/datacache/plugin_datacache_sqlite.c:296
-#: src/datacache/plugin_datacache_sqlite.c:305
-#: src/datacache/plugin_datacache_sqlite.c:318
-#: src/datacache/plugin_datacache_sqlite.c:325
-#: src/datacache/plugin_datacache_sqlite.c:338
-#: src/datacache/plugin_datacache_sqlite.c:346
-#: src/datacache/plugin_datacache_sqlite.c:354
+#: src/datacache/plugin_datacache_sqlite.c:295
+#: src/datacache/plugin_datacache_sqlite.c:304
+#: src/datacache/plugin_datacache_sqlite.c:315
+#: src/datacache/plugin_datacache_sqlite.c:322
+#: src/datacache/plugin_datacache_sqlite.c:332
+#: src/datacache/plugin_datacache_sqlite.c:340
+#: src/datacache/plugin_datacache_sqlite.c:348
 #: src/datacache/plugin_datacache_mysql.c:103
 #: src/datacache/plugin_datacache_mysql.c:110
 #: src/datacache/plugin_datacache_mysql.c:517
@@ -184,12 +188,12 @@
 msgid "`%s' failed at %s:%d with error: %s\n"
 msgstr ""
 
-#: src/datacache/plugin_datacache_sqlite.c:419
+#: src/datacache/plugin_datacache_sqlite.c:413
 msgid "Sqlite datacache running\n"
 msgstr ""
 
-#: src/datacache/plugin_datacache_sqlite.c:454
-#: src/datastore/plugin_datastore_sqlite.c:405
+#: src/datacache/plugin_datacache_sqlite.c:446
+#: src/datastore/plugin_datastore_sqlite.c:420
 msgid "Tried to close sqlite without finalizing all prepared statements.\n"
 msgstr ""
 
@@ -231,7 +235,7 @@
 #: src/testing/test_testing_topology_blacklist.c:448
 #: src/testing/testing_peergroup.c:876
 #: src/testing/test_testing_large_topology.c:1022
-#: src/dht/test_dht_multipeer.c:864 src/dht/gnunet-dht-driver.c:3907
+#: src/dht/test_dht_multipeer.c:864 src/dht/gnunet-dht-driver.c:3897
 #: src/dv/test_transport_api_dv.c:1132
 #, c-format
 msgid "Invalid value `%s' for option `%s' in section `%s': expected float\n"
@@ -309,23 +313,23 @@
 msgid "Finished copying all blacklist files!\n"
 msgstr ""
 
-#: src/testing/testing_group.c:3581 src/testing/testing_group.c:3720
+#: src/testing/testing_group.c:3580 src/testing/testing_group.c:3717
 #: src/testing/testing_group.c:4925 src/testing/testing_group.c:5066
 msgid "Delaying connect, we have too many outstanding connections!\n"
 msgstr ""
 
-#: src/testing/testing_group.c:3591 src/testing/testing_group.c:4935
+#: src/testing/testing_group.c:3590 src/testing/testing_group.c:4935
 #: src/testing/testing_group.c:5076
 #, c-format
 msgid "Creating connection, outstanding_connections is %d\n"
 msgstr ""
 
-#: src/testing/testing_group.c:3603
+#: src/testing/testing_group.c:3602
 #, c-format
 msgid "Offering Hello of peer %s to peer %s\n"
 msgstr ""
 
-#: src/testing/testing_group.c:3730
+#: src/testing/testing_group.c:3728
 #, c-format
 msgid "Creating connection, outstanding_connections is %d (max %d)\n"
 msgstr ""
@@ -499,138 +503,138 @@
 msgid "Could not create configuration for peer number %u on `%s'!\n"
 msgstr ""
 
-#: src/testing/testing_group.c:6298 src/testing/testing.c:1272
+#: src/testing/testing_group.c:6298 src/testing/testing.c:1273
 #, c-format
 msgid "Could not start `%s' process to copy configuration directory.\n"
 msgstr ""
 
-#: src/testing/testing.c:208
+#: src/testing/testing.c:209
 msgid "`scp' does not seem to terminate (timeout copying config).\n"
 msgstr ""
 
-#: src/testing/testing.c:222 src/testing/testing.c:822
+#: src/testing/testing.c:223 src/testing/testing.c:823
 msgid "`scp' did not complete cleanly.\n"
 msgstr ""
 
-#: src/testing/testing.c:245
+#: src/testing/testing.c:246
 msgid "Failed to create pipe for `gnunet-peerinfo' process.\n"
 msgstr ""
 
-#: src/testing/testing.c:246
+#: src/testing/testing.c:247
 msgid "Failed to create pipe for `ssh' process.\n"
 msgstr ""
 
-#: src/testing/testing.c:302
+#: src/testing/testing.c:303
 #, c-format
 msgid "Could not start `%s' process to create hostkey.\n"
 msgstr ""
 
-#: src/testing/testing.c:309
+#: src/testing/testing.c:310
 msgid "Failed to start `gnunet-peerinfo' process.\n"
 msgstr ""
 
-#: src/testing/testing.c:310 src/testing/testing.c:508
+#: src/testing/testing.c:311 src/testing/testing.c:509
 msgid "Failed to start `ssh' process.\n"
 msgstr ""
 
-#: src/testing/testing.c:372
+#: src/testing/testing.c:373
 #, c-format
 msgid "Error reading from gnunet-peerinfo: %s\n"
 msgstr ""
 
-#: src/testing/testing.c:376
+#: src/testing/testing.c:377
 msgid "Malformed output from gnunet-peerinfo!\n"
 msgstr ""
 
-#: src/testing/testing.c:386
+#: src/testing/testing.c:387
 msgid "`Failed to get hostkey!\n"
 msgstr ""
 
-#: src/testing/testing.c:420
+#: src/testing/testing.c:421
 msgid "`Failed while waiting for topology setup!\n"
 msgstr ""
 
-#: src/testing/testing.c:500
+#: src/testing/testing.c:501
 #, c-format
 msgid "Could not start `%s' process to start GNUnet.\n"
 msgstr ""
 
-#: src/testing/testing.c:507
+#: src/testing/testing.c:508
 msgid "Failed to start `gnunet-arm' process.\n"
 msgstr ""
 
-#: src/testing/testing.c:531 src/testing/testing.c:630
+#: src/testing/testing.c:532 src/testing/testing.c:631
 msgid "`gnunet-arm' does not seem to terminate.\n"
 msgstr ""
 
-#: src/testing/testing.c:532 src/testing/testing.c:631
-#: src/testing/testing.c:651
+#: src/testing/testing.c:533 src/testing/testing.c:632
+#: src/testing/testing.c:652
 msgid "`ssh' does not seem to terminate.\n"
 msgstr ""
 
-#: src/testing/testing.c:571 src/testing/testing.c:2072
-#: src/testing/testing.c:2091
+#: src/testing/testing.c:572 src/testing/testing.c:2074
+#: src/testing/testing.c:2093
 msgid "Failed to connect to transport service!\n"
 msgstr ""
 
-#: src/testing/testing.c:600
+#: src/testing/testing.c:601
 msgid "Unable to get HELLO for peer!\n"
 msgstr ""
 
-#: src/testing/testing.c:650
+#: src/testing/testing.c:651
 msgid "`gnunet-arm' terminated with non-zero exit status (or timed out)!\n"
 msgstr ""
 
-#: src/testing/testing.c:673 src/testing/testing.c:707
+#: src/testing/testing.c:674 src/testing/testing.c:708
 msgid "either `gnunet-arm' or `ssh' does not seem to terminate.\n"
 msgstr ""
 
-#: src/testing/testing.c:688 src/testing/testing.c:737
+#: src/testing/testing.c:689 src/testing/testing.c:738
 msgid "shutdown (either `gnunet-arm' or `ssh') did not complete cleanly.\n"
 msgstr ""
 
-#: src/testing/testing.c:810
+#: src/testing/testing.c:811
 msgid "`scp' does not seem to terminate.\n"
 msgstr ""
 
-#: src/testing/testing.c:988
+#: src/testing/testing.c:989
 #, c-format
 msgid "Starting service %s for peer `%4s'\n"
 msgstr ""
 
-#: src/testing/testing.c:1360 src/testing/testing.c:1443
-#: src/testing/testing.c:1581
+#: src/testing/testing.c:1361 src/testing/testing.c:1444
+#: src/testing/testing.c:1582
 #, c-format
 msgid "Terminating peer `%4s'\n"
 msgstr ""
 
-#: src/testing/testing.c:1533
+#: src/testing/testing.c:1534
 #, c-format
 msgid "Setting d->dead on peer `%4s'\n"
 msgstr ""
 
-#: src/testing/testing.c:1668
+#: src/testing/testing.c:1669
 msgid "Peer not yet running, can not change configuration at this point."
 msgstr ""
 
-#: src/testing/testing.c:1676
+#: src/testing/testing.c:1677
 msgid "Failed to write new configuration to disk."
 msgstr ""
 
-#: src/testing/testing.c:1707
+#: src/testing/testing.c:1708
 #, c-format
 msgid "Could not start `%s' process to copy configuration file.\n"
 msgstr ""
 
-#: src/testing/testing.c:1710
+#: src/testing/testing.c:1711
 msgid "Failed to copy new configuration to remote machine."
 msgstr ""
 
-#: src/testing/testing.c:1881
+#: src/testing/testing.c:1883
 msgid "Peers failed to connect"
 msgstr ""
 
-#: src/testing/testing.c:2036
+#: src/testing/testing.c:2038
 msgid "Failed to connect to core service of first peer!\n"
 msgstr ""
 
@@ -812,7 +816,7 @@
 msgstr ""
 
 #: src/hostlist/hostlist-server.c:556
-#: src/transport/gnunet-service-transport.c:458
+#: src/transport/gnunet-service-transport.c:462
 #: src/peerinfo-tool/gnunet-peerinfo.c:208 src/core/gnunet-service-core.c:4607
 #, c-format
 msgid "Could not access PEERINFO service.  Exiting.\n"
@@ -1031,8 +1035,8 @@
 
 #: src/topology/gnunet-daemon-topology.c:676
 #: src/topology/gnunet-daemon-topology.c:778
-#: src/transport/gnunet-service-transport_neighbours.c:432
-#: src/transport/gnunet-service-transport_neighbours.c:627
+#: src/transport/gnunet-service-transport_neighbours.c:465
+#: src/transport/gnunet-service-transport_neighbours.c:662
 msgid "# peers connected"
 msgstr ""
 
@@ -1284,24 +1288,29 @@
 "Failed to establish TCP connection to `%s:%u', no further addresses to try.\n"
 msgstr ""
 
-#: src/util/connection.c:852 src/util/connection.c:1023
+#: src/util/connection.c:852 src/util/connection.c:1028
 #, c-format
 msgid "Trying to connect to `%s' (%p)\n"
 msgstr ""
 
-#: src/util/connection.c:1013
+#: src/util/connection.c:863
 #, c-format
+msgid "Failed to connect to `%s' (%p)\n"
+msgstr ""
+
+#: src/util/connection.c:1018
+#, c-format
 msgid "Attempt to connect to `%s' failed\n"
 msgstr ""
 
-#: src/util/connection.c:1529
+#: src/util/connection.c:1534
 #, c-format
 msgid ""
 "Could not satisfy pending transmission request, socket closed or connect "
 "failed (%p).\n"
 msgstr ""
 
-#: src/util/connection.c:1565
+#: src/util/connection.c:1570
 #, c-format
 msgid "Failed to send to `%s': %s\n"
 msgstr ""
@@ -1412,7 +1421,7 @@
 "GNUNET_SERVER_receive_done after %llums\n"
 msgstr ""
 
-#: src/util/network.c:1193
+#: src/util/network.c:1194
 #, c-format
 msgid ""
 "Fatal internal logic error, process hangs in `%s' (abort with CTRL-C)!\n"
@@ -1699,7 +1708,7 @@
 "Arguments mandatory for long options are also mandatory for short options.\n"
 msgstr ""
 
-#: src/util/getopt_helpers.c:254 src/util/getopt_helpers.c:282
+#: src/util/getopt_helpers.c:253 src/util/getopt_helpers.c:281
 #, c-format
 msgid "You must pass a number to the `%s' option.\n"
 msgstr ""
@@ -2086,7 +2095,7 @@
 
 #: src/fs/gnunet-download.c:263 src/fs/gnunet-unindex.c:169
 #: src/fs/gnunet-search.c:297 src/fs/gnunet-publish.c:585
-#: src/mesh/test_mesh_small.c:674 src/dht/gnunet-dht-get-peer.c:190
+#: src/mesh/test_mesh_small.c:676 src/dht/gnunet-dht-get-peer.c:190
 #: src/dht/gnunet-dht-put.c:176 src/dht/gnunet-dht-get.c:204
 #: src/nse/gnunet-nse-profiler.c:655
 msgid "be verbose (print progress information)"
@@ -2518,73 +2527,73 @@
 msgid "MAGIC mismatch.  This is not a GNUnet directory.\n"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:693
+#: src/fs/gnunet-service-fs_cp.c:694
 #, c-format
 msgid "Migration of content to peer `%s' blocked for %llu ms\n"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:728
+#: src/fs/gnunet-service-fs_cp.c:729
 msgid "# replies transmitted to other peers"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:734
+#: src/fs/gnunet-service-fs_cp.c:735
 msgid "# replies dropped"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:763 src/fs/gnunet-service-fs_cp.c:879
-#: src/fs/gnunet-service-fs_cp.c:1289 src/fs/gnunet-service-fs_cp.c:1326
+#: src/fs/gnunet-service-fs_cp.c:764 src/fs/gnunet-service-fs_cp.c:880
+#: src/fs/gnunet-service-fs_cp.c:1290 src/fs/gnunet-service-fs_cp.c:1327
 msgid "# P2P searches active"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:836
+#: src/fs/gnunet-service-fs_cp.c:837
 msgid "# artificial delays introduced (ms)"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:899
+#: src/fs/gnunet-service-fs_cp.c:900
 msgid "# replies received for other peers"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:913
+#: src/fs/gnunet-service-fs_cp.c:914
 msgid "# replies dropped due to insufficient cover traffic"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:951
+#: src/fs/gnunet-service-fs_cp.c:952
 msgid "# P2P searches destroyed due to ultimate reply"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1018
+#: src/fs/gnunet-service-fs_cp.c:1019
 msgid "# requests done for free (low load)"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1042
+#: src/fs/gnunet-service-fs_cp.c:1043
 msgid "# request dropped, priority insufficient"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1052
+#: src/fs/gnunet-service-fs_cp.c:1053
 msgid "# requests done for a price (normal load)"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1131
+#: src/fs/gnunet-service-fs_cp.c:1132
 msgid "# GET requests received (from other peers)"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1165
+#: src/fs/gnunet-service-fs_cp.c:1166
 msgid "# requests dropped due to initiator not being connected"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1189
+#: src/fs/gnunet-service-fs_cp.c:1190
 msgid "# requests dropped due to missing reverse route"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1255
+#: src/fs/gnunet-service-fs_cp.c:1256
 msgid "# requests dropped due TTL underflow"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1283
+#: src/fs/gnunet-service-fs_cp.c:1284
 msgid "# requests dropped due to higher-TTL request"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1324
+#: src/fs/gnunet-service-fs_cp.c:1325
 msgid "# P2P query messages received and processed"
 msgstr ""
 
@@ -2901,19 +2910,19 @@
 msgid "Failed to load block plugin `%s'\n"
 msgstr ""
 
-#: src/mesh/test_mesh_small.c:687
+#: src/mesh/test_mesh_small.c:689
 msgid "Test mesh in a small network."
 msgstr ""
 
-#: src/arm/mockup-service.c:41 src/arm/gnunet-service-arm.c:859
+#: src/arm/mockup-service.c:41 src/arm/gnunet-service-arm.c:865
 msgid "Failed to transmit shutdown ACK.\n"
 msgstr ""
 
-#: src/arm/mockup-service.c:46 src/arm/gnunet-service-arm.c:864
+#: src/arm/mockup-service.c:46 src/arm/gnunet-service-arm.c:870
 msgid "Transmitting shutdown ACK.\n"
 msgstr ""
 
-#: src/arm/mockup-service.c:69 src/arm/gnunet-service-arm.c:892
+#: src/arm/mockup-service.c:69 src/arm/gnunet-service-arm.c:898
 msgid "Initiating shutdown as requested by client.\n"
 msgstr ""
 
@@ -2965,33 +2974,33 @@
 msgid "Preparing to stop `%s'\n"
 msgstr ""
 
-#: src/arm/gnunet-service-arm.c:665
+#: src/arm/gnunet-service-arm.c:666
 msgid "Stopping all services\n"
 msgstr ""
 
-#: src/arm/gnunet-service-arm.c:717
+#: src/arm/gnunet-service-arm.c:723
 #, c-format
 msgid "Restarting service `%s'.\n"
 msgstr ""
 
-#: src/arm/gnunet-service-arm.c:790
+#: src/arm/gnunet-service-arm.c:796
 msgid "exit"
 msgstr ""
 
-#: src/arm/gnunet-service-arm.c:795
+#: src/arm/gnunet-service-arm.c:801
 msgid "signal"
 msgstr ""
 
-#: src/arm/gnunet-service-arm.c:800
+#: src/arm/gnunet-service-arm.c:806
 msgid "unknown"
 msgstr ""
 
-#: src/arm/gnunet-service-arm.c:807
+#: src/arm/gnunet-service-arm.c:813
 #, c-format
 msgid "Service `%s' stopped\n"
 msgstr ""
 
-#: src/arm/gnunet-service-arm.c:821
+#: src/arm/gnunet-service-arm.c:827
 #, c-format
 msgid "Service `%s' terminated with status %s/%d, will try to restart it!\n"
 msgstr ""
@@ -3290,7 +3299,7 @@
 #: src/transport/test_plugin_transport_udp.c:185
 #: src/transport/test_plugin_transport_https.c:1271
 #: src/transport/test_plugin_transport.c:202
-#: src/transport/gnunet-service-transport.c:435
+#: src/transport/gnunet-service-transport.c:439
 #: src/transport/test_plugin_transport_http.c:1232
 msgid "Transport service is lacking key configuration settings.  Exiting.\n"
 msgstr ""
@@ -3298,7 +3307,7 @@
 #: src/transport/test_plugin_transport_udp.c:195
 #: src/transport/test_plugin_transport_https.c:1335
 #: src/transport/test_plugin_transport.c:212
-#: src/transport/gnunet-service-transport.c:444
+#: src/transport/gnunet-service-transport.c:448
 #: src/transport/test_plugin_transport_http.c:1255
 msgid "Transport service could not access hostkey.  Exiting.\n"
 msgstr ""
@@ -3311,19 +3320,19 @@
 msgid "Failed to load transport plugin for udp\n"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:1422
-#: src/transport/plugin_transport_wlan.c:1617
-#: src/transport/plugin_transport_wlan.c:1736
+#: src/transport/plugin_transport_wlan.c:1436
+#: src/transport/plugin_transport_wlan.c:1631
+#: src/transport/plugin_transport_wlan.c:1750
 #, c-format
 msgid "Error writing to wlan healper. errno == %d, ERROR: %s\n"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:1854
+#: src/transport/plugin_transport_wlan.c:1868
 #, c-format
 msgid "Wlan Address len %d is wrong\n"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:2710
+#: src/transport/plugin_transport_wlan.c:2728
 #, c-format
 msgid "Finished reading from wlan-helper stdout with code: %d\n"
 msgstr ""
@@ -3358,31 +3367,31 @@
 msgid "# SET QUOTA messages received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:776
+#: src/transport/gnunet-service-transport_neighbours.c:811
 msgid "# messages not sent (no such peer or not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:796
+#: src/transport/gnunet-service-transport_neighbours.c:831
 msgid "# bytes in message queue for other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:864
+#: src/transport/gnunet-service-transport_neighbours.c:899
 msgid "# bandwidth quota violations by other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:882
+#: src/transport/gnunet-service-transport_neighbours.c:917
 msgid "# ms throttling suggested"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:907
+#: src/transport/gnunet-service-transport_neighbours.c:942
 msgid "# KEEPALIVE messages discarded (not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:937
+#: src/transport/gnunet-service-transport_neighbours.c:972
 msgid "# SET QUOTA messages ignored (no such peer)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:949
+#: src/transport/gnunet-service-transport_neighbours.c:984
 msgid "# disconnects due to quota of 0"
 msgstr ""
 
@@ -3504,7 +3513,7 @@
 msgstr ""
 
 #: src/transport/test_plugin_transport_https.c:1284
-#: src/transport/plugin_transport_http.c:3321
+#: src/transport/plugin_transport_http.c:3323
 #: src/transport/test_plugin_transport_http.c:1245
 #, c-format
 msgid "Require valid port number for transport plugin `%s' in configuration!\n"
@@ -3539,6 +3548,10 @@
 "\n"
 msgstr ""
 
+#: src/transport/test_transport_api.c:120
+msgid "Fail! Could not connect peers\n"
+msgstr ""
+
 #: src/transport/gnunet-transport-list-connections.c:91
 #: src/peerinfo-tool/gnunet-peerinfo.c:200
 #: src/core/gnunet-core-list-connections.c:166
@@ -3600,33 +3613,33 @@
 msgid "# HTTP outbound sessions for peers active"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3349
-#: src/transport/plugin_transport_http.c:3378
+#: src/transport/plugin_transport_http.c:3351
+#: src/transport/plugin_transport_http.c:3380
 msgid "Misconfigured address to bind to in configuration!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3404
+#: src/transport/plugin_transport_http.c:3406
 #, c-format
 msgid "Required configuration options missing in section `%s'\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3442
+#: src/transport/plugin_transport_http.c:3444
 msgid ""
 "Could not create a new TLS certificate, program `gnunet-transport-"
 "certificate-creation' could not be started!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3458
+#: src/transport/plugin_transport_http.c:3460
 msgid "No usable TLS certificate found and creating one failed!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3610
+#: src/transport/plugin_transport_http.c:3612
 #, c-format
 msgid ""
 "HTTP Server with %s could not be started on port %u! %s plugin failed!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3626
+#: src/transport/plugin_transport_http.c:3628
 #, c-format
 msgid "Could not initialize curl multi handle, failed to start %s plugin!\n"
 msgstr ""
@@ -3722,55 +3735,55 @@
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:520
+#: src/transport/gnunet-service-transport_validation.c:518
 msgid "# address records discarded"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:606
+#: src/transport/gnunet-service-transport_validation.c:604
 #: src/core/gnunet-service-core.c:4187
 msgid "# PING messages received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:628
+#: src/transport/gnunet-service-transport_validation.c:626
 #, c-format
 msgid ""
 "Not confirming PING with address `%s' since I cannot confirm having this "
 "address.\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:685
+#: src/transport/gnunet-service-transport_validation.c:683
 msgid "# PONGs unicast via reliable transport"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:694
+#: src/transport/gnunet-service-transport_validation.c:692
 msgid "# PONGs multicast to all available addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:758
+#: src/transport/gnunet-service-transport_validation.c:756
 #, c-format
 msgid ""
 "Not transmitting `%s' with `%s', message too big (%u bytes!). This should "
 "not happen.\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:792
+#: src/transport/gnunet-service-transport_validation.c:790
 msgid "# PING without HELLO messages sent"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:864
+#: src/transport/gnunet-service-transport_validation.c:862
 msgid "# address revalidations started"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:923
+#: src/transport/gnunet-service-transport_validation.c:921
 #: src/core/gnunet-service-core.c:4210
 msgid "# PONG messages received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:945
+#: src/transport/gnunet-service-transport_validation.c:943
 msgid "# PONGs dropped, no matching pending validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:961
+#: src/transport/gnunet-service-transport_validation.c:959
 msgid "# PONGs dropped, signature expired"
 msgstr ""
 
@@ -3831,17 +3844,17 @@
 "\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:1279
+#: src/transport/plugin_transport_udp.c:1280
 #, c-format
 msgid "Given `%s' option is out of range: %llu > %u\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:1329
+#: src/transport/plugin_transport_udp.c:1330
 #, c-format
 msgid "Invalid IPv6 address: `%s'\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:1455
+#: src/transport/plugin_transport_udp.c:1456
 msgid "Failed to open UDP sockets\n"
 msgstr ""
 
@@ -4202,22 +4215,22 @@
 msgid "Unable to initialize SQLite: %s.\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_sqlite.c:662
+#: src/datastore/plugin_datastore_sqlite.c:677
 msgid "Invalid data in database.  Trying to fix (by deletion).\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_sqlite.c:1115
+#: src/datastore/plugin_datastore_sqlite.c:1130
 msgid "sqlite version to old to determine size, assuming zero\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_sqlite.c:1134
+#: src/datastore/plugin_datastore_sqlite.c:1149
 #, c-format
 msgid ""
 "Using sqlite page utilization to estimate payload (%llu pages of size %llu "
 "bytes)\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_sqlite.c:1173
+#: src/datastore/plugin_datastore_sqlite.c:1188
 msgid "Sqlite database running\n"
 msgstr ""
 
@@ -4267,8 +4280,8 @@
 
 #: src/datastore/gnunet-service-datastore.c:681
 #: src/datastore/gnunet-service-datastore.c:735
-#: src/datastore/gnunet-service-datastore.c:953
-#: src/datastore/gnunet-service-datastore.c:1438
+#: src/datastore/gnunet-service-datastore.c:956
+#: src/datastore/gnunet-service-datastore.c:1441
 msgid "# reserved"
 msgstr ""
 
@@ -4276,74 +4289,74 @@
 msgid "Could not find matching reservation"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:835
+#: src/datastore/gnunet-service-datastore.c:838
 #, c-format
 msgid "Need %llu bytes more space (%llu allowed, using %llu)\n"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1001
+#: src/datastore/gnunet-service-datastore.c:1004
 msgid "# GET requests received"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1015
+#: src/datastore/gnunet-service-datastore.c:1018
 msgid "# requests filtered by bloomfilter"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1043
+#: src/datastore/gnunet-service-datastore.c:1046
 msgid "# UPDATE requests received"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1077
+#: src/datastore/gnunet-service-datastore.c:1080
 msgid "# GET REPLICATION requests received"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1112
+#: src/datastore/gnunet-service-datastore.c:1115
 msgid "# GET ZERO ANONYMITY requests received"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1139
+#: src/datastore/gnunet-service-datastore.c:1142
 msgid "Content not found"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1149
+#: src/datastore/gnunet-service-datastore.c:1152
 msgid "# bytes removed (explicit request)"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1183
+#: src/datastore/gnunet-service-datastore.c:1186
 msgid "# REMOVE requests received"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1227
+#: src/datastore/gnunet-service-datastore.c:1230
 #, c-format
 msgid "Datastore payload inaccurate (%lld < %lld).  Trying to fix.\n"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1300
+#: src/datastore/gnunet-service-datastore.c:1303
 #: src/datastore/test_plugin_datastore.c:322
 #: src/datastore/perf_plugin_datastore.c:420
 #, c-format
 msgid "Loading `%s' datastore plugin\n"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1309
+#: src/datastore/gnunet-service-datastore.c:1312
 #, c-format
 msgid "Failed to load datastore plugin for `%s'\n"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1488
+#: src/datastore/gnunet-service-datastore.c:1491
 msgid "# quota"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1490
+#: src/datastore/gnunet-service-datastore.c:1493
 msgid "# cache size"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1500
+#: src/datastore/gnunet-service-datastore.c:1503
 #, c-format
 msgid "Could not use specified filename `%s' for bloomfilter.\n"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1513
+#: src/datastore/gnunet-service-datastore.c:1516
 msgid "Failed to initialize bloomfilter.\n"
 msgstr ""
 
@@ -4479,21 +4492,21 @@
 msgid "Failed to connect to the dv service!\n"
 msgstr ""
 
-#: src/nse/gnunet-service-nse.c:864
+#: src/nse/gnunet-service-nse.c:866
 #, c-format
 msgid "Proof of work invalid: %llu!\n"
 msgstr ""
 
-#: src/nse/gnunet-service-nse.c:1286 src/nse/gnunet-service-nse.c:1305
-#: src/nse/gnunet-service-nse.c:1326
+#: src/nse/gnunet-service-nse.c:1288 src/nse/gnunet-service-nse.c:1307
+#: src/nse/gnunet-service-nse.c:1328
 msgid "NSE service is lacking key configuration settings.  Exiting.\n"
 msgstr ""
 
-#: src/nse/gnunet-service-nse.c:1293
+#: src/nse/gnunet-service-nse.c:1295
 msgid "Invalid work requirement for NSE service. Exiting.\n"
 msgstr ""
 
-#: src/nse/gnunet-service-nse.c:1314
+#: src/nse/gnunet-service-nse.c:1316
 msgid "NSE service could not access hostkey.  Exiting.\n"
 msgstr ""
 

Modified: gnunet/po/sv.gmo
===================================================================
(Binary files differ)

Modified: gnunet/po/sv.po
===================================================================
--- gnunet/po/sv.po     2011-10-04 09:57:35 UTC (rev 17161)
+++ gnunet/po/sv.po     2011-10-04 11:09:39 UTC (rev 17162)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: GNUnet 0.7.0b\n"
 "Report-Msgid-Bugs-To: address@hidden"
-"POT-Creation-Date: 2011-09-13 14:44+0200\n"
+"POT-Creation-Date: 2011-09-19 13:28+0200\n"
 "PO-Revision-Date: 2006-01-21 17:16+0100\n"
 "Last-Translator: Daniel Nylander <address@hidden>\n"
 "Language-Team: Swedish <address@hidden>\n"
@@ -75,61 +75,65 @@
 msgid "Failed to start %s\n"
 msgstr "Misslyckades att starta samling.\n"
 
-#: src/nat/nat.c:1096 src/nat/nat.c:1113
+#: src/nat/nat.c:1096
 #, fuzzy, c-format
 msgid "Malformed %s `%s' given in configuration!\n"
 msgstr "Kunde inte spara konfiguration!"
 
-#: src/nat/nat.c:1167 src/nat/nat.c:1177
+#: src/nat/nat.c:1158 src/nat/nat.c:1168
 #, c-format
 msgid ""
 "Configuration requires `%s', but binary is not installed properly (SUID bit "
 "not set).  Option disabled.\n"
 msgstr ""
 
-#: src/nat/nat.c:1309
+#: src/nat/nat.c:1300
 msgid "Internal IP address not known, cannot use ICMP NAT traversal method\n"
 msgstr ""
 
-#: src/nat/nat.c:1321
+#: src/nat/nat.c:1312
 #, c-format
 msgid "Running gnunet-helper-nat-client %s %s %u\n"
 msgstr ""
 
-#: src/nat/gnunet-nat-server.c:290
+#: src/nat/gnunet-nat-server.c:289
 #, c-format
 msgid "Please pass valid port number as the first argument! (got `%s')\n"
 msgstr ""
 
-#: src/nat/gnunet-nat-server.c:329
+#: src/nat/gnunet-nat-server.c:328
 msgid "GNUnet NAT traversal test helper daemon"
 msgstr ""
 
-#: src/nat/nat_test.c:348
+#: src/nat/nat_test.c:349
 #, fuzzy
 msgid "Failed to connect to `gnunet-nat-server'\n"
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
-#: src/nat/nat_test.c:418
+#: src/nat/nat_test.c:419
 #, c-format
 msgid "Failed to create listen socket bound to `%s' for NAT test: %s\n"
 msgstr ""
 
-#: src/vpn/gnunet-daemon-vpn.c:1275 src/vpn/gnunet-daemon-exit.c:1455
-#: src/template/gnunet-template.c:68 src/core/test_core_api_send_to_self.c:217
+#: src/vpn/gnunet-daemon-vpn.c:1279 src/template/gnunet-template.c:68
+#: src/core/test_core_api_send_to_self.c:217
 #, fuzzy
 msgid "help text"
 msgstr "hjälptext för -t"
 
+#: src/vpn/gnunet-daemon-exit.c:1493
+msgid "Daemon to run to provide an IP exit node for the VPN"
+msgstr ""
+
 #: src/datacache/datacache.c:108 src/datacache/datacache.c:236
-#: src/datastore/gnunet-service-datastore.c:821
+#: src/datastore/gnunet-service-datastore.c:824
 #, fuzzy
 msgid "# bytes stored"
 msgstr "# byte krypterade"
 
 #: src/datacache/datacache.c:134 src/datacache/datacache.c:142
-#: src/datastore/gnunet-service-datastore.c:1292
-#: src/datastore/gnunet-service-datastore.c:1483
+#: src/datastore/gnunet-service-datastore.c:1295
+#: src/datastore/gnunet-service-datastore.c:1486
 #: src/datastore/test_plugin_datastore.c:192
 #: src/datastore/test_plugin_datastore.c:315
 #: src/datastore/perf_plugin_datastore.c:309
@@ -166,13 +170,13 @@
 #: src/datacache/plugin_datacache_sqlite.c:122
 #: src/datacache/plugin_datacache_sqlite.c:191
 #: src/datacache/plugin_datacache_sqlite.c:232
-#: src/datacache/plugin_datacache_sqlite.c:296
-#: src/datacache/plugin_datacache_sqlite.c:305
-#: src/datacache/plugin_datacache_sqlite.c:318
-#: src/datacache/plugin_datacache_sqlite.c:325
-#: src/datacache/plugin_datacache_sqlite.c:338
-#: src/datacache/plugin_datacache_sqlite.c:346
-#: src/datacache/plugin_datacache_sqlite.c:354
+#: src/datacache/plugin_datacache_sqlite.c:295
+#: src/datacache/plugin_datacache_sqlite.c:304
+#: src/datacache/plugin_datacache_sqlite.c:315
+#: src/datacache/plugin_datacache_sqlite.c:322
+#: src/datacache/plugin_datacache_sqlite.c:332
+#: src/datacache/plugin_datacache_sqlite.c:340
+#: src/datacache/plugin_datacache_sqlite.c:348
 #: src/datacache/plugin_datacache_mysql.c:103
 #: src/datacache/plugin_datacache_mysql.c:110
 #: src/datacache/plugin_datacache_mysql.c:517
@@ -192,12 +196,12 @@
 msgid "`%s' failed at %s:%d with error: %s\n"
 msgstr "\"%s\" misslyckades vid %s:%d med fel: %s\n"
 
-#: src/datacache/plugin_datacache_sqlite.c:419
+#: src/datacache/plugin_datacache_sqlite.c:413
 msgid "Sqlite datacache running\n"
 msgstr ""
 
-#: src/datacache/plugin_datacache_sqlite.c:454
-#: src/datastore/plugin_datastore_sqlite.c:405
+#: src/datacache/plugin_datacache_sqlite.c:446
+#: src/datastore/plugin_datastore_sqlite.c:420
 msgid "Tried to close sqlite without finalizing all prepared statements.\n"
 msgstr ""
 
@@ -239,7 +243,7 @@
 #: src/testing/test_testing_topology_blacklist.c:448
 #: src/testing/testing_peergroup.c:876
 #: src/testing/test_testing_large_topology.c:1022
-#: src/dht/test_dht_multipeer.c:864 src/dht/gnunet-dht-driver.c:3907
+#: src/dht/test_dht_multipeer.c:864 src/dht/gnunet-dht-driver.c:3897
 #: src/dv/test_transport_api_dv.c:1132
 #, c-format
 msgid "Invalid value `%s' for option `%s' in section `%s': expected float\n"
@@ -317,23 +321,23 @@
 msgid "Finished copying all blacklist files!\n"
 msgstr ""
 
-#: src/testing/testing_group.c:3581 src/testing/testing_group.c:3720
+#: src/testing/testing_group.c:3580 src/testing/testing_group.c:3717
 #: src/testing/testing_group.c:4925 src/testing/testing_group.c:5066
 msgid "Delaying connect, we have too many outstanding connections!\n"
 msgstr ""
 
-#: src/testing/testing_group.c:3591 src/testing/testing_group.c:4935
+#: src/testing/testing_group.c:3590 src/testing/testing_group.c:4935
 #: src/testing/testing_group.c:5076
 #, c-format
 msgid "Creating connection, outstanding_connections is %d\n"
 msgstr ""
 
-#: src/testing/testing_group.c:3603
+#: src/testing/testing_group.c:3602
 #, c-format
 msgid "Offering Hello of peer %s to peer %s\n"
 msgstr ""
 
-#: src/testing/testing_group.c:3730
+#: src/testing/testing_group.c:3728
 #, c-format
 msgid "Creating connection, outstanding_connections is %d (max %d)\n"
 msgstr ""
@@ -508,148 +512,148 @@
 msgid "Could not create configuration for peer number %u on `%s'!\n"
 msgstr ""
 
-#: src/testing/testing_group.c:6298 src/testing/testing.c:1272
+#: src/testing/testing_group.c:6298 src/testing/testing.c:1273
 #, c-format
 msgid "Could not start `%s' process to copy configuration directory.\n"
 msgstr ""
 
-#: src/testing/testing.c:208
+#: src/testing/testing.c:209
 msgid "`scp' does not seem to terminate (timeout copying config).\n"
 msgstr ""
 
-#: src/testing/testing.c:222 src/testing/testing.c:822
+#: src/testing/testing.c:223 src/testing/testing.c:823
 #, fuzzy
 msgid "`scp' did not complete cleanly.\n"
 msgstr "\"%s\" är inte ansluten till någon ändpunkt.\n"
 
-#: src/testing/testing.c:245
+#: src/testing/testing.c:246
 msgid "Failed to create pipe for `gnunet-peerinfo' process.\n"
 msgstr ""
 
-#: src/testing/testing.c:246
+#: src/testing/testing.c:247
 #, fuzzy
 msgid "Failed to create pipe for `ssh' process.\n"
 msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
 
-#: src/testing/testing.c:302
+#: src/testing/testing.c:303
 #, fuzzy, c-format
 msgid "Could not start `%s' process to create hostkey.\n"
 msgstr "Kunde inte skapa värdnyckel!\n"
 
-#: src/testing/testing.c:309
+#: src/testing/testing.c:310
 #, fuzzy
 msgid "Failed to start `gnunet-peerinfo' process.\n"
 msgstr "Misslyckades att starta samling.\n"
 
-#: src/testing/testing.c:310 src/testing/testing.c:508
+#: src/testing/testing.c:311 src/testing/testing.c:509
 #, fuzzy
 msgid "Failed to start `ssh' process.\n"
 msgstr "Misslyckades att starta samling.\n"
 
-#: src/testing/testing.c:372
+#: src/testing/testing.c:373
 #, c-format
 msgid "Error reading from gnunet-peerinfo: %s\n"
 msgstr ""
 
-#: src/testing/testing.c:376
+#: src/testing/testing.c:377
 msgid "Malformed output from gnunet-peerinfo!\n"
 msgstr ""
 
-#: src/testing/testing.c:386
+#: src/testing/testing.c:387
 #, fuzzy
 msgid "`Failed to get hostkey!\n"
 msgstr "Kunde inte skapa värdnyckel!\n"
 
-#: src/testing/testing.c:420
+#: src/testing/testing.c:421
 msgid "`Failed while waiting for topology setup!\n"
 msgstr ""
 
-#: src/testing/testing.c:500
+#: src/testing/testing.c:501
 #, c-format
 msgid "Could not start `%s' process to start GNUnet.\n"
 msgstr ""
 
-#: src/testing/testing.c:507
+#: src/testing/testing.c:508
 #, fuzzy
 msgid "Failed to start `gnunet-arm' process.\n"
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
-#: src/testing/testing.c:531 src/testing/testing.c:630
+#: src/testing/testing.c:532 src/testing/testing.c:631
 msgid "`gnunet-arm' does not seem to terminate.\n"
 msgstr ""
 
-#: src/testing/testing.c:532 src/testing/testing.c:631
-#: src/testing/testing.c:651
+#: src/testing/testing.c:533 src/testing/testing.c:632
+#: src/testing/testing.c:652
 msgid "`ssh' does not seem to terminate.\n"
 msgstr ""
 
-#: src/testing/testing.c:571 src/testing/testing.c:2072
-#: src/testing/testing.c:2091
+#: src/testing/testing.c:572 src/testing/testing.c:2074
+#: src/testing/testing.c:2093
 #, fuzzy
 msgid "Failed to connect to transport service!\n"
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
-#: src/testing/testing.c:600
+#: src/testing/testing.c:601
 msgid "Unable to get HELLO for peer!\n"
 msgstr ""
 
-#: src/testing/testing.c:650
+#: src/testing/testing.c:651
 msgid "`gnunet-arm' terminated with non-zero exit status (or timed out)!\n"
 msgstr ""
 
-#: src/testing/testing.c:673 src/testing/testing.c:707
+#: src/testing/testing.c:674 src/testing/testing.c:708
 msgid "either `gnunet-arm' or `ssh' does not seem to terminate.\n"
 msgstr ""
 
-#: src/testing/testing.c:688 src/testing/testing.c:737
+#: src/testing/testing.c:689 src/testing/testing.c:738
 msgid "shutdown (either `gnunet-arm' or `ssh') did not complete cleanly.\n"
 msgstr ""
 
-#: src/testing/testing.c:810
+#: src/testing/testing.c:811
 msgid "`scp' does not seem to terminate.\n"
 msgstr ""
 
-#: src/testing/testing.c:988
+#: src/testing/testing.c:989
 #, fuzzy, c-format
 msgid "Starting service %s for peer `%4s'\n"
 msgstr "Startade samling \"%s\".\n"
 
-#: src/testing/testing.c:1360 src/testing/testing.c:1443
-#: src/testing/testing.c:1581
+#: src/testing/testing.c:1361 src/testing/testing.c:1444
+#: src/testing/testing.c:1582
 #, fuzzy, c-format
 msgid "Terminating peer `%4s'\n"
 msgstr "Åtkomst nekad för \"%s\" vid %s:%d.\n"
 
-#: src/testing/testing.c:1533
+#: src/testing/testing.c:1534
 #, fuzzy, c-format
 msgid "Setting d->dead on peer `%4s'\n"
 msgstr "Startade samling \"%s\".\n"
 
-#: src/testing/testing.c:1668
+#: src/testing/testing.c:1669
 msgid "Peer not yet running, can not change configuration at this point."
 msgstr ""
 
-#: src/testing/testing.c:1676
+#: src/testing/testing.c:1677
 #, fuzzy
 msgid "Failed to write new configuration to disk."
 msgstr "Kunde inte spara konfiguration!"
 
-#: src/testing/testing.c:1707
+#: src/testing/testing.c:1708
 #, c-format
 msgid "Could not start `%s' process to copy configuration file.\n"
 msgstr ""
 
-#: src/testing/testing.c:1710
+#: src/testing/testing.c:1711
 #, fuzzy
 msgid "Failed to copy new configuration to remote machine."
 msgstr "Kunde inte spara konfiguration!"
 
-#: src/testing/testing.c:1881
+#: src/testing/testing.c:1883
 #, fuzzy
 msgid "Peers failed to connect"
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
-#: src/testing/testing.c:2036
+#: src/testing/testing.c:2038
 #, fuzzy
 msgid "Failed to connect to core service of first peer!\n"
 msgstr "Misslyckades att starta samling.\n"
@@ -836,7 +840,7 @@
 msgstr ""
 
 #: src/hostlist/hostlist-server.c:556
-#: src/transport/gnunet-service-transport.c:458
+#: src/transport/gnunet-service-transport.c:462
 #: src/peerinfo-tool/gnunet-peerinfo.c:208 src/core/gnunet-service-core.c:4607
 #, fuzzy, c-format
 msgid "Could not access PEERINFO service.  Exiting.\n"
@@ -1057,8 +1061,8 @@
 
 #: src/topology/gnunet-daemon-topology.c:676
 #: src/topology/gnunet-daemon-topology.c:778
-#: src/transport/gnunet-service-transport_neighbours.c:432
-#: src/transport/gnunet-service-transport_neighbours.c:627
+#: src/transport/gnunet-service-transport_neighbours.c:465
+#: src/transport/gnunet-service-transport_neighbours.c:662
 #, fuzzy
 msgid "# peers connected"
 msgstr "# av anslutna parter"
@@ -1316,24 +1320,29 @@
 "Failed to establish TCP connection to `%s:%u', no further addresses to try.\n"
 msgstr "Misslyckades att starta samling.\n"
 
-#: src/util/connection.c:852 src/util/connection.c:1023
+#: src/util/connection.c:852 src/util/connection.c:1028
 #, fuzzy, c-format
 msgid "Trying to connect to `%s' (%p)\n"
 msgstr "Kan inte ansluta till %u.%u.%u.%u:%u: %s\n"
 
-#: src/util/connection.c:1013
+#: src/util/connection.c:863
 #, fuzzy, c-format
+msgid "Failed to connect to `%s' (%p)\n"
+msgstr "Kan inte ansluta till %u.%u.%u.%u:%u: %s\n"
+
+#: src/util/connection.c:1018
+#, fuzzy, c-format
 msgid "Attempt to connect to `%s' failed\n"
 msgstr " Anslutning misslyckades\n"
 
-#: src/util/connection.c:1529
+#: src/util/connection.c:1534
 #, c-format
 msgid ""
 "Could not satisfy pending transmission request, socket closed or connect "
 "failed (%p).\n"
 msgstr ""
 
-#: src/util/connection.c:1565
+#: src/util/connection.c:1570
 #, fuzzy, c-format
 msgid "Failed to send to `%s': %s\n"
 msgstr "Misslyckades att leverera \"%s\" meddelande.\n"
@@ -1447,7 +1456,7 @@
 "GNUNET_SERVER_receive_done after %llums\n"
 msgstr ""
 
-#: src/util/network.c:1193
+#: src/util/network.c:1194
 #, c-format
 msgid ""
 "Fatal internal logic error, process hangs in `%s' (abort with CTRL-C)!\n"
@@ -1739,7 +1748,7 @@
 "Argument som är obligatoriska för långa flaggor är också obligatoriska för "
 "korta flaggor.\n"
 
-#: src/util/getopt_helpers.c:254 src/util/getopt_helpers.c:282
+#: src/util/getopt_helpers.c:253 src/util/getopt_helpers.c:281
 #, c-format
 msgid "You must pass a number to the `%s' option.\n"
 msgstr "Du måste skicka med ett nummer till flaggan \"%s\".\n"
@@ -2139,7 +2148,7 @@
 
 #: src/fs/gnunet-download.c:263 src/fs/gnunet-unindex.c:169
 #: src/fs/gnunet-search.c:297 src/fs/gnunet-publish.c:585
-#: src/mesh/test_mesh_small.c:674 src/dht/gnunet-dht-get-peer.c:190
+#: src/mesh/test_mesh_small.c:676 src/dht/gnunet-dht-get-peer.c:190
 #: src/dht/gnunet-dht-put.c:176 src/dht/gnunet-dht-get.c:204
 #: src/nse/gnunet-nse-profiler.c:655
 msgid "be verbose (print progress information)"
@@ -2589,75 +2598,75 @@
 msgid "MAGIC mismatch.  This is not a GNUnet directory.\n"
 msgstr "Filformatsfel (inte en GNUnet-katalog?)\n"
 
-#: src/fs/gnunet-service-fs_cp.c:693
+#: src/fs/gnunet-service-fs_cp.c:694
 #, c-format
 msgid "Migration of content to peer `%s' blocked for %llu ms\n"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:728
+#: src/fs/gnunet-service-fs_cp.c:729
 #, fuzzy
 msgid "# replies transmitted to other peers"
 msgstr "# byte skickade av typen %d"
 
-#: src/fs/gnunet-service-fs_cp.c:734
+#: src/fs/gnunet-service-fs_cp.c:735
 msgid "# replies dropped"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:763 src/fs/gnunet-service-fs_cp.c:879
-#: src/fs/gnunet-service-fs_cp.c:1289 src/fs/gnunet-service-fs_cp.c:1326
+#: src/fs/gnunet-service-fs_cp.c:764 src/fs/gnunet-service-fs_cp.c:880
+#: src/fs/gnunet-service-fs_cp.c:1290 src/fs/gnunet-service-fs_cp.c:1327
 msgid "# P2P searches active"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:836
+#: src/fs/gnunet-service-fs_cp.c:837
 msgid "# artificial delays introduced (ms)"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:899
+#: src/fs/gnunet-service-fs_cp.c:900
 #, fuzzy
 msgid "# replies received for other peers"
 msgstr "# byte mottagna av typen %d"
 
-#: src/fs/gnunet-service-fs_cp.c:913
+#: src/fs/gnunet-service-fs_cp.c:914
 msgid "# replies dropped due to insufficient cover traffic"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:951
+#: src/fs/gnunet-service-fs_cp.c:952
 msgid "# P2P searches destroyed due to ultimate reply"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1018
+#: src/fs/gnunet-service-fs_cp.c:1019
 msgid "# requests done for free (low load)"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1042
+#: src/fs/gnunet-service-fs_cp.c:1043
 msgid "# request dropped, priority insufficient"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1052
+#: src/fs/gnunet-service-fs_cp.c:1053
 msgid "# requests done for a price (normal load)"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1131
+#: src/fs/gnunet-service-fs_cp.c:1132
 msgid "# GET requests received (from other peers)"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1165
+#: src/fs/gnunet-service-fs_cp.c:1166
 msgid "# requests dropped due to initiator not being connected"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1189
+#: src/fs/gnunet-service-fs_cp.c:1190
 msgid "# requests dropped due to missing reverse route"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1255
+#: src/fs/gnunet-service-fs_cp.c:1256
 msgid "# requests dropped due TTL underflow"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1283
+#: src/fs/gnunet-service-fs_cp.c:1284
 msgid "# requests dropped due to higher-TTL request"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1324
+#: src/fs/gnunet-service-fs_cp.c:1325
 #, fuzzy
 msgid "# P2P query messages received and processed"
 msgstr "# krypterade PONG-meddelanden mottagna"
@@ -2982,20 +2991,20 @@
 msgid "Failed to load block plugin `%s'\n"
 msgstr "Kunde inte slå upp \"%s\": %s\n"
 
-#: src/mesh/test_mesh_small.c:687
+#: src/mesh/test_mesh_small.c:689
 msgid "Test mesh in a small network."
 msgstr ""
 
-#: src/arm/mockup-service.c:41 src/arm/gnunet-service-arm.c:859
+#: src/arm/mockup-service.c:41 src/arm/gnunet-service-arm.c:865
 #, fuzzy
 msgid "Failed to transmit shutdown ACK.\n"
 msgstr "Misslyckades att starta samling.\n"
 
-#: src/arm/mockup-service.c:46 src/arm/gnunet-service-arm.c:864
+#: src/arm/mockup-service.c:46 src/arm/gnunet-service-arm.c:870
 msgid "Transmitting shutdown ACK.\n"
 msgstr ""
 
-#: src/arm/mockup-service.c:69 src/arm/gnunet-service-arm.c:892
+#: src/arm/mockup-service.c:69 src/arm/gnunet-service-arm.c:898
 msgid "Initiating shutdown as requested by client.\n"
 msgstr ""
 
@@ -3048,34 +3057,34 @@
 msgid "Preparing to stop `%s'\n"
 msgstr "Startade samling \"%s\".\n"
 
-#: src/arm/gnunet-service-arm.c:665
+#: src/arm/gnunet-service-arm.c:666
 msgid "Stopping all services\n"
 msgstr ""
 
-#: src/arm/gnunet-service-arm.c:717
+#: src/arm/gnunet-service-arm.c:723
 #, fuzzy, c-format
 msgid "Restarting service `%s'.\n"
 msgstr "Startade samling \"%s\".\n"
 
-#: src/arm/gnunet-service-arm.c:790
+#: src/arm/gnunet-service-arm.c:796
 msgid "exit"
 msgstr ""
 
-#: src/arm/gnunet-service-arm.c:795
+#: src/arm/gnunet-service-arm.c:801
 msgid "signal"
 msgstr ""
 
-#: src/arm/gnunet-service-arm.c:800
+#: src/arm/gnunet-service-arm.c:806
 #, fuzzy
 msgid "unknown"
 msgstr "Okänt fel"
 
-#: src/arm/gnunet-service-arm.c:807
+#: src/arm/gnunet-service-arm.c:813
 #, fuzzy, c-format
 msgid "Service `%s' stopped\n"
 msgstr "Tjänst borttagen.\n"
 
-#: src/arm/gnunet-service-arm.c:821
+#: src/arm/gnunet-service-arm.c:827
 #, c-format
 msgid "Service `%s' terminated with status %s/%d, will try to restart it!\n"
 msgstr ""
@@ -3376,7 +3385,7 @@
 #: src/transport/test_plugin_transport_udp.c:185
 #: src/transport/test_plugin_transport_https.c:1271
 #: src/transport/test_plugin_transport.c:202
-#: src/transport/gnunet-service-transport.c:435
+#: src/transport/gnunet-service-transport.c:439
 #: src/transport/test_plugin_transport_http.c:1232
 msgid "Transport service is lacking key configuration settings.  Exiting.\n"
 msgstr ""
@@ -3384,7 +3393,7 @@
 #: src/transport/test_plugin_transport_udp.c:195
 #: src/transport/test_plugin_transport_https.c:1335
 #: src/transport/test_plugin_transport.c:212
-#: src/transport/gnunet-service-transport.c:444
+#: src/transport/gnunet-service-transport.c:448
 #: src/transport/test_plugin_transport_http.c:1255
 msgid "Transport service could not access hostkey.  Exiting.\n"
 msgstr ""
@@ -3399,19 +3408,19 @@
 msgid "Failed to load transport plugin for udp\n"
 msgstr "Kunde inte slå upp \"%s\": %s\n"
 
-#: src/transport/plugin_transport_wlan.c:1422
-#: src/transport/plugin_transport_wlan.c:1617
-#: src/transport/plugin_transport_wlan.c:1736
+#: src/transport/plugin_transport_wlan.c:1436
+#: src/transport/plugin_transport_wlan.c:1631
+#: src/transport/plugin_transport_wlan.c:1750
 #, c-format
 msgid "Error writing to wlan healper. errno == %d, ERROR: %s\n"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:1854
+#: src/transport/plugin_transport_wlan.c:1868
 #, c-format
 msgid "Wlan Address len %d is wrong\n"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:2710
+#: src/transport/plugin_transport_wlan.c:2728
 #, c-format
 msgid "Finished reading from wlan-helper stdout with code: %d\n"
 msgstr ""
@@ -3449,31 +3458,31 @@
 msgid "# SET QUOTA messages received"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/gnunet-service-transport_neighbours.c:776
+#: src/transport/gnunet-service-transport_neighbours.c:811
 msgid "# messages not sent (no such peer or not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:796
+#: src/transport/gnunet-service-transport_neighbours.c:831
 msgid "# bytes in message queue for other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:864
+#: src/transport/gnunet-service-transport_neighbours.c:899
 msgid "# bandwidth quota violations by other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:882
+#: src/transport/gnunet-service-transport_neighbours.c:917
 msgid "# ms throttling suggested"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:907
+#: src/transport/gnunet-service-transport_neighbours.c:942
 msgid "# KEEPALIVE messages discarded (not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:937
+#: src/transport/gnunet-service-transport_neighbours.c:972
 msgid "# SET QUOTA messages ignored (no such peer)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:949
+#: src/transport/gnunet-service-transport_neighbours.c:984
 msgid "# disconnects due to quota of 0"
 msgstr ""
 
@@ -3596,7 +3605,7 @@
 msgstr "Misslyckades att leverera \"%s\" meddelande.\n"
 
 #: src/transport/test_plugin_transport_https.c:1284
-#: src/transport/plugin_transport_http.c:3321
+#: src/transport/plugin_transport_http.c:3323
 #: src/transport/test_plugin_transport_http.c:1245
 #, c-format
 msgid "Require valid port number for transport plugin `%s' in configuration!\n"
@@ -3632,6 +3641,11 @@
 "\n"
 msgstr ""
 
+#: src/transport/test_transport_api.c:120
+#, fuzzy
+msgid "Fail! Could not connect peers\n"
+msgstr "\"%s\": Kunde inte ansluta.\n"
+
 #: src/transport/gnunet-transport-list-connections.c:91
 #: src/peerinfo-tool/gnunet-peerinfo.c:200
 #: src/core/gnunet-core-list-connections.c:166
@@ -3696,34 +3710,34 @@
 msgid "# HTTP outbound sessions for peers active"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3349
-#: src/transport/plugin_transport_http.c:3378
+#: src/transport/plugin_transport_http.c:3351
+#: src/transport/plugin_transport_http.c:3380
 #, fuzzy
 msgid "Misconfigured address to bind to in configuration!\n"
 msgstr "Inga applikationer definierade i konfiguration!\n"
 
-#: src/transport/plugin_transport_http.c:3404
+#: src/transport/plugin_transport_http.c:3406
 #, c-format
 msgid "Required configuration options missing in section `%s'\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3442
+#: src/transport/plugin_transport_http.c:3444
 msgid ""
 "Could not create a new TLS certificate, program `gnunet-transport-"
 "certificate-creation' could not be started!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3458
+#: src/transport/plugin_transport_http.c:3460
 msgid "No usable TLS certificate found and creating one failed!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3610
+#: src/transport/plugin_transport_http.c:3612
 #, c-format
 msgid ""
 "HTTP Server with %s could not be started on port %u! %s plugin failed!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3626
+#: src/transport/plugin_transport_http.c:3628
 #, c-format
 msgid "Could not initialize curl multi handle, failed to start %s plugin!\n"
 msgstr ""
@@ -3828,58 +3842,58 @@
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:520
+#: src/transport/gnunet-service-transport_validation.c:518
 msgid "# address records discarded"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:606
+#: src/transport/gnunet-service-transport_validation.c:604
 #: src/core/gnunet-service-core.c:4187
 #, fuzzy
 msgid "# PING messages received"
 msgstr "# PING-meddelanden skapade"
 
-#: src/transport/gnunet-service-transport_validation.c:628
+#: src/transport/gnunet-service-transport_validation.c:626
 #, c-format
 msgid ""
 "Not confirming PING with address `%s' since I cannot confirm having this "
 "address.\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:685
+#: src/transport/gnunet-service-transport_validation.c:683
 msgid "# PONGs unicast via reliable transport"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:694
+#: src/transport/gnunet-service-transport_validation.c:692
 msgid "# PONGs multicast to all available addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:758
+#: src/transport/gnunet-service-transport_validation.c:756
 #, c-format
 msgid ""
 "Not transmitting `%s' with `%s', message too big (%u bytes!). This should "
 "not happen.\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:792
+#: src/transport/gnunet-service-transport_validation.c:790
 #, fuzzy
 msgid "# PING without HELLO messages sent"
 msgstr "# PING-meddelanden i klartext skickade"
 
-#: src/transport/gnunet-service-transport_validation.c:864
+#: src/transport/gnunet-service-transport_validation.c:862
 msgid "# address revalidations started"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:923
+#: src/transport/gnunet-service-transport_validation.c:921
 #: src/core/gnunet-service-core.c:4210
 #, fuzzy
 msgid "# PONG messages received"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/gnunet-service-transport_validation.c:945
+#: src/transport/gnunet-service-transport_validation.c:943
 msgid "# PONGs dropped, no matching pending validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:961
+#: src/transport/gnunet-service-transport_validation.c:959
 msgid "# PONGs dropped, signature expired"
 msgstr ""
 
@@ -3947,17 +3961,17 @@
 "\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:1279
+#: src/transport/plugin_transport_udp.c:1280
 #, c-format
 msgid "Given `%s' option is out of range: %llu > %u\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:1329
+#: src/transport/plugin_transport_udp.c:1330
 #, fuzzy, c-format
 msgid "Invalid IPv6 address: `%s'\n"
 msgstr "Ogiltigt svar på \"%s\".\n"
 
-#: src/transport/plugin_transport_udp.c:1455
+#: src/transport/plugin_transport_udp.c:1456
 #, fuzzy
 msgid "Failed to open UDP sockets\n"
 msgstr "Misslyckades att binda till UDP6-port %d.\n"
@@ -4330,22 +4344,22 @@
 msgid "Unable to initialize SQLite: %s.\n"
 msgstr "Kunde inte initiera SQLite.\n"
 
-#: src/datastore/plugin_datastore_sqlite.c:662
+#: src/datastore/plugin_datastore_sqlite.c:677
 msgid "Invalid data in database.  Trying to fix (by deletion).\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_sqlite.c:1115
+#: src/datastore/plugin_datastore_sqlite.c:1130
 msgid "sqlite version to old to determine size, assuming zero\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_sqlite.c:1134
+#: src/datastore/plugin_datastore_sqlite.c:1149
 #, c-format
 msgid ""
 "Using sqlite page utilization to estimate payload (%llu pages of size %llu "
 "bytes)\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_sqlite.c:1173
+#: src/datastore/plugin_datastore_sqlite.c:1188
 msgid "Sqlite database running\n"
 msgstr ""
 
@@ -4397,8 +4411,8 @@
 
 #: src/datastore/gnunet-service-datastore.c:681
 #: src/datastore/gnunet-service-datastore.c:735
-#: src/datastore/gnunet-service-datastore.c:953
-#: src/datastore/gnunet-service-datastore.c:1438
+#: src/datastore/gnunet-service-datastore.c:956
+#: src/datastore/gnunet-service-datastore.c:1441
 msgid "# reserved"
 msgstr ""
 
@@ -4406,78 +4420,78 @@
 msgid "Could not find matching reservation"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:835
+#: src/datastore/gnunet-service-datastore.c:838
 #, c-format
 msgid "Need %llu bytes more space (%llu allowed, using %llu)\n"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1001
+#: src/datastore/gnunet-service-datastore.c:1004
 #, fuzzy
 msgid "# GET requests received"
 msgstr "# byte mottogs via TCP"
 
-#: src/datastore/gnunet-service-datastore.c:1015
+#: src/datastore/gnunet-service-datastore.c:1018
 msgid "# requests filtered by bloomfilter"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1043
+#: src/datastore/gnunet-service-datastore.c:1046
 #, fuzzy
 msgid "# UPDATE requests received"
 msgstr "# byte mottogs via TCP"
 
-#: src/datastore/gnunet-service-datastore.c:1077
+#: src/datastore/gnunet-service-datastore.c:1080
 msgid "# GET REPLICATION requests received"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1112
+#: src/datastore/gnunet-service-datastore.c:1115
 msgid "# GET ZERO ANONYMITY requests received"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1139
+#: src/datastore/gnunet-service-datastore.c:1142
 #, fuzzy
 msgid "Content not found"
 msgstr "Kommando \"%s\" hittades inte!\n"
 
-#: src/datastore/gnunet-service-datastore.c:1149
+#: src/datastore/gnunet-service-datastore.c:1152
 msgid "# bytes removed (explicit request)"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1183
+#: src/datastore/gnunet-service-datastore.c:1186
 #, fuzzy
 msgid "# REMOVE requests received"
 msgstr "# byte mottogs via TCP"
 
-#: src/datastore/gnunet-service-datastore.c:1227
+#: src/datastore/gnunet-service-datastore.c:1230
 #, c-format
 msgid "Datastore payload inaccurate (%lld < %lld).  Trying to fix.\n"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1300
+#: src/datastore/gnunet-service-datastore.c:1303
 #: src/datastore/test_plugin_datastore.c:322
 #: src/datastore/perf_plugin_datastore.c:420
 #, c-format
 msgid "Loading `%s' datastore plugin\n"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1309
+#: src/datastore/gnunet-service-datastore.c:1312
 #, fuzzy, c-format
 msgid "Failed to load datastore plugin for `%s'\n"
 msgstr "Kunde inte slå upp \"%s\": %s\n"
 
-#: src/datastore/gnunet-service-datastore.c:1488
+#: src/datastore/gnunet-service-datastore.c:1491
 msgid "# quota"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1490
+#: src/datastore/gnunet-service-datastore.c:1493
 msgid "# cache size"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1500
+#: src/datastore/gnunet-service-datastore.c:1503
 #, c-format
 msgid "Could not use specified filename `%s' for bloomfilter.\n"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1513
+#: src/datastore/gnunet-service-datastore.c:1516
 #, fuzzy
 msgid "Failed to initialize bloomfilter.\n"
 msgstr "Misslyckades att initiera tjänsten \"%s\".\n"
@@ -4625,22 +4639,22 @@
 msgid "Failed to connect to the dv service!\n"
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
-#: src/nse/gnunet-service-nse.c:864
+#: src/nse/gnunet-service-nse.c:866
 #, c-format
 msgid "Proof of work invalid: %llu!\n"
 msgstr ""
 
-#: src/nse/gnunet-service-nse.c:1286 src/nse/gnunet-service-nse.c:1305
-#: src/nse/gnunet-service-nse.c:1326
+#: src/nse/gnunet-service-nse.c:1288 src/nse/gnunet-service-nse.c:1307
+#: src/nse/gnunet-service-nse.c:1328
 msgid "NSE service is lacking key configuration settings.  Exiting.\n"
 msgstr ""
 
-#: src/nse/gnunet-service-nse.c:1293
+#: src/nse/gnunet-service-nse.c:1295
 #, fuzzy
 msgid "Invalid work requirement for NSE service. Exiting.\n"
 msgstr "Ogiltiga argument. Avslutar.\n"
 
-#: src/nse/gnunet-service-nse.c:1314
+#: src/nse/gnunet-service-nse.c:1316
 #, fuzzy
 msgid "NSE service could not access hostkey.  Exiting.\n"
 msgstr "Kunde inte komma åt namnrymdsinformation.\n"
@@ -5707,9 +5721,6 @@
 #~ msgid "# total number of messages in send buffers"
 #~ msgstr "antal meddelanden i ett meddelandeblock"
 
-#~ msgid "`%s': Could not connect.\n"
-#~ msgstr "\"%s\": Kunde inte ansluta.\n"
-
 #~ msgid "`%s': Could not send.\n"
 #~ msgstr "\"%s\": Kunde inte skicka.\n"
 

Modified: gnunet/po/vi.gmo
===================================================================
(Binary files differ)

Modified: gnunet/po/vi.po
===================================================================
--- gnunet/po/vi.po     2011-10-04 09:57:35 UTC (rev 17161)
+++ gnunet/po/vi.po     2011-10-04 11:09:39 UTC (rev 17162)
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gnunet 0.8.0a\n"
 "Report-Msgid-Bugs-To: address@hidden"
-"POT-Creation-Date: 2011-09-13 14:44+0200\n"
+"POT-Creation-Date: 2011-09-19 13:28+0200\n"
 "PO-Revision-Date: 2008-09-10 22:05+0930\n"
 "Last-Translator: Clytie Siddall <address@hidden>\n"
 "Language-Team: Vietnamese <address@hidden>\n"
@@ -79,60 +79,64 @@
 msgid "Failed to start %s\n"
 msgstr "Lỗi bắt đầu thu thập.\n"
 
-#: src/nat/nat.c:1096 src/nat/nat.c:1113
+#: src/nat/nat.c:1096
 #, fuzzy, c-format
 msgid "Malformed %s `%s' given in configuration!\n"
 msgstr "Lỗi lưu cấu hình."
 
-#: src/nat/nat.c:1167 src/nat/nat.c:1177
+#: src/nat/nat.c:1158 src/nat/nat.c:1168
 #, c-format
 msgid ""
 "Configuration requires `%s', but binary is not installed properly (SUID bit "
 "not set).  Option disabled.\n"
 msgstr ""
 
-#: src/nat/nat.c:1309
+#: src/nat/nat.c:1300
 msgid "Internal IP address not known, cannot use ICMP NAT traversal method\n"
 msgstr ""
 
-#: src/nat/nat.c:1321
+#: src/nat/nat.c:1312
 #, c-format
 msgid "Running gnunet-helper-nat-client %s %s %u\n"
 msgstr ""
 
-#: src/nat/gnunet-nat-server.c:290
+#: src/nat/gnunet-nat-server.c:289
 #, c-format
 msgid "Please pass valid port number as the first argument! (got `%s')\n"
 msgstr ""
 
-#: src/nat/gnunet-nat-server.c:329
+#: src/nat/gnunet-nat-server.c:328
 msgid "GNUnet NAT traversal test helper daemon"
 msgstr ""
 
-#: src/nat/nat_test.c:348
+#: src/nat/nat_test.c:349
 #, fuzzy
 msgid "Failed to connect to `gnunet-nat-server'\n"
 msgstr "Lỗi kết nối đến gnunetd.\n"
 
-#: src/nat/nat_test.c:418
+#: src/nat/nat_test.c:419
 #, c-format
 msgid "Failed to create listen socket bound to `%s' for NAT test: %s\n"
 msgstr ""
 
-#: src/vpn/gnunet-daemon-vpn.c:1275 src/vpn/gnunet-daemon-exit.c:1455
-#: src/template/gnunet-template.c:68 src/core/test_core_api_send_to_self.c:217
+#: src/vpn/gnunet-daemon-vpn.c:1279 src/template/gnunet-template.c:68
+#: src/core/test_core_api_send_to_self.c:217
 msgid "help text"
 msgstr ""
 
+#: src/vpn/gnunet-daemon-exit.c:1493
+msgid "Daemon to run to provide an IP exit node for the VPN"
+msgstr ""
+
 #: src/datacache/datacache.c:108 src/datacache/datacache.c:236
-#: src/datastore/gnunet-service-datastore.c:821
+#: src/datastore/gnunet-service-datastore.c:824
 #, fuzzy
 msgid "# bytes stored"
 msgstr "# các byte trong kho dữ liệu"
 
 #: src/datacache/datacache.c:134 src/datacache/datacache.c:142
-#: src/datastore/gnunet-service-datastore.c:1292
-#: src/datastore/gnunet-service-datastore.c:1483
+#: src/datastore/gnunet-service-datastore.c:1295
+#: src/datastore/gnunet-service-datastore.c:1486
 #: src/datastore/test_plugin_datastore.c:192
 #: src/datastore/test_plugin_datastore.c:315
 #: src/datastore/perf_plugin_datastore.c:309
@@ -169,13 +173,13 @@
 #: src/datacache/plugin_datacache_sqlite.c:122
 #: src/datacache/plugin_datacache_sqlite.c:191
 #: src/datacache/plugin_datacache_sqlite.c:232
-#: src/datacache/plugin_datacache_sqlite.c:296
-#: src/datacache/plugin_datacache_sqlite.c:305
-#: src/datacache/plugin_datacache_sqlite.c:318
-#: src/datacache/plugin_datacache_sqlite.c:325
-#: src/datacache/plugin_datacache_sqlite.c:338
-#: src/datacache/plugin_datacache_sqlite.c:346
-#: src/datacache/plugin_datacache_sqlite.c:354
+#: src/datacache/plugin_datacache_sqlite.c:295
+#: src/datacache/plugin_datacache_sqlite.c:304
+#: src/datacache/plugin_datacache_sqlite.c:315
+#: src/datacache/plugin_datacache_sqlite.c:322
+#: src/datacache/plugin_datacache_sqlite.c:332
+#: src/datacache/plugin_datacache_sqlite.c:340
+#: src/datacache/plugin_datacache_sqlite.c:348
 #: src/datacache/plugin_datacache_mysql.c:103
 #: src/datacache/plugin_datacache_mysql.c:110
 #: src/datacache/plugin_datacache_mysql.c:517
@@ -195,12 +199,12 @@
 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"
 
-#: src/datacache/plugin_datacache_sqlite.c:419
+#: src/datacache/plugin_datacache_sqlite.c:413
 msgid "Sqlite datacache running\n"
 msgstr ""
 
-#: src/datacache/plugin_datacache_sqlite.c:454
-#: src/datastore/plugin_datastore_sqlite.c:405
+#: src/datacache/plugin_datacache_sqlite.c:446
+#: src/datastore/plugin_datastore_sqlite.c:420
 msgid "Tried to close sqlite without finalizing all prepared statements.\n"
 msgstr ""
 
@@ -242,7 +246,7 @@
 #: src/testing/test_testing_topology_blacklist.c:448
 #: src/testing/testing_peergroup.c:876
 #: src/testing/test_testing_large_topology.c:1022
-#: src/dht/test_dht_multipeer.c:864 src/dht/gnunet-dht-driver.c:3907
+#: src/dht/test_dht_multipeer.c:864 src/dht/gnunet-dht-driver.c:3897
 #: src/dv/test_transport_api_dv.c:1132
 #, fuzzy, c-format
 msgid "Invalid value `%s' for option `%s' in section `%s': expected float\n"
@@ -323,23 +327,23 @@
 msgid "Finished copying all blacklist files!\n"
 msgstr ""
 
-#: src/testing/testing_group.c:3581 src/testing/testing_group.c:3720
+#: src/testing/testing_group.c:3580 src/testing/testing_group.c:3717
 #: src/testing/testing_group.c:4925 src/testing/testing_group.c:5066
 msgid "Delaying connect, we have too many outstanding connections!\n"
 msgstr ""
 
-#: src/testing/testing_group.c:3591 src/testing/testing_group.c:4935
+#: src/testing/testing_group.c:3590 src/testing/testing_group.c:4935
 #: src/testing/testing_group.c:5076
 #, c-format
 msgid "Creating connection, outstanding_connections is %d\n"
 msgstr ""
 
-#: src/testing/testing_group.c:3603
+#: src/testing/testing_group.c:3602
 #, fuzzy, c-format
 msgid "Offering Hello of peer %s to peer %s\n"
 msgstr "đang kết nối đồng đẳng %s:%d tới đồng đẳng %s:%d\n"
 
-#: src/testing/testing_group.c:3730
+#: src/testing/testing_group.c:3728
 #, c-format
 msgid "Creating connection, outstanding_connections is %d (max %d)\n"
 msgstr ""
@@ -515,148 +519,148 @@
 msgid "Could not create configuration for peer number %u on `%s'!\n"
 msgstr ""
 
-#: src/testing/testing_group.c:6298 src/testing/testing.c:1272
+#: src/testing/testing_group.c:6298 src/testing/testing.c:1273
 #, c-format
 msgid "Could not start `%s' process to copy configuration directory.\n"
 msgstr ""
 
-#: src/testing/testing.c:208
+#: src/testing/testing.c:209
 msgid "`scp' does not seem to terminate (timeout copying config).\n"
 msgstr ""
 
-#: src/testing/testing.c:222 src/testing/testing.c:822
+#: src/testing/testing.c:223 src/testing/testing.c:823
 #, fuzzy
 msgid "`scp' did not complete cleanly.\n"
 msgstr "« %s » không phải được kết nối tới đồng đẳng nào.\n"
 
-#: src/testing/testing.c:245
+#: src/testing/testing.c:246
 msgid "Failed to create pipe for `gnunet-peerinfo' process.\n"
 msgstr ""
 
-#: src/testing/testing.c:246
+#: src/testing/testing.c:247
 #, fuzzy
 msgid "Failed to create pipe for `ssh' process.\n"
 msgstr "Lỗi tạo thư mục tạm thời."
 
-#: src/testing/testing.c:302
+#: src/testing/testing.c:303
 #, c-format
 msgid "Could not start `%s' process to create hostkey.\n"
 msgstr ""
 
-#: src/testing/testing.c:309
+#: src/testing/testing.c:310
 #, fuzzy
 msgid "Failed to start `gnunet-peerinfo' process.\n"
 msgstr "Lỗi bắt đầu thu thập.\n"
 
-#: src/testing/testing.c:310 src/testing/testing.c:508
+#: src/testing/testing.c:311 src/testing/testing.c:509
 #, fuzzy
 msgid "Failed to start `ssh' process.\n"
 msgstr "Lỗi bắt đầu thu thập.\n"
 
-#: src/testing/testing.c:372
+#: src/testing/testing.c:373
 #, fuzzy, c-format
 msgid "Error reading from gnunet-peerinfo: %s\n"
 msgstr "Gặp lỗi khi đọc thông tin từ gnunetd.\n"
 
-#: src/testing/testing.c:376
+#: src/testing/testing.c:377
 msgid "Malformed output from gnunet-peerinfo!\n"
 msgstr ""
 
-#: src/testing/testing.c:386
+#: src/testing/testing.c:387
 #, fuzzy
 msgid "`Failed to get hostkey!\n"
 msgstr "Lỗi lấy thông kê về truyền tải.\n"
 
-#: src/testing/testing.c:420
+#: src/testing/testing.c:421
 msgid "`Failed while waiting for topology setup!\n"
 msgstr ""
 
-#: src/testing/testing.c:500
+#: src/testing/testing.c:501
 #, c-format
 msgid "Could not start `%s' process to start GNUnet.\n"
 msgstr ""
 
-#: src/testing/testing.c:507
+#: src/testing/testing.c:508
 #, fuzzy
 msgid "Failed to start `gnunet-arm' process.\n"
 msgstr "Lỗi dừng chạy gnunet-auto-share.\n"
 
-#: src/testing/testing.c:531 src/testing/testing.c:630
+#: src/testing/testing.c:532 src/testing/testing.c:631
 msgid "`gnunet-arm' does not seem to terminate.\n"
 msgstr ""
 
-#: src/testing/testing.c:532 src/testing/testing.c:631
-#: src/testing/testing.c:651
+#: src/testing/testing.c:533 src/testing/testing.c:632
+#: src/testing/testing.c:652
 msgid "`ssh' does not seem to terminate.\n"
 msgstr ""
 
-#: src/testing/testing.c:571 src/testing/testing.c:2072
-#: src/testing/testing.c:2091
+#: src/testing/testing.c:572 src/testing/testing.c:2074
+#: src/testing/testing.c:2093
 #, fuzzy
 msgid "Failed to connect to transport service!\n"
 msgstr "Lỗi kết nối đến gnunetd.\n"
 
-#: src/testing/testing.c:600
+#: src/testing/testing.c:601
 msgid "Unable to get HELLO for peer!\n"
 msgstr ""
 
-#: src/testing/testing.c:650
+#: src/testing/testing.c:651
 msgid "`gnunet-arm' terminated with non-zero exit status (or timed out)!\n"
 msgstr ""
 
-#: src/testing/testing.c:673 src/testing/testing.c:707
+#: src/testing/testing.c:674 src/testing/testing.c:708
 msgid "either `gnunet-arm' or `ssh' does not seem to terminate.\n"
 msgstr ""
 
-#: src/testing/testing.c:688 src/testing/testing.c:737
+#: src/testing/testing.c:689 src/testing/testing.c:738
 msgid "shutdown (either `gnunet-arm' or `ssh') did not complete cleanly.\n"
 msgstr ""
 
-#: src/testing/testing.c:810
+#: src/testing/testing.c:811
 msgid "`scp' does not seem to terminate.\n"
 msgstr ""
 
-#: src/testing/testing.c:988
+#: src/testing/testing.c:989
 #, fuzzy, c-format
 msgid "Starting service %s for peer `%4s'\n"
 msgstr "Đang bắt đầu tài về « %s »\n"
 
-#: src/testing/testing.c:1360 src/testing/testing.c:1443
-#: src/testing/testing.c:1581
+#: src/testing/testing.c:1361 src/testing/testing.c:1444
+#: src/testing/testing.c:1582
 #, fuzzy, c-format
 msgid "Terminating peer `%4s'\n"
 msgstr "Không đủ quyền cho « %s ».\n"
 
-#: src/testing/testing.c:1533
+#: src/testing/testing.c:1534
 #, fuzzy, c-format
 msgid "Setting d->dead on peer `%4s'\n"
 msgstr "Đang bắt đầu tài lên « %s ».\n"
 
-#: src/testing/testing.c:1668
+#: src/testing/testing.c:1669
 msgid "Peer not yet running, can not change configuration at this point."
 msgstr ""
 
-#: src/testing/testing.c:1676
+#: src/testing/testing.c:1677
 #, fuzzy
 msgid "Failed to write new configuration to disk."
 msgstr "Lỗi lưu cấu hình."
 
-#: src/testing/testing.c:1707
+#: src/testing/testing.c:1708
 #, c-format
 msgid "Could not start `%s' process to copy configuration file.\n"
 msgstr ""
 
-#: src/testing/testing.c:1710
+#: src/testing/testing.c:1711
 #, fuzzy
 msgid "Failed to copy new configuration to remote machine."
 msgstr "Lỗi lưu cấu hình."
 
-#: src/testing/testing.c:1881
+#: src/testing/testing.c:1883
 #, fuzzy
 msgid "Peers failed to connect"
 msgstr "Không kết nối được đến trình nền gnunetd."
 
-#: src/testing/testing.c:2036
+#: src/testing/testing.c:2038
 #, fuzzy
 msgid "Failed to connect to core service of first peer!\n"
 msgstr "Lỗi nạp dịch vụ sqstore. Hãy kiểm tra lại cấu hình.\n"
@@ -855,7 +859,7 @@
 msgstr ""
 
 #: src/hostlist/hostlist-server.c:556
-#: src/transport/gnunet-service-transport.c:458
+#: src/transport/gnunet-service-transport.c:462
 #: src/peerinfo-tool/gnunet-peerinfo.c:208 src/core/gnunet-service-core.c:4607
 #, fuzzy, c-format
 msgid "Could not access PEERINFO service.  Exiting.\n"
@@ -1084,8 +1088,8 @@
 
 #: src/topology/gnunet-daemon-topology.c:676
 #: src/topology/gnunet-daemon-topology.c:778
-#: src/transport/gnunet-service-transport_neighbours.c:432
-#: src/transport/gnunet-service-transport_neighbours.c:627
+#: src/transport/gnunet-service-transport_neighbours.c:465
+#: src/transport/gnunet-service-transport_neighbours.c:662
 #, fuzzy
 msgid "# peers connected"
 msgstr "# của các đồng đẳng đã kết nối"
@@ -1349,24 +1353,29 @@
 "Failed to establish TCP connection to `%s:%u', no further addresses to try.\n"
 msgstr "Lỗi thiết lập kết nối với đồng đẳng.\n"
 
-#: src/util/connection.c:852 src/util/connection.c:1023
+#: src/util/connection.c:852 src/util/connection.c:1028
 #, fuzzy, c-format
 msgid "Trying to connect to `%s' (%p)\n"
 msgstr "Không thể kết nối tới %s:%u: %s\n"
 
-#: src/util/connection.c:1013
+#: src/util/connection.c:863
 #, fuzzy, c-format
+msgid "Failed to connect to `%s' (%p)\n"
+msgstr "Không thể kết nối tới %s:%u: %s\n"
+
+#: src/util/connection.c:1018
+#, fuzzy, c-format
 msgid "Attempt to connect to `%s' failed\n"
 msgstr " Lỗi kết nối\n"
 
-#: src/util/connection.c:1529
+#: src/util/connection.c:1534
 #, c-format
 msgid ""
 "Could not satisfy pending transmission request, socket closed or connect "
 "failed (%p).\n"
 msgstr ""
 
-#: src/util/connection.c:1565
+#: src/util/connection.c:1570
 #, fuzzy, c-format
 msgid "Failed to send to `%s': %s\n"
 msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
@@ -1478,7 +1487,7 @@
 "GNUNET_SERVER_receive_done after %llums\n"
 msgstr ""
 
-#: src/util/network.c:1193
+#: src/util/network.c:1194
 #, c-format
 msgid ""
 "Fatal internal logic error, process hangs in `%s' (abort with CTRL-C)!\n"
@@ -1771,7 +1780,7 @@
 "Mọi đối số bắt buộc phải sử dụng với tùy chọn dài cũng bắt buộc với tùy chọn "
 "ngắn.\n"
 
-#: src/util/getopt_helpers.c:254 src/util/getopt_helpers.c:282
+#: src/util/getopt_helpers.c:253 src/util/getopt_helpers.c:281
 #, c-format
 msgid "You must pass a number to the `%s' option.\n"
 msgstr "Phải gửi một con số cho tùy chọn « %s ».\n"
@@ -2169,7 +2178,7 @@
 
 #: src/fs/gnunet-download.c:263 src/fs/gnunet-unindex.c:169
 #: src/fs/gnunet-search.c:297 src/fs/gnunet-publish.c:585
-#: src/mesh/test_mesh_small.c:674 src/dht/gnunet-dht-get-peer.c:190
+#: src/mesh/test_mesh_small.c:676 src/dht/gnunet-dht-get-peer.c:190
 #: src/dht/gnunet-dht-put.c:176 src/dht/gnunet-dht-get.c:204
 #: src/nse/gnunet-nse-profiler.c:655
 msgid "be verbose (print progress information)"
@@ -2641,82 +2650,82 @@
 msgid "MAGIC mismatch.  This is not a GNUnet directory.\n"
 msgstr "Lỗi định dạng tập tin (không phải là thư mục GNUnet ?)\n"
 
-#: src/fs/gnunet-service-fs_cp.c:693
+#: src/fs/gnunet-service-fs_cp.c:694
 #, c-format
 msgid "Migration of content to peer `%s' blocked for %llu ms\n"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:728
+#: src/fs/gnunet-service-fs_cp.c:729
 #, fuzzy
 msgid "# replies transmitted to other peers"
 msgstr "# các byte kiểu %d được gửi "
 
-#: src/fs/gnunet-service-fs_cp.c:734
+#: src/fs/gnunet-service-fs_cp.c:735
 #, fuzzy
 msgid "# replies dropped"
 msgstr "# các đáp ứng dht được định tuyến"
 
-#: src/fs/gnunet-service-fs_cp.c:763 src/fs/gnunet-service-fs_cp.c:879
-#: src/fs/gnunet-service-fs_cp.c:1289 src/fs/gnunet-service-fs_cp.c:1326
+#: src/fs/gnunet-service-fs_cp.c:764 src/fs/gnunet-service-fs_cp.c:880
+#: src/fs/gnunet-service-fs_cp.c:1290 src/fs/gnunet-service-fs_cp.c:1327
 msgid "# P2P searches active"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:836
+#: src/fs/gnunet-service-fs_cp.c:837
 msgid "# artificial delays introduced (ms)"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:899
+#: src/fs/gnunet-service-fs_cp.c:900
 #, fuzzy
 msgid "# replies received for other peers"
 msgstr "# các byte kiểu %d được nhận"
 
-#: src/fs/gnunet-service-fs_cp.c:913
+#: src/fs/gnunet-service-fs_cp.c:914
 msgid "# replies dropped due to insufficient cover traffic"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:951
+#: src/fs/gnunet-service-fs_cp.c:952
 msgid "# P2P searches destroyed due to ultimate reply"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1018
+#: src/fs/gnunet-service-fs_cp.c:1019
 #, fuzzy
 msgid "# requests done for free (low load)"
 msgstr "# các yêu cầu lỗ hổng bị bỏ do trọng tải"
 
-#: src/fs/gnunet-service-fs_cp.c:1042
+#: src/fs/gnunet-service-fs_cp.c:1043
 msgid "# request dropped, priority insufficient"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1052
+#: src/fs/gnunet-service-fs_cp.c:1053
 #, fuzzy
 msgid "# requests done for a price (normal load)"
 msgstr "# các yêu cầu lỗ hổng bị bỏ do trọng tải"
 
-#: src/fs/gnunet-service-fs_cp.c:1131
+#: src/fs/gnunet-service-fs_cp.c:1132
 msgid "# GET requests received (from other peers)"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1165
+#: src/fs/gnunet-service-fs_cp.c:1166
 #, fuzzy
 msgid "# requests dropped due to initiator not being connected"
 msgstr "# các yêu cầu lỗ hổng bị bỏ do trọng tải"
 
-#: src/fs/gnunet-service-fs_cp.c:1189
+#: src/fs/gnunet-service-fs_cp.c:1190
 #, fuzzy
 msgid "# requests dropped due to missing reverse route"
 msgstr "# các yêu cầu lỗ hổng bị bỏ do trọng tải"
 
-#: src/fs/gnunet-service-fs_cp.c:1255
+#: src/fs/gnunet-service-fs_cp.c:1256
 #, fuzzy
 msgid "# requests dropped due TTL underflow"
 msgstr "# các yêu cầu lỗ hổng bị bỏ do trọng tải"
 
-#: src/fs/gnunet-service-fs_cp.c:1283
+#: src/fs/gnunet-service-fs_cp.c:1284
 #, fuzzy
 msgid "# requests dropped due to higher-TTL request"
 msgstr "# các yêu cầu lỗ hổng bị bỏ do trọng tải"
 
-#: src/fs/gnunet-service-fs_cp.c:1324
+#: src/fs/gnunet-service-fs_cp.c:1325
 #, fuzzy
 msgid "# P2P query messages received and processed"
 msgstr "# các thông báo phát hiện dht được nhận"
@@ -3042,20 +3051,20 @@
 msgid "Failed to load block plugin `%s'\n"
 msgstr "Không thể nạp phần bổ sung truyền tải « %s »\n"
 
-#: src/mesh/test_mesh_small.c:687
+#: src/mesh/test_mesh_small.c:689
 msgid "Test mesh in a small network."
 msgstr ""
 
-#: src/arm/mockup-service.c:41 src/arm/gnunet-service-arm.c:859
+#: src/arm/mockup-service.c:41 src/arm/gnunet-service-arm.c:865
 #, fuzzy
 msgid "Failed to transmit shutdown ACK.\n"
 msgstr "Lỗi bắt đầu thu thập.\n"
 
-#: src/arm/mockup-service.c:46 src/arm/gnunet-service-arm.c:864
+#: src/arm/mockup-service.c:46 src/arm/gnunet-service-arm.c:870
 msgid "Transmitting shutdown ACK.\n"
 msgstr ""
 
-#: src/arm/mockup-service.c:69 src/arm/gnunet-service-arm.c:892
+#: src/arm/mockup-service.c:69 src/arm/gnunet-service-arm.c:898
 msgid "Initiating shutdown as requested by client.\n"
 msgstr ""
 
@@ -3107,34 +3116,34 @@
 msgid "Preparing to stop `%s'\n"
 msgstr "Đang bắt đầu tài lên « %s ».\n"
 
-#: src/arm/gnunet-service-arm.c:665
+#: src/arm/gnunet-service-arm.c:666
 msgid "Stopping all services\n"
 msgstr ""
 
-#: src/arm/gnunet-service-arm.c:717
+#: src/arm/gnunet-service-arm.c:723
 #, fuzzy, c-format
 msgid "Restarting service `%s'.\n"
 msgstr "Đang nạp và khởi động dùng « %s ».\n"
 
-#: src/arm/gnunet-service-arm.c:790
+#: src/arm/gnunet-service-arm.c:796
 msgid "exit"
 msgstr ""
 
-#: src/arm/gnunet-service-arm.c:795
+#: src/arm/gnunet-service-arm.c:801
 msgid "signal"
 msgstr ""
 
-#: src/arm/gnunet-service-arm.c:800
+#: src/arm/gnunet-service-arm.c:806
 #, fuzzy
 msgid "unknown"
 msgstr "Lỗi không rõ"
 
-#: src/arm/gnunet-service-arm.c:807
+#: src/arm/gnunet-service-arm.c:813
 #, fuzzy, c-format
 msgid "Service `%s' stopped\n"
 msgstr "Dịch vụ đã bị xoá.\n"
 
-#: src/arm/gnunet-service-arm.c:821
+#: src/arm/gnunet-service-arm.c:827
 #, c-format
 msgid "Service `%s' terminated with status %s/%d, will try to restart it!\n"
 msgstr ""
@@ -3442,7 +3451,7 @@
 #: src/transport/test_plugin_transport_udp.c:185
 #: src/transport/test_plugin_transport_https.c:1271
 #: src/transport/test_plugin_transport.c:202
-#: src/transport/gnunet-service-transport.c:435
+#: src/transport/gnunet-service-transport.c:439
 #: src/transport/test_plugin_transport_http.c:1232
 msgid "Transport service is lacking key configuration settings.  Exiting.\n"
 msgstr ""
@@ -3450,7 +3459,7 @@
 #: src/transport/test_plugin_transport_udp.c:195
 #: src/transport/test_plugin_transport_https.c:1335
 #: src/transport/test_plugin_transport.c:212
-#: src/transport/gnunet-service-transport.c:444
+#: src/transport/gnunet-service-transport.c:448
 #: src/transport/test_plugin_transport_http.c:1255
 msgid "Transport service could not access hostkey.  Exiting.\n"
 msgstr ""
@@ -3465,19 +3474,19 @@
 msgid "Failed to load transport plugin for udp\n"
 msgstr "Không thể nạp phần bổ sung truyền tải « %s »\n"
 
-#: src/transport/plugin_transport_wlan.c:1422
-#: src/transport/plugin_transport_wlan.c:1617
-#: src/transport/plugin_transport_wlan.c:1736
+#: src/transport/plugin_transport_wlan.c:1436
+#: src/transport/plugin_transport_wlan.c:1631
+#: src/transport/plugin_transport_wlan.c:1750
 #, c-format
 msgid "Error writing to wlan healper. errno == %d, ERROR: %s\n"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:1854
+#: src/transport/plugin_transport_wlan.c:1868
 #, c-format
 msgid "Wlan Address len %d is wrong\n"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:2710
+#: src/transport/plugin_transport_wlan.c:2728
 #, c-format
 msgid "Finished reading from wlan-helper stdout with code: %d\n"
 msgstr ""
@@ -3516,35 +3525,35 @@
 msgid "# SET QUOTA messages received"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/gnunet-service-transport_neighbours.c:776
+#: src/transport/gnunet-service-transport_neighbours.c:811
 #, fuzzy
 msgid "# messages not sent (no such peer or not connected)"
 msgstr "# các thông báo được chắp liền"
 
-#: src/transport/gnunet-service-transport_neighbours.c:796
+#: src/transport/gnunet-service-transport_neighbours.c:831
 #, 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:864
+#: src/transport/gnunet-service-transport_neighbours.c:899
 #, 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:882
+#: src/transport/gnunet-service-transport_neighbours.c:917
 msgid "# ms throttling suggested"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:907
+#: src/transport/gnunet-service-transport_neighbours.c:942
 #, fuzzy
 msgid "# KEEPALIVE messages discarded (not connected)"
 msgstr "# các thông báo được chắp liền"
 
-#: src/transport/gnunet-service-transport_neighbours.c:937
+#: src/transport/gnunet-service-transport_neighbours.c:972
 msgid "# SET QUOTA messages ignored (no such peer)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:949
+#: src/transport/gnunet-service-transport_neighbours.c:984
 msgid "# disconnects due to quota of 0"
 msgstr ""
 
@@ -3667,7 +3676,7 @@
 msgstr "Lỗi gửi tin nhẳn.\n"
 
 #: src/transport/test_plugin_transport_https.c:1284
-#: src/transport/plugin_transport_http.c:3321
+#: src/transport/plugin_transport_http.c:3323
 #: src/transport/test_plugin_transport_http.c:1245
 #, c-format
 msgid "Require valid port number for transport plugin `%s' in configuration!\n"
@@ -3703,6 +3712,11 @@
 "\n"
 msgstr ""
 
+#: src/transport/test_transport_api.c:120
+#, fuzzy
+msgid "Fail! Could not connect peers\n"
+msgstr "Không thể kết nối tới %s:%u: %s\n"
+
 #: src/transport/gnunet-transport-list-connections.c:91
 #: src/peerinfo-tool/gnunet-peerinfo.c:200
 #: src/core/gnunet-core-list-connections.c:166
@@ -3768,33 +3782,33 @@
 msgid "# HTTP outbound sessions for peers active"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3349
-#: src/transport/plugin_transport_http.c:3378
+#: src/transport/plugin_transport_http.c:3351
+#: src/transport/plugin_transport_http.c:3380
 msgid "Misconfigured address to bind to in configuration!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3404
+#: src/transport/plugin_transport_http.c:3406
 #, c-format
 msgid "Required configuration options missing in section `%s'\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3442
+#: src/transport/plugin_transport_http.c:3444
 msgid ""
 "Could not create a new TLS certificate, program `gnunet-transport-"
 "certificate-creation' could not be started!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3458
+#: src/transport/plugin_transport_http.c:3460
 msgid "No usable TLS certificate found and creating one failed!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3610
+#: src/transport/plugin_transport_http.c:3612
 #, c-format
 msgid ""
 "HTTP Server with %s could not be started on port %u! %s plugin failed!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3626
+#: src/transport/plugin_transport_http.c:3628
 #, c-format
 msgid "Could not initialize curl multi handle, failed to start %s plugin!\n"
 msgstr ""
@@ -3899,58 +3913,58 @@
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:520
+#: src/transport/gnunet-service-transport_validation.c:518
 msgid "# address records discarded"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:606
+#: src/transport/gnunet-service-transport_validation.c:604
 #: src/core/gnunet-service-core.c:4187
 #, fuzzy
 msgid "# PING messages received"
 msgstr "# các thông báo PING được tạo"
 
-#: src/transport/gnunet-service-transport_validation.c:628
+#: src/transport/gnunet-service-transport_validation.c:626
 #, c-format
 msgid ""
 "Not confirming PING with address `%s' since I cannot confirm having this "
 "address.\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:685
+#: src/transport/gnunet-service-transport_validation.c:683
 msgid "# PONGs unicast via reliable transport"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:694
+#: src/transport/gnunet-service-transport_validation.c:692
 msgid "# PONGs multicast to all available addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:758
+#: src/transport/gnunet-service-transport_validation.c:756
 #, c-format
 msgid ""
 "Not transmitting `%s' with `%s', message too big (%u bytes!). This should "
 "not happen.\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:792
+#: src/transport/gnunet-service-transport_validation.c:790
 #, fuzzy
 msgid "# PING without HELLO messages sent"
 msgstr "# các thông báo PONG nhập thô được gửi"
 
-#: src/transport/gnunet-service-transport_validation.c:864
+#: src/transport/gnunet-service-transport_validation.c:862
 msgid "# address revalidations started"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:923
+#: src/transport/gnunet-service-transport_validation.c:921
 #: src/core/gnunet-service-core.c:4210
 #, fuzzy
 msgid "# PONG messages received"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/gnunet-service-transport_validation.c:945
+#: src/transport/gnunet-service-transport_validation.c:943
 msgid "# PONGs dropped, no matching pending validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:961
+#: src/transport/gnunet-service-transport_validation.c:959
 msgid "# PONGs dropped, signature expired"
 msgstr ""
 
@@ -4012,17 +4026,17 @@
 "\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:1279
+#: src/transport/plugin_transport_udp.c:1280
 #, c-format
 msgid "Given `%s' option is out of range: %llu > %u\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:1329
+#: src/transport/plugin_transport_udp.c:1330
 #, fuzzy, c-format
 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_udp.c:1455
+#: src/transport/plugin_transport_udp.c:1456
 #, fuzzy
 msgid "Failed to open UDP sockets\n"
 msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
@@ -4406,23 +4420,23 @@
 msgid "Unable to initialize SQLite: %s.\n"
 msgstr "Không thể sơ khởi SQLite: %s.\n"
 
-#: src/datastore/plugin_datastore_sqlite.c:662
+#: src/datastore/plugin_datastore_sqlite.c:677
 #, fuzzy
 msgid "Invalid data in database.  Trying to fix (by deletion).\n"
 msgstr "Dữ liệu sai trong %s. Đang thử sửa chữa (bằng cách xoá).\n"
 
-#: src/datastore/plugin_datastore_sqlite.c:1115
+#: src/datastore/plugin_datastore_sqlite.c:1130
 msgid "sqlite version to old to determine size, assuming zero\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_sqlite.c:1134
+#: src/datastore/plugin_datastore_sqlite.c:1149
 #, c-format
 msgid ""
 "Using sqlite page utilization to estimate payload (%llu pages of size %llu "
 "bytes)\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_sqlite.c:1173
+#: src/datastore/plugin_datastore_sqlite.c:1188
 #, fuzzy
 msgid "Sqlite database running\n"
 msgstr "kho dữ liệu sqlite"
@@ -4475,8 +4489,8 @@
 
 #: src/datastore/gnunet-service-datastore.c:681
 #: src/datastore/gnunet-service-datastore.c:735
-#: src/datastore/gnunet-service-datastore.c:953
-#: src/datastore/gnunet-service-datastore.c:1438
+#: src/datastore/gnunet-service-datastore.c:956
+#: src/datastore/gnunet-service-datastore.c:1441
 msgid "# reserved"
 msgstr ""
 
@@ -4484,80 +4498,80 @@
 msgid "Could not find matching reservation"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:835
+#: src/datastore/gnunet-service-datastore.c:838
 #, c-format
 msgid "Need %llu bytes more space (%llu allowed, using %llu)\n"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1001
+#: src/datastore/gnunet-service-datastore.c:1004
 #, fuzzy
 msgid "# GET requests received"
 msgstr "# các yêu cầu get (lấy) dht được nhận"
 
-#: src/datastore/gnunet-service-datastore.c:1015
+#: src/datastore/gnunet-service-datastore.c:1018
 #, fuzzy
 msgid "# requests filtered by bloomfilter"
 msgstr "# các yêu cầu được lọc theo bộ lọc bloom"
 
-#: src/datastore/gnunet-service-datastore.c:1043
+#: src/datastore/gnunet-service-datastore.c:1046
 #, fuzzy
 msgid "# UPDATE requests received"
 msgstr "# các yêu cầu get (lấy) dht được nhận"
 
-#: src/datastore/gnunet-service-datastore.c:1077
+#: src/datastore/gnunet-service-datastore.c:1080
 #, fuzzy
 msgid "# GET REPLICATION requests received"
 msgstr "# các yêu cầu get (lấy) dht được nhận"
 
-#: src/datastore/gnunet-service-datastore.c:1112
+#: src/datastore/gnunet-service-datastore.c:1115
 #, fuzzy
 msgid "# GET ZERO ANONYMITY requests received"
 msgstr "# các yêu cầu get (lấy) dht được nhận"
 
-#: src/datastore/gnunet-service-datastore.c:1139
+#: src/datastore/gnunet-service-datastore.c:1142
 msgid "Content not found"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1149
+#: src/datastore/gnunet-service-datastore.c:1152
 msgid "# bytes removed (explicit request)"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1183
+#: src/datastore/gnunet-service-datastore.c:1186
 #, fuzzy
 msgid "# REMOVE requests received"
 msgstr "# các yêu cầu get (lấy) dht được nhận"
 
-#: src/datastore/gnunet-service-datastore.c:1227
+#: src/datastore/gnunet-service-datastore.c:1230
 #, c-format
 msgid "Datastore payload inaccurate (%lld < %lld).  Trying to fix.\n"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1300
+#: src/datastore/gnunet-service-datastore.c:1303
 #: src/datastore/test_plugin_datastore.c:322
 #: src/datastore/perf_plugin_datastore.c:420
 #, c-format
 msgid "Loading `%s' datastore plugin\n"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1309
+#: src/datastore/gnunet-service-datastore.c:1312
 #, fuzzy, c-format
 msgid "Failed to load datastore plugin for `%s'\n"
 msgstr "Không thể nạp phần bổ sung truyền tải « %s »\n"
 
-#: src/datastore/gnunet-service-datastore.c:1488
+#: src/datastore/gnunet-service-datastore.c:1491
 msgid "# quota"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1490
+#: src/datastore/gnunet-service-datastore.c:1493
 msgid "# cache size"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1500
+#: src/datastore/gnunet-service-datastore.c:1503
 #, c-format
 msgid "Could not use specified filename `%s' for bloomfilter.\n"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1513
+#: src/datastore/gnunet-service-datastore.c:1516
 #, fuzzy
 msgid "Failed to initialize bloomfilter.\n"
 msgstr "Lỗi sơ khởi dịch vụ « %s ».\n"
@@ -4714,21 +4728,21 @@
 msgid "Failed to connect to the dv service!\n"
 msgstr "Lỗi kết nối đến gnunetd.\n"
 
-#: src/nse/gnunet-service-nse.c:864
+#: src/nse/gnunet-service-nse.c:866
 #, c-format
 msgid "Proof of work invalid: %llu!\n"
 msgstr ""
 
-#: src/nse/gnunet-service-nse.c:1286 src/nse/gnunet-service-nse.c:1305
-#: src/nse/gnunet-service-nse.c:1326
+#: src/nse/gnunet-service-nse.c:1288 src/nse/gnunet-service-nse.c:1307
+#: src/nse/gnunet-service-nse.c:1328
 msgid "NSE service is lacking key configuration settings.  Exiting.\n"
 msgstr ""
 
-#: src/nse/gnunet-service-nse.c:1293
+#: src/nse/gnunet-service-nse.c:1295
 msgid "Invalid work requirement for NSE service. Exiting.\n"
 msgstr ""
 
-#: src/nse/gnunet-service-nse.c:1314
+#: src/nse/gnunet-service-nse.c:1316
 #, fuzzy
 msgid "NSE 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"

Modified: gnunet/po/zh_CN.po
===================================================================
--- gnunet/po/zh_CN.po  2011-10-04 09:57:35 UTC (rev 17161)
+++ gnunet/po/zh_CN.po  2011-10-04 11:09:39 UTC (rev 17162)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gnunet-0.8.1\n"
 "Report-Msgid-Bugs-To: address@hidden"
-"POT-Creation-Date: 2011-09-13 14:44+0200\n"
+"POT-Creation-Date: 2011-09-19 13:28+0200\n"
 "PO-Revision-Date: 2011-07-09 12:12+0800\n"
 "Last-Translator: Wylmer Wang <address@hidden>\n"
 "Language-Team: Chinese (simplified) <address@hidden>\n"
@@ -70,58 +70,62 @@
 msgid "Failed to start %s\n"
 msgstr "运行 %s失败:%s %d\n"
 
-#: src/nat/nat.c:1096 src/nat/nat.c:1113
+#: src/nat/nat.c:1096
 #, fuzzy, c-format
 msgid "Malformed %s `%s' given in configuration!\n"
 msgstr "保存配置失败。"
 
-#: src/nat/nat.c:1167 src/nat/nat.c:1177
+#: src/nat/nat.c:1158 src/nat/nat.c:1168
 #, c-format
 msgid ""
 "Configuration requires `%s', but binary is not installed properly (SUID bit "
 "not set).  Option disabled.\n"
 msgstr ""
 
-#: src/nat/nat.c:1309
+#: src/nat/nat.c:1300
 msgid "Internal IP address not known, cannot use ICMP NAT traversal method\n"
 msgstr ""
 
-#: src/nat/nat.c:1321
+#: src/nat/nat.c:1312
 #, c-format
 msgid "Running gnunet-helper-nat-client %s %s %u\n"
 msgstr ""
 
-#: src/nat/gnunet-nat-server.c:290
+#: src/nat/gnunet-nat-server.c:289
 #, c-format
 msgid "Please pass valid port number as the first argument! (got `%s')\n"
 msgstr ""
 
-#: src/nat/gnunet-nat-server.c:329
+#: src/nat/gnunet-nat-server.c:328
 msgid "GNUnet NAT traversal test helper daemon"
 msgstr ""
 
-#: src/nat/nat_test.c:348
+#: src/nat/nat_test.c:349
 msgid "Failed to connect to `gnunet-nat-server'\n"
 msgstr ""
 
-#: src/nat/nat_test.c:418
+#: src/nat/nat_test.c:419
 #, c-format
 msgid "Failed to create listen socket bound to `%s' for NAT test: %s\n"
 msgstr ""
 
-#: src/vpn/gnunet-daemon-vpn.c:1275 src/vpn/gnunet-daemon-exit.c:1455
-#: src/template/gnunet-template.c:68 src/core/test_core_api_send_to_self.c:217
+#: src/vpn/gnunet-daemon-vpn.c:1279 src/template/gnunet-template.c:68
+#: src/core/test_core_api_send_to_self.c:217
 msgid "help text"
 msgstr ""
 
+#: src/vpn/gnunet-daemon-exit.c:1493
+msgid "Daemon to run to provide an IP exit node for the VPN"
+msgstr ""
+
 #: src/datacache/datacache.c:108 src/datacache/datacache.c:236
-#: src/datastore/gnunet-service-datastore.c:821
+#: src/datastore/gnunet-service-datastore.c:824
 msgid "# bytes stored"
 msgstr ""
 
 #: src/datacache/datacache.c:134 src/datacache/datacache.c:142
-#: src/datastore/gnunet-service-datastore.c:1292
-#: src/datastore/gnunet-service-datastore.c:1483
+#: src/datastore/gnunet-service-datastore.c:1295
+#: src/datastore/gnunet-service-datastore.c:1486
 #: src/datastore/test_plugin_datastore.c:192
 #: src/datastore/test_plugin_datastore.c:315
 #: src/datastore/perf_plugin_datastore.c:309
@@ -157,13 +161,13 @@
 #: src/datacache/plugin_datacache_sqlite.c:122
 #: src/datacache/plugin_datacache_sqlite.c:191
 #: src/datacache/plugin_datacache_sqlite.c:232
-#: src/datacache/plugin_datacache_sqlite.c:296
-#: src/datacache/plugin_datacache_sqlite.c:305
-#: src/datacache/plugin_datacache_sqlite.c:318
-#: src/datacache/plugin_datacache_sqlite.c:325
-#: src/datacache/plugin_datacache_sqlite.c:338
-#: src/datacache/plugin_datacache_sqlite.c:346
-#: src/datacache/plugin_datacache_sqlite.c:354
+#: src/datacache/plugin_datacache_sqlite.c:295
+#: src/datacache/plugin_datacache_sqlite.c:304
+#: src/datacache/plugin_datacache_sqlite.c:315
+#: src/datacache/plugin_datacache_sqlite.c:322
+#: src/datacache/plugin_datacache_sqlite.c:332
+#: src/datacache/plugin_datacache_sqlite.c:340
+#: src/datacache/plugin_datacache_sqlite.c:348
 #: src/datacache/plugin_datacache_mysql.c:103
 #: src/datacache/plugin_datacache_mysql.c:110
 #: src/datacache/plugin_datacache_mysql.c:517
@@ -183,12 +187,12 @@
 msgid "`%s' failed at %s:%d with error: %s\n"
 msgstr "“%s”于 %s:%d 处失败,错误为:%s\n"
 
-#: src/datacache/plugin_datacache_sqlite.c:419
+#: src/datacache/plugin_datacache_sqlite.c:413
 msgid "Sqlite datacache running\n"
 msgstr ""
 
-#: src/datacache/plugin_datacache_sqlite.c:454
-#: src/datastore/plugin_datastore_sqlite.c:405
+#: src/datacache/plugin_datacache_sqlite.c:446
+#: src/datastore/plugin_datastore_sqlite.c:420
 msgid "Tried to close sqlite without finalizing all prepared statements.\n"
 msgstr ""
 
@@ -230,7 +234,7 @@
 #: src/testing/test_testing_topology_blacklist.c:448
 #: src/testing/testing_peergroup.c:876
 #: src/testing/test_testing_large_topology.c:1022
-#: src/dht/test_dht_multipeer.c:864 src/dht/gnunet-dht-driver.c:3907
+#: src/dht/test_dht_multipeer.c:864 src/dht/gnunet-dht-driver.c:3897
 #: src/dv/test_transport_api_dv.c:1132
 #, c-format
 msgid "Invalid value `%s' for option `%s' in section `%s': expected float\n"
@@ -308,23 +312,23 @@
 msgid "Finished copying all blacklist files!\n"
 msgstr ""
 
-#: src/testing/testing_group.c:3581 src/testing/testing_group.c:3720
+#: src/testing/testing_group.c:3580 src/testing/testing_group.c:3717
 #: src/testing/testing_group.c:4925 src/testing/testing_group.c:5066
 msgid "Delaying connect, we have too many outstanding connections!\n"
 msgstr ""
 
-#: src/testing/testing_group.c:3591 src/testing/testing_group.c:4935
+#: src/testing/testing_group.c:3590 src/testing/testing_group.c:4935
 #: src/testing/testing_group.c:5076
 #, c-format
 msgid "Creating connection, outstanding_connections is %d\n"
 msgstr ""
 
-#: src/testing/testing_group.c:3603
+#: src/testing/testing_group.c:3602
 #, c-format
 msgid "Offering Hello of peer %s to peer %s\n"
 msgstr ""
 
-#: src/testing/testing_group.c:3730
+#: src/testing/testing_group.c:3728
 #, c-format
 msgid "Creating connection, outstanding_connections is %d (max %d)\n"
 msgstr ""
@@ -498,147 +502,147 @@
 msgid "Could not create configuration for peer number %u on `%s'!\n"
 msgstr "解析配置文件“%s”失败\n"
 
-#: src/testing/testing_group.c:6298 src/testing/testing.c:1272
+#: src/testing/testing_group.c:6298 src/testing/testing.c:1273
 #, c-format
 msgid "Could not start `%s' process to copy configuration directory.\n"
 msgstr ""
 
-#: src/testing/testing.c:208
+#: src/testing/testing.c:209
 msgid "`scp' does not seem to terminate (timeout copying config).\n"
 msgstr ""
 
-#: src/testing/testing.c:222 src/testing/testing.c:822
+#: src/testing/testing.c:223 src/testing/testing.c:823
 msgid "`scp' did not complete cleanly.\n"
 msgstr ""
 
-#: src/testing/testing.c:245
+#: src/testing/testing.c:246
 msgid "Failed to create pipe for `gnunet-peerinfo' process.\n"
 msgstr ""
 
-#: src/testing/testing.c:246
+#: src/testing/testing.c:247
 #, fuzzy
 msgid "Failed to create pipe for `ssh' process.\n"
 msgstr "初始化“%s”服务失败。\n"
 
-#: src/testing/testing.c:302
+#: src/testing/testing.c:303
 #, c-format
 msgid "Could not start `%s' process to create hostkey.\n"
 msgstr ""
 
-#: src/testing/testing.c:309
+#: src/testing/testing.c:310
 msgid "Failed to start `gnunet-peerinfo' process.\n"
 msgstr ""
 
-#: src/testing/testing.c:310 src/testing/testing.c:508
+#: src/testing/testing.c:311 src/testing/testing.c:509
 #, fuzzy
 msgid "Failed to start `ssh' process.\n"
 msgstr "初始化“%s”服务失败。\n"
 
-#: src/testing/testing.c:372
+#: src/testing/testing.c:373
 #, c-format
 msgid "Error reading from gnunet-peerinfo: %s\n"
 msgstr ""
 
-#: src/testing/testing.c:376
+#: src/testing/testing.c:377
 msgid "Malformed output from gnunet-peerinfo!\n"
 msgstr ""
 
-#: src/testing/testing.c:386
+#: src/testing/testing.c:387
 #, fuzzy
 msgid "`Failed to get hostkey!\n"
 msgstr "发送消息失败。\n"
 
-#: src/testing/testing.c:420
+#: src/testing/testing.c:421
 msgid "`Failed while waiting for topology setup!\n"
 msgstr ""
 
-#: src/testing/testing.c:500
+#: src/testing/testing.c:501
 #, c-format
 msgid "Could not start `%s' process to start GNUnet.\n"
 msgstr ""
 
-#: src/testing/testing.c:507
+#: src/testing/testing.c:508
 msgid "Failed to start `gnunet-arm' process.\n"
 msgstr ""
 
-#: src/testing/testing.c:531 src/testing/testing.c:630
+#: src/testing/testing.c:532 src/testing/testing.c:631
 msgid "`gnunet-arm' does not seem to terminate.\n"
 msgstr ""
 
-#: src/testing/testing.c:532 src/testing/testing.c:631
-#: src/testing/testing.c:651
+#: src/testing/testing.c:533 src/testing/testing.c:632
+#: src/testing/testing.c:652
 msgid "`ssh' does not seem to terminate.\n"
 msgstr ""
 
-#: src/testing/testing.c:571 src/testing/testing.c:2072
-#: src/testing/testing.c:2091
+#: src/testing/testing.c:572 src/testing/testing.c:2074
+#: src/testing/testing.c:2093
 #, fuzzy
 msgid "Failed to connect to transport service!\n"
 msgstr "初始化“%s”服务失败。\n"
 
-#: src/testing/testing.c:600
+#: src/testing/testing.c:601
 msgid "Unable to get HELLO for peer!\n"
 msgstr ""
 
-#: src/testing/testing.c:650
+#: src/testing/testing.c:651
 msgid "`gnunet-arm' terminated with non-zero exit status (or timed out)!\n"
 msgstr ""
 
-#: src/testing/testing.c:673 src/testing/testing.c:707
+#: src/testing/testing.c:674 src/testing/testing.c:708
 msgid "either `gnunet-arm' or `ssh' does not seem to terminate.\n"
 msgstr ""
 
-#: src/testing/testing.c:688 src/testing/testing.c:737
+#: src/testing/testing.c:689 src/testing/testing.c:738
 msgid "shutdown (either `gnunet-arm' or `ssh') did not complete cleanly.\n"
 msgstr ""
 
-#: src/testing/testing.c:810
+#: src/testing/testing.c:811
 msgid "`scp' does not seem to terminate.\n"
 msgstr ""
 
-#: src/testing/testing.c:988
+#: src/testing/testing.c:989
 #, c-format
 msgid "Starting service %s for peer `%4s'\n"
 msgstr ""
 
-#: src/testing/testing.c:1360 src/testing/testing.c:1443
-#: src/testing/testing.c:1581
+#: src/testing/testing.c:1361 src/testing/testing.c:1444
+#: src/testing/testing.c:1582
 #, c-format
 msgid "Terminating peer `%4s'\n"
 msgstr ""
 
-#: src/testing/testing.c:1533
+#: src/testing/testing.c:1534
 #, c-format
 msgid "Setting d->dead on peer `%4s'\n"
 msgstr ""
 
-#: src/testing/testing.c:1668
+#: src/testing/testing.c:1669
 msgid "Peer not yet running, can not change configuration at this point."
 msgstr ""
 
-#: src/testing/testing.c:1676
+#: src/testing/testing.c:1677
 #, fuzzy
 msgid "Failed to write new configuration to disk."
 msgstr "保存配置失败。"
 
-#: src/testing/testing.c:1707
+#: src/testing/testing.c:1708
 #, c-format
 msgid "Could not start `%s' process to copy configuration file.\n"
 msgstr ""
 
-#: src/testing/testing.c:1710
+#: src/testing/testing.c:1711
 #, fuzzy
 msgid "Failed to copy new configuration to remote machine."
 msgstr "保存配置失败。"
 
-#: src/testing/testing.c:1881
+#: src/testing/testing.c:1883
 #, fuzzy
 msgid "Peers failed to connect"
 msgstr ""
 "\n"
 "按任意键继续\n"
 
-#: src/testing/testing.c:2036
+#: src/testing/testing.c:2038
 #, fuzzy
 msgid "Failed to connect to core service of first peer!\n"
 msgstr "加载 sqstore 服务失败。检查您的配置!\n"
@@ -822,7 +826,7 @@
 msgstr ""
 
 #: src/hostlist/hostlist-server.c:556
-#: src/transport/gnunet-service-transport.c:458
+#: src/transport/gnunet-service-transport.c:462
 #: src/peerinfo-tool/gnunet-peerinfo.c:208 src/core/gnunet-service-core.c:4607
 #, c-format
 msgid "Could not access PEERINFO service.  Exiting.\n"
@@ -1041,8 +1045,8 @@
 
 #: src/topology/gnunet-daemon-topology.c:676
 #: src/topology/gnunet-daemon-topology.c:778
-#: src/transport/gnunet-service-transport_neighbours.c:432
-#: src/transport/gnunet-service-transport_neighbours.c:627
+#: src/transport/gnunet-service-transport_neighbours.c:465
+#: src/transport/gnunet-service-transport_neighbours.c:662
 msgid "# peers connected"
 msgstr ""
 
@@ -1300,24 +1304,29 @@
 "Failed to establish TCP connection to `%s:%u', no further addresses to try.\n"
 msgstr ""
 
-#: src/util/connection.c:852 src/util/connection.c:1023
+#: src/util/connection.c:852 src/util/connection.c:1028
 #, fuzzy, c-format
 msgid "Trying to connect to `%s' (%p)\n"
 msgstr "无法连接到 %s:%u:%s\n"
 
-#: src/util/connection.c:1013
+#: src/util/connection.c:863
+#, fuzzy, c-format
+msgid "Failed to connect to `%s' (%p)\n"
+msgstr "无法连接到 %s:%u:%s\n"
+
+#: src/util/connection.c:1018
 #, c-format
 msgid "Attempt to connect to `%s' failed\n"
 msgstr ""
 
-#: src/util/connection.c:1529
+#: src/util/connection.c:1534
 #, c-format
 msgid ""
 "Could not satisfy pending transmission request, socket closed or connect "
 "failed (%p).\n"
 msgstr ""
 
-#: src/util/connection.c:1565
+#: src/util/connection.c:1570
 #, fuzzy, c-format
 msgid "Failed to send to `%s': %s\n"
 msgstr "打开日志文件“%s”失败:%s\n"
@@ -1429,7 +1438,7 @@
 "GNUNET_SERVER_receive_done after %llums\n"
 msgstr ""
 
-#: src/util/network.c:1193
+#: src/util/network.c:1194
 #, c-format
 msgid ""
 "Fatal internal logic error, process hangs in `%s' (abort with CTRL-C)!\n"
@@ -1716,7 +1725,7 @@
 "Arguments mandatory for long options are also mandatory for short options.\n"
 msgstr "长选项的必选参数对短选项也是必选的。\n"
 
-#: src/util/getopt_helpers.c:254 src/util/getopt_helpers.c:282
+#: src/util/getopt_helpers.c:253 src/util/getopt_helpers.c:281
 #, c-format
 msgid "You must pass a number to the `%s' option.\n"
 msgstr "您必须向“%s”选项传递一个数字。\n"
@@ -2106,7 +2115,7 @@
 
 #: src/fs/gnunet-download.c:263 src/fs/gnunet-unindex.c:169
 #: src/fs/gnunet-search.c:297 src/fs/gnunet-publish.c:585
-#: src/mesh/test_mesh_small.c:674 src/dht/gnunet-dht-get-peer.c:190
+#: src/mesh/test_mesh_small.c:676 src/dht/gnunet-dht-get-peer.c:190
 #: src/dht/gnunet-dht-put.c:176 src/dht/gnunet-dht-get.c:204
 #: src/nse/gnunet-nse-profiler.c:655
 msgid "be verbose (print progress information)"
@@ -2546,73 +2555,73 @@
 msgid "MAGIC mismatch.  This is not a GNUnet directory.\n"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:693
+#: src/fs/gnunet-service-fs_cp.c:694
 #, c-format
 msgid "Migration of content to peer `%s' blocked for %llu ms\n"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:728
+#: src/fs/gnunet-service-fs_cp.c:729
 msgid "# replies transmitted to other peers"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:734
+#: src/fs/gnunet-service-fs_cp.c:735
 msgid "# replies dropped"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:763 src/fs/gnunet-service-fs_cp.c:879
-#: src/fs/gnunet-service-fs_cp.c:1289 src/fs/gnunet-service-fs_cp.c:1326
+#: src/fs/gnunet-service-fs_cp.c:764 src/fs/gnunet-service-fs_cp.c:880
+#: src/fs/gnunet-service-fs_cp.c:1290 src/fs/gnunet-service-fs_cp.c:1327
 msgid "# P2P searches active"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:836
+#: src/fs/gnunet-service-fs_cp.c:837
 msgid "# artificial delays introduced (ms)"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:899
+#: src/fs/gnunet-service-fs_cp.c:900
 msgid "# replies received for other peers"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:913
+#: src/fs/gnunet-service-fs_cp.c:914
 msgid "# replies dropped due to insufficient cover traffic"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:951
+#: src/fs/gnunet-service-fs_cp.c:952
 msgid "# P2P searches destroyed due to ultimate reply"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1018
+#: src/fs/gnunet-service-fs_cp.c:1019
 msgid "# requests done for free (low load)"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1042
+#: src/fs/gnunet-service-fs_cp.c:1043
 msgid "# request dropped, priority insufficient"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1052
+#: src/fs/gnunet-service-fs_cp.c:1053
 msgid "# requests done for a price (normal load)"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1131
+#: src/fs/gnunet-service-fs_cp.c:1132
 msgid "# GET requests received (from other peers)"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1165
+#: src/fs/gnunet-service-fs_cp.c:1166
 msgid "# requests dropped due to initiator not being connected"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1189
+#: src/fs/gnunet-service-fs_cp.c:1190
 msgid "# requests dropped due to missing reverse route"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1255
+#: src/fs/gnunet-service-fs_cp.c:1256
 msgid "# requests dropped due TTL underflow"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1283
+#: src/fs/gnunet-service-fs_cp.c:1284
 msgid "# requests dropped due to higher-TTL request"
 msgstr ""
 
-#: src/fs/gnunet-service-fs_cp.c:1324
+#: src/fs/gnunet-service-fs_cp.c:1325
 msgid "# P2P query messages received and processed"
 msgstr ""
 
@@ -2930,19 +2939,19 @@
 msgid "Failed to load block plugin `%s'\n"
 msgstr "打开日志文件“%s”失败:%s\n"
 
-#: src/mesh/test_mesh_small.c:687
+#: src/mesh/test_mesh_small.c:689
 msgid "Test mesh in a small network."
 msgstr ""
 
-#: src/arm/mockup-service.c:41 src/arm/gnunet-service-arm.c:859
+#: src/arm/mockup-service.c:41 src/arm/gnunet-service-arm.c:865
 msgid "Failed to transmit shutdown ACK.\n"
 msgstr ""
 
-#: src/arm/mockup-service.c:46 src/arm/gnunet-service-arm.c:864
+#: src/arm/mockup-service.c:46 src/arm/gnunet-service-arm.c:870
 msgid "Transmitting shutdown ACK.\n"
 msgstr ""
 
-#: src/arm/mockup-service.c:69 src/arm/gnunet-service-arm.c:892
+#: src/arm/mockup-service.c:69 src/arm/gnunet-service-arm.c:898
 msgid "Initiating shutdown as requested by client.\n"
 msgstr ""
 
@@ -2994,34 +3003,34 @@
 msgid "Preparing to stop `%s'\n"
 msgstr ""
 
-#: src/arm/gnunet-service-arm.c:665
+#: src/arm/gnunet-service-arm.c:666
 msgid "Stopping all services\n"
 msgstr ""
 
-#: src/arm/gnunet-service-arm.c:717
+#: src/arm/gnunet-service-arm.c:723
 #, c-format
 msgid "Restarting service `%s'.\n"
 msgstr ""
 
-#: src/arm/gnunet-service-arm.c:790
+#: src/arm/gnunet-service-arm.c:796
 msgid "exit"
 msgstr ""
 
-#: src/arm/gnunet-service-arm.c:795
+#: src/arm/gnunet-service-arm.c:801
 msgid "signal"
 msgstr ""
 
-#: src/arm/gnunet-service-arm.c:800
+#: src/arm/gnunet-service-arm.c:806
 #, fuzzy
 msgid "unknown"
 msgstr "未知错误"
 
-#: src/arm/gnunet-service-arm.c:807
+#: src/arm/gnunet-service-arm.c:813
 #, fuzzy, c-format
 msgid "Service `%s' stopped\n"
 msgstr "服务已删除。\n"
 
-#: src/arm/gnunet-service-arm.c:821
+#: src/arm/gnunet-service-arm.c:827
 #, c-format
 msgid "Service `%s' terminated with status %s/%d, will try to restart it!\n"
 msgstr ""
@@ -3326,7 +3335,7 @@
 #: src/transport/test_plugin_transport_udp.c:185
 #: src/transport/test_plugin_transport_https.c:1271
 #: src/transport/test_plugin_transport.c:202
-#: src/transport/gnunet-service-transport.c:435
+#: src/transport/gnunet-service-transport.c:439
 #: src/transport/test_plugin_transport_http.c:1232
 msgid "Transport service is lacking key configuration settings.  Exiting.\n"
 msgstr ""
@@ -3334,7 +3343,7 @@
 #: src/transport/test_plugin_transport_udp.c:195
 #: src/transport/test_plugin_transport_https.c:1335
 #: src/transport/test_plugin_transport.c:212
-#: src/transport/gnunet-service-transport.c:444
+#: src/transport/gnunet-service-transport.c:448
 #: src/transport/test_plugin_transport_http.c:1255
 msgid "Transport service could not access hostkey.  Exiting.\n"
 msgstr ""
@@ -3347,19 +3356,19 @@
 msgid "Failed to load transport plugin for udp\n"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:1422
-#: src/transport/plugin_transport_wlan.c:1617
-#: src/transport/plugin_transport_wlan.c:1736
+#: src/transport/plugin_transport_wlan.c:1436
+#: src/transport/plugin_transport_wlan.c:1631
+#: src/transport/plugin_transport_wlan.c:1750
 #, c-format
 msgid "Error writing to wlan healper. errno == %d, ERROR: %s\n"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:1854
+#: src/transport/plugin_transport_wlan.c:1868
 #, c-format
 msgid "Wlan Address len %d is wrong\n"
 msgstr ""
 
-#: src/transport/plugin_transport_wlan.c:2710
+#: src/transport/plugin_transport_wlan.c:2728
 #, c-format
 msgid "Finished reading from wlan-helper stdout with code: %d\n"
 msgstr ""
@@ -3394,31 +3403,31 @@
 msgid "# SET QUOTA messages received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:776
+#: src/transport/gnunet-service-transport_neighbours.c:811
 msgid "# messages not sent (no such peer or not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:796
+#: src/transport/gnunet-service-transport_neighbours.c:831
 msgid "# bytes in message queue for other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:864
+#: src/transport/gnunet-service-transport_neighbours.c:899
 msgid "# bandwidth quota violations by other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:882
+#: src/transport/gnunet-service-transport_neighbours.c:917
 msgid "# ms throttling suggested"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:907
+#: src/transport/gnunet-service-transport_neighbours.c:942
 msgid "# KEEPALIVE messages discarded (not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:937
+#: src/transport/gnunet-service-transport_neighbours.c:972
 msgid "# SET QUOTA messages ignored (no such peer)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:949
+#: src/transport/gnunet-service-transport_neighbours.c:984
 msgid "# disconnects due to quota of 0"
 msgstr ""
 
@@ -3541,7 +3550,7 @@
 msgstr "发送消息失败。\n"
 
 #: src/transport/test_plugin_transport_https.c:1284
-#: src/transport/plugin_transport_http.c:3321
+#: src/transport/plugin_transport_http.c:3323
 #: src/transport/test_plugin_transport_http.c:1245
 #, c-format
 msgid "Require valid port number for transport plugin `%s' in configuration!\n"
@@ -3576,6 +3585,11 @@
 "\n"
 msgstr ""
 
+#: src/transport/test_transport_api.c:120
+#, fuzzy
+msgid "Fail! Could not connect peers\n"
+msgstr "无法连接到 %s:%u:%s\n"
+
 #: src/transport/gnunet-transport-list-connections.c:91
 #: src/peerinfo-tool/gnunet-peerinfo.c:200
 #: src/core/gnunet-core-list-connections.c:166
@@ -3637,33 +3651,33 @@
 msgid "# HTTP outbound sessions for peers active"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3349
-#: src/transport/plugin_transport_http.c:3378
+#: src/transport/plugin_transport_http.c:3351
+#: src/transport/plugin_transport_http.c:3380
 msgid "Misconfigured address to bind to in configuration!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3404
+#: src/transport/plugin_transport_http.c:3406
 #, c-format
 msgid "Required configuration options missing in section `%s'\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3442
+#: src/transport/plugin_transport_http.c:3444
 msgid ""
 "Could not create a new TLS certificate, program `gnunet-transport-"
 "certificate-creation' could not be started!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3458
+#: src/transport/plugin_transport_http.c:3460
 msgid "No usable TLS certificate found and creating one failed!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3610
+#: src/transport/plugin_transport_http.c:3612
 #, c-format
 msgid ""
 "HTTP Server with %s could not be started on port %u! %s plugin failed!\n"
 msgstr ""
 
-#: src/transport/plugin_transport_http.c:3626
+#: src/transport/plugin_transport_http.c:3628
 #, c-format
 msgid "Could not initialize curl multi handle, failed to start %s plugin!\n"
 msgstr ""
@@ -3760,55 +3774,55 @@
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:520
+#: src/transport/gnunet-service-transport_validation.c:518
 msgid "# address records discarded"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:606
+#: src/transport/gnunet-service-transport_validation.c:604
 #: src/core/gnunet-service-core.c:4187
 msgid "# PING messages received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:628
+#: src/transport/gnunet-service-transport_validation.c:626
 #, c-format
 msgid ""
 "Not confirming PING with address `%s' since I cannot confirm having this "
 "address.\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:685
+#: src/transport/gnunet-service-transport_validation.c:683
 msgid "# PONGs unicast via reliable transport"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:694
+#: src/transport/gnunet-service-transport_validation.c:692
 msgid "# PONGs multicast to all available addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:758
+#: src/transport/gnunet-service-transport_validation.c:756
 #, c-format
 msgid ""
 "Not transmitting `%s' with `%s', message too big (%u bytes!). This should "
 "not happen.\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:792
+#: src/transport/gnunet-service-transport_validation.c:790
 msgid "# PING without HELLO messages sent"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:864
+#: src/transport/gnunet-service-transport_validation.c:862
 msgid "# address revalidations started"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:923
+#: src/transport/gnunet-service-transport_validation.c:921
 #: src/core/gnunet-service-core.c:4210
 msgid "# PONG messages received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:945
+#: src/transport/gnunet-service-transport_validation.c:943
 msgid "# PONGs dropped, no matching pending validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:961
+#: src/transport/gnunet-service-transport_validation.c:959
 msgid "# PONGs dropped, signature expired"
 msgstr ""
 
@@ -3869,17 +3883,17 @@
 "\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:1279
+#: src/transport/plugin_transport_udp.c:1280
 #, c-format
 msgid "Given `%s' option is out of range: %llu > %u\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp.c:1329
+#: src/transport/plugin_transport_udp.c:1330
 #, fuzzy, c-format
 msgid "Invalid IPv6 address: `%s'\n"
 msgstr "无效的进程优先级“%s”\n"
 
-#: src/transport/plugin_transport_udp.c:1455
+#: src/transport/plugin_transport_udp.c:1456
 #, fuzzy
 msgid "Failed to open UDP sockets\n"
 msgstr "打开日志文件“%s”失败:%s\n"
@@ -4248,23 +4262,23 @@
 msgid "Unable to initialize SQLite: %s.\n"
 msgstr "无法初始化 SQLite:%s。\n"
 
-#: src/datastore/plugin_datastore_sqlite.c:662
+#: src/datastore/plugin_datastore_sqlite.c:677
 #, fuzzy
 msgid "Invalid data in database.  Trying to fix (by deletion).\n"
 msgstr "%s 中有无效数据。请尝试修复(删除之)。\n"
 
-#: src/datastore/plugin_datastore_sqlite.c:1115
+#: src/datastore/plugin_datastore_sqlite.c:1130
 msgid "sqlite version to old to determine size, assuming zero\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_sqlite.c:1134
+#: src/datastore/plugin_datastore_sqlite.c:1149
 #, c-format
 msgid ""
 "Using sqlite page utilization to estimate payload (%llu pages of size %llu "
 "bytes)\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_sqlite.c:1173
+#: src/datastore/plugin_datastore_sqlite.c:1188
 #, fuzzy
 msgid "Sqlite database running\n"
 msgstr "sqlite 数据仓库"
@@ -4315,8 +4329,8 @@
 
 #: src/datastore/gnunet-service-datastore.c:681
 #: src/datastore/gnunet-service-datastore.c:735
-#: src/datastore/gnunet-service-datastore.c:953
-#: src/datastore/gnunet-service-datastore.c:1438
+#: src/datastore/gnunet-service-datastore.c:956
+#: src/datastore/gnunet-service-datastore.c:1441
 msgid "# reserved"
 msgstr ""
 
@@ -4324,74 +4338,74 @@
 msgid "Could not find matching reservation"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:835
+#: src/datastore/gnunet-service-datastore.c:838
 #, c-format
 msgid "Need %llu bytes more space (%llu allowed, using %llu)\n"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1001
+#: src/datastore/gnunet-service-datastore.c:1004
 msgid "# GET requests received"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1015
+#: src/datastore/gnunet-service-datastore.c:1018
 msgid "# requests filtered by bloomfilter"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1043
+#: src/datastore/gnunet-service-datastore.c:1046
 msgid "# UPDATE requests received"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1077
+#: src/datastore/gnunet-service-datastore.c:1080
 msgid "# GET REPLICATION requests received"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1112
+#: src/datastore/gnunet-service-datastore.c:1115
 msgid "# GET ZERO ANONYMITY requests received"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1139
+#: src/datastore/gnunet-service-datastore.c:1142
 msgid "Content not found"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1149
+#: src/datastore/gnunet-service-datastore.c:1152
 msgid "# bytes removed (explicit request)"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1183
+#: src/datastore/gnunet-service-datastore.c:1186
 msgid "# REMOVE requests received"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1227
+#: src/datastore/gnunet-service-datastore.c:1230
 #, c-format
 msgid "Datastore payload inaccurate (%lld < %lld).  Trying to fix.\n"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1300
+#: src/datastore/gnunet-service-datastore.c:1303
 #: src/datastore/test_plugin_datastore.c:322
 #: src/datastore/perf_plugin_datastore.c:420
 #, c-format
 msgid "Loading `%s' datastore plugin\n"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1309
+#: src/datastore/gnunet-service-datastore.c:1312
 #, fuzzy, c-format
 msgid "Failed to load datastore plugin for `%s'\n"
 msgstr "解析配置文件“%s”失败\n"
 
-#: src/datastore/gnunet-service-datastore.c:1488
+#: src/datastore/gnunet-service-datastore.c:1491
 msgid "# quota"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1490
+#: src/datastore/gnunet-service-datastore.c:1493
 msgid "# cache size"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1500
+#: src/datastore/gnunet-service-datastore.c:1503
 #, c-format
 msgid "Could not use specified filename `%s' for bloomfilter.\n"
 msgstr ""
 
-#: src/datastore/gnunet-service-datastore.c:1513
+#: src/datastore/gnunet-service-datastore.c:1516
 #, fuzzy
 msgid "Failed to initialize bloomfilter.\n"
 msgstr "初始化“%s”服务失败。\n"
@@ -4529,21 +4543,21 @@
 msgid "Failed to connect to the dv service!\n"
 msgstr "初始化“%s”服务失败。\n"
 
-#: src/nse/gnunet-service-nse.c:864
+#: src/nse/gnunet-service-nse.c:866
 #, c-format
 msgid "Proof of work invalid: %llu!\n"
 msgstr ""
 
-#: src/nse/gnunet-service-nse.c:1286 src/nse/gnunet-service-nse.c:1305
-#: src/nse/gnunet-service-nse.c:1326
+#: src/nse/gnunet-service-nse.c:1288 src/nse/gnunet-service-nse.c:1307
+#: src/nse/gnunet-service-nse.c:1328
 msgid "NSE service is lacking key configuration settings.  Exiting.\n"
 msgstr ""
 
-#: src/nse/gnunet-service-nse.c:1293
+#: src/nse/gnunet-service-nse.c:1295
 msgid "Invalid work requirement for NSE service. Exiting.\n"
 msgstr ""
 
-#: src/nse/gnunet-service-nse.c:1314
+#: src/nse/gnunet-service-nse.c:1316
 #, fuzzy
 msgid "NSE service could not access hostkey.  Exiting.\n"
 msgstr "找不到接口“%s”的一个 IP 地址。\n"

Modified: gnunet/src/core/gnunet-service-core.c
===================================================================
--- gnunet/src/core/gnunet-service-core.c       2011-10-04 09:57:35 UTC (rev 
17161)
+++ gnunet/src/core/gnunet-service-core.c       2011-10-04 11:09:39 UTC (rev 
17162)
@@ -2079,7 +2079,7 @@
               GNUNET_TIME_absolute_get_remaining (m->deadline).rel_value);
 #endif
   n->th =
-      GNUNET_TRANSPORT_notify_transmit_ready (transport, &n->peer, m->size,
+       GNUNET_TRANSPORT_notify_transmit_ready (transport, &n->peer, m->size,
                                               m->priority,
                                               
GNUNET_TIME_absolute_get_remaining
                                               (m->deadline),

Modified: gnunet/src/dht/gnunet-service-dht_neighbours.c
===================================================================
--- gnunet/src/dht/gnunet-service-dht_neighbours.c      2011-10-04 09:57:35 UTC 
(rev 17161)
+++ gnunet/src/dht/gnunet-service-dht_neighbours.c      2011-10-04 11:09:39 UTC 
(rev 17162)
@@ -1274,7 +1274,7 @@
     return;
   }
   GNUNET_STATISTICS_update (GDS_stats,
-                           gettext_noop ("# Peers selected as targets for PUT 
requests"), target_count,
+                           gettext_noop ("# PUT messages queued for 
transmission"), target_count,
                            GNUNET_NO);
   for (i=0;i<target_count;i++)
   {
@@ -1384,7 +1384,7 @@
     return;
   }
   GNUNET_STATISTICS_update (GDS_stats,
-                           gettext_noop ("# Peers selected as targets for GET 
requests"), target_count,
+                           gettext_noop ("# GET messages queued for 
transmission"), target_count,
                            GNUNET_NO);
   /* forward request */
   for (i=0;i<target_count;i++)
@@ -1483,7 +1483,7 @@
     return;
   }
   GNUNET_STATISTICS_update (GDS_stats,
-                           gettext_noop ("# REPLIES routed"), 1,
+                           gettext_noop ("# RESULT messages queued for 
transmission"), 1,
                            GNUNET_NO);
   pending = GNUNET_malloc (sizeof (struct P2PPendingMessage) + msize); 
   pending->importance = 0; /* FIXME */

Modified: gnunet/src/dht/test_dht_multipeer.c
===================================================================
--- gnunet/src/dht/test_dht_multipeer.c 2011-10-04 09:57:35 UTC (rev 17161)
+++ gnunet/src/dht/test_dht_multipeer.c 2011-10-04 11:09:39 UTC (rev 17162)
@@ -250,19 +250,23 @@
 {
   const char *subsystem;
   const char *name;
+  unsigned long long total;
 };
 
 /**
  * Statistics we print out.
  */
 static struct StatValues stats[] = {
-  {"core", "# bytes decrypted"},
-  {"core", "# bytes encrypted"},
-  {"core", "# discarded CORE_SEND requests"},
-  {"core", "# discarded lower priority CORE_SEND requests"},
-  {"transport", "# bytes received via TCP"},
-  {"transport", "# bytes transmitted via TCP"},
-  {"dht", "# FIXME"},
+  {"core", "# bytes decrypted", 0},
+  {"core", "# bytes encrypted", 0},
+  {"transport", "# bytes received via TCP", 0},
+  {"transport", "# bytes transmitted via TCP", 0},
+  {"dht", "# PUT messages queued for transmission"},
+  {"dht", "# P2P PUT requests received"},
+  {"dht", "# GET messages queued for transmission"},
+  {"dht", "# P2P GET requests received"},
+  {"dht", "# RESULT messages queued for transmission"},
+  {"dht", "# P2P RESULTS received"},
   {NULL, NULL}
 };
 
@@ -283,6 +287,7 @@
 {
   struct StatMaster *sm = cls;
 
+  stats[sm->value].total += value;
   fprintf (stderr, "Peer %2u: %12s/%50s = %12llu\n", sm->daemon, subsystem,
            name, (unsigned long long) value);
   return GNUNET_OK;
@@ -317,7 +322,9 @@
 stat_run (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
   struct StatMaster *sm = cls;
+  unsigned int i;
 
+  die_task = GNUNET_SCHEDULER_NO_TASK;
   if (stats[sm->value].name != NULL)
   {
     GNUNET_STATISTICS_get (sm->stat,
@@ -336,14 +343,21 @@
   if (sm->daemon == num_peers)
   {
     GNUNET_free (sm);
-    GNUNET_SCHEDULER_add_now (&do_stop, NULL);
+    i = 0;
+    while (stats[i].name != NULL)
+      {
+       fprintf (stderr, "Total  : %12s/%50s = %12llu\n", stats[i].subsystem,
+                stats[i].name, (unsigned long long) stats[i].total);
+       i++;
+      }
+    die_task = GNUNET_SCHEDULER_add_now (&do_stop, NULL);
     return;
   }
   sm->stat =
       GNUNET_STATISTICS_create ("<driver>",
                                 GNUNET_TESTING_daemon_get (pg, 
                                                           sm->daemon)->cfg);
-  GNUNET_SCHEDULER_add_now (&stat_run, sm);
+  die_task = GNUNET_SCHEDULER_add_now (&stat_run, sm);
 }
 
 
@@ -384,13 +398,12 @@
                                 test_get);
     GNUNET_free (test_get);
   }
-  ok = 0; 
   sm = GNUNET_malloc (sizeof (struct StatMaster));
   sm->stat =
     GNUNET_STATISTICS_create ("<driver>",
                              GNUNET_TESTING_daemon_get (pg, 
                                                         sm->daemon)->cfg);
-  GNUNET_SCHEDULER_add_now (&stat_run, sm);
+  die_task = GNUNET_SCHEDULER_add_now (&stat_run, sm);
 }
 
 
@@ -474,21 +487,25 @@
                               all_gets_tail,
                               test_get);
   GNUNET_free (test_get);
-
-  if ((gets_failed > 0) && (outstanding_gets == 0))       /* Had some failures 
*/
+  if ((gets_failed > 10) && (outstanding_gets == 0))       
   {
+    /* Had more than 10% failures */
     fprintf (stderr,
             "%llu gets succeeded, %llu gets failed!\n",
             gets_completed, gets_failed);
     GNUNET_SCHEDULER_cancel (die_task);
-    die_task = GNUNET_SCHEDULER_add_now (&end_badly, "not all gets succeeded");
+    ok = 1; 
+    die_task = GNUNET_SCHEDULER_add_now (&finish_testing, "not all gets 
succeeded");
     return;
   }
-
-  if ( (gets_completed == num_peers * num_peers) && 
+  if ( (gets_completed + gets_failed == num_peers * num_peers) && 
        (outstanding_gets == 0) )  /* All gets successful */
   {
+    fprintf (stderr,
+            "%llu gets succeeded, %llu gets failed!\n",
+            gets_completed, gets_failed);
     GNUNET_SCHEDULER_cancel (die_task);
+    ok = 0; 
     die_task = GNUNET_SCHEDULER_add_now (&finish_testing, NULL);
   }
 }

Modified: gnunet/src/hello/hello.c
===================================================================
--- gnunet/src/hello/hello.c    2011-10-04 09:57:35 UTC (rev 17161)
+++ gnunet/src/hello/hello.c    2011-10-04 11:09:39 UTC (rev 17162)
@@ -26,7 +26,7 @@
 #include "platform.h"
 #include "gnunet_hello_lib.h"
 #include "gnunet_protocols.h"
-#include "gnunet_server_lib.h"
+#include "gnunet_util_lib.h"
 
 /**
  * A HELLO message is used to exchange information about

Modified: gnunet/src/include/gnunet_common.h
===================================================================
--- gnunet/src/include/gnunet_common.h  2011-10-04 09:57:35 UTC (rev 17161)
+++ gnunet/src/include/gnunet_common.h  2011-10-04 11:09:39 UTC (rev 17162)
@@ -138,6 +138,7 @@
  */
 enum GNUNET_ErrorType
 {
+  GNUNET_ERROR_TYPE_UNSPECIFIED = -1,
   GNUNET_ERROR_TYPE_NONE = 0,
   GNUNET_ERROR_TYPE_ERROR = 1,
   GNUNET_ERROR_TYPE_WARNING = 2,
@@ -161,7 +162,16 @@
                                const char *component, const char *date,
                                const char *message);
 
+
 /**
+ * Number of log calls to ignore.
+ */
+extern unsigned int skip_log;
+#if !defined(GNUNET_CULL_LOGGING)
+int 
+GNUNET_get_log_call_status (int caller_level, const char *comp, const char 
*file, const char *function, int line);
+#endif
+/**
  * Main log function.
  *
  * @param kind how serious is the error?
@@ -169,9 +179,29 @@
  * @param ... arguments for format string
  */
 void
-GNUNET_log (enum GNUNET_ErrorType kind, const char *message, ...);
+GNUNET_log_nocheck (enum GNUNET_ErrorType kind, const char *message, ...);
 
+/* from glib */
+#if defined(__GNUC__) && (__GNUC__ > 2) && defined(__OPTIMIZE__)
+#define _GNUNET_BOOLEAN_EXPR(expr)              \
+ __extension__ ({                               \
+   int _gnunet_boolean_var_;                    \
+   if (expr)                                    \
+      _gnunet_boolean_var_ = 1;                 \
+   else                                         \
+      _gnunet_boolean_var_ = 0;                 \
+   _gnunet_boolean_var_;                        \
+})
+#define GN_LIKELY(expr) (__builtin_expect (_GNUNET_BOOLEAN_EXPR(expr), 1))
+#define GN_UNLIKELY(expr) (__builtin_expect (_GNUNET_BOOLEAN_EXPR(expr), 0))
+#else
+#define GN_LIKELY(expr) (expr)
+#define GN_UNLIKELY(expr) (expr)
+#endif
 
+#if !defined(GNUNET_LOG_CALL_STATUS)
+#define GNUNET_LOG_CALL_STATUS -1
+#endif
 
 /**
  * Log function that specifies an alternative component.
@@ -183,10 +213,36 @@
  * @param ... arguments for format string
  */
 void
-GNUNET_log_from (enum GNUNET_ErrorType kind, const char *comp,
+GNUNET_log_from_nocheck (enum GNUNET_ErrorType kind, const char *comp,
                  const char *message, ...);
 
+#if !defined(GNUNET_CULL_LOGGING)
+#define GNUNET_log_from(kind,comp,...) do { int log_line = __LINE__;\
+  static int log_call_enabled = GNUNET_LOG_CALL_STATUS;\
+  if (GN_UNLIKELY(log_call_enabled == -1))\
+    log_call_enabled = GNUNET_get_log_call_status ((kind) & 
(~GNUNET_ERROR_TYPE_BULK), comp, __FILE__, __FUNCTION__, log_line);\
+  if (GN_UNLIKELY(skip_log > 0)) {skip_log--;}\
+  else {\
+    if (GN_UNLIKELY(log_call_enabled))\
+      GNUNET_log_from_nocheck (kind, comp, __VA_ARGS__);\
+  }\
+} while (0)
 
+#define GNUNET_log(kind,...) do { int log_line = __LINE__;\
+  static int log_call_enabled = GNUNET_LOG_CALL_STATUS;\
+  if (GN_UNLIKELY(log_call_enabled == -1))\
+    log_call_enabled = GNUNET_get_log_call_status ((kind) & 
(~GNUNET_ERROR_TYPE_BULK), NULL, __FILE__, __FUNCTION__, log_line);\
+  if (GN_UNLIKELY(skip_log > 0)) {skip_log--;}\
+  else {\
+    if (GN_UNLIKELY(log_call_enabled))\
+      GNUNET_log_nocheck (kind, __VA_ARGS__);\
+  }\
+} while (0)
+#else
+#define GNUNET_log(...)
+#define GNUNET_log_from(...)
+#endif
+
 /**
  * Ignore the next n calls to the log function.
  *

Modified: gnunet/src/util/common_logging.c
===================================================================
--- gnunet/src/util/common_logging.c    2011-10-04 09:57:35 UTC (rev 17161)
+++ gnunet/src/util/common_logging.c    2011-10-04 11:09:39 UTC (rev 17162)
@@ -115,6 +115,11 @@
 static char *component;
 
 /**
+ * Running component (without pid).
+ */
+static char *component_nopid;
+
+/**
  * Minimum log level.
  */
 static enum GNUNET_ErrorType min_level;
@@ -127,13 +132,94 @@
 /**
  * Number of log calls to ignore.
  */
-static unsigned int skip_log;
+unsigned int skip_log;
 
 /**
  * File descriptor to use for "stderr", or NULL for none.
  */
 static FILE *GNUNET_stderr;
 
+/**
+ * Represents a single logging definition
+ */
+struct LogDef
+{
+  /**
+   * Component name. NULL means that this definition matches any component
+   */
+  char *component;
+
+  /**
+   * File name. NULL means that this definition matches any file
+   */
+  char *file;
+
+  /**
+   * Stores strlen(file)
+   */
+  int strlen_file;
+
+  /**
+   * Function name. NULL means that this definition matches any function
+   */
+  char *function;
+
+  /**
+   * Lowest line at which this definition matches.
+   * Defaults to 0. Must be <= to_line.
+   */
+  int from_line;
+
+  /**
+   * Highest line at which this definition matches.
+   * Defaults to INT_MAX. Must be >= from_line.
+   */
+  int to_line;
+
+  /**
+   * Maximal log level allowed for calls that match this definition.
+   * Calls with higher log level will be disabled.
+   * Must be >= 0
+   */
+  int level;
+
+  /**
+   * 1 if this definition comes from GNUNET_FORCE_LOG, which means that it
+   * overrides any configuration options. 0 otherwise.
+   */
+  int force;
+};
+
+/**
+ * Dynamic array of logging definitions
+ */
+struct LogDef *logdefs = NULL;
+
+/**
+ * Allocated size of logdefs array (in units)
+ */
+int logdefs_size = 0;
+
+/**
+ * The number of units used in logdefs array.
+ */
+int logdefs_len = 0;
+
+/**
+ * GNUNET_YES if GNUNET_LOG environment variable is already parsed.
+ */
+int gnunet_log_parsed = GNUNET_NO;
+
+/**
+ * GNUNET_YES if GNUNET_FORCE_LOG environment variable is already parsed.
+ */
+int gnunet_force_log_parsed = GNUNET_NO;
+
+/**
+ * GNUNET_YES if at least one definition with forced == 1 is available.
+ */
+int gnunet_force_log_present = GNUNET_NO;
+
 #ifdef WINDOWS
 /**
  * Contains the number of performance counts per second.
@@ -151,6 +237,8 @@
 static enum GNUNET_ErrorType
 get_type (const char *log)
 {
+  if (log == NULL)
+    return GNUNET_ERROR_TYPE_UNSPECIFIED;
   if (0 == strcasecmp (log, _("DEBUG")))
     return GNUNET_ERROR_TYPE_DEBUG;
   if (0 == strcasecmp (log, _("INFO")))
@@ -163,9 +251,264 @@
     return GNUNET_ERROR_TYPE_NONE;
   return GNUNET_ERROR_TYPE_INVALID;
 }
+#if !defined(GNUNET_CULL_LOGGING)
+/**
+ * Utility function - reallocates logdefs array to be twice as large.
+ */
+static void
+resize_logdefs ()
+{
+  logdefs_size  = (logdefs_size + 1) * 2;
+  logdefs = GNUNET_realloc (logdefs, logdefs_size * sizeof (struct LogDef));  
+}
 
+/**
+ * Utility function - adds a parsed definition to logdefs array.
+ *
+ * @param component see struct LogDef, can't be NULL
+ * @param file see struct LogDef, can't be NULL
+ * @param function see struct LogDef, can't be NULL
+ * @param from_line see struct LogDef
+ * @param to_line see struct LogDef
+ * @param level see struct LogDef, must be >= 0
+ * @param force see struct LogDef
+ */
+static void
+add_definition (char *component, char *file, char *function, int from_line, 
int to_line, int level, int force)
+{
+  if (logdefs_size == logdefs_len)
+    resize_logdefs ();
+  struct LogDef n;
+  memset (&n, 0, sizeof (n));
+  if (strlen (component) > 0 && component[0] != '*')
+    n.component = strdup (component);
+  if (strlen (file) > 0 && file[0] != '*')
+  {
+    n.file = strdup (file);
+    n.strlen_file = strlen (file);
+  }
+  if (strlen (function) > 0 && function[0] != '*')
+    n.function = strdup (function);
+  n.from_line = from_line;
+  n.to_line = to_line;
+  n.level = level;
+  n.force = force;
+  logdefs[logdefs_len++] = n;
+}
 
+
 /**
+ * Decides whether a particular logging call should or should not be allowed
+ * to be made. Used internally by GNUNET_log*()
+ *
+ * @param caller_level loglevel the caller wants to use
+ * @param comp component name the caller uses (NULL means that global
+ *   component name is used)
+ * @param file file name containing the logging call, usually __FILE__
+ * @param function function which tries to make a logging call,
+ *   usually __FUNCTION__
+ * @param line line at which the call is made, usually __LINE__
+ * @return 0 to disallow the call, 1 to allow it
+ */
+int 
+GNUNET_get_log_call_status (int caller_level, const char *comp, const char 
*file, const char *function, int line)
+{
+  struct LogDef *ld;
+  int i;
+  int force_only;
+  size_t strlen_file;
+  int matches = 0;
+
+  if (comp == NULL)
+    /* Use default component */
+    comp = component_nopid;
+
+  /* We have no definitions to override globally configured log level,
+   * so just use it right away.
+   */
+  if (min_level >= 0 && gnunet_force_log_present == GNUNET_NO)
+    return caller_level <= min_level;
+
+  /* Only look for forced definitions? */
+  force_only = min_level >= 0;
+  strlen_file = strlen (file);
+  for (i = 0; i < logdefs_len; i++)
+  {
+    ld = &logdefs[i];
+    if ((!force_only || ld->force) &&
+        (line >= ld->from_line && line <= ld->to_line) &&
+        (ld->component == NULL || strcmp (comp, ld->component) == 0) &&
+        (ld->file == NULL ||
+         (ld->strlen_file <= strlen_file &&
+          strcmp (&file[strlen_file - ld->strlen_file], ld->file) == 0)) &&
+        (ld->function == NULL || strcmp (function, ld->function) == 0)
+       )
+    {
+      /* This definition matched! */
+      matches += 1;
+      /* And if it allows the call to be made, then we're finished */
+      if (caller_level <= ld->level)
+        return 1;
+    }
+  }
+  /* If some definitions did match, but had too low loglevel to allow logging,
+   * don't check any further.
+   */
+  if (matches > 0)
+    return 0;
+  /* Otherwise use global level, if defined */
+  if (min_level >= 0)
+    return caller_level <= min_level;
+  /* All programs/services previously defaulted to WARNING.
+   * Now WE default to WARNING, and THEY default to NULL.
+   */
+  return caller_level <= GNUNET_ERROR_TYPE_WARNING;
+}
+
+
+/**
+ * Utility function - parses a definition
+ *
+ * Definition format:
+ * component;file;function;from_line-to_line;level[/component...]
+ * All entries are mandatory, but may be empty.
+ * Empty entries for component, file and function are treated as
+ * "matches anything".
+ * Empty line entry is treated as "from 0 to INT_MAX"
+ * Line entry with only one line is treated as "this line only"
+ * Entry for level MUST NOT be empty.
+ * Entries for component, file and function that consist of a
+ * single character "*" are treated (at the moment) the same way
+ * empty entries are treated (wildcard matching is not implemented (yet?)).
+ * file entry is matched to the end of __FILE__. That is, it might be
+ * a base name, or a base name with leading directory names (some compilers
+ * define __FILE__ to absolute file path).
+ *
+ * @param constname name of the environment variable from which to get the
+ *   string to be parsed
+ * @param force 1 if definitions found in @constname are to be forced
+ * @return number of added definitions
+ */
+static int
+parse_definitions (const char *constname, int force)
+{
+  char *def;
+  const char *tmp;
+  char *comp = NULL;
+  char *file = NULL;
+  char *function = NULL;
+  char *p;
+  char *start;
+  char *t;
+  short state;
+  int level;
+  int from_line, to_line;
+  int counter = 0;
+  int keep_looking = 1;
+  tmp = getenv (constname);
+  if (tmp == NULL)
+    return 0;
+  def = strdup (tmp);
+  level = -1;
+  from_line = 0;
+  to_line = INT_MAX;
+  for (p = def, state = 0, start = def; keep_looking; p++)
+  {
+    switch (p[0])
+    {
+    case ';': /* found a field separator */
+      p[0] = '\0';
+      switch (state)
+      {
+      case 0: /* within a component name */
+        comp = start;
+        break;
+      case 1: /* within a file name */
+        file = start;
+        break;
+      case 2: /* within a function name */
+        /* after a file name there must be a function name */
+        function = start;
+        break;
+      case 3: /* within a from-to line range */
+        if (strlen (start) > 0)
+        {
+          errno = 0;
+          from_line = strtol (start, &t, 10);
+          if (errno != 0 || from_line < 0)
+          {
+            free (def);
+            return counter;
+          }
+          if (t < p && t[0] == '-')
+          {
+            errno = 0;
+            start = t + 1;
+            to_line = strtol (start, &t, 10);
+            if (errno != 0 || to_line < 0 || t != p)
+            {
+              free (def);
+              return counter;
+            }
+          }
+          else /* one number means "match this line only" */
+            to_line = from_line;
+        }
+        else /* default to 0-max */
+        {
+          from_line = 0;
+          to_line = INT_MAX;
+        }
+        break;
+      }
+      start = p + 1;
+      state += 1;
+      break;
+    case '\0': /* found EOL */
+      keep_looking = 0;
+      /* fall through to '/' */
+    case '/': /* found a definition separator */
+      switch (state)
+      {
+      case 4: /* within a log level */
+        p[0] = '\0';
+        state = 0;
+        level = get_type ((const char *) start);
+        if (level == GNUNET_ERROR_TYPE_INVALID || level == 
GNUNET_ERROR_TYPE_UNSPECIFIED)
+        {
+          free (def);
+          return counter;
+        }
+        add_definition (comp, file, function, from_line, to_line, level, 
force);
+        counter += 1;
+        start = p + 1;
+        break;
+      default:
+        break;
+      }
+    default:
+      break;
+    }
+  }
+  free (def);
+  return counter;
+}
+
+/**
+ * Utility function - parses GNUNET_LOG and GNUNET_FORCE_LOG.
+ */
+static void
+parse_all_definitions ()
+{
+  if (gnunet_log_parsed == GNUNET_NO)
+    parse_definitions ("GNUNET_LOG", 0);
+  gnunet_log_parsed = GNUNET_YES;
+  if (gnunet_force_log_parsed == GNUNET_NO)
+    gnunet_force_log_present = parse_definitions ("GNUNET_FORCE_LOG", 1) > 0 ? 
GNUNET_YES : GNUNET_NO;
+  gnunet_force_log_parsed = GNUNET_YES;
+}
+#endif
+/**
  * Setup logging.
  *
  * @param comp default component to use
@@ -179,26 +522,24 @@
   FILE *altlog;
   int dirwarn;
   char *fn;
-  const char *env_loglevel;
-  int env_minlevel = 0;
-  int env_min_force_level = 100000;
+  const char *env_logfile = NULL;
 
+  min_level = get_type (loglevel);
+#if !defined(GNUNET_CULL_LOGGING)
+  parse_all_definitions ();
+#endif
 #ifdef WINDOWS
   QueryPerformanceFrequency (&performance_frequency);
 #endif
   GNUNET_free_non_null (component);
   GNUNET_asprintf (&component, "%s-%d", comp, getpid ());
-  env_loglevel = getenv ("GNUNET_LOGLEVEL");
-  if (env_loglevel != NULL)
-    env_minlevel = get_type (env_loglevel);
-  env_loglevel = getenv ("GNUNET_FORCE_LOGLEVEL");
-  if (env_loglevel != NULL)
-    env_min_force_level = get_type (env_loglevel);
-  min_level = get_type (loglevel);
-  if (env_minlevel > min_level)
-    min_level = env_minlevel;
-  if (env_min_force_level < min_level)
-    min_level = env_min_force_level;
+  GNUNET_free_non_null (component_nopid);
+  component_nopid = strdup (comp);
+
+  env_logfile = getenv ("GNUNET_FORCE_LOGFILE");
+  if (env_logfile != NULL)
+    logfile = env_logfile;
+
   if (logfile == NULL)
     return GNUNET_OK;
   fn = GNUNET_STRINGS_filename_expand (logfile);
@@ -383,13 +724,6 @@
   char *buf;
   va_list vacp;
 
-  if (skip_log > 0)
-  {
-    skip_log--;
-    return;
-  }
-  if ((kind & (~GNUNET_ERROR_TYPE_BULK)) > min_level)
-    return;
   va_copy (vacp, va);
   size = VSNPRINTF (NULL, 0, message, vacp) + 1;
   va_end (vacp);
@@ -448,7 +782,7 @@
  * @param ... arguments for format string
  */
 void
-GNUNET_log (enum GNUNET_ErrorType kind, const char *message, ...)
+GNUNET_log_nocheck (enum GNUNET_ErrorType kind, const char *message, ...)
 {
   va_list va;
 
@@ -468,12 +802,15 @@
  * @param ... arguments for format string
  */
 void
-GNUNET_log_from (enum GNUNET_ErrorType kind, const char *comp,
+GNUNET_log_from_nocheck (enum GNUNET_ErrorType kind, const char *comp,
                  const char *message, ...)
 {
   va_list va;
   char comp_w_pid[128];
 
+  if (comp == NULL)
+    comp = component_nopid;
+
   va_start (va, message);
   GNUNET_snprintf (comp_w_pid, sizeof (comp_w_pid), "%s-%d", comp, getpid ());
   mylog (kind, comp_w_pid, message, va);
@@ -498,6 +835,8 @@
     return _("INFO");
   if ((kind & GNUNET_ERROR_TYPE_DEBUG) > 0)
     return _("DEBUG");
+  if ((kind & ~GNUNET_ERROR_TYPE_BULK) == 0)
+    return _("NONE");
   return _("INVALID");
 }
 

Modified: gnunet/src/util/program.c
===================================================================
--- gnunet/src/util/program.c   2011-10-04 09:57:35 UTC (rev 17161)
+++ gnunet/src/util/program.c   2011-10-04 11:09:39 UTC (rev 17162)
@@ -210,7 +210,7 @@
   cnt += sizeof (defoptions) / sizeof (struct GNUNET_GETOPT_CommandLineOption);
   qsort (allopts, cnt, sizeof (struct GNUNET_GETOPT_CommandLineOption),
          &cmd_sorter);
-  loglev = GNUNET_strdup ("WARNING");
+  loglev = NULL;
   cc.cfgfile = GNUNET_strdup (GNUNET_DEFAULT_USER_CONFIG_FILE);
   lpfx = GNUNET_strdup (binaryName);
   if (NULL != (spc = strstr (lpfx, " ")))
@@ -248,7 +248,7 @@
   /* clean up */
   GNUNET_CONFIGURATION_destroy (cfg);
   GNUNET_free_non_null (cc.cfgfile);
-  GNUNET_free (loglev);
+  GNUNET_free_non_null (loglev);
   GNUNET_free_non_null (logfile);
   return GNUNET_OK;
 }

Modified: gnunet/src/util/service.c
===================================================================
--- gnunet/src/util/service.c   2011-10-04 09:57:35 UTC (rev 17161)
+++ gnunet/src/util/service.c   2011-10-04 11:09:39 UTC (rev 17162)
@@ -1542,7 +1542,7 @@
   err = 1;
   do_daemonize = 0;
   logfile = NULL;
-  loglev = GNUNET_strdup ("WARNING");
+  loglev = NULL;
   cfg_fn = GNUNET_strdup (GNUNET_DEFAULT_USER_CONFIG_FILE);
   memset (&sctx, 0, sizeof (sctx));
   sctx.options = opt;
@@ -1611,7 +1611,7 @@
   GNUNET_free_non_null (sctx.addrs);
   GNUNET_free_non_null (sctx.addrlens);
   GNUNET_free_non_null (logfile);
-  GNUNET_free (loglev);
+  GNUNET_free_non_null (loglev);
   GNUNET_free (cfg_fn);
   GNUNET_free_non_null (sctx.v4_denied);
   GNUNET_free_non_null (sctx.v6_denied);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]