LRN's big logging rewrite (#1805):
authorChristian Grothoff <christian@grothoff.org>
Tue, 4 Oct 2011 11:09:39 +0000 (11:09 +0000)
committerChristian Grothoff <christian@grothoff.org>
Tue, 4 Oct 2011 11:09:39 +0000 (11:09 +0000)
* 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

20 files changed:
ChangeLog
configure.ac
po/de.gmo
po/de.po
po/es.gmo
po/es.po
po/gnunet.pot
po/sv.gmo
po/sv.po
po/vi.gmo
po/vi.po
po/zh_CN.po
src/core/gnunet-service-core.c
src/dht/gnunet-service-dht_neighbours.c
src/dht/test_dht_multipeer.c
src/hello/hello.c
src/include/gnunet_common.h
src/util/common_logging.c
src/util/program.c
src/util/service.c

index d2d2f35bbfa2f46101f2683445eebf3a8dfcd722..b11ece9df43e6cee3b423c8c26e051a490846ed9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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:
index d212979694f37f338d17706c040564cf52351ac4..243b4361cfdc8dd3d84a172450b77bb678c11d6e 100644 (file)
@@ -193,6 +193,16 @@ then
   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])
index 1d13e19ade8ff0bec7fc6d70e824443c1261bbf5..32d072756de7dcac8afc13947dd66e18798a0962 100644 (file)
Binary files a/po/de.gmo and b/po/de.gmo differ
index 1770979cb0c220cef89939bed2a1ebee715bc03a..4afe6a7680b316998d6c0e27e4f3fe835c60f542 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNUnet 0.7.0b\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
-"POT-Creation-Date: 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 <durner@gnunet.org>\n"
 "Language-Team: German <de@li.org>\n"
@@ -77,61 +77,65 @@ msgstr ""
 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 @@ msgstr ""
 #: 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 @@ msgstr ""
 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 @@ msgstr ""
 #: 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 @@ msgstr ""
 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 @@ msgstr "Fehler beim Lesen der Freunde-Liste von `%s'\n"
 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 @@ msgid "Advertisement message could not be queued by core\n"
 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 @@ msgstr "# Client Trace-Anfragen empfangen"
 
 #: 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 @@ msgid ""
 "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 @@ msgid ""
 "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 @@ msgstr ""
 "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 @@ msgstr "Das GNUnet Verzeichnis rekursiv herunterladen"
 
 #: 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 @@ msgstr ""
 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 @@ msgstr "Teste Transport(e) %s\n"
 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 @@ msgstr "Konfigurationsdatei `%s' wurde erzeugt.\n"
 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 @@ msgstr "SQLite Datenbank konnte nicht initialisiert werden.\n"
 #: 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 @@ msgstr ""
 #: 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 @@ msgstr "Teste Transport(e) %s\n"
 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 @@ msgstr "# verschlüsselter PONG Nachrichten empfangen"
 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 @@ msgid "Phase 3: sending messages\n"
 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 @@ msgid ""
 "\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 @@ msgstr "`%s' schlug fehl bei %s:%d mit dem Fehler: `%s'.\n"
 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 @@ msgstr ""
 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 @@ msgid ""
 "\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 @@ msgstr "In der Konfigurationsdatei wurden keine Anwendungen definiert!\n"
 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 @@ msgstr ""
 
 #: 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 @@ msgstr ""
 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 @@ msgstr "Beschädigte Nachricht von Knoten `%s' in %s:%d empfangen.\n"
 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 @@ msgstr "Konfigurationsdatei FILENAME verwenden"
 #~ 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"
 
index c08ec94ee86b03e21e122b5b2151d81569d728cf..adbc286dfe57b520e1f66e391ea27e6241a1cc96 100644 (file)
Binary files a/po/es.gmo and b/po/es.gmo differ
index 6eba4dffebbdb08fc4975fe5c337cb90e81405ae..82187fc7b24b6bca1fbf68e4f1a7748ffe1756cf 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNUnet 0.7.0e\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
-"POT-Creation-Date: 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 <miguel.13@telefonica.net>\n"
 "Language-Team: Spanish\n"
@@ -77,61 +77,65 @@ msgstr ""
 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 @@ msgstr ""
 #: 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 @@ msgstr ""
 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 @@ msgstr ""
 #: 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 @@ msgstr ""
 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 @@ msgstr "Imposible inicializar la aplicación '%s'\n"
 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 @@ msgid "Advertisement message could not be queued by core\n"
 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 @@ msgstr "# mensajes PONG encriptados recibidos"
 
 #: 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 @@ msgid ""
 "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 @@ msgid ""
 "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 @@ msgid ""
 "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 @@ msgstr "descarga un directorio de GNUnet recursivamente"
 
 #: 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 @@ msgstr ""
 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 @@ msgstr "Probando transporte(s) %s\n"
 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 @@ msgstr "Fichero de configuración '%s' creado.\n"
 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 @@ msgstr "Imposible inicializar SQLite.\n"
 #: 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 @@ msgstr ""
 #: 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 @@ msgstr "Probando transporte(s) %s\n"
 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 @@ msgstr "# mensajes PONG encriptados recibidos"
 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 @@ msgid "Phase 3: sending messages\n"
 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 @@ msgid ""
 "\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 @@ msgstr "'%s' falló en %s: %d con error: '%s'.\n"
 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 @@ msgstr ""
 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 @@ msgid ""
 "\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 @@ msgstr "¡Ninguna aplicación definida en la configuración!\n"
 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 @@ msgstr ""
 
 #: 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 @@ msgstr ""
 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 @@ msgstr "Recibido mensaje corrupto del par '%s' en %s:%d.\n"
 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 @@ msgstr "usa el fichero de configuración FILENAME"
 #~ 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"
 
index 0790a150fdd70b270ca5aacced065a4f6485d6e2..b3d6c02d20489fab7e41ae0a073962f70a03ccde 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
-"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 <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -71,58 +71,62 @@ msgstr ""
 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 @@ msgstr ""
 #: 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 @@ msgstr ""
 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 @@ msgstr ""
 #: 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 @@ msgstr ""
 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 @@ msgstr ""
 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 @@ msgid "Advertisement message could not be queued by core\n"
 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 @@ msgstr ""
 
 #: 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 @@ msgid ""
 "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 @@ msgid ""
 "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 @@ msgid ""
 "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 @@ msgstr ""
 
 #: 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 @@ msgstr ""
 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 @@ msgstr ""
 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 @@ msgstr ""
 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 @@ msgstr ""
 #: 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 @@ msgstr ""
 #: 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 @@ msgstr ""
 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 @@ msgstr ""
 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 @@ msgid "Phase 3: sending messages\n"
 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 @@ msgid ""
 "\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 @@ msgstr ""
 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 @@ msgstr ""
 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 @@ msgid ""
 "\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 @@ msgstr ""
 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 @@ msgstr ""
 
 #: 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 @@ msgstr ""
 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 @@ msgstr ""
 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 ""
 
index 270c39312a217a0f60a47697591ca5b19d6da3d3..bbd6aa153a1092d472b33cc5f254a3520588c16b 100644 (file)
Binary files a/po/sv.gmo and b/po/sv.gmo differ
index a79ced8141d141d3b206b057f832bf45ffe5955f..b76da1d7ba72678edb80bf364c1f6615bc54faa0 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNUnet 0.7.0b\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
-"POT-Creation-Date: 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 <po@danielnylander.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -75,61 +75,65 @@ msgstr ""
 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 @@ msgstr ""
 #: 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 @@ msgstr ""
 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 @@ msgstr ""
 #: 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 @@ msgstr ""
 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 @@ msgstr "Kunde inte skapa värdnyckel!\n"
 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 @@ msgid "Advertisement message could not be queued by core\n"
 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 @@ msgstr ""
 
 #: 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 @@ msgid ""
 "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 @@ msgid ""
 "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 @@ msgstr ""
 "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 @@ msgstr "hämta en GNUnet-katalog rekursivt"
 
 #: 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 @@ msgstr ""
 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 @@ msgstr "Testar transport(er) %s\n"
 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 @@ msgstr "Konfigurationsfil \"%s\" skapad.\n"
 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 @@ msgstr ""
 #: 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 @@ msgstr ""
 #: 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 @@ msgstr "Testar transport(er) %s\n"
 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 @@ msgstr "# krypterade PONG-meddelanden mottagna"
 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 @@ msgid "Phase 3: sending messages\n"
 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 @@ msgid ""
 "\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 @@ msgstr "\"%s\" misslyckades vid %s:%d med fel: \"%s\".\n"
 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 @@ msgstr ""
 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 @@ msgid ""
 "\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 @@ msgstr "Inga applikationer definierade i konfiguration!\n"
 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 @@ msgstr ""
 
 #: 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 @@ msgstr ""
 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 @@ msgstr "Mottog skadat meddelande från motpart \"%s\"i %s:%d.\n"
 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 @@ msgstr "använd konfigurationsfil FILNAMN"
 #~ 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"
 
index 6b3c4ef0a2f3e4b1d6b9a81cf4024658296c1075..c9fcf9e7880e1b0d82711c5635f76336fe07fae8 100644 (file)
Binary files a/po/vi.gmo and b/po/vi.gmo differ
index 76689b075f8693d3a847ec8e1b28e524b23952c3..5aec758fa7e896b591e3deeb69303f3f97c4f76a 100644 (file)
--- a/po/vi.po
+++ b/po/vi.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnunet 0.8.0a\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
-"POT-Creation-Date: 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 <clytie@riverland.net.au>\n"
 "Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
@@ -79,60 +79,64 @@ msgstr ""
 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 @@ msgstr ""
 #: 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 @@ msgstr ""
 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 @@ msgstr ""
 #: 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 @@ msgstr ""
 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 @@ msgstr "Không thể đọc danh sách bạn bè « %s »\n"
 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 @@ msgid "Advertisement message could not be queued by core\n"
 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 @@ msgstr "# các yêu cầu máy/trình khách lỗ hổng được phun vào"
 
 #: 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 @@ msgid ""
 "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 @@ msgid ""
 "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 @@ msgstr ""
 "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 @@ msgstr "tải xuống đệ quy một thư mục GNUnet"
 
 #: 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 @@ msgstr ""
 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 @@ msgstr "Đang nạp các truyền tải « %s »\n"
 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 @@ msgstr "Tập tin cấu hình « %s » đã được ghi.\n"
 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 @@ msgstr "Lỗi sơ khởi kết nối cơ sở dữ liệu MySQL cho kho dữ li
 #: 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 @@ msgstr ""
 #: 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 @@ msgstr "Đang nạp các truyền tải « %s »\n"
 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 @@ msgstr "# các thông báo PONG đã mật mã được nhận"
 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 @@ msgid "Phase 3: sending messages\n"
 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 @@ msgid ""
 "\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 @@ msgstr "%s bị lỗi tại %s:%d: « %s »\n"
 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 @@ msgstr ""
 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 @@ msgid ""
 "\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 @@ msgstr ""
 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 @@ msgstr ""
 
 #: 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 @@ msgstr ""
 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 @@ msgstr "Nhận được thông báo bị hỏng từ đồng đẳng « %s » tr
 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"
index 1d177ee31461969393410cffb39099d8143fb96d..7831467ae6d88f54a420a26748065d25a7a96eb9 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnunet-0.8.1\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
-"POT-Creation-Date: 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 <wantinghard@gmail.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -70,58 +70,62 @@ msgstr ""
 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 @@ msgstr ""
 #: 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 @@ msgstr ""
 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 @@ msgstr ""
 #: 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 @@ msgstr ""
 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 @@ msgstr ""
 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 @@ msgid "Advertisement message could not be queued by core\n"
 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 @@ msgstr ""
 
 #: 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 @@ msgid ""
 "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 @@ msgid ""
 "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 @@ msgid ""
 "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 @@ msgstr ""
 
 #: 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 @@ msgstr ""
 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 @@ msgstr ""
 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 @@ msgstr "配置文件“%s”已写入。\n"
 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 @@ msgstr ""
 #: 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 @@ msgstr ""
 #: 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 @@ msgstr ""
 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 @@ msgstr ""
 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 @@ msgid "Phase 3: sending messages\n"
 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 @@ msgid ""
 "\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 @@ msgstr ""
 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 @@ msgstr ""
 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 @@ msgid ""
 "\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 @@ msgstr ""
 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 @@ msgstr ""
 
 #: 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 @@ msgstr ""
 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 @@ msgstr ""
 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"
index 944159b65125a3e100c3143975060d87d14c047f..989c79f514d3041b83f034e0924087098aa237e7 100644 (file)
@@ -2079,7 +2079,7 @@ process_encrypted_neighbour_queue (struct Neighbour *n)
               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),
index 69d14ab78aca30f02e7ac3d91d93c99111c93527..6697d49ea1ca99921a5f28a1a22a1b54dcce6a9d 100644 (file)
@@ -1274,7 +1274,7 @@ GDS_NEIGHBOURS_handle_put (enum GNUNET_BLOCK_Type type,
     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 @@ GDS_NEIGHBOURS_handle_get (enum GNUNET_BLOCK_Type type,
     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 @@ GDS_NEIGHBOURS_handle_reply (const struct GNUNET_PeerIdentity *target,
     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 */
index 2fc439ecb241d2dbc8375c0a62ed849eb8d25d4b..eb70424a3fc794a7f7b2ca23b917e31678b34510 100644 (file)
@@ -250,19 +250,23 @@ struct StatValues
 {
   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 @@ print_stat (void *cls, const char *subsystem, const char *name, uint64_t value,
 {
   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 @@ static void
 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 @@ stat_run (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
   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 @@ finish_testing (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
                                 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 @@ get_stop_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
                               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);
   }
 }
index b53bf62bcaf3ca70ed287cbda6692ea859f096b1..c7db77a1887217bd17c75f1842ba29b69ebe76ae 100644 (file)
@@ -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
index f4844821ca029c699d4867168df4baf85d06bc98..6b3ffe2afcdf01b79b20c3dbc8bd7a21e7bc68ec 100644 (file)
@@ -138,6 +138,7 @@ typedef int (*GNUNET_FileNameCallback) (void *cls, const char *filename);
  */
 enum GNUNET_ErrorType
 {
+  GNUNET_ERROR_TYPE_UNSPECIFIED = -1,
   GNUNET_ERROR_TYPE_NONE = 0,
   GNUNET_ERROR_TYPE_ERROR = 1,
   GNUNET_ERROR_TYPE_WARNING = 2,
@@ -161,6 +162,15 @@ typedef void (*GNUNET_Logger) (void *cls, enum GNUNET_ErrorType kind,
                                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.
  *
@@ -169,9 +179,29 @@ typedef void (*GNUNET_Logger) (void *cls, enum GNUNET_ErrorType kind,
  * @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,9 +213,35 @@ GNUNET_log (enum GNUNET_ErrorType kind, const char *message, ...);
  * @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.
index ff3ac12eed2b8d1a3e9616fc6519e050bf7d14f0..16d367de8e00740c3dd83a68c91b3aefd820390d 100644 (file)
@@ -114,6 +114,11 @@ static char last_bulk_comp[COMP_TRACK_SIZE + 1];
  */
 static char *component;
 
+/**
+ * Running component (without pid).
+ */
+static char *component_nopid;
+
 /**
  * Minimum log level.
  */
@@ -127,13 +132,94 @@ static struct CustomLogger *loggers;
 /**
  * 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 @@ LARGE_INTEGER performance_frequency;
 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,8 +251,263 @@ get_type (const char *log)
     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.
  *
@@ -179,26 +522,24 @@ GNUNET_log_setup (const char *comp, const char *loglevel, const char *logfile)
   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 @@ mylog (enum GNUNET_ErrorType kind, const char *comp, const char *message,
   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 @@ mylog (enum GNUNET_ErrorType kind, const char *comp, const char *message,
  * @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 @@ GNUNET_log (enum GNUNET_ErrorType kind, const char *message, ...)
  * @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 @@ GNUNET_error_type_to_string (enum GNUNET_ErrorType kind)
     return _("INFO");
   if ((kind & GNUNET_ERROR_TYPE_DEBUG) > 0)
     return _("DEBUG");
+  if ((kind & ~GNUNET_ERROR_TYPE_BULK) == 0)
+    return _("NONE");
   return _("INVALID");
 }
 
index d89b65a3993d41da4cea31f912a0869c8b7c228f..b0921534320bc1e9d7ff12769c9f6dd8cf35254d 100644 (file)
@@ -210,7 +210,7 @@ GNUNET_PROGRAM_run (int argc, char *const *argv, const char *binaryName,
   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 @@ GNUNET_PROGRAM_run (int argc, char *const *argv, const char *binaryName,
   /* 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;
 }
index dc6a7330ed53d5fe553060185bfd48cd6b46630e..ad74d2786dcf0495369585b57a67ee4dc4fab3ae 100644 (file)
@@ -1542,7 +1542,7 @@ GNUNET_SERVICE_run (int argc, char *const *argv, const char *serviceName,
   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 @@ shutdown:
   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);