aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2015-05-28 09:02:31 +0000
committerChristian Grothoff <christian@grothoff.org>2015-05-28 09:02:31 +0000
commit078f7063aef1d4105e71160b8764ab95c2dcdfbe (patch)
tree86d498356ceaaa1ba738f64a158cce2cd0163a15
parent9469cd334f29ca9437e13eb951b53b7690f10be9 (diff)
downloadgnunet-078f7063aef1d4105e71160b8764ab95c2dcdfbe.tar.gz
gnunet-078f7063aef1d4105e71160b8764ab95c2dcdfbe.zip
adding --enable-taler-wallet configure option to build a reduced version of libgnunetutil with only the parts needed by GNU Taler wallets
-rw-r--r--configure.ac18
-rwxr-xr-xcontrib/gnunet-gns-import.sh19
-rw-r--r--po/de.po241
-rw-r--r--po/es.po252
-rw-r--r--po/fr.po233
-rw-r--r--po/sv.po242
-rw-r--r--po/vi.po245
-rw-r--r--po/zh_CN.po239
-rw-r--r--src/Makefile.am8
-rw-r--r--src/include/Makefile.am7
-rw-r--r--src/include/gnunet_util_taler_wallet_lib.h56
-rw-r--r--src/util/Makefile.am65
-rw-r--r--src/util/configuration.c43
-rw-r--r--src/util/configuration_loader.c69
-rw-r--r--src/util/crypto_ecc.c401
-rw-r--r--src/util/crypto_ecc_setup.c431
-rw-r--r--src/util/crypto_hash.c189
-rw-r--r--src/util/crypto_hash_file.c215
-rw-r--r--src/util/disk.c139
-rw-r--r--src/util/disk_iterator.c166
20 files changed, 1825 insertions, 1453 deletions
diff --git a/configure.ac b/configure.ac
index 6495cc628..53bb114b7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -546,6 +546,21 @@ fi
546AC_CHECK_LIB([kvm],[kvm_open]) 546AC_CHECK_LIB([kvm],[kvm_open])
547AC_CHECK_LIB([kstat],[kstat_open]) 547AC_CHECK_LIB([kstat],[kstat_open])
548 548
549
550# should experimental code be compiled (code that may not yet compile)?
551AC_MSG_CHECKING(whether to compile GNU Taler Wallet library ONLY)
552AC_ARG_ENABLE([taler-wallet],
553 [AS_HELP_STRING([--taler-wallet], [only compile for Taler wallet])],
554 [taler_only=${enableval}],
555 [taler_only=no])
556AC_MSG_RESULT($taler_only)
557AM_CONDITIONAL([TALER_ONLY], [test "x$taler_only" = "xyes"])
558
559if test "$taler_only" != yes
560then
561
562
563
549# test for libextractor 564# test for libextractor
550extractor=0 565extractor=0
551AC_MSG_CHECKING(for libextractor) 566AC_MSG_CHECKING(for libextractor)
@@ -581,6 +596,7 @@ fi
581# restore LIBS 596# restore LIBS
582LIBS=$SAVE_LIBS 597LIBS=$SAVE_LIBS
583 598
599
584# Check for libltdl header (#2999) 600# Check for libltdl header (#2999)
585ltdl=0 601ltdl=0
586AC_MSG_CHECKING(for libltdl) 602AC_MSG_CHECKING(for libltdl)
@@ -618,6 +634,8 @@ fi
618# restore LIBS 634# restore LIBS
619LIBS=$SAVE_LIBS 635LIBS=$SAVE_LIBS
620 636
637fi
638
621# test for libunistring 639# test for libunistring
622gl_LIBUNISTRING 640gl_LIBUNISTRING
623if test $HAVE_LIBUNISTRING != yes; then 641if test $HAVE_LIBUNISTRING != yes; then
diff --git a/contrib/gnunet-gns-import.sh b/contrib/gnunet-gns-import.sh
index cd3878e11..6b52d84e6 100755
--- a/contrib/gnunet-gns-import.sh
+++ b/contrib/gnunet-gns-import.sh
@@ -47,12 +47,29 @@ gnunet-identity -C private-zone $options
47# Additionally, we create the FS SKS zone 47# Additionally, we create the FS SKS zone
48gnunet-identity -C sks-zone $options 48gnunet-identity -C sks-zone $options
49 49
50# Integrate those with the respective subsystems. 50#### Integrate those with the respective subsystems ####
51
52# Zone for shortening by gns-proxy,
53# (remove this entry to disable shortening)
51gnunet-identity -e short-zone -s gns-short $options 54gnunet-identity -e short-zone -s gns-short $options
55
56# Default zone for 'gnunet-gns' lookups
52gnunet-identity -e master-zone -s gns-master $options 57gnunet-identity -e master-zone -s gns-master $options
58
59# Default zone for 'gnunet-namestore' operations
53gnunet-identity -e master-zone -s namestore $options 60gnunet-identity -e master-zone -s namestore $options
61
62# Use master-zone for GNS proxy lookups
54gnunet-identity -e master-zone -s gns-proxy $options 63gnunet-identity -e master-zone -s gns-proxy $options
64
65# Use master-zone for intercepted DNS queries
66# (remove this entry to disable DNS interception by GNS service)
67gnunet-identity -e master-zone -s gns-intercept $options
68
69# 'gns-private' is not yet used (!)
55gnunet-identity -e private-zone -s gns-private $options 70gnunet-identity -e private-zone -s gns-private $options
71
72# 'fs-sks' default ego for gnunet-fs-gtk namespace operations
56gnunet-identity -e sks-zone -s fs-sks $options 73gnunet-identity -e sks-zone -s fs-sks $options
57 74
58# Get the public keys as strings (so we can create PKEY records) 75# Get the public keys as strings (so we can create PKEY records)
diff --git a/po/de.po b/po/de.po
index a756e1ab9..0d47bdb14 100644
--- a/po/de.po
+++ b/po/de.po
@@ -10,7 +10,7 @@ msgid ""
10msgstr "" 10msgstr ""
11"Project-Id-Version: gnunet 0.10.1\n" 11"Project-Id-Version: gnunet 0.10.1\n"
12"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n" 12"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
13"POT-Creation-Date: 2015-04-27 13:05+0200\n" 13"POT-Creation-Date: 2015-05-19 11:25+0200\n"
14"PO-Revision-Date: 2015-03-08 16:16+0100\n" 14"PO-Revision-Date: 2015-03-08 16:16+0100\n"
15"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n" 15"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
16"Language-Team: German <translation-team-de@lists.sourceforge.net>\n" 16"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@@ -643,56 +643,56 @@ msgstr "Informationen über andere GNUnet Knoten ausgeben."
643msgid "Invalid target `%s'\n" 643msgid "Invalid target `%s'\n"
644msgstr "Ungültiger Parameter: `%s'\n" 644msgstr "Ungültiger Parameter: `%s'\n"
645 645
646#: src/cadet/gnunet-cadet.c:626 646#: src/cadet/gnunet-cadet.c:643
647#, fuzzy, c-format 647#, fuzzy, c-format
648msgid "Invalid peer ID `%s'\n" 648msgid "Invalid peer ID `%s'\n"
649msgstr "Ungültige Antwort auf `%s'.\n" 649msgstr "Ungültige Antwort auf `%s'.\n"
650 650
651#: src/cadet/gnunet-cadet.c:669 651#: src/cadet/gnunet-cadet.c:686
652#, fuzzy, c-format 652#, fuzzy, c-format
653msgid "Invalid tunnel owner `%s'\n" 653msgid "Invalid tunnel owner `%s'\n"
654msgstr "Ungültiger Parameter: `%s'\n" 654msgstr "Ungültiger Parameter: `%s'\n"
655 655
656#: src/cadet/gnunet-cadet.c:735 656#: src/cadet/gnunet-cadet.c:752
657msgid "You must NOT give a TARGETwhen using 'request all' options\n" 657msgid "You must NOT give a TARGETwhen using 'request all' options\n"
658msgstr "" 658msgstr ""
659 659
660#: src/cadet/gnunet-cadet.c:832 660#: src/cadet/gnunet-cadet.c:849
661msgid "provide information about a particular connection" 661msgid "provide information about a particular connection"
662msgstr "" 662msgstr ""
663 663
664#: src/cadet/gnunet-cadet.c:835 664#: src/cadet/gnunet-cadet.c:852
665msgid "activate echo mode" 665msgid "activate echo mode"
666msgstr "" 666msgstr ""
667 667
668#: src/cadet/gnunet-cadet.c:838 668#: src/cadet/gnunet-cadet.c:855
669msgid "dump debug information to STDERR" 669msgid "dump debug information to STDERR"
670msgstr "" 670msgstr ""
671 671
672#: src/cadet/gnunet-cadet.c:844 672#: src/cadet/gnunet-cadet.c:861
673msgid "port to listen to (default; 0)" 673msgid "port to listen to (default; 0)"
674msgstr "" 674msgstr ""
675 675
676#: src/cadet/gnunet-cadet.c:847 676#: src/cadet/gnunet-cadet.c:864
677#, fuzzy 677#, fuzzy
678msgid "provide information about a patricular peer" 678msgid "provide information about a patricular peer"
679msgstr "Informationen über andere GNUnet Knoten ausgeben." 679msgstr "Informationen über andere GNUnet Knoten ausgeben."
680 680
681#: src/cadet/gnunet-cadet.c:850 681#: src/cadet/gnunet-cadet.c:867
682#, fuzzy 682#, fuzzy
683msgid "provide information about all peers" 683msgid "provide information about all peers"
684msgstr "Informationen über andere GNUnet Knoten ausgeben." 684msgstr "Informationen über andere GNUnet Knoten ausgeben."
685 685
686#: src/cadet/gnunet-cadet.c:853 686#: src/cadet/gnunet-cadet.c:870
687msgid "provide information about a particular tunnel" 687msgid "provide information about a particular tunnel"
688msgstr "" 688msgstr ""
689 689
690#: src/cadet/gnunet-cadet.c:856 690#: src/cadet/gnunet-cadet.c:873
691#, fuzzy 691#, fuzzy
692msgid "provide information about all tunnels" 692msgid "provide information about all tunnels"
693msgstr "Informationen über andere GNUnet Knoten ausgeben." 693msgstr "Informationen über andere GNUnet Knoten ausgeben."
694 694
695#: src/cadet/gnunet-service-cadet_peer.c:507 695#: src/cadet/gnunet-service-cadet_peer.c:514
696msgid "Wrong CORE service\n" 696msgid "Wrong CORE service\n"
697msgstr "" 697msgstr ""
698 698
@@ -1469,50 +1469,49 @@ msgstr "# Bytes empfangen über TCP"
1469msgid "# updates to my type map" 1469msgid "# updates to my type map"
1470msgstr "" 1470msgstr ""
1471 1471
1472#: src/datacache/datacache.c:115 src/datacache/datacache.c:266 1472#: src/datacache/datacache.c:119 src/datacache/datacache.c:294
1473#: src/datastore/gnunet-service-datastore.c:841 1473#: src/datastore/gnunet-service-datastore.c:841
1474msgid "# bytes stored" 1474msgid "# bytes stored"
1475msgstr "# gespeicherte Bytes" 1475msgstr "# gespeicherte Bytes"
1476 1476
1477#: src/datacache/datacache.c:117 src/datacache/datacache.c:268 1477#: src/datacache/datacache.c:123 src/datacache/datacache.c:298
1478msgid "# items stored" 1478msgid "# items stored"
1479msgstr "# gespeicherte Objekte" 1479msgstr "# gespeicherte Objekte"
1480 1480
1481#: src/datacache/datacache.c:143 src/datacache/datacache.c:150 1481#: src/datacache/datacache.c:202
1482#: src/datastore/gnunet-service-datastore.c:1598
1483#: src/datastore/gnunet-service-datastore.c:1609
1484#, fuzzy, c-format
1485msgid "No `%s' specified for `%s' in configuration!\n"
1486msgstr "In der Konfigurationsdatei wurden keine Anwendungen definiert!\n"
1487
1488#: src/datacache/datacache.c:184
1489#, c-format 1482#, c-format
1490msgid "Loading `%s' datacache plugin\n" 1483msgid "Loading `%s' datacache plugin\n"
1491msgstr "" 1484msgstr ""
1492 1485
1493#: src/datacache/datacache.c:192 1486#: src/datacache/datacache.c:213
1494#, fuzzy, c-format 1487#, fuzzy, c-format
1495msgid "Failed to load datacache plugin for `%s'\n" 1488msgid "Failed to load datacache plugin for `%s'\n"
1496msgstr "Fehler beim Aktualisieren der Daten des Moduls `%s'\n" 1489msgstr "Fehler beim Aktualisieren der Daten des Moduls `%s'\n"
1497 1490
1498#: src/datacache/datacache.c:295 1491#: src/datacache/datacache.c:329
1499msgid "# requests received" 1492msgid "# requests received"
1500msgstr "# Anfragen empfangen" 1493msgstr "# Anfragen empfangen"
1501 1494
1502#: src/datacache/datacache.c:304 1495#: src/datacache/datacache.c:339
1503msgid "# requests filtered by bloom filter" 1496msgid "# requests filtered by bloom filter"
1504msgstr "" 1497msgstr ""
1505 1498
1506#: src/datacache/plugin_datacache_heap.c:406 1499#: src/datacache/datacache.c:367
1507msgid "Heap datacache running\n" 1500#, fuzzy
1508msgstr "" 1501msgid "# requests for random value received"
1502msgstr "# Anfragen empfangen"
1503
1504#: src/datacache/datacache.c:399
1505#, fuzzy
1506msgid "# proximity search requests received"
1507msgstr "# Klartext PONG Nachrichten empfangen"
1509 1508
1510#: src/datacache/plugin_datacache_postgres.c:391 1509#: src/datacache/plugin_datacache_heap.c:466
1511msgid "Postgres datacache running\n" 1510msgid "Heap datacache running\n"
1512msgstr "" 1511msgstr ""
1513 1512
1514#: src/datacache/plugin_datacache_sqlite.c:69 1513#: src/datacache/plugin_datacache_sqlite.c:77
1515#: src/datacache/plugin_datacache_sqlite.c:72 1514#: src/datacache/plugin_datacache_sqlite.c:86
1516#: src/datastore/plugin_datastore_mysql.c:818 1515#: src/datastore/plugin_datastore_mysql.c:818
1517#: src/datastore/plugin_datastore_mysql.c:834 1516#: src/datastore/plugin_datastore_mysql.c:834
1518#: src/datastore/plugin_datastore_sqlite.c:57 src/mysql/mysql.c:41 1517#: src/datastore/plugin_datastore_sqlite.c:57 src/mysql/mysql.c:41
@@ -1527,32 +1526,19 @@ msgstr ""
1527#: src/testbed/gnunet-daemon-latency-logger.c:52 1526#: src/testbed/gnunet-daemon-latency-logger.c:52
1528#: src/testbed/gnunet-daemon-testbed-underlay.c:55 1527#: src/testbed/gnunet-daemon-testbed-underlay.c:55
1529#: src/testbed/testbed_api_hosts.c:69 src/util/crypto_ecc.c:51 1528#: src/testbed/testbed_api_hosts.c:69 src/util/crypto_ecc.c:51
1530#: src/util/crypto_mpi.c:39 src/include/gnunet_common.h:626 1529#: src/util/crypto_mpi.c:39 src/include/gnunet_common.h:667
1531#: src/include/gnunet_common.h:635 src/scalarproduct/scalarproduct.h:35 1530#: src/include/gnunet_common.h:676 src/scalarproduct/scalarproduct.h:35
1532#, c-format 1531#, c-format
1533msgid "`%s' failed at %s:%d with error: %s\n" 1532msgid "`%s' failed at %s:%d with error: %s\n"
1534msgstr "»%s« schlug bei %s:%d mit dem Fehler %s fehl\n" 1533msgstr "»%s« schlug bei %s:%d mit dem Fehler %s fehl\n"
1535 1534
1536#: src/datacache/plugin_datacache_sqlite.c:449 1535#: src/datacache/plugin_datacache_sqlite.c:749
1537msgid "Sqlite datacache running\n"
1538msgstr ""
1539
1540#: src/datacache/plugin_datacache_sqlite.c:483
1541#: src/datastore/plugin_datastore_sqlite.c:401 1536#: src/datastore/plugin_datastore_sqlite.c:401
1542#: src/namecache/plugin_namecache_sqlite.c:292 1537#: src/namecache/plugin_namecache_sqlite.c:292
1543#: src/namestore/plugin_namestore_sqlite.c:324 1538#: src/namestore/plugin_namestore_sqlite.c:324
1544msgid "Tried to close sqlite without finalizing all prepared statements.\n" 1539msgid "Tried to close sqlite without finalizing all prepared statements.\n"
1545msgstr "" 1540msgstr ""
1546 1541
1547#: src/datacache/plugin_datacache_sqlite.c:490
1548#, c-format
1549msgid "Failed to close statement %p: %d\n"
1550msgstr "Anweisung %p konnte nicht geschlossen werden: %d\n"
1551
1552#: src/datacache/plugin_datacache_template.c:125
1553msgid "Template datacache running\n"
1554msgstr ""
1555
1556#: src/datastore/datastore_api.c:310 1542#: src/datastore/datastore_api.c:310
1557#, fuzzy 1543#, fuzzy
1558msgid "Failed to transmit request to drop database.\n" 1544msgid "Failed to transmit request to drop database.\n"
@@ -1802,6 +1788,12 @@ msgstr ""
1802msgid "Plugin does not support get_keys function. Please fix!\n" 1788msgid "Plugin does not support get_keys function. Please fix!\n"
1803msgstr "" 1789msgstr ""
1804 1790
1791#: src/datastore/gnunet-service-datastore.c:1598
1792#: src/datastore/gnunet-service-datastore.c:1609
1793#, fuzzy, c-format
1794msgid "No `%s' specified for `%s' in configuration!\n"
1795msgstr "In der Konfigurationsdatei wurden keine Anwendungen definiert!\n"
1796
1805#: src/datastore/gnunet-service-datastore.c:1603 1797#: src/datastore/gnunet-service-datastore.c:1603
1806#, fuzzy, c-format 1798#, fuzzy, c-format
1807msgid "# bytes used in file-sharing datastore `%s'" 1799msgid "# bytes used in file-sharing datastore `%s'"
@@ -2072,112 +2064,130 @@ msgstr ""
2072msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY." 2064msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY."
2073msgstr "" 2065msgstr ""
2074 2066
2075#: src/dht/gnunet-service-dht.c:172 src/dht/gnunet-service-xdht.c:193 2067#: src/dht/gnunet-service-dht.c:172
2076msgid "Failed to connect to transport service!\n" 2068msgid "Failed to connect to transport service!\n"
2077msgstr "Verbindung zum Transportdienst ist fehlgeschlagen!\n" 2069msgstr "Verbindung zum Transportdienst ist fehlgeschlagen!\n"
2078 2070
2079#: src/dht/gnunet-service-dht_clients.c:417 2071#: src/dht/gnunet-service-dht_clients.c:417
2072#: src/dht/gnunet-service-wdht_clients.c:852
2080#: src/dht/gnunet-service-xdht_clients.c:849 2073#: src/dht/gnunet-service-xdht_clients.c:849
2081#, fuzzy 2074#, fuzzy
2082msgid "# GET requests from clients injected" 2075msgid "# GET requests from clients injected"
2083msgstr "# gap Anfragen mit taktischer Entscheidung: nicht Antworten" 2076msgstr "# gap Anfragen mit taktischer Entscheidung: nicht Antworten"
2084 2077
2085#: src/dht/gnunet-service-dht_clients.c:513 2078#: src/dht/gnunet-service-dht_clients.c:513
2079#: src/dht/gnunet-service-wdht_clients.c:937
2086#: src/dht/gnunet-service-xdht_clients.c:933 2080#: src/dht/gnunet-service-xdht_clients.c:933
2087#, fuzzy 2081#, fuzzy
2088msgid "# PUT requests received from clients" 2082msgid "# PUT requests received from clients"
2089msgstr "Die `%s' Anfrage, die vom Client empfangen wurde, ist beschädigt.\n" 2083msgstr "Die `%s' Anfrage, die vom Client empfangen wurde, ist beschädigt.\n"
2090 2084
2091#: src/dht/gnunet-service-dht_clients.c:597 2085#: src/dht/gnunet-service-dht_clients.c:597
2086#: src/dht/gnunet-service-wdht_clients.c:1003
2092#: src/dht/gnunet-service-xdht_clients.c:998 2087#: src/dht/gnunet-service-xdht_clients.c:998
2093#, fuzzy 2088#, fuzzy
2094msgid "# GET requests received from clients" 2089msgid "# GET requests received from clients"
2095msgstr "Die `%s' Anfrage, die vom Client empfangen wurde, ist beschädigt.\n" 2090msgstr "Die `%s' Anfrage, die vom Client empfangen wurde, ist beschädigt.\n"
2096 2091
2097#: src/dht/gnunet-service-dht_clients.c:798 2092#: src/dht/gnunet-service-dht_clients.c:798
2093#: src/dht/gnunet-service-wdht_clients.c:1212
2098#: src/dht/gnunet-service-xdht_clients.c:1200 2094#: src/dht/gnunet-service-xdht_clients.c:1200
2099#, fuzzy 2095#, fuzzy
2100msgid "# GET STOP requests received from clients" 2096msgid "# GET STOP requests received from clients"
2101msgstr "Die `%s' Anfrage, die vom Client empfangen wurde, ist beschädigt.\n" 2097msgstr "Die `%s' Anfrage, die vom Client empfangen wurde, ist beschädigt.\n"
2102 2098
2103#: src/dht/gnunet-service-dht_clients.c:1040 2099#: src/dht/gnunet-service-dht_clients.c:1040
2100#: src/dht/gnunet-service-wdht_clients.c:505
2104#: src/dht/gnunet-service-xdht_clients.c:503 2101#: src/dht/gnunet-service-xdht_clients.c:503
2105msgid "# Key match, type mismatches in REPLY to CLIENT" 2102msgid "# Key match, type mismatches in REPLY to CLIENT"
2106msgstr "" 2103msgstr ""
2107 2104
2108#: src/dht/gnunet-service-dht_clients.c:1053 2105#: src/dht/gnunet-service-dht_clients.c:1053
2106#: src/dht/gnunet-service-wdht_clients.c:519
2109#: src/dht/gnunet-service-xdht_clients.c:517 2107#: src/dht/gnunet-service-xdht_clients.c:517
2110msgid "# Duplicate REPLIES to CLIENT request dropped" 2108msgid "# Duplicate REPLIES to CLIENT request dropped"
2111msgstr "" 2109msgstr ""
2112 2110
2113#: src/dht/gnunet-service-dht_clients.c:1098 2111#: src/dht/gnunet-service-dht_clients.c:1098
2112#: src/dht/gnunet-service-wdht_clients.c:561
2114#: src/dht/gnunet-service-xdht_clients.c:559 2113#: src/dht/gnunet-service-xdht_clients.c:559
2115#, c-format 2114#, c-format
2116msgid "Unsupported block type (%u) in request!\n" 2115msgid "Unsupported block type (%u) in request!\n"
2117msgstr "" 2116msgstr ""
2118 2117
2119#: src/dht/gnunet-service-dht_clients.c:1121 2118#: src/dht/gnunet-service-dht_clients.c:1121
2119#: src/dht/gnunet-service-wdht_clients.c:584
2120#: src/dht/gnunet-service-xdht_clients.c:582 2120#: src/dht/gnunet-service-xdht_clients.c:582
2121msgid "# RESULTS queued for clients" 2121msgid "# RESULTS queued for clients"
2122msgstr "" 2122msgstr ""
2123 2123
2124#: src/dht/gnunet-service-dht_clients.c:1175 2124#: src/dht/gnunet-service-dht_clients.c:1175
2125#: src/dht/gnunet-service-dht_clients.c:1218 2125#: src/dht/gnunet-service-dht_clients.c:1218
2126#: src/dht/gnunet-service-wdht_clients.c:638
2127#: src/dht/gnunet-service-wdht_clients.c:681
2126#: src/dht/gnunet-service-xdht_clients.c:636 2128#: src/dht/gnunet-service-xdht_clients.c:636
2127#: src/dht/gnunet-service-xdht_clients.c:679 2129#: src/dht/gnunet-service-xdht_clients.c:679
2128msgid "# REPLIES ignored for CLIENTS (no match)" 2130msgid "# REPLIES ignored for CLIENTS (no match)"
2129msgstr "" 2131msgstr ""
2130 2132
2131#: src/dht/gnunet-service-dht_clients.c:1185 2133#: src/dht/gnunet-service-dht_clients.c:1185
2134#: src/dht/gnunet-service-wdht_clients.c:648
2132#: src/dht/gnunet-service-xdht_clients.c:646 2135#: src/dht/gnunet-service-xdht_clients.c:646
2133#, fuzzy 2136#, fuzzy
2134msgid "Could not pass reply to client, message too big!\n" 2137msgid "Could not pass reply to client, message too big!\n"
2135msgstr "'join' Nachricht konnte nicht an gnunetd gesendet werden.\n" 2138msgstr "'join' Nachricht konnte nicht an gnunetd gesendet werden.\n"
2136 2139
2137#: src/dht/gnunet-service-dht_datacache.c:69 2140#: src/dht/gnunet-service-dht_datacache.c:68
2138#: src/dht/gnunet-service-xdht_datacache.c:71
2139#, c-format 2141#, c-format
2140msgid "%s request received, but have no datacache!\n" 2142msgid "%s request received, but have no datacache!\n"
2141msgstr "" 2143msgstr ""
2142 2144
2143#: src/dht/gnunet-service-dht_datacache.c:79 2145#: src/dht/gnunet-service-dht_datacache.c:78
2144#: src/dht/gnunet-service-xdht_datacache.c:82 2146#: src/dht/gnunet-service-wdht_datacache.c:107
2147#: src/dht/gnunet-service-xdht_datacache.c:91
2145msgid "# ITEMS stored in datacache" 2148msgid "# ITEMS stored in datacache"
2146msgstr "" 2149msgstr ""
2147 2150
2148#: src/dht/gnunet-service-dht_datacache.c:176 2151#: src/dht/gnunet-service-dht_datacache.c:184
2149#: src/dht/gnunet-service-xdht_datacache.c:230 2152#: src/dht/gnunet-service-wdht_datacache.c:216
2153#: src/dht/gnunet-service-xdht_datacache.c:238
2150msgid "# Good RESULTS found in datacache" 2154msgid "# Good RESULTS found in datacache"
2151msgstr "" 2155msgstr ""
2152 2156
2153#: src/dht/gnunet-service-dht_datacache.c:193 2157#: src/dht/gnunet-service-dht_datacache.c:201
2154#: src/dht/gnunet-service-xdht_datacache.c:253 2158#: src/dht/gnunet-service-wdht_datacache.c:231
2159#: src/dht/gnunet-service-xdht_datacache.c:267
2155msgid "# Duplicate RESULTS found in datacache" 2160msgid "# Duplicate RESULTS found in datacache"
2156msgstr "" 2161msgstr ""
2157 2162
2158#: src/dht/gnunet-service-dht_datacache.c:199 2163#: src/dht/gnunet-service-dht_datacache.c:207
2159#: src/dht/gnunet-service-xdht_datacache.c:259 2164#: src/dht/gnunet-service-wdht_datacache.c:237
2165#: src/dht/gnunet-service-xdht_datacache.c:273
2160msgid "# Invalid RESULTS found in datacache" 2166msgid "# Invalid RESULTS found in datacache"
2161msgstr "" 2167msgstr ""
2162 2168
2163#: src/dht/gnunet-service-dht_datacache.c:205 2169#: src/dht/gnunet-service-dht_datacache.c:213
2164#: src/dht/gnunet-service-xdht_datacache.c:265 2170#: src/dht/gnunet-service-wdht_datacache.c:243
2171#: src/dht/gnunet-service-xdht_datacache.c:279
2165msgid "# Irrelevant RESULTS found in datacache" 2172msgid "# Irrelevant RESULTS found in datacache"
2166msgstr "" 2173msgstr ""
2167 2174
2168#: src/dht/gnunet-service-dht_datacache.c:217 2175#: src/dht/gnunet-service-dht_datacache.c:225
2169#: src/dht/gnunet-service-xdht_datacache.c:277 2176#: src/dht/gnunet-service-wdht_datacache.c:255
2177#: src/dht/gnunet-service-xdht_datacache.c:291
2170msgid "# Unsupported RESULTS found in datacache" 2178msgid "# Unsupported RESULTS found in datacache"
2171msgstr "" 2179msgstr ""
2172 2180
2173#: src/dht/gnunet-service-dht_datacache.c:221 2181#: src/dht/gnunet-service-dht_datacache.c:229
2174#: src/dht/gnunet-service-xdht_datacache.c:280 2182#: src/dht/gnunet-service-wdht_datacache.c:258
2183#: src/dht/gnunet-service-xdht_datacache.c:294
2175#, c-format 2184#, c-format
2176msgid "Unsupported block type (%u) in local response!\n" 2185msgid "Unsupported block type (%u) in local response!\n"
2177msgstr "" 2186msgstr ""
2178 2187
2179#: src/dht/gnunet-service-dht_datacache.c:254 2188#: src/dht/gnunet-service-dht_datacache.c:262
2180#: src/dht/gnunet-service-xdht_datacache.c:318 2189#: src/dht/gnunet-service-wdht_datacache.c:295
2190#: src/dht/gnunet-service-xdht_datacache.c:334
2181msgid "# GET requests given to datacache" 2191msgid "# GET requests given to datacache"
2182msgstr "" 2192msgstr ""
2183 2193
@@ -2196,7 +2206,7 @@ msgid "# FIND PEER messages initiated"
2196msgstr "# PING Nachrichten erstellt" 2206msgstr "# PING Nachrichten erstellt"
2197 2207
2198#: src/dht/gnunet-service-dht_neighbours.c:763 2208#: src/dht/gnunet-service-dht_neighbours.c:763
2199#: src/dht/gnunet-service-xdht_neighbours.c:6060 2209#: src/dht/gnunet-service-xdht_neighbours.c:6062
2200msgid "# Queued messages discarded (peer disconnected)" 2210msgid "# Queued messages discarded (peer disconnected)"
2201msgstr "" 2211msgstr ""
2202 2212
@@ -2315,7 +2325,8 @@ msgstr ""
2315msgid "# P2P RESULT bytes received" 2325msgid "# P2P RESULT bytes received"
2316msgstr "# Bytes empfangen über TCP" 2326msgstr "# Bytes empfangen über TCP"
2317 2327
2318#: src/dht/gnunet-service-dht_nse.c:59 src/dht/gnunet-service-xdht_nse.c:59 2328#: src/dht/gnunet-service-dht_nse.c:59 src/dht/gnunet-service-wdht_nse.c:59
2329#: src/dht/gnunet-service-xdht_nse.c:59
2319#, fuzzy 2330#, fuzzy
2320msgid "# Network size estimates received" 2331msgid "# Network size estimates received"
2321msgstr "# verschlüsselter PING Nachrichten empfangen" 2332msgstr "# verschlüsselter PING Nachrichten empfangen"
@@ -2353,6 +2364,11 @@ msgstr ""
2353msgid "# DHT requests combined" 2364msgid "# DHT requests combined"
2354msgstr "# dht Anfragen weitergeleitet" 2365msgstr "# dht Anfragen weitergeleitet"
2355 2366
2367#: src/dht/gnunet-service-wdht_datacache.c:82
2368#, fuzzy
2369msgid "PUT request received, but have no datacache!\n"
2370msgstr "Die `%s' Anfrage, die vom Client empfangen wurde, ist beschädigt.\n"
2371
2356#: src/dht/gnunet-service-xdht_neighbours.c:1832 2372#: src/dht/gnunet-service-xdht_neighbours.c:1832
2357#, c-format 2373#, c-format
2358msgid "" 2374msgid ""
@@ -2416,15 +2432,15 @@ msgstr ""
2416#: src/dht/gnunet-service-xdht_neighbours.c:3700 2432#: src/dht/gnunet-service-xdht_neighbours.c:3700
2417#: src/dht/gnunet-service-xdht_neighbours.c:3938 2433#: src/dht/gnunet-service-xdht_neighbours.c:3938
2418#: src/dht/gnunet-service-xdht_neighbours.c:4090 2434#: src/dht/gnunet-service-xdht_neighbours.c:4090
2419#: src/dht/gnunet-service-xdht_neighbours.c:4240 2435#: src/dht/gnunet-service-xdht_neighbours.c:4242
2420#: src/dht/gnunet-service-xdht_neighbours.c:4421 2436#: src/dht/gnunet-service-xdht_neighbours.c:4423
2421#: src/dht/gnunet-service-xdht_neighbours.c:4934 2437#: src/dht/gnunet-service-xdht_neighbours.c:4936
2422#: src/dht/gnunet-service-xdht_neighbours.c:5327 2438#: src/dht/gnunet-service-xdht_neighbours.c:5329
2423#: src/dht/gnunet-service-xdht_neighbours.c:5420 2439#: src/dht/gnunet-service-xdht_neighbours.c:5422
2424#: src/dht/gnunet-service-xdht_neighbours.c:5510 2440#: src/dht/gnunet-service-xdht_neighbours.c:5512
2425#: src/dht/gnunet-service-xdht_neighbours.c:5614 2441#: src/dht/gnunet-service-xdht_neighbours.c:5616
2426#: src/dht/gnunet-service-xdht_neighbours.c:5758 2442#: src/dht/gnunet-service-xdht_neighbours.c:5760
2427#: src/dht/gnunet-service-xdht_neighbours.c:5847 2443#: src/dht/gnunet-service-xdht_neighbours.c:5849
2428#, fuzzy 2444#, fuzzy
2429msgid "# Bytes received from other peers" 2445msgid "# Bytes received from other peers"
2430msgstr "# Bytes des Typs %d empfangen" 2446msgstr "# Bytes des Typs %d empfangen"
@@ -5933,64 +5949,64 @@ msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
5933msgid "Failed to get fragment!\n" 5949msgid "Failed to get fragment!\n"
5934msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n" 5950msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n"
5935 5951
5936#: src/psycstore/gnunet-service-psycstore.c:402 5952#: src/psycstore/gnunet-service-psycstore.c:417
5937#, fuzzy 5953#, fuzzy
5938msgid "Failed to get message!\n" 5954msgid "Failed to get message!\n"
5939msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n" 5955msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
5940 5956
5941#: src/psycstore/gnunet-service-psycstore.c:433 5957#: src/psycstore/gnunet-service-psycstore.c:448
5942#, fuzzy 5958#, fuzzy
5943msgid "Failed to get message fragment!\n" 5959msgid "Failed to get message fragment!\n"
5944msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n" 5960msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
5945 5961
5946#: src/psycstore/gnunet-service-psycstore.c:461 5962#: src/psycstore/gnunet-service-psycstore.c:476
5947#, fuzzy 5963#, fuzzy
5948msgid "Failed to get master counters!\n" 5964msgid "Failed to get master counters!\n"
5949msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n" 5965msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n"
5950 5966
5951#: src/psycstore/gnunet-service-psycstore.c:497 5967#: src/psycstore/gnunet-service-psycstore.c:512
5952#: src/psycstore/gnunet-service-psycstore.c:570 5968#: src/psycstore/gnunet-service-psycstore.c:585
5953msgid "Tried to set invalid state variable name!\n" 5969msgid "Tried to set invalid state variable name!\n"
5954msgstr "" 5970msgstr ""
5955 5971
5956#: src/psycstore/gnunet-service-psycstore.c:513 5972#: src/psycstore/gnunet-service-psycstore.c:528
5957#, fuzzy 5973#, fuzzy
5958msgid "Failed to begin modifying state!\n" 5974msgid "Failed to begin modifying state!\n"
5959msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n" 5975msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n"
5960 5976
5961#: src/psycstore/gnunet-service-psycstore.c:536 5977#: src/psycstore/gnunet-service-psycstore.c:551
5962#, fuzzy, c-format 5978#, fuzzy, c-format
5963msgid "Unknown operator: %c\n" 5979msgid "Unknown operator: %c\n"
5964msgstr "Unbekannte Operation `%s'\n" 5980msgstr "Unbekannte Operation `%s'\n"
5965 5981
5966#: src/psycstore/gnunet-service-psycstore.c:546 5982#: src/psycstore/gnunet-service-psycstore.c:561
5967#, fuzzy 5983#, fuzzy
5968msgid "Failed to end modifying state!\n" 5984msgid "Failed to end modifying state!\n"
5969msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n" 5985msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
5970 5986
5971#: src/psycstore/gnunet-service-psycstore.c:584 5987#: src/psycstore/gnunet-service-psycstore.c:599
5972#, fuzzy 5988#, fuzzy
5973msgid "Failed to begin synchronizing state!\n" 5989msgid "Failed to begin synchronizing state!\n"
5974msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n" 5990msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n"
5975 5991
5976#: src/psycstore/gnunet-service-psycstore.c:600 5992#: src/psycstore/gnunet-service-psycstore.c:615
5977#, fuzzy 5993#, fuzzy
5978msgid "Failed to end synchronizing state!\n" 5994msgid "Failed to end synchronizing state!\n"
5979msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n" 5995msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
5980 5996
5981#: src/psycstore/gnunet-service-psycstore.c:620 5997#: src/psycstore/gnunet-service-psycstore.c:635
5982#: src/psycstore/gnunet-service-psycstore.c:639 5998#: src/psycstore/gnunet-service-psycstore.c:654
5983#, fuzzy 5999#, fuzzy
5984msgid "Failed to reset state!\n" 6000msgid "Failed to reset state!\n"
5985msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n" 6001msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
5986 6002
5987#: src/psycstore/gnunet-service-psycstore.c:662 6003#: src/psycstore/gnunet-service-psycstore.c:677
5988#: src/psycstore/gnunet-service-psycstore.c:713 6004#: src/psycstore/gnunet-service-psycstore.c:728
5989msgid "Tried to get invalid state variable name!\n" 6005msgid "Tried to get invalid state variable name!\n"
5990msgstr "" 6006msgstr ""
5991 6007
5992#: src/psycstore/gnunet-service-psycstore.c:689 6008#: src/psycstore/gnunet-service-psycstore.c:704
5993#: src/psycstore/gnunet-service-psycstore.c:728 6009#: src/psycstore/gnunet-service-psycstore.c:743
5994#, fuzzy 6010#, fuzzy
5995msgid "Failed to get state variable!\n" 6011msgid "Failed to get state variable!\n"
5996msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n" 6012msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n"
@@ -6000,7 +6016,7 @@ msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n"
6000msgid "`%s' failed at %s:%d with error: %s (%d)\n" 6016msgid "`%s' failed at %s:%d with error: %s (%d)\n"
6001msgstr "`%s' schlug bei %s:%d mit dem Fehler %s fehl\n" 6017msgstr "`%s' schlug bei %s:%d mit dem Fehler %s fehl\n"
6002 6018
6003#: src/psycstore/plugin_psycstore_sqlite.c:1932 6019#: src/psycstore/plugin_psycstore_sqlite.c:1936
6004#, fuzzy 6020#, fuzzy
6005msgid "SQLite database running\n" 6021msgid "SQLite database running\n"
6006msgstr "SQL Datenbank beschädigt, Ergebnis wird ignoriert.\n" 6022msgstr "SQL Datenbank beschädigt, Ergebnis wird ignoriert.\n"
@@ -7988,7 +8004,7 @@ msgid "Found %u addresses to report to NAT service\n"
7988msgstr "" 8004msgstr ""
7989 8005
7990#: src/transport/plugin_transport_http_server.c:2825 8006#: src/transport/plugin_transport_http_server.c:2825
7991#: src/transport/plugin_transport_udp.c:3335 8007#: src/transport/plugin_transport_udp.c:3338
7992msgid "Disabling IPv6 since it is not supported on this system!\n" 8008msgid "Disabling IPv6 since it is not supported on this system!\n"
7993msgstr "" 8009msgstr ""
7994 8010
@@ -8230,36 +8246,36 @@ msgid ""
8230"and disable IPv6 if your connection does not have a global IPv6 address\n" 8246"and disable IPv6 if your connection does not have a global IPv6 address\n"
8231msgstr "" 8247msgstr ""
8232 8248
8233#: src/transport/plugin_transport_udp.c:3411 8249#: src/transport/plugin_transport_udp.c:3414
8234#: src/transport/plugin_transport_udp.c:3510 8250#: src/transport/plugin_transport_udp.c:3513
8235#, fuzzy, c-format 8251#, fuzzy, c-format
8236msgid "Failed to bind UDP socket to %s: %s\n" 8252msgid "Failed to bind UDP socket to %s: %s\n"
8237msgstr "UDP-Sockets können nicht geöffnet werden\n" 8253msgstr "UDP-Sockets können nicht geöffnet werden\n"
8238 8254
8239#: src/transport/plugin_transport_udp.c:3429 8255#: src/transport/plugin_transport_udp.c:3432
8240msgid "Disabling IPv4 since it is not supported on this system!\n" 8256msgid "Disabling IPv4 since it is not supported on this system!\n"
8241msgstr "" 8257msgstr ""
8242 8258
8243#: src/transport/plugin_transport_udp.c:3520 8259#: src/transport/plugin_transport_udp.c:3523
8244msgid "Failed to open UDP sockets\n" 8260msgid "Failed to open UDP sockets\n"
8245msgstr "UDP-Sockets können nicht geöffnet werden\n" 8261msgstr "UDP-Sockets können nicht geöffnet werden\n"
8246 8262
8247#: src/transport/plugin_transport_udp.c:3591 8263#: src/transport/plugin_transport_udp.c:3594
8248#: src/transport/plugin_transport_udp.c:3605 8264#: src/transport/plugin_transport_udp.c:3608
8249msgid "must be in [0,65535]" 8265msgid "must be in [0,65535]"
8250msgstr "" 8266msgstr ""
8251 8267
8252#: src/transport/plugin_transport_udp.c:3637 8268#: src/transport/plugin_transport_udp.c:3640
8253#, fuzzy 8269#, fuzzy
8254msgid "must be valid IPv4 address" 8270msgid "must be valid IPv4 address"
8255msgstr "»%s« ist keine gültige IP-Adresse.\n" 8271msgstr "»%s« ist keine gültige IP-Adresse.\n"
8256 8272
8257#: src/transport/plugin_transport_udp.c:3664 8273#: src/transport/plugin_transport_udp.c:3667
8258#, fuzzy 8274#, fuzzy
8259msgid "must be valid IPv6 address" 8275msgid "must be valid IPv6 address"
8260msgstr "»%s« ist keine gültige IP-Adresse.\n" 8276msgstr "»%s« ist keine gültige IP-Adresse.\n"
8261 8277
8262#: src/transport/plugin_transport_udp.c:3730 8278#: src/transport/plugin_transport_udp.c:3733
8263#, fuzzy 8279#, fuzzy
8264msgid "Failed to create UDP network sockets\n" 8280msgid "Failed to create UDP network sockets\n"
8265msgstr "UDP-Sockets können nicht geöffnet werden\n" 8281msgstr "UDP-Sockets können nicht geöffnet werden\n"
@@ -8582,7 +8598,7 @@ msgid "libgcrypt has not the expected version (version %s is required).\n"
8582msgstr "" 8598msgstr ""
8583"libgcrypt hat nicht die erwartete Version (Version %s wird vorausgesetzt).\n" 8599"libgcrypt hat nicht die erwartete Version (Version %s wird vorausgesetzt).\n"
8584 8600
8585#: src/util/crypto_rsa.c:825 8601#: src/util/crypto_rsa.c:891
8586#, fuzzy, c-format 8602#, fuzzy, c-format
8587msgid "RSA signature verification failed at %s:%d: %s\n" 8603msgid "RSA signature verification failed at %s:%d: %s\n"
8588msgstr "RSA Signaturüberprüfung fehlgeschlagen bei %s:%d: %s\n" 8604msgstr "RSA Signaturüberprüfung fehlgeschlagen bei %s:%d: %s\n"
@@ -9384,22 +9400,25 @@ msgstr "Dienst wird über UDP angeboten"
9384msgid "Setup tunnels via VPN." 9400msgid "Setup tunnels via VPN."
9385msgstr "Tunnel über VPN einrichten." 9401msgstr "Tunnel über VPN einrichten."
9386 9402
9387#: src/include/gnunet_common.h:590 src/include/gnunet_common.h:597 9403#: src/include/gnunet_common.h:631 src/include/gnunet_common.h:638
9388#: src/include/gnunet_common.h:605 9404#: src/include/gnunet_common.h:646
9389#, fuzzy, c-format 9405#, fuzzy, c-format
9390msgid "Assertion failed at %s:%d.\n" 9406msgid "Assertion failed at %s:%d.\n"
9391msgstr "`%s' schlug fehl bei %s:%d mit dem Fehler: `%s'.\n" 9407msgstr "`%s' schlug fehl bei %s:%d mit dem Fehler: `%s'.\n"
9392 9408
9393#: src/include/gnunet_common.h:617 9409#: src/include/gnunet_common.h:658
9394#, fuzzy, c-format 9410#, fuzzy, c-format
9395msgid "External protocol violation detected at %s:%d.\n" 9411msgid "External protocol violation detected at %s:%d.\n"
9396msgstr "Protokollverletzung auf Socket. Kommando erwartet.\n" 9412msgstr "Protokollverletzung auf Socket. Kommando erwartet.\n"
9397 9413
9398#: src/include/gnunet_common.h:644 src/include/gnunet_common.h:653 9414#: src/include/gnunet_common.h:685 src/include/gnunet_common.h:694
9399#, fuzzy, c-format 9415#, fuzzy, c-format
9400msgid "`%s' failed on file `%s' at %s:%d with error: %s\n" 9416msgid "`%s' failed on file `%s' at %s:%d with error: %s\n"
9401msgstr "`%s' schlug bei Datei `%s' fehl. Ort: %s:%d. Fehler: %s\n" 9417msgstr "`%s' schlug bei Datei `%s' fehl. Ort: %s:%d. Fehler: %s\n"
9402 9418
9419#~ msgid "Failed to close statement %p: %d\n"
9420#~ msgstr "Anweisung %p konnte nicht geschlossen werden: %d\n"
9421
9403#, fuzzy 9422#, fuzzy
9404#~ msgid "Starting default services `%s'\n" 9423#~ msgid "Starting default services `%s'\n"
9405#~ msgstr "Collection `%s' begonnen.\n" 9424#~ msgstr "Collection `%s' begonnen.\n"
diff --git a/po/es.po b/po/es.po
index 207147b5f..4c950caca 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,11 +7,11 @@ msgid ""
7msgstr "" 7msgstr ""
8"Project-Id-Version: gnunet 0.9.5a\n" 8"Project-Id-Version: gnunet 0.9.5a\n"
9"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n" 9"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
10"POT-Creation-Date: 2015-04-27 13:05+0200\n" 10"POT-Creation-Date: 2015-05-19 11:25+0200\n"
11"PO-Revision-Date: 2013-02-23 17:50+0100\n" 11"PO-Revision-Date: 2013-02-23 17:50+0100\n"
12"Last-Translator: Miguel Ángel Arruga Vivas <rosen644835@gmail.com>\n" 12"Last-Translator: Miguel Ángel Arruga Vivas <rosen644835@gmail.com>\n"
13"Language-Team: Spanish <es@li.org>\n" 13"Language-Team: Spanish <es@li.org>\n"
14"Language: \n" 14"Language: es\n"
15"MIME-Version: 1.0\n" 15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n" 16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n" 17"Content-Transfer-Encoding: 8bit\n"
@@ -699,57 +699,57 @@ msgstr "Imprime información acerca del estado del ATS"
699msgid "Invalid target `%s'\n" 699msgid "Invalid target `%s'\n"
700msgstr "Parámetro no válido «%s»\n" 700msgstr "Parámetro no válido «%s»\n"
701 701
702#: src/cadet/gnunet-cadet.c:626 702#: src/cadet/gnunet-cadet.c:643
703#, fuzzy, c-format 703#, fuzzy, c-format
704msgid "Invalid peer ID `%s'\n" 704msgid "Invalid peer ID `%s'\n"
705msgstr "URI no válida: «%s»\n" 705msgstr "URI no válida: «%s»\n"
706 706
707#: src/cadet/gnunet-cadet.c:669 707#: src/cadet/gnunet-cadet.c:686
708#, fuzzy, c-format 708#, fuzzy, c-format
709msgid "Invalid tunnel owner `%s'\n" 709msgid "Invalid tunnel owner `%s'\n"
710msgstr "Formato de tiempo no válido «%s»\n" 710msgstr "Formato de tiempo no válido «%s»\n"
711 711
712#: src/cadet/gnunet-cadet.c:735 712#: src/cadet/gnunet-cadet.c:752
713msgid "You must NOT give a TARGETwhen using 'request all' options\n" 713msgid "You must NOT give a TARGETwhen using 'request all' options\n"
714msgstr "" 714msgstr ""
715 715
716#: src/cadet/gnunet-cadet.c:832 716#: src/cadet/gnunet-cadet.c:849
717#, fuzzy 717#, fuzzy
718msgid "provide information about a particular connection" 718msgid "provide information about a particular connection"
719msgstr "proveer información acerca de un túnel en particular" 719msgstr "proveer información acerca de un túnel en particular"
720 720
721#: src/cadet/gnunet-cadet.c:835 721#: src/cadet/gnunet-cadet.c:852
722msgid "activate echo mode" 722msgid "activate echo mode"
723msgstr "" 723msgstr ""
724 724
725#: src/cadet/gnunet-cadet.c:838 725#: src/cadet/gnunet-cadet.c:855
726msgid "dump debug information to STDERR" 726msgid "dump debug information to STDERR"
727msgstr "" 727msgstr ""
728 728
729#: src/cadet/gnunet-cadet.c:844 729#: src/cadet/gnunet-cadet.c:861
730msgid "port to listen to (default; 0)" 730msgid "port to listen to (default; 0)"
731msgstr "" 731msgstr ""
732 732
733#: src/cadet/gnunet-cadet.c:847 733#: src/cadet/gnunet-cadet.c:864
734#, fuzzy 734#, fuzzy
735msgid "provide information about a patricular peer" 735msgid "provide information about a patricular peer"
736msgstr "proveer información acerca de un túnel en particular" 736msgstr "proveer información acerca de un túnel en particular"
737 737
738#: src/cadet/gnunet-cadet.c:850 738#: src/cadet/gnunet-cadet.c:867
739#, fuzzy 739#, fuzzy
740msgid "provide information about all peers" 740msgid "provide information about all peers"
741msgstr "proveer información acerca de un túnel en particular" 741msgstr "proveer información acerca de un túnel en particular"
742 742
743#: src/cadet/gnunet-cadet.c:853 743#: src/cadet/gnunet-cadet.c:870
744msgid "provide information about a particular tunnel" 744msgid "provide information about a particular tunnel"
745msgstr "proveer información acerca de un túnel en particular" 745msgstr "proveer información acerca de un túnel en particular"
746 746
747#: src/cadet/gnunet-cadet.c:856 747#: src/cadet/gnunet-cadet.c:873
748#, fuzzy 748#, fuzzy
749msgid "provide information about all tunnels" 749msgid "provide information about all tunnels"
750msgstr "proveer información acerca de un túnel en particular" 750msgstr "proveer información acerca de un túnel en particular"
751 751
752#: src/cadet/gnunet-service-cadet_peer.c:507 752#: src/cadet/gnunet-service-cadet_peer.c:514
753msgid "Wrong CORE service\n" 753msgid "Wrong CORE service\n"
754msgstr "Servicio principal (CORE) erróneo\n" 754msgstr "Servicio principal (CORE) erróneo\n"
755 755
@@ -1538,51 +1538,50 @@ msgstr "# mapas de tipos recibidos"
1538msgid "# updates to my type map" 1538msgid "# updates to my type map"
1539msgstr "# actualizaciones de mi mapa de tipos" 1539msgstr "# actualizaciones de mi mapa de tipos"
1540 1540
1541#: src/datacache/datacache.c:115 src/datacache/datacache.c:266 1541#: src/datacache/datacache.c:119 src/datacache/datacache.c:294
1542#: src/datastore/gnunet-service-datastore.c:841 1542#: src/datastore/gnunet-service-datastore.c:841
1543msgid "# bytes stored" 1543msgid "# bytes stored"
1544msgstr "# bytes almacenados" 1544msgstr "# bytes almacenados"
1545 1545
1546#: src/datacache/datacache.c:117 src/datacache/datacache.c:268 1546#: src/datacache/datacache.c:123 src/datacache/datacache.c:298
1547msgid "# items stored" 1547msgid "# items stored"
1548msgstr "# elementos almacenados" 1548msgstr "# elementos almacenados"
1549 1549
1550#: src/datacache/datacache.c:143 src/datacache/datacache.c:150 1550#: src/datacache/datacache.c:202
1551#: src/datastore/gnunet-service-datastore.c:1598
1552#: src/datastore/gnunet-service-datastore.c:1609
1553#, c-format
1554msgid "No `%s' specified for `%s' in configuration!\n"
1555msgstr "¡No se ha especificado ningún «%s» para «%s» en la configuración!\n"
1556
1557#: src/datacache/datacache.c:184
1558#, c-format 1551#, c-format
1559msgid "Loading `%s' datacache plugin\n" 1552msgid "Loading `%s' datacache plugin\n"
1560msgstr "Cargando el módulo de la cache de datos «%s»\n" 1553msgstr "Cargando el módulo de la cache de datos «%s»\n"
1561 1554
1562#: src/datacache/datacache.c:192 1555#: src/datacache/datacache.c:213
1563#, c-format 1556#, c-format
1564msgid "Failed to load datacache plugin for `%s'\n" 1557msgid "Failed to load datacache plugin for `%s'\n"
1565msgstr "" 1558msgstr ""
1566"Se produjo un fallo al cargar el módulo de la cache de datos para «%s»\n" 1559"Se produjo un fallo al cargar el módulo de la cache de datos para «%s»\n"
1567 1560
1568#: src/datacache/datacache.c:295 1561#: src/datacache/datacache.c:329
1569msgid "# requests received" 1562msgid "# requests received"
1570msgstr "# peticiones recibidas" 1563msgstr "# peticiones recibidas"
1571 1564
1572#: src/datacache/datacache.c:304 1565#: src/datacache/datacache.c:339
1573msgid "# requests filtered by bloom filter" 1566msgid "# requests filtered by bloom filter"
1574msgstr "# peticiones filtradas por el «bloomfilter»" 1567msgstr "# peticiones filtradas por el «bloomfilter»"
1575 1568
1576#: src/datacache/plugin_datacache_heap.c:406 1569#: src/datacache/datacache.c:367
1570#, fuzzy
1571msgid "# requests for random value received"
1572msgstr "# peticiones recibidas"
1573
1574#: src/datacache/datacache.c:399
1575#, fuzzy
1576msgid "# proximity search requests received"
1577msgstr "# búsquedas de clientes recibidas"
1578
1579#: src/datacache/plugin_datacache_heap.c:466
1577msgid "Heap datacache running\n" 1580msgid "Heap datacache running\n"
1578msgstr "Caché de datos de montículo (heap) ejecutándose\n" 1581msgstr "Caché de datos de montículo (heap) ejecutándose\n"
1579 1582
1580#: src/datacache/plugin_datacache_postgres.c:391 1583#: src/datacache/plugin_datacache_sqlite.c:77
1581msgid "Postgres datacache running\n" 1584#: src/datacache/plugin_datacache_sqlite.c:86
1582msgstr "Caché de datos Postgres ejecutándose\n"
1583
1584#: src/datacache/plugin_datacache_sqlite.c:69
1585#: src/datacache/plugin_datacache_sqlite.c:72
1586#: src/datastore/plugin_datastore_mysql.c:818 1585#: src/datastore/plugin_datastore_mysql.c:818
1587#: src/datastore/plugin_datastore_mysql.c:834 1586#: src/datastore/plugin_datastore_mysql.c:834
1588#: src/datastore/plugin_datastore_sqlite.c:57 src/mysql/mysql.c:41 1587#: src/datastore/plugin_datastore_sqlite.c:57 src/mysql/mysql.c:41
@@ -1597,17 +1596,13 @@ msgstr "Caché de datos Postgres ejecutándose\n"
1597#: src/testbed/gnunet-daemon-latency-logger.c:52 1596#: src/testbed/gnunet-daemon-latency-logger.c:52
1598#: src/testbed/gnunet-daemon-testbed-underlay.c:55 1597#: src/testbed/gnunet-daemon-testbed-underlay.c:55
1599#: src/testbed/testbed_api_hosts.c:69 src/util/crypto_ecc.c:51 1598#: src/testbed/testbed_api_hosts.c:69 src/util/crypto_ecc.c:51
1600#: src/util/crypto_mpi.c:39 src/include/gnunet_common.h:626 1599#: src/util/crypto_mpi.c:39 src/include/gnunet_common.h:667
1601#: src/include/gnunet_common.h:635 src/scalarproduct/scalarproduct.h:35 1600#: src/include/gnunet_common.h:676 src/scalarproduct/scalarproduct.h:35
1602#, c-format 1601#, c-format
1603msgid "`%s' failed at %s:%d with error: %s\n" 1602msgid "`%s' failed at %s:%d with error: %s\n"
1604msgstr "«%s» falló en %s: %d con el error: %s\n" 1603msgstr "«%s» falló en %s: %d con el error: %s\n"
1605 1604
1606#: src/datacache/plugin_datacache_sqlite.c:449 1605#: src/datacache/plugin_datacache_sqlite.c:749
1607msgid "Sqlite datacache running\n"
1608msgstr "Caché de datos Sqlite ejecutándose\n"
1609
1610#: src/datacache/plugin_datacache_sqlite.c:483
1611#: src/datastore/plugin_datastore_sqlite.c:401 1606#: src/datastore/plugin_datastore_sqlite.c:401
1612#: src/namecache/plugin_namecache_sqlite.c:292 1607#: src/namecache/plugin_namecache_sqlite.c:292
1613#: src/namestore/plugin_namestore_sqlite.c:324 1608#: src/namestore/plugin_namestore_sqlite.c:324
@@ -1615,15 +1610,6 @@ msgid "Tried to close sqlite without finalizing all prepared statements.\n"
1615msgstr "" 1610msgstr ""
1616"Se intentó cerrar sqlite sin finalizar todas las sentencias preparadas.\n" 1611"Se intentó cerrar sqlite sin finalizar todas las sentencias preparadas.\n"
1617 1612
1618#: src/datacache/plugin_datacache_sqlite.c:490
1619#, c-format
1620msgid "Failed to close statement %p: %d\n"
1621msgstr "Se produjo un fallo al cerrar la sentencia %p: %d\n"
1622
1623#: src/datacache/plugin_datacache_template.c:125
1624msgid "Template datacache running\n"
1625msgstr "Caché de datos de plantilla en ejecución\n"
1626
1627# Miguel: "Drop" en bases de datos es eliminar una tabla 1613# Miguel: "Drop" en bases de datos es eliminar una tabla
1628# del modelo. 1614# del modelo.
1629#: src/datastore/datastore_api.c:310 1615#: src/datastore/datastore_api.c:310
@@ -1874,6 +1860,12 @@ msgstr "Reconstruyendo «bloomfilter». Por favor, tenga paciencia.\n"
1874msgid "Plugin does not support get_keys function. Please fix!\n" 1860msgid "Plugin does not support get_keys function. Please fix!\n"
1875msgstr "El módulo no soporta la función «get_keys». Por favor, corríjalo.\n" 1861msgstr "El módulo no soporta la función «get_keys». Por favor, corríjalo.\n"
1876 1862
1863#: src/datastore/gnunet-service-datastore.c:1598
1864#: src/datastore/gnunet-service-datastore.c:1609
1865#, c-format
1866msgid "No `%s' specified for `%s' in configuration!\n"
1867msgstr "¡No se ha especificado ningún «%s» para «%s» en la configuración!\n"
1868
1877#: src/datastore/gnunet-service-datastore.c:1603 1869#: src/datastore/gnunet-service-datastore.c:1603
1878#, c-format 1870#, c-format
1879msgid "# bytes used in file-sharing datastore `%s'" 1871msgid "# bytes used in file-sharing datastore `%s'"
@@ -2158,31 +2150,36 @@ msgstr ""
2158"Inicianco una petición «PUT» a la DHT de GNUnet para insertar «DATA» bajo " 2150"Inicianco una petición «PUT» a la DHT de GNUnet para insertar «DATA» bajo "
2159"«KEY»." 2151"«KEY»."
2160 2152
2161#: src/dht/gnunet-service-dht.c:172 src/dht/gnunet-service-xdht.c:193 2153#: src/dht/gnunet-service-dht.c:172
2162msgid "Failed to connect to transport service!\n" 2154msgid "Failed to connect to transport service!\n"
2163msgstr "¡Se produjo un fallo al conectar con el servicio de transporte!\n" 2155msgstr "¡Se produjo un fallo al conectar con el servicio de transporte!\n"
2164 2156
2165#: src/dht/gnunet-service-dht_clients.c:417 2157#: src/dht/gnunet-service-dht_clients.c:417
2158#: src/dht/gnunet-service-wdht_clients.c:852
2166#: src/dht/gnunet-service-xdht_clients.c:849 2159#: src/dht/gnunet-service-xdht_clients.c:849
2167msgid "# GET requests from clients injected" 2160msgid "# GET requests from clients injected"
2168msgstr "# peticiones «GET» inyectadas de clientes" 2161msgstr "# peticiones «GET» inyectadas de clientes"
2169 2162
2170#: src/dht/gnunet-service-dht_clients.c:513 2163#: src/dht/gnunet-service-dht_clients.c:513
2164#: src/dht/gnunet-service-wdht_clients.c:937
2171#: src/dht/gnunet-service-xdht_clients.c:933 2165#: src/dht/gnunet-service-xdht_clients.c:933
2172msgid "# PUT requests received from clients" 2166msgid "# PUT requests received from clients"
2173msgstr "# peticiones «PUT» recibidas de clientes" 2167msgstr "# peticiones «PUT» recibidas de clientes"
2174 2168
2175#: src/dht/gnunet-service-dht_clients.c:597 2169#: src/dht/gnunet-service-dht_clients.c:597
2170#: src/dht/gnunet-service-wdht_clients.c:1003
2176#: src/dht/gnunet-service-xdht_clients.c:998 2171#: src/dht/gnunet-service-xdht_clients.c:998
2177msgid "# GET requests received from clients" 2172msgid "# GET requests received from clients"
2178msgstr "# peticiones «GET» recibidas de clientes" 2173msgstr "# peticiones «GET» recibidas de clientes"
2179 2174
2180#: src/dht/gnunet-service-dht_clients.c:798 2175#: src/dht/gnunet-service-dht_clients.c:798
2176#: src/dht/gnunet-service-wdht_clients.c:1212
2181#: src/dht/gnunet-service-xdht_clients.c:1200 2177#: src/dht/gnunet-service-xdht_clients.c:1200
2182msgid "# GET STOP requests received from clients" 2178msgid "# GET STOP requests received from clients"
2183msgstr "# peticiones «GET STOP» recibidas de clientes" 2179msgstr "# peticiones «GET STOP» recibidas de clientes"
2184 2180
2185#: src/dht/gnunet-service-dht_clients.c:1040 2181#: src/dht/gnunet-service-dht_clients.c:1040
2182#: src/dht/gnunet-service-wdht_clients.c:505
2186#: src/dht/gnunet-service-xdht_clients.c:503 2183#: src/dht/gnunet-service-xdht_clients.c:503
2187msgid "# Key match, type mismatches in REPLY to CLIENT" 2184msgid "# Key match, type mismatches in REPLY to CLIENT"
2188msgstr "" 2185msgstr ""
@@ -2190,24 +2187,29 @@ msgstr ""
2190"cliente (CLIENT)" 2187"cliente (CLIENT)"
2191 2188
2192#: src/dht/gnunet-service-dht_clients.c:1053 2189#: src/dht/gnunet-service-dht_clients.c:1053
2190#: src/dht/gnunet-service-wdht_clients.c:519
2193#: src/dht/gnunet-service-xdht_clients.c:517 2191#: src/dht/gnunet-service-xdht_clients.c:517
2194msgid "# Duplicate REPLIES to CLIENT request dropped" 2192msgid "# Duplicate REPLIES to CLIENT request dropped"
2195msgstr "" 2193msgstr ""
2196"# Peticiones duplicadas de respuestas (REPLIES) a clientes (CLIENT) omitidas" 2194"# Peticiones duplicadas de respuestas (REPLIES) a clientes (CLIENT) omitidas"
2197 2195
2198#: src/dht/gnunet-service-dht_clients.c:1098 2196#: src/dht/gnunet-service-dht_clients.c:1098
2197#: src/dht/gnunet-service-wdht_clients.c:561
2199#: src/dht/gnunet-service-xdht_clients.c:559 2198#: src/dht/gnunet-service-xdht_clients.c:559
2200#, c-format 2199#, c-format
2201msgid "Unsupported block type (%u) in request!\n" 2200msgid "Unsupported block type (%u) in request!\n"
2202msgstr "¡Tipo de bloque no soportado (%u) en la petición!\n" 2201msgstr "¡Tipo de bloque no soportado (%u) en la petición!\n"
2203 2202
2204#: src/dht/gnunet-service-dht_clients.c:1121 2203#: src/dht/gnunet-service-dht_clients.c:1121
2204#: src/dht/gnunet-service-wdht_clients.c:584
2205#: src/dht/gnunet-service-xdht_clients.c:582 2205#: src/dht/gnunet-service-xdht_clients.c:582
2206msgid "# RESULTS queued for clients" 2206msgid "# RESULTS queued for clients"
2207msgstr "# Resultados (RESULTS) encolados para clientes" 2207msgstr "# Resultados (RESULTS) encolados para clientes"
2208 2208
2209#: src/dht/gnunet-service-dht_clients.c:1175 2209#: src/dht/gnunet-service-dht_clients.c:1175
2210#: src/dht/gnunet-service-dht_clients.c:1218 2210#: src/dht/gnunet-service-dht_clients.c:1218
2211#: src/dht/gnunet-service-wdht_clients.c:638
2212#: src/dht/gnunet-service-wdht_clients.c:681
2211#: src/dht/gnunet-service-xdht_clients.c:636 2213#: src/dht/gnunet-service-xdht_clients.c:636
2212#: src/dht/gnunet-service-xdht_clients.c:679 2214#: src/dht/gnunet-service-xdht_clients.c:679
2213msgid "# REPLIES ignored for CLIENTS (no match)" 2215msgid "# REPLIES ignored for CLIENTS (no match)"
@@ -2215,55 +2217,63 @@ msgstr ""
2215"# Respuestas (REPLIES) ignoradas para clientes (CLIENTS) (sin coincidencia)" 2217"# Respuestas (REPLIES) ignoradas para clientes (CLIENTS) (sin coincidencia)"
2216 2218
2217#: src/dht/gnunet-service-dht_clients.c:1185 2219#: src/dht/gnunet-service-dht_clients.c:1185
2220#: src/dht/gnunet-service-wdht_clients.c:648
2218#: src/dht/gnunet-service-xdht_clients.c:646 2221#: src/dht/gnunet-service-xdht_clients.c:646
2219msgid "Could not pass reply to client, message too big!\n" 2222msgid "Could not pass reply to client, message too big!\n"
2220msgstr "" 2223msgstr ""
2221"¡No se pudo enviar respuesta al cliente, el mensaje es demasiado grande!\n" 2224"¡No se pudo enviar respuesta al cliente, el mensaje es demasiado grande!\n"
2222 2225
2223#: src/dht/gnunet-service-dht_datacache.c:69 2226#: src/dht/gnunet-service-dht_datacache.c:68
2224#: src/dht/gnunet-service-xdht_datacache.c:71
2225#, c-format 2227#, c-format
2226msgid "%s request received, but have no datacache!\n" 2228msgid "%s request received, but have no datacache!\n"
2227msgstr "¡Petición %s recibida, pero no tiene caché de datos!\n" 2229msgstr "¡Petición %s recibida, pero no tiene caché de datos!\n"
2228 2230
2229#: src/dht/gnunet-service-dht_datacache.c:79 2231#: src/dht/gnunet-service-dht_datacache.c:78
2230#: src/dht/gnunet-service-xdht_datacache.c:82 2232#: src/dht/gnunet-service-wdht_datacache.c:107
2233#: src/dht/gnunet-service-xdht_datacache.c:91
2231msgid "# ITEMS stored in datacache" 2234msgid "# ITEMS stored in datacache"
2232msgstr "# Elementos (ITEMS) almacenados en la caché de datos" 2235msgstr "# Elementos (ITEMS) almacenados en la caché de datos"
2233 2236
2234#: src/dht/gnunet-service-dht_datacache.c:176 2237#: src/dht/gnunet-service-dht_datacache.c:184
2235#: src/dht/gnunet-service-xdht_datacache.c:230 2238#: src/dht/gnunet-service-wdht_datacache.c:216
2239#: src/dht/gnunet-service-xdht_datacache.c:238
2236msgid "# Good RESULTS found in datacache" 2240msgid "# Good RESULTS found in datacache"
2237msgstr "# Buenos resultados (RESULTS) encontrados en la caché de datos" 2241msgstr "# Buenos resultados (RESULTS) encontrados en la caché de datos"
2238 2242
2239#: src/dht/gnunet-service-dht_datacache.c:193 2243#: src/dht/gnunet-service-dht_datacache.c:201
2240#: src/dht/gnunet-service-xdht_datacache.c:253 2244#: src/dht/gnunet-service-wdht_datacache.c:231
2245#: src/dht/gnunet-service-xdht_datacache.c:267
2241msgid "# Duplicate RESULTS found in datacache" 2246msgid "# Duplicate RESULTS found in datacache"
2242msgstr "# Resultados (RESULTS) duplicados encontrados en la caché de datos" 2247msgstr "# Resultados (RESULTS) duplicados encontrados en la caché de datos"
2243 2248
2244#: src/dht/gnunet-service-dht_datacache.c:199 2249#: src/dht/gnunet-service-dht_datacache.c:207
2245#: src/dht/gnunet-service-xdht_datacache.c:259 2250#: src/dht/gnunet-service-wdht_datacache.c:237
2251#: src/dht/gnunet-service-xdht_datacache.c:273
2246msgid "# Invalid RESULTS found in datacache" 2252msgid "# Invalid RESULTS found in datacache"
2247msgstr "# Resultados (RESULTS) no válidos encontrados en la caché de datos" 2253msgstr "# Resultados (RESULTS) no válidos encontrados en la caché de datos"
2248 2254
2249#: src/dht/gnunet-service-dht_datacache.c:205 2255#: src/dht/gnunet-service-dht_datacache.c:213
2250#: src/dht/gnunet-service-xdht_datacache.c:265 2256#: src/dht/gnunet-service-wdht_datacache.c:243
2257#: src/dht/gnunet-service-xdht_datacache.c:279
2251msgid "# Irrelevant RESULTS found in datacache" 2258msgid "# Irrelevant RESULTS found in datacache"
2252msgstr "# Resultados (RESULTS) irrelevantes encontrados en la caché de datos" 2259msgstr "# Resultados (RESULTS) irrelevantes encontrados en la caché de datos"
2253 2260
2254#: src/dht/gnunet-service-dht_datacache.c:217 2261#: src/dht/gnunet-service-dht_datacache.c:225
2255#: src/dht/gnunet-service-xdht_datacache.c:277 2262#: src/dht/gnunet-service-wdht_datacache.c:255
2263#: src/dht/gnunet-service-xdht_datacache.c:291
2256msgid "# Unsupported RESULTS found in datacache" 2264msgid "# Unsupported RESULTS found in datacache"
2257msgstr "# Resultados (RESULTS) no soportados encontrados en la caché de datos" 2265msgstr "# Resultados (RESULTS) no soportados encontrados en la caché de datos"
2258 2266
2259#: src/dht/gnunet-service-dht_datacache.c:221 2267#: src/dht/gnunet-service-dht_datacache.c:229
2260#: src/dht/gnunet-service-xdht_datacache.c:280 2268#: src/dht/gnunet-service-wdht_datacache.c:258
2269#: src/dht/gnunet-service-xdht_datacache.c:294
2261#, c-format 2270#, c-format
2262msgid "Unsupported block type (%u) in local response!\n" 2271msgid "Unsupported block type (%u) in local response!\n"
2263msgstr "¡Tipo de bloque no soportado (%u) en respuesta local!\n" 2272msgstr "¡Tipo de bloque no soportado (%u) en respuesta local!\n"
2264 2273
2265#: src/dht/gnunet-service-dht_datacache.c:254 2274#: src/dht/gnunet-service-dht_datacache.c:262
2266#: src/dht/gnunet-service-xdht_datacache.c:318 2275#: src/dht/gnunet-service-wdht_datacache.c:295
2276#: src/dht/gnunet-service-xdht_datacache.c:334
2267msgid "# GET requests given to datacache" 2277msgid "# GET requests given to datacache"
2268msgstr "# Peticiones «GET» realizadas a la caché de datos" 2278msgstr "# Peticiones «GET» realizadas a la caché de datos"
2269 2279
@@ -2281,7 +2291,7 @@ msgid "# FIND PEER messages initiated"
2281msgstr "# mensajes «FIND PEER» iniciados" 2291msgstr "# mensajes «FIND PEER» iniciados"
2282 2292
2283#: src/dht/gnunet-service-dht_neighbours.c:763 2293#: src/dht/gnunet-service-dht_neighbours.c:763
2284#: src/dht/gnunet-service-xdht_neighbours.c:6060 2294#: src/dht/gnunet-service-xdht_neighbours.c:6062
2285msgid "# Queued messages discarded (peer disconnected)" 2295msgid "# Queued messages discarded (peer disconnected)"
2286msgstr "# Mensajes encolados descartados (par desconectado)" 2296msgstr "# Mensajes encolados descartados (par desconectado)"
2287 2297
@@ -2393,7 +2403,8 @@ msgstr "# Resultados (RESULTS) P2P recibidos"
2393msgid "# P2P RESULT bytes received" 2403msgid "# P2P RESULT bytes received"
2394msgstr "# Resultados (RESULTS) P2P recibidos" 2404msgstr "# Resultados (RESULTS) P2P recibidos"
2395 2405
2396#: src/dht/gnunet-service-dht_nse.c:59 src/dht/gnunet-service-xdht_nse.c:59 2406#: src/dht/gnunet-service-dht_nse.c:59 src/dht/gnunet-service-wdht_nse.c:59
2407#: src/dht/gnunet-service-xdht_nse.c:59
2397msgid "# Network size estimates received" 2408msgid "# Network size estimates received"
2398msgstr "# Estimaciones del tamaño de red recibidas" 2409msgstr "# Estimaciones del tamaño de red recibidas"
2399 2410
@@ -2435,6 +2446,11 @@ msgstr "# Entradas añadidas a la tabla de encaminamiento"
2435msgid "# DHT requests combined" 2446msgid "# DHT requests combined"
2436msgstr "# Peticiones a la DHT combinadas" 2447msgstr "# Peticiones a la DHT combinadas"
2437 2448
2449#: src/dht/gnunet-service-wdht_datacache.c:82
2450#, fuzzy
2451msgid "PUT request received, but have no datacache!\n"
2452msgstr "¡Petición %s recibida, pero no tiene caché de datos!\n"
2453
2438#: src/dht/gnunet-service-xdht_neighbours.c:1832 2454#: src/dht/gnunet-service-xdht_neighbours.c:1832
2439#, c-format 2455#, c-format
2440msgid "" 2456msgid ""
@@ -2498,15 +2514,15 @@ msgstr ""
2498#: src/dht/gnunet-service-xdht_neighbours.c:3700 2514#: src/dht/gnunet-service-xdht_neighbours.c:3700
2499#: src/dht/gnunet-service-xdht_neighbours.c:3938 2515#: src/dht/gnunet-service-xdht_neighbours.c:3938
2500#: src/dht/gnunet-service-xdht_neighbours.c:4090 2516#: src/dht/gnunet-service-xdht_neighbours.c:4090
2501#: src/dht/gnunet-service-xdht_neighbours.c:4240 2517#: src/dht/gnunet-service-xdht_neighbours.c:4242
2502#: src/dht/gnunet-service-xdht_neighbours.c:4421 2518#: src/dht/gnunet-service-xdht_neighbours.c:4423
2503#: src/dht/gnunet-service-xdht_neighbours.c:4934 2519#: src/dht/gnunet-service-xdht_neighbours.c:4936
2504#: src/dht/gnunet-service-xdht_neighbours.c:5327 2520#: src/dht/gnunet-service-xdht_neighbours.c:5329
2505#: src/dht/gnunet-service-xdht_neighbours.c:5420 2521#: src/dht/gnunet-service-xdht_neighbours.c:5422
2506#: src/dht/gnunet-service-xdht_neighbours.c:5510 2522#: src/dht/gnunet-service-xdht_neighbours.c:5512
2507#: src/dht/gnunet-service-xdht_neighbours.c:5614 2523#: src/dht/gnunet-service-xdht_neighbours.c:5616
2508#: src/dht/gnunet-service-xdht_neighbours.c:5758 2524#: src/dht/gnunet-service-xdht_neighbours.c:5760
2509#: src/dht/gnunet-service-xdht_neighbours.c:5847 2525#: src/dht/gnunet-service-xdht_neighbours.c:5849
2510#, fuzzy 2526#, fuzzy
2511msgid "# Bytes received from other peers" 2527msgid "# Bytes received from other peers"
2512msgstr "# respuestas recibidas de otros pares" 2528msgstr "# respuestas recibidas de otros pares"
@@ -6121,64 +6137,64 @@ msgstr "Se produjo un fallo al iniciar el demonio: %s\n"
6121msgid "Failed to get fragment!\n" 6137msgid "Failed to get fragment!\n"
6122msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n" 6138msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n"
6123 6139
6124#: src/psycstore/gnunet-service-psycstore.c:402 6140#: src/psycstore/gnunet-service-psycstore.c:417
6125#, fuzzy 6141#, fuzzy
6126msgid "Failed to get message!\n" 6142msgid "Failed to get message!\n"
6127msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n" 6143msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n"
6128 6144
6129#: src/psycstore/gnunet-service-psycstore.c:433 6145#: src/psycstore/gnunet-service-psycstore.c:448
6130#, fuzzy 6146#, fuzzy
6131msgid "Failed to get message fragment!\n" 6147msgid "Failed to get message fragment!\n"
6132msgstr "Se produjo un fallo al procesar un mensaje «HELLO»: mal formado\n" 6148msgstr "Se produjo un fallo al procesar un mensaje «HELLO»: mal formado\n"
6133 6149
6134#: src/psycstore/gnunet-service-psycstore.c:461 6150#: src/psycstore/gnunet-service-psycstore.c:476
6135#, fuzzy 6151#, fuzzy
6136msgid "Failed to get master counters!\n" 6152msgid "Failed to get master counters!\n"
6137msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n" 6153msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n"
6138 6154
6139#: src/psycstore/gnunet-service-psycstore.c:497 6155#: src/psycstore/gnunet-service-psycstore.c:512
6140#: src/psycstore/gnunet-service-psycstore.c:570 6156#: src/psycstore/gnunet-service-psycstore.c:585
6141msgid "Tried to set invalid state variable name!\n" 6157msgid "Tried to set invalid state variable name!\n"
6142msgstr "" 6158msgstr ""
6143 6159
6144#: src/psycstore/gnunet-service-psycstore.c:513 6160#: src/psycstore/gnunet-service-psycstore.c:528
6145#, fuzzy 6161#, fuzzy
6146msgid "Failed to begin modifying state!\n" 6162msgid "Failed to begin modifying state!\n"
6147msgstr "Se produjo un fallo al cargar el estado: %s\n" 6163msgstr "Se produjo un fallo al cargar el estado: %s\n"
6148 6164
6149#: src/psycstore/gnunet-service-psycstore.c:536 6165#: src/psycstore/gnunet-service-psycstore.c:551
6150#, fuzzy, c-format 6166#, fuzzy, c-format
6151msgid "Unknown operator: %c\n" 6167msgid "Unknown operator: %c\n"
6152msgstr "Operación desconocida '%s'\n" 6168msgstr "Operación desconocida '%s'\n"
6153 6169
6154#: src/psycstore/gnunet-service-psycstore.c:546 6170#: src/psycstore/gnunet-service-psycstore.c:561
6155#, fuzzy 6171#, fuzzy
6156msgid "Failed to end modifying state!\n" 6172msgid "Failed to end modifying state!\n"
6157msgstr "Se produjo un fallo al cargar el estado: %s\n" 6173msgstr "Se produjo un fallo al cargar el estado: %s\n"
6158 6174
6159#: src/psycstore/gnunet-service-psycstore.c:584 6175#: src/psycstore/gnunet-service-psycstore.c:599
6160#, fuzzy 6176#, fuzzy
6161msgid "Failed to begin synchronizing state!\n" 6177msgid "Failed to begin synchronizing state!\n"
6162msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n" 6178msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n"
6163 6179
6164#: src/psycstore/gnunet-service-psycstore.c:600 6180#: src/psycstore/gnunet-service-psycstore.c:615
6165#, fuzzy 6181#, fuzzy
6166msgid "Failed to end synchronizing state!\n" 6182msgid "Failed to end synchronizing state!\n"
6167msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n" 6183msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n"
6168 6184
6169#: src/psycstore/gnunet-service-psycstore.c:620 6185#: src/psycstore/gnunet-service-psycstore.c:635
6170#: src/psycstore/gnunet-service-psycstore.c:639 6186#: src/psycstore/gnunet-service-psycstore.c:654
6171#, fuzzy 6187#, fuzzy
6172msgid "Failed to reset state!\n" 6188msgid "Failed to reset state!\n"
6173msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n" 6189msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n"
6174 6190
6175#: src/psycstore/gnunet-service-psycstore.c:662 6191#: src/psycstore/gnunet-service-psycstore.c:677
6176#: src/psycstore/gnunet-service-psycstore.c:713 6192#: src/psycstore/gnunet-service-psycstore.c:728
6177msgid "Tried to get invalid state variable name!\n" 6193msgid "Tried to get invalid state variable name!\n"
6178msgstr "" 6194msgstr ""
6179 6195
6180#: src/psycstore/gnunet-service-psycstore.c:689 6196#: src/psycstore/gnunet-service-psycstore.c:704
6181#: src/psycstore/gnunet-service-psycstore.c:728 6197#: src/psycstore/gnunet-service-psycstore.c:743
6182#, fuzzy 6198#, fuzzy
6183msgid "Failed to get state variable!\n" 6199msgid "Failed to get state variable!\n"
6184msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n" 6200msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n"
@@ -6188,7 +6204,7 @@ msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n"
6188msgid "`%s' failed at %s:%d with error: %s (%d)\n" 6204msgid "`%s' failed at %s:%d with error: %s (%d)\n"
6189msgstr "«%s» falló en %s: %d con el error: %s\n" 6205msgstr "«%s» falló en %s: %d con el error: %s\n"
6190 6206
6191#: src/psycstore/plugin_psycstore_sqlite.c:1932 6207#: src/psycstore/plugin_psycstore_sqlite.c:1936
6192#, fuzzy 6208#, fuzzy
6193msgid "SQLite database running\n" 6209msgid "SQLite database running\n"
6194msgstr "Base de datos sqlite ejecutándose\n" 6210msgstr "Base de datos sqlite ejecutándose\n"
@@ -8293,7 +8309,7 @@ msgid "Found %u addresses to report to NAT service\n"
8293msgstr "Encontradas %u direcciones para comunicar al servicio NAT\n" 8309msgstr "Encontradas %u direcciones para comunicar al servicio NAT\n"
8294 8310
8295#: src/transport/plugin_transport_http_server.c:2825 8311#: src/transport/plugin_transport_http_server.c:2825
8296#: src/transport/plugin_transport_udp.c:3335 8312#: src/transport/plugin_transport_udp.c:3338
8297msgid "Disabling IPv6 since it is not supported on this system!\n" 8313msgid "Disabling IPv6 since it is not supported on this system!\n"
8298msgstr "¡Deshabilitando IPv6 ya que no está soportado en este sistema!\n" 8314msgstr "¡Deshabilitando IPv6 ya que no está soportado en este sistema!\n"
8299 8315
@@ -8547,37 +8563,37 @@ msgstr ""
8547"configuración de red y deshabilite IPv6 si su conexión carece de una " 8563"configuración de red y deshabilite IPv6 si su conexión carece de una "
8548"dirección IPv6 global\n" 8564"dirección IPv6 global\n"
8549 8565
8550#: src/transport/plugin_transport_udp.c:3411 8566#: src/transport/plugin_transport_udp.c:3414
8551#: src/transport/plugin_transport_udp.c:3510 8567#: src/transport/plugin_transport_udp.c:3513
8552#, fuzzy, c-format 8568#, fuzzy, c-format
8553msgid "Failed to bind UDP socket to %s: %s\n" 8569msgid "Failed to bind UDP socket to %s: %s\n"
8554msgstr "Se produjo un fallo al abrir los «sockets» UDP\n" 8570msgstr "Se produjo un fallo al abrir los «sockets» UDP\n"
8555 8571
8556#: src/transport/plugin_transport_udp.c:3429 8572#: src/transport/plugin_transport_udp.c:3432
8557#, fuzzy 8573#, fuzzy
8558msgid "Disabling IPv4 since it is not supported on this system!\n" 8574msgid "Disabling IPv4 since it is not supported on this system!\n"
8559msgstr "¡Deshabilitando IPv6 ya que no está soportado en este sistema!\n" 8575msgstr "¡Deshabilitando IPv6 ya que no está soportado en este sistema!\n"
8560 8576
8561#: src/transport/plugin_transport_udp.c:3520 8577#: src/transport/plugin_transport_udp.c:3523
8562msgid "Failed to open UDP sockets\n" 8578msgid "Failed to open UDP sockets\n"
8563msgstr "Se produjo un fallo al abrir los «sockets» UDP\n" 8579msgstr "Se produjo un fallo al abrir los «sockets» UDP\n"
8564 8580
8565#: src/transport/plugin_transport_udp.c:3591 8581#: src/transport/plugin_transport_udp.c:3594
8566#: src/transport/plugin_transport_udp.c:3605 8582#: src/transport/plugin_transport_udp.c:3608
8567msgid "must be in [0,65535]" 8583msgid "must be in [0,65535]"
8568msgstr "" 8584msgstr ""
8569 8585
8570#: src/transport/plugin_transport_udp.c:3637 8586#: src/transport/plugin_transport_udp.c:3640
8571#, fuzzy 8587#, fuzzy
8572msgid "must be valid IPv4 address" 8588msgid "must be valid IPv4 address"
8573msgstr "«%s» no es una dirección IP válida.\n" 8589msgstr "«%s» no es una dirección IP válida.\n"
8574 8590
8575#: src/transport/plugin_transport_udp.c:3664 8591#: src/transport/plugin_transport_udp.c:3667
8576#, fuzzy 8592#, fuzzy
8577msgid "must be valid IPv6 address" 8593msgid "must be valid IPv6 address"
8578msgstr "«%s» no es una dirección IP válida.\n" 8594msgstr "«%s» no es una dirección IP válida.\n"
8579 8595
8580#: src/transport/plugin_transport_udp.c:3730 8596#: src/transport/plugin_transport_udp.c:3733
8581#, fuzzy 8597#, fuzzy
8582msgid "Failed to create UDP network sockets\n" 8598msgid "Failed to create UDP network sockets\n"
8583msgstr "Se produjo un fallo al crear una nueva firma" 8599msgstr "Se produjo un fallo al crear una nueva firma"
@@ -8912,7 +8928,7 @@ msgstr "La verificación de la firma RSA fallo en %s:%d: %s\n"
8912msgid "libgcrypt has not the expected version (version %s is required).\n" 8928msgid "libgcrypt has not the expected version (version %s is required).\n"
8913msgstr "libgcrypt no tiene la versión esperada (se necesita la versión %s).\n" 8929msgstr "libgcrypt no tiene la versión esperada (se necesita la versión %s).\n"
8914 8930
8915#: src/util/crypto_rsa.c:825 8931#: src/util/crypto_rsa.c:891
8916#, c-format 8932#, c-format
8917msgid "RSA signature verification failed at %s:%d: %s\n" 8933msgid "RSA signature verification failed at %s:%d: %s\n"
8918msgstr "La verificación de la firma RSA fallo en %s:%d: %s\n" 8934msgstr "La verificación de la firma RSA fallo en %s:%d: %s\n"
@@ -9741,22 +9757,34 @@ msgstr "el servicio es ofrecido vía UDP"
9741msgid "Setup tunnels via VPN." 9757msgid "Setup tunnels via VPN."
9742msgstr "Configurar túneles vía VPN." 9758msgstr "Configurar túneles vía VPN."
9743 9759
9744#: src/include/gnunet_common.h:590 src/include/gnunet_common.h:597 9760#: src/include/gnunet_common.h:631 src/include/gnunet_common.h:638
9745#: src/include/gnunet_common.h:605 9761#: src/include/gnunet_common.h:646
9746#, c-format 9762#, c-format
9747msgid "Assertion failed at %s:%d.\n" 9763msgid "Assertion failed at %s:%d.\n"
9748msgstr "Aserción fallida en %s:%d.\n" 9764msgstr "Aserción fallida en %s:%d.\n"
9749 9765
9750#: src/include/gnunet_common.h:617 9766#: src/include/gnunet_common.h:658
9751#, c-format 9767#, c-format
9752msgid "External protocol violation detected at %s:%d.\n" 9768msgid "External protocol violation detected at %s:%d.\n"
9753msgstr "Violación externa del protocolo detectada en %s:%d.\n" 9769msgstr "Violación externa del protocolo detectada en %s:%d.\n"
9754 9770
9755#: src/include/gnunet_common.h:644 src/include/gnunet_common.h:653 9771#: src/include/gnunet_common.h:685 src/include/gnunet_common.h:694
9756#, c-format 9772#, c-format
9757msgid "`%s' failed on file `%s' at %s:%d with error: %s\n" 9773msgid "`%s' failed on file `%s' at %s:%d with error: %s\n"
9758msgstr "«%s» falló en el fichero «%s» en %s:%d con el error: %s\n" 9774msgstr "«%s» falló en el fichero «%s» en %s:%d con el error: %s\n"
9759 9775
9776#~ msgid "Postgres datacache running\n"
9777#~ msgstr "Caché de datos Postgres ejecutándose\n"
9778
9779#~ msgid "Sqlite datacache running\n"
9780#~ msgstr "Caché de datos Sqlite ejecutándose\n"
9781
9782#~ msgid "Failed to close statement %p: %d\n"
9783#~ msgstr "Se produjo un fallo al cerrar la sentencia %p: %d\n"
9784
9785#~ msgid "Template datacache running\n"
9786#~ msgstr "Caché de datos de plantilla en ejecución\n"
9787
9760#~ msgid "`%s' must be installed SUID, refusing to run\n" 9788#~ msgid "`%s' must be installed SUID, refusing to run\n"
9761#~ msgstr "«%s» debe ser instalado con SUID, se niega a arrancar\n" 9789#~ msgstr "«%s» debe ser instalado con SUID, se niega a arrancar\n"
9762 9790
diff --git a/po/fr.po b/po/fr.po
index 5b2e3dd1a..73111406f 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,7 +7,7 @@ msgid ""
7msgstr "" 7msgstr ""
8"Project-Id-Version: gnunet 0.10.1\n" 8"Project-Id-Version: gnunet 0.10.1\n"
9"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n" 9"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
10"POT-Creation-Date: 2015-04-27 13:05+0200\n" 10"POT-Creation-Date: 2015-05-19 11:25+0200\n"
11"PO-Revision-Date: 2015-03-24 01:41+0100\n" 11"PO-Revision-Date: 2015-03-24 01:41+0100\n"
12"Last-Translator: Stéphane Aulery <lkppo@free.fr>\n" 12"Last-Translator: Stéphane Aulery <lkppo@free.fr>\n"
13"Language-Team: French <traduc@traduc.org>\n" 13"Language-Team: French <traduc@traduc.org>\n"
@@ -630,53 +630,53 @@ msgstr ""
630msgid "Invalid target `%s'\n" 630msgid "Invalid target `%s'\n"
631msgstr "" 631msgstr ""
632 632
633#: src/cadet/gnunet-cadet.c:626 633#: src/cadet/gnunet-cadet.c:643
634#, c-format 634#, c-format
635msgid "Invalid peer ID `%s'\n" 635msgid "Invalid peer ID `%s'\n"
636msgstr "" 636msgstr ""
637 637
638#: src/cadet/gnunet-cadet.c:669 638#: src/cadet/gnunet-cadet.c:686
639#, c-format 639#, c-format
640msgid "Invalid tunnel owner `%s'\n" 640msgid "Invalid tunnel owner `%s'\n"
641msgstr "" 641msgstr ""
642 642
643#: src/cadet/gnunet-cadet.c:735 643#: src/cadet/gnunet-cadet.c:752
644msgid "You must NOT give a TARGETwhen using 'request all' options\n" 644msgid "You must NOT give a TARGETwhen using 'request all' options\n"
645msgstr "" 645msgstr ""
646 646
647#: src/cadet/gnunet-cadet.c:832 647#: src/cadet/gnunet-cadet.c:849
648msgid "provide information about a particular connection" 648msgid "provide information about a particular connection"
649msgstr "" 649msgstr ""
650 650
651#: src/cadet/gnunet-cadet.c:835 651#: src/cadet/gnunet-cadet.c:852
652msgid "activate echo mode" 652msgid "activate echo mode"
653msgstr "" 653msgstr ""
654 654
655#: src/cadet/gnunet-cadet.c:838 655#: src/cadet/gnunet-cadet.c:855
656msgid "dump debug information to STDERR" 656msgid "dump debug information to STDERR"
657msgstr "" 657msgstr ""
658 658
659#: src/cadet/gnunet-cadet.c:844 659#: src/cadet/gnunet-cadet.c:861
660msgid "port to listen to (default; 0)" 660msgid "port to listen to (default; 0)"
661msgstr "" 661msgstr ""
662 662
663#: src/cadet/gnunet-cadet.c:847 663#: src/cadet/gnunet-cadet.c:864
664msgid "provide information about a patricular peer" 664msgid "provide information about a patricular peer"
665msgstr "" 665msgstr ""
666 666
667#: src/cadet/gnunet-cadet.c:850 667#: src/cadet/gnunet-cadet.c:867
668msgid "provide information about all peers" 668msgid "provide information about all peers"
669msgstr "" 669msgstr ""
670 670
671#: src/cadet/gnunet-cadet.c:853 671#: src/cadet/gnunet-cadet.c:870
672msgid "provide information about a particular tunnel" 672msgid "provide information about a particular tunnel"
673msgstr "" 673msgstr ""
674 674
675#: src/cadet/gnunet-cadet.c:856 675#: src/cadet/gnunet-cadet.c:873
676msgid "provide information about all tunnels" 676msgid "provide information about all tunnels"
677msgstr "" 677msgstr ""
678 678
679#: src/cadet/gnunet-service-cadet_peer.c:507 679#: src/cadet/gnunet-service-cadet_peer.c:514
680msgid "Wrong CORE service\n" 680msgid "Wrong CORE service\n"
681msgstr "" 681msgstr ""
682 682
@@ -1420,50 +1420,47 @@ msgstr ""
1420msgid "# updates to my type map" 1420msgid "# updates to my type map"
1421msgstr "" 1421msgstr ""
1422 1422
1423#: src/datacache/datacache.c:115 src/datacache/datacache.c:266 1423#: src/datacache/datacache.c:119 src/datacache/datacache.c:294
1424#: src/datastore/gnunet-service-datastore.c:841 1424#: src/datastore/gnunet-service-datastore.c:841
1425msgid "# bytes stored" 1425msgid "# bytes stored"
1426msgstr "" 1426msgstr ""
1427 1427
1428#: src/datacache/datacache.c:117 src/datacache/datacache.c:268 1428#: src/datacache/datacache.c:123 src/datacache/datacache.c:298
1429msgid "# items stored" 1429msgid "# items stored"
1430msgstr "" 1430msgstr ""
1431 1431
1432#: src/datacache/datacache.c:143 src/datacache/datacache.c:150 1432#: src/datacache/datacache.c:202
1433#: src/datastore/gnunet-service-datastore.c:1598
1434#: src/datastore/gnunet-service-datastore.c:1609
1435#, c-format
1436msgid "No `%s' specified for `%s' in configuration!\n"
1437msgstr ""
1438
1439#: src/datacache/datacache.c:184
1440#, c-format 1433#, c-format
1441msgid "Loading `%s' datacache plugin\n" 1434msgid "Loading `%s' datacache plugin\n"
1442msgstr "" 1435msgstr ""
1443 1436
1444#: src/datacache/datacache.c:192 1437#: src/datacache/datacache.c:213
1445#, c-format 1438#, c-format
1446msgid "Failed to load datacache plugin for `%s'\n" 1439msgid "Failed to load datacache plugin for `%s'\n"
1447msgstr "" 1440msgstr ""
1448 1441
1449#: src/datacache/datacache.c:295 1442#: src/datacache/datacache.c:329
1450msgid "# requests received" 1443msgid "# requests received"
1451msgstr "" 1444msgstr ""
1452 1445
1453#: src/datacache/datacache.c:304 1446#: src/datacache/datacache.c:339
1454msgid "# requests filtered by bloom filter" 1447msgid "# requests filtered by bloom filter"
1455msgstr "" 1448msgstr ""
1456 1449
1457#: src/datacache/plugin_datacache_heap.c:406 1450#: src/datacache/datacache.c:367
1458msgid "Heap datacache running\n" 1451msgid "# requests for random value received"
1459msgstr "" 1452msgstr ""
1460 1453
1461#: src/datacache/plugin_datacache_postgres.c:391 1454#: src/datacache/datacache.c:399
1462msgid "Postgres datacache running\n" 1455msgid "# proximity search requests received"
1463msgstr "" 1456msgstr ""
1464 1457
1465#: src/datacache/plugin_datacache_sqlite.c:69 1458#: src/datacache/plugin_datacache_heap.c:466
1466#: src/datacache/plugin_datacache_sqlite.c:72 1459msgid "Heap datacache running\n"
1460msgstr ""
1461
1462#: src/datacache/plugin_datacache_sqlite.c:77
1463#: src/datacache/plugin_datacache_sqlite.c:86
1467#: src/datastore/plugin_datastore_mysql.c:818 1464#: src/datastore/plugin_datastore_mysql.c:818
1468#: src/datastore/plugin_datastore_mysql.c:834 1465#: src/datastore/plugin_datastore_mysql.c:834
1469#: src/datastore/plugin_datastore_sqlite.c:57 src/mysql/mysql.c:41 1466#: src/datastore/plugin_datastore_sqlite.c:57 src/mysql/mysql.c:41
@@ -1478,32 +1475,19 @@ msgstr ""
1478#: src/testbed/gnunet-daemon-latency-logger.c:52 1475#: src/testbed/gnunet-daemon-latency-logger.c:52
1479#: src/testbed/gnunet-daemon-testbed-underlay.c:55 1476#: src/testbed/gnunet-daemon-testbed-underlay.c:55
1480#: src/testbed/testbed_api_hosts.c:69 src/util/crypto_ecc.c:51 1477#: src/testbed/testbed_api_hosts.c:69 src/util/crypto_ecc.c:51
1481#: src/util/crypto_mpi.c:39 src/include/gnunet_common.h:626 1478#: src/util/crypto_mpi.c:39 src/include/gnunet_common.h:667
1482#: src/include/gnunet_common.h:635 src/scalarproduct/scalarproduct.h:35 1479#: src/include/gnunet_common.h:676 src/scalarproduct/scalarproduct.h:35
1483#, c-format 1480#, c-format
1484msgid "`%s' failed at %s:%d with error: %s\n" 1481msgid "`%s' failed at %s:%d with error: %s\n"
1485msgstr "" 1482msgstr ""
1486 1483
1487#: src/datacache/plugin_datacache_sqlite.c:449 1484#: src/datacache/plugin_datacache_sqlite.c:749
1488msgid "Sqlite datacache running\n"
1489msgstr ""
1490
1491#: src/datacache/plugin_datacache_sqlite.c:483
1492#: src/datastore/plugin_datastore_sqlite.c:401 1485#: src/datastore/plugin_datastore_sqlite.c:401
1493#: src/namecache/plugin_namecache_sqlite.c:292 1486#: src/namecache/plugin_namecache_sqlite.c:292
1494#: src/namestore/plugin_namestore_sqlite.c:324 1487#: src/namestore/plugin_namestore_sqlite.c:324
1495msgid "Tried to close sqlite without finalizing all prepared statements.\n" 1488msgid "Tried to close sqlite without finalizing all prepared statements.\n"
1496msgstr "" 1489msgstr ""
1497 1490
1498#: src/datacache/plugin_datacache_sqlite.c:490
1499#, c-format
1500msgid "Failed to close statement %p: %d\n"
1501msgstr ""
1502
1503#: src/datacache/plugin_datacache_template.c:125
1504msgid "Template datacache running\n"
1505msgstr ""
1506
1507#: src/datastore/datastore_api.c:310 1491#: src/datastore/datastore_api.c:310
1508msgid "Failed to transmit request to drop database.\n" 1492msgid "Failed to transmit request to drop database.\n"
1509msgstr "" 1493msgstr ""
@@ -1736,6 +1720,12 @@ msgstr ""
1736msgid "Plugin does not support get_keys function. Please fix!\n" 1720msgid "Plugin does not support get_keys function. Please fix!\n"
1737msgstr "" 1721msgstr ""
1738 1722
1723#: src/datastore/gnunet-service-datastore.c:1598
1724#: src/datastore/gnunet-service-datastore.c:1609
1725#, c-format
1726msgid "No `%s' specified for `%s' in configuration!\n"
1727msgstr ""
1728
1739#: src/datastore/gnunet-service-datastore.c:1603 1729#: src/datastore/gnunet-service-datastore.c:1603
1740#, c-format 1730#, c-format
1741msgid "# bytes used in file-sharing datastore `%s'" 1731msgid "# bytes used in file-sharing datastore `%s'"
@@ -2003,107 +1993,125 @@ msgstr ""
2003msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY." 1993msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY."
2004msgstr "" 1994msgstr ""
2005 1995
2006#: src/dht/gnunet-service-dht.c:172 src/dht/gnunet-service-xdht.c:193 1996#: src/dht/gnunet-service-dht.c:172
2007msgid "Failed to connect to transport service!\n" 1997msgid "Failed to connect to transport service!\n"
2008msgstr "" 1998msgstr ""
2009 1999
2010#: src/dht/gnunet-service-dht_clients.c:417 2000#: src/dht/gnunet-service-dht_clients.c:417
2001#: src/dht/gnunet-service-wdht_clients.c:852
2011#: src/dht/gnunet-service-xdht_clients.c:849 2002#: src/dht/gnunet-service-xdht_clients.c:849
2012msgid "# GET requests from clients injected" 2003msgid "# GET requests from clients injected"
2013msgstr "" 2004msgstr ""
2014 2005
2015#: src/dht/gnunet-service-dht_clients.c:513 2006#: src/dht/gnunet-service-dht_clients.c:513
2007#: src/dht/gnunet-service-wdht_clients.c:937
2016#: src/dht/gnunet-service-xdht_clients.c:933 2008#: src/dht/gnunet-service-xdht_clients.c:933
2017msgid "# PUT requests received from clients" 2009msgid "# PUT requests received from clients"
2018msgstr "" 2010msgstr ""
2019 2011
2020#: src/dht/gnunet-service-dht_clients.c:597 2012#: src/dht/gnunet-service-dht_clients.c:597
2013#: src/dht/gnunet-service-wdht_clients.c:1003
2021#: src/dht/gnunet-service-xdht_clients.c:998 2014#: src/dht/gnunet-service-xdht_clients.c:998
2022msgid "# GET requests received from clients" 2015msgid "# GET requests received from clients"
2023msgstr "" 2016msgstr ""
2024 2017
2025#: src/dht/gnunet-service-dht_clients.c:798 2018#: src/dht/gnunet-service-dht_clients.c:798
2019#: src/dht/gnunet-service-wdht_clients.c:1212
2026#: src/dht/gnunet-service-xdht_clients.c:1200 2020#: src/dht/gnunet-service-xdht_clients.c:1200
2027msgid "# GET STOP requests received from clients" 2021msgid "# GET STOP requests received from clients"
2028msgstr "" 2022msgstr ""
2029 2023
2030#: src/dht/gnunet-service-dht_clients.c:1040 2024#: src/dht/gnunet-service-dht_clients.c:1040
2025#: src/dht/gnunet-service-wdht_clients.c:505
2031#: src/dht/gnunet-service-xdht_clients.c:503 2026#: src/dht/gnunet-service-xdht_clients.c:503
2032msgid "# Key match, type mismatches in REPLY to CLIENT" 2027msgid "# Key match, type mismatches in REPLY to CLIENT"
2033msgstr "" 2028msgstr ""
2034 2029
2035#: src/dht/gnunet-service-dht_clients.c:1053 2030#: src/dht/gnunet-service-dht_clients.c:1053
2031#: src/dht/gnunet-service-wdht_clients.c:519
2036#: src/dht/gnunet-service-xdht_clients.c:517 2032#: src/dht/gnunet-service-xdht_clients.c:517
2037msgid "# Duplicate REPLIES to CLIENT request dropped" 2033msgid "# Duplicate REPLIES to CLIENT request dropped"
2038msgstr "" 2034msgstr ""
2039 2035
2040#: src/dht/gnunet-service-dht_clients.c:1098 2036#: src/dht/gnunet-service-dht_clients.c:1098
2037#: src/dht/gnunet-service-wdht_clients.c:561
2041#: src/dht/gnunet-service-xdht_clients.c:559 2038#: src/dht/gnunet-service-xdht_clients.c:559
2042#, c-format 2039#, c-format
2043msgid "Unsupported block type (%u) in request!\n" 2040msgid "Unsupported block type (%u) in request!\n"
2044msgstr "" 2041msgstr ""
2045 2042
2046#: src/dht/gnunet-service-dht_clients.c:1121 2043#: src/dht/gnunet-service-dht_clients.c:1121
2044#: src/dht/gnunet-service-wdht_clients.c:584
2047#: src/dht/gnunet-service-xdht_clients.c:582 2045#: src/dht/gnunet-service-xdht_clients.c:582
2048msgid "# RESULTS queued for clients" 2046msgid "# RESULTS queued for clients"
2049msgstr "" 2047msgstr ""
2050 2048
2051#: src/dht/gnunet-service-dht_clients.c:1175 2049#: src/dht/gnunet-service-dht_clients.c:1175
2052#: src/dht/gnunet-service-dht_clients.c:1218 2050#: src/dht/gnunet-service-dht_clients.c:1218
2051#: src/dht/gnunet-service-wdht_clients.c:638
2052#: src/dht/gnunet-service-wdht_clients.c:681
2053#: src/dht/gnunet-service-xdht_clients.c:636 2053#: src/dht/gnunet-service-xdht_clients.c:636
2054#: src/dht/gnunet-service-xdht_clients.c:679 2054#: src/dht/gnunet-service-xdht_clients.c:679
2055msgid "# REPLIES ignored for CLIENTS (no match)" 2055msgid "# REPLIES ignored for CLIENTS (no match)"
2056msgstr "" 2056msgstr ""
2057 2057
2058#: src/dht/gnunet-service-dht_clients.c:1185 2058#: src/dht/gnunet-service-dht_clients.c:1185
2059#: src/dht/gnunet-service-wdht_clients.c:648
2059#: src/dht/gnunet-service-xdht_clients.c:646 2060#: src/dht/gnunet-service-xdht_clients.c:646
2060msgid "Could not pass reply to client, message too big!\n" 2061msgid "Could not pass reply to client, message too big!\n"
2061msgstr "" 2062msgstr ""
2062 2063
2063#: src/dht/gnunet-service-dht_datacache.c:69 2064#: src/dht/gnunet-service-dht_datacache.c:68
2064#: src/dht/gnunet-service-xdht_datacache.c:71
2065#, c-format 2065#, c-format
2066msgid "%s request received, but have no datacache!\n" 2066msgid "%s request received, but have no datacache!\n"
2067msgstr "" 2067msgstr ""
2068 2068
2069#: src/dht/gnunet-service-dht_datacache.c:79 2069#: src/dht/gnunet-service-dht_datacache.c:78
2070#: src/dht/gnunet-service-xdht_datacache.c:82 2070#: src/dht/gnunet-service-wdht_datacache.c:107
2071#: src/dht/gnunet-service-xdht_datacache.c:91
2071msgid "# ITEMS stored in datacache" 2072msgid "# ITEMS stored in datacache"
2072msgstr "" 2073msgstr ""
2073 2074
2074#: src/dht/gnunet-service-dht_datacache.c:176 2075#: src/dht/gnunet-service-dht_datacache.c:184
2075#: src/dht/gnunet-service-xdht_datacache.c:230 2076#: src/dht/gnunet-service-wdht_datacache.c:216
2077#: src/dht/gnunet-service-xdht_datacache.c:238
2076msgid "# Good RESULTS found in datacache" 2078msgid "# Good RESULTS found in datacache"
2077msgstr "" 2079msgstr ""
2078 2080
2079#: src/dht/gnunet-service-dht_datacache.c:193 2081#: src/dht/gnunet-service-dht_datacache.c:201
2080#: src/dht/gnunet-service-xdht_datacache.c:253 2082#: src/dht/gnunet-service-wdht_datacache.c:231
2083#: src/dht/gnunet-service-xdht_datacache.c:267
2081msgid "# Duplicate RESULTS found in datacache" 2084msgid "# Duplicate RESULTS found in datacache"
2082msgstr "" 2085msgstr ""
2083 2086
2084#: src/dht/gnunet-service-dht_datacache.c:199 2087#: src/dht/gnunet-service-dht_datacache.c:207
2085#: src/dht/gnunet-service-xdht_datacache.c:259 2088#: src/dht/gnunet-service-wdht_datacache.c:237
2089#: src/dht/gnunet-service-xdht_datacache.c:273
2086msgid "# Invalid RESULTS found in datacache" 2090msgid "# Invalid RESULTS found in datacache"
2087msgstr "" 2091msgstr ""
2088 2092
2089#: src/dht/gnunet-service-dht_datacache.c:205 2093#: src/dht/gnunet-service-dht_datacache.c:213
2090#: src/dht/gnunet-service-xdht_datacache.c:265 2094#: src/dht/gnunet-service-wdht_datacache.c:243
2095#: src/dht/gnunet-service-xdht_datacache.c:279
2091msgid "# Irrelevant RESULTS found in datacache" 2096msgid "# Irrelevant RESULTS found in datacache"
2092msgstr "" 2097msgstr ""
2093 2098
2094#: src/dht/gnunet-service-dht_datacache.c:217 2099#: src/dht/gnunet-service-dht_datacache.c:225
2095#: src/dht/gnunet-service-xdht_datacache.c:277 2100#: src/dht/gnunet-service-wdht_datacache.c:255
2101#: src/dht/gnunet-service-xdht_datacache.c:291
2096msgid "# Unsupported RESULTS found in datacache" 2102msgid "# Unsupported RESULTS found in datacache"
2097msgstr "" 2103msgstr ""
2098 2104
2099#: src/dht/gnunet-service-dht_datacache.c:221 2105#: src/dht/gnunet-service-dht_datacache.c:229
2100#: src/dht/gnunet-service-xdht_datacache.c:280 2106#: src/dht/gnunet-service-wdht_datacache.c:258
2107#: src/dht/gnunet-service-xdht_datacache.c:294
2101#, c-format 2108#, c-format
2102msgid "Unsupported block type (%u) in local response!\n" 2109msgid "Unsupported block type (%u) in local response!\n"
2103msgstr "" 2110msgstr ""
2104 2111
2105#: src/dht/gnunet-service-dht_datacache.c:254 2112#: src/dht/gnunet-service-dht_datacache.c:262
2106#: src/dht/gnunet-service-xdht_datacache.c:318 2113#: src/dht/gnunet-service-wdht_datacache.c:295
2114#: src/dht/gnunet-service-xdht_datacache.c:334
2107msgid "# GET requests given to datacache" 2115msgid "# GET requests given to datacache"
2108msgstr "" 2116msgstr ""
2109 2117
@@ -2121,7 +2129,7 @@ msgid "# FIND PEER messages initiated"
2121msgstr "" 2129msgstr ""
2122 2130
2123#: src/dht/gnunet-service-dht_neighbours.c:763 2131#: src/dht/gnunet-service-dht_neighbours.c:763
2124#: src/dht/gnunet-service-xdht_neighbours.c:6060 2132#: src/dht/gnunet-service-xdht_neighbours.c:6062
2125msgid "# Queued messages discarded (peer disconnected)" 2133msgid "# Queued messages discarded (peer disconnected)"
2126msgstr "" 2134msgstr ""
2127 2135
@@ -2228,7 +2236,8 @@ msgstr ""
2228msgid "# P2P RESULT bytes received" 2236msgid "# P2P RESULT bytes received"
2229msgstr "" 2237msgstr ""
2230 2238
2231#: src/dht/gnunet-service-dht_nse.c:59 src/dht/gnunet-service-xdht_nse.c:59 2239#: src/dht/gnunet-service-dht_nse.c:59 src/dht/gnunet-service-wdht_nse.c:59
2240#: src/dht/gnunet-service-xdht_nse.c:59
2232msgid "# Network size estimates received" 2241msgid "# Network size estimates received"
2233msgstr "" 2242msgstr ""
2234 2243
@@ -2264,6 +2273,10 @@ msgstr ""
2264msgid "# DHT requests combined" 2273msgid "# DHT requests combined"
2265msgstr "" 2274msgstr ""
2266 2275
2276#: src/dht/gnunet-service-wdht_datacache.c:82
2277msgid "PUT request received, but have no datacache!\n"
2278msgstr ""
2279
2267#: src/dht/gnunet-service-xdht_neighbours.c:1832 2280#: src/dht/gnunet-service-xdht_neighbours.c:1832
2268#, c-format 2281#, c-format
2269msgid "" 2282msgid ""
@@ -2327,15 +2340,15 @@ msgstr ""
2327#: src/dht/gnunet-service-xdht_neighbours.c:3700 2340#: src/dht/gnunet-service-xdht_neighbours.c:3700
2328#: src/dht/gnunet-service-xdht_neighbours.c:3938 2341#: src/dht/gnunet-service-xdht_neighbours.c:3938
2329#: src/dht/gnunet-service-xdht_neighbours.c:4090 2342#: src/dht/gnunet-service-xdht_neighbours.c:4090
2330#: src/dht/gnunet-service-xdht_neighbours.c:4240 2343#: src/dht/gnunet-service-xdht_neighbours.c:4242
2331#: src/dht/gnunet-service-xdht_neighbours.c:4421 2344#: src/dht/gnunet-service-xdht_neighbours.c:4423
2332#: src/dht/gnunet-service-xdht_neighbours.c:4934 2345#: src/dht/gnunet-service-xdht_neighbours.c:4936
2333#: src/dht/gnunet-service-xdht_neighbours.c:5327 2346#: src/dht/gnunet-service-xdht_neighbours.c:5329
2334#: src/dht/gnunet-service-xdht_neighbours.c:5420 2347#: src/dht/gnunet-service-xdht_neighbours.c:5422
2335#: src/dht/gnunet-service-xdht_neighbours.c:5510 2348#: src/dht/gnunet-service-xdht_neighbours.c:5512
2336#: src/dht/gnunet-service-xdht_neighbours.c:5614 2349#: src/dht/gnunet-service-xdht_neighbours.c:5616
2337#: src/dht/gnunet-service-xdht_neighbours.c:5758 2350#: src/dht/gnunet-service-xdht_neighbours.c:5760
2338#: src/dht/gnunet-service-xdht_neighbours.c:5847 2351#: src/dht/gnunet-service-xdht_neighbours.c:5849
2339msgid "# Bytes received from other peers" 2352msgid "# Bytes received from other peers"
2340msgstr "" 2353msgstr ""
2341 2354
@@ -5675,56 +5688,56 @@ msgstr ""
5675msgid "Failed to get fragment!\n" 5688msgid "Failed to get fragment!\n"
5676msgstr "" 5689msgstr ""
5677 5690
5678#: src/psycstore/gnunet-service-psycstore.c:402 5691#: src/psycstore/gnunet-service-psycstore.c:417
5679msgid "Failed to get message!\n" 5692msgid "Failed to get message!\n"
5680msgstr "" 5693msgstr ""
5681 5694
5682#: src/psycstore/gnunet-service-psycstore.c:433 5695#: src/psycstore/gnunet-service-psycstore.c:448
5683msgid "Failed to get message fragment!\n" 5696msgid "Failed to get message fragment!\n"
5684msgstr "" 5697msgstr ""
5685 5698
5686#: src/psycstore/gnunet-service-psycstore.c:461 5699#: src/psycstore/gnunet-service-psycstore.c:476
5687msgid "Failed to get master counters!\n" 5700msgid "Failed to get master counters!\n"
5688msgstr "" 5701msgstr ""
5689 5702
5690#: src/psycstore/gnunet-service-psycstore.c:497 5703#: src/psycstore/gnunet-service-psycstore.c:512
5691#: src/psycstore/gnunet-service-psycstore.c:570 5704#: src/psycstore/gnunet-service-psycstore.c:585
5692msgid "Tried to set invalid state variable name!\n" 5705msgid "Tried to set invalid state variable name!\n"
5693msgstr "" 5706msgstr ""
5694 5707
5695#: src/psycstore/gnunet-service-psycstore.c:513 5708#: src/psycstore/gnunet-service-psycstore.c:528
5696msgid "Failed to begin modifying state!\n" 5709msgid "Failed to begin modifying state!\n"
5697msgstr "" 5710msgstr ""
5698 5711
5699#: src/psycstore/gnunet-service-psycstore.c:536 5712#: src/psycstore/gnunet-service-psycstore.c:551
5700#, c-format 5713#, c-format
5701msgid "Unknown operator: %c\n" 5714msgid "Unknown operator: %c\n"
5702msgstr "" 5715msgstr ""
5703 5716
5704#: src/psycstore/gnunet-service-psycstore.c:546 5717#: src/psycstore/gnunet-service-psycstore.c:561
5705msgid "Failed to end modifying state!\n" 5718msgid "Failed to end modifying state!\n"
5706msgstr "" 5719msgstr ""
5707 5720
5708#: src/psycstore/gnunet-service-psycstore.c:584 5721#: src/psycstore/gnunet-service-psycstore.c:599
5709msgid "Failed to begin synchronizing state!\n" 5722msgid "Failed to begin synchronizing state!\n"
5710msgstr "" 5723msgstr ""
5711 5724
5712#: src/psycstore/gnunet-service-psycstore.c:600 5725#: src/psycstore/gnunet-service-psycstore.c:615
5713msgid "Failed to end synchronizing state!\n" 5726msgid "Failed to end synchronizing state!\n"
5714msgstr "" 5727msgstr ""
5715 5728
5716#: src/psycstore/gnunet-service-psycstore.c:620 5729#: src/psycstore/gnunet-service-psycstore.c:635
5717#: src/psycstore/gnunet-service-psycstore.c:639 5730#: src/psycstore/gnunet-service-psycstore.c:654
5718msgid "Failed to reset state!\n" 5731msgid "Failed to reset state!\n"
5719msgstr "" 5732msgstr ""
5720 5733
5721#: src/psycstore/gnunet-service-psycstore.c:662 5734#: src/psycstore/gnunet-service-psycstore.c:677
5722#: src/psycstore/gnunet-service-psycstore.c:713 5735#: src/psycstore/gnunet-service-psycstore.c:728
5723msgid "Tried to get invalid state variable name!\n" 5736msgid "Tried to get invalid state variable name!\n"
5724msgstr "" 5737msgstr ""
5725 5738
5726#: src/psycstore/gnunet-service-psycstore.c:689 5739#: src/psycstore/gnunet-service-psycstore.c:704
5727#: src/psycstore/gnunet-service-psycstore.c:728 5740#: src/psycstore/gnunet-service-psycstore.c:743
5728msgid "Failed to get state variable!\n" 5741msgid "Failed to get state variable!\n"
5729msgstr "" 5742msgstr ""
5730 5743
@@ -5733,7 +5746,7 @@ msgstr ""
5733msgid "`%s' failed at %s:%d with error: %s (%d)\n" 5746msgid "`%s' failed at %s:%d with error: %s (%d)\n"
5734msgstr "" 5747msgstr ""
5735 5748
5736#: src/psycstore/plugin_psycstore_sqlite.c:1932 5749#: src/psycstore/plugin_psycstore_sqlite.c:1936
5737msgid "SQLite database running\n" 5750msgid "SQLite database running\n"
5738msgstr "" 5751msgstr ""
5739 5752
@@ -7637,7 +7650,7 @@ msgid "Found %u addresses to report to NAT service\n"
7637msgstr "" 7650msgstr ""
7638 7651
7639#: src/transport/plugin_transport_http_server.c:2825 7652#: src/transport/plugin_transport_http_server.c:2825
7640#: src/transport/plugin_transport_udp.c:3335 7653#: src/transport/plugin_transport_udp.c:3338
7641msgid "Disabling IPv6 since it is not supported on this system!\n" 7654msgid "Disabling IPv6 since it is not supported on this system!\n"
7642msgstr "" 7655msgstr ""
7643 7656
@@ -7870,34 +7883,34 @@ msgid ""
7870"and disable IPv6 if your connection does not have a global IPv6 address\n" 7883"and disable IPv6 if your connection does not have a global IPv6 address\n"
7871msgstr "" 7884msgstr ""
7872 7885
7873#: src/transport/plugin_transport_udp.c:3411 7886#: src/transport/plugin_transport_udp.c:3414
7874#: src/transport/plugin_transport_udp.c:3510 7887#: src/transport/plugin_transport_udp.c:3513
7875#, c-format 7888#, c-format
7876msgid "Failed to bind UDP socket to %s: %s\n" 7889msgid "Failed to bind UDP socket to %s: %s\n"
7877msgstr "" 7890msgstr ""
7878 7891
7879#: src/transport/plugin_transport_udp.c:3429 7892#: src/transport/plugin_transport_udp.c:3432
7880msgid "Disabling IPv4 since it is not supported on this system!\n" 7893msgid "Disabling IPv4 since it is not supported on this system!\n"
7881msgstr "" 7894msgstr ""
7882 7895
7883#: src/transport/plugin_transport_udp.c:3520 7896#: src/transport/plugin_transport_udp.c:3523
7884msgid "Failed to open UDP sockets\n" 7897msgid "Failed to open UDP sockets\n"
7885msgstr "" 7898msgstr ""
7886 7899
7887#: src/transport/plugin_transport_udp.c:3591 7900#: src/transport/plugin_transport_udp.c:3594
7888#: src/transport/plugin_transport_udp.c:3605 7901#: src/transport/plugin_transport_udp.c:3608
7889msgid "must be in [0,65535]" 7902msgid "must be in [0,65535]"
7890msgstr "" 7903msgstr ""
7891 7904
7892#: src/transport/plugin_transport_udp.c:3637 7905#: src/transport/plugin_transport_udp.c:3640
7893msgid "must be valid IPv4 address" 7906msgid "must be valid IPv4 address"
7894msgstr "" 7907msgstr ""
7895 7908
7896#: src/transport/plugin_transport_udp.c:3664 7909#: src/transport/plugin_transport_udp.c:3667
7897msgid "must be valid IPv6 address" 7910msgid "must be valid IPv6 address"
7898msgstr "" 7911msgstr ""
7899 7912
7900#: src/transport/plugin_transport_udp.c:3730 7913#: src/transport/plugin_transport_udp.c:3733
7901msgid "Failed to create UDP network sockets\n" 7914msgid "Failed to create UDP network sockets\n"
7902msgstr "" 7915msgstr ""
7903 7916
@@ -8198,7 +8211,7 @@ msgstr ""
8198msgid "libgcrypt has not the expected version (version %s is required).\n" 8211msgid "libgcrypt has not the expected version (version %s is required).\n"
8199msgstr "" 8212msgstr ""
8200 8213
8201#: src/util/crypto_rsa.c:825 8214#: src/util/crypto_rsa.c:891
8202#, c-format 8215#, c-format
8203msgid "RSA signature verification failed at %s:%d: %s\n" 8216msgid "RSA signature verification failed at %s:%d: %s\n"
8204msgstr "" 8217msgstr ""
@@ -8978,18 +8991,18 @@ msgstr ""
8978msgid "Setup tunnels via VPN." 8991msgid "Setup tunnels via VPN."
8979msgstr "" 8992msgstr ""
8980 8993
8981#: src/include/gnunet_common.h:590 src/include/gnunet_common.h:597 8994#: src/include/gnunet_common.h:631 src/include/gnunet_common.h:638
8982#: src/include/gnunet_common.h:605 8995#: src/include/gnunet_common.h:646
8983#, c-format 8996#, c-format
8984msgid "Assertion failed at %s:%d.\n" 8997msgid "Assertion failed at %s:%d.\n"
8985msgstr "" 8998msgstr ""
8986 8999
8987#: src/include/gnunet_common.h:617 9000#: src/include/gnunet_common.h:658
8988#, c-format 9001#, c-format
8989msgid "External protocol violation detected at %s:%d.\n" 9002msgid "External protocol violation detected at %s:%d.\n"
8990msgstr "" 9003msgstr ""
8991 9004
8992#: src/include/gnunet_common.h:644 src/include/gnunet_common.h:653 9005#: src/include/gnunet_common.h:685 src/include/gnunet_common.h:694
8993#, c-format 9006#, c-format
8994msgid "`%s' failed on file `%s' at %s:%d with error: %s\n" 9007msgid "`%s' failed on file `%s' at %s:%d with error: %s\n"
8995msgstr "" 9008msgstr ""
diff --git a/po/sv.po b/po/sv.po
index d67fec321..0d87d689a 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -7,7 +7,7 @@ msgid ""
7msgstr "" 7msgstr ""
8"Project-Id-Version: GNUnet 0.7.0b\n" 8"Project-Id-Version: GNUnet 0.7.0b\n"
9"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n" 9"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
10"POT-Creation-Date: 2015-04-27 13:05+0200\n" 10"POT-Creation-Date: 2015-05-19 11:25+0200\n"
11"PO-Revision-Date: 2006-01-21 17:16+0100\n" 11"PO-Revision-Date: 2006-01-21 17:16+0100\n"
12"Last-Translator: Daniel Nylander <po@danielnylander.se>\n" 12"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
13"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" 13"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -648,58 +648,58 @@ msgstr "Skriv ut information om GNUnets motparter."
648msgid "Invalid target `%s'\n" 648msgid "Invalid target `%s'\n"
649msgstr "Ogiltigt argument: \"%s\"\n" 649msgstr "Ogiltigt argument: \"%s\"\n"
650 650
651#: src/cadet/gnunet-cadet.c:626 651#: src/cadet/gnunet-cadet.c:643
652#, fuzzy, c-format 652#, fuzzy, c-format
653msgid "Invalid peer ID `%s'\n" 653msgid "Invalid peer ID `%s'\n"
654msgstr "Ogiltiga argument: " 654msgstr "Ogiltiga argument: "
655 655
656#: src/cadet/gnunet-cadet.c:669 656#: src/cadet/gnunet-cadet.c:686
657#, fuzzy, c-format 657#, fuzzy, c-format
658msgid "Invalid tunnel owner `%s'\n" 658msgid "Invalid tunnel owner `%s'\n"
659msgstr "Ogiltigt format för IP: \"%s\"\n" 659msgstr "Ogiltigt format för IP: \"%s\"\n"
660 660
661#: src/cadet/gnunet-cadet.c:735 661#: src/cadet/gnunet-cadet.c:752
662msgid "You must NOT give a TARGETwhen using 'request all' options\n" 662msgid "You must NOT give a TARGETwhen using 'request all' options\n"
663msgstr "" 663msgstr ""
664 664
665#: src/cadet/gnunet-cadet.c:832 665#: src/cadet/gnunet-cadet.c:849
666#, fuzzy 666#, fuzzy
667msgid "provide information about a particular connection" 667msgid "provide information about a particular connection"
668msgstr "Skriv ut information om GNUnets motparter." 668msgstr "Skriv ut information om GNUnets motparter."
669 669
670#: src/cadet/gnunet-cadet.c:835 670#: src/cadet/gnunet-cadet.c:852
671msgid "activate echo mode" 671msgid "activate echo mode"
672msgstr "" 672msgstr ""
673 673
674#: src/cadet/gnunet-cadet.c:838 674#: src/cadet/gnunet-cadet.c:855
675msgid "dump debug information to STDERR" 675msgid "dump debug information to STDERR"
676msgstr "" 676msgstr ""
677 677
678#: src/cadet/gnunet-cadet.c:844 678#: src/cadet/gnunet-cadet.c:861
679msgid "port to listen to (default; 0)" 679msgid "port to listen to (default; 0)"
680msgstr "" 680msgstr ""
681 681
682#: src/cadet/gnunet-cadet.c:847 682#: src/cadet/gnunet-cadet.c:864
683#, fuzzy 683#, fuzzy
684msgid "provide information about a patricular peer" 684msgid "provide information about a patricular peer"
685msgstr "Skriv ut information om GNUnets motparter." 685msgstr "Skriv ut information om GNUnets motparter."
686 686
687#: src/cadet/gnunet-cadet.c:850 687#: src/cadet/gnunet-cadet.c:867
688#, fuzzy 688#, fuzzy
689msgid "provide information about all peers" 689msgid "provide information about all peers"
690msgstr "Skriv ut information om GNUnets motparter." 690msgstr "Skriv ut information om GNUnets motparter."
691 691
692#: src/cadet/gnunet-cadet.c:853 692#: src/cadet/gnunet-cadet.c:870
693#, fuzzy 693#, fuzzy
694msgid "provide information about a particular tunnel" 694msgid "provide information about a particular tunnel"
695msgstr "Skriv ut information om GNUnets motparter." 695msgstr "Skriv ut information om GNUnets motparter."
696 696
697#: src/cadet/gnunet-cadet.c:856 697#: src/cadet/gnunet-cadet.c:873
698#, fuzzy 698#, fuzzy
699msgid "provide information about all tunnels" 699msgid "provide information about all tunnels"
700msgstr "Skriv ut information om GNUnets motparter." 700msgstr "Skriv ut information om GNUnets motparter."
701 701
702#: src/cadet/gnunet-service-cadet_peer.c:507 702#: src/cadet/gnunet-service-cadet_peer.c:514
703msgid "Wrong CORE service\n" 703msgid "Wrong CORE service\n"
704msgstr "" 704msgstr ""
705 705
@@ -1497,53 +1497,52 @@ msgstr "# krypterade PONG-meddelanden mottagna"
1497msgid "# updates to my type map" 1497msgid "# updates to my type map"
1498msgstr "" 1498msgstr ""
1499 1499
1500#: src/datacache/datacache.c:115 src/datacache/datacache.c:266 1500#: src/datacache/datacache.c:119 src/datacache/datacache.c:294
1501#: src/datastore/gnunet-service-datastore.c:841 1501#: src/datastore/gnunet-service-datastore.c:841
1502#, fuzzy 1502#, fuzzy
1503msgid "# bytes stored" 1503msgid "# bytes stored"
1504msgstr "# byte krypterade" 1504msgstr "# byte krypterade"
1505 1505
1506#: src/datacache/datacache.c:117 src/datacache/datacache.c:268 1506#: src/datacache/datacache.c:123 src/datacache/datacache.c:298
1507#, fuzzy 1507#, fuzzy
1508msgid "# items stored" 1508msgid "# items stored"
1509msgstr "# byte krypterade" 1509msgstr "# byte krypterade"
1510 1510
1511#: src/datacache/datacache.c:143 src/datacache/datacache.c:150 1511#: src/datacache/datacache.c:202
1512#: src/datastore/gnunet-service-datastore.c:1598
1513#: src/datastore/gnunet-service-datastore.c:1609
1514#, fuzzy, c-format
1515msgid "No `%s' specified for `%s' in configuration!\n"
1516msgstr "Inga applikationer definierade i konfiguration!\n"
1517
1518#: src/datacache/datacache.c:184
1519#, c-format 1512#, c-format
1520msgid "Loading `%s' datacache plugin\n" 1513msgid "Loading `%s' datacache plugin\n"
1521msgstr "" 1514msgstr ""
1522 1515
1523#: src/datacache/datacache.c:192 1516#: src/datacache/datacache.c:213
1524#, fuzzy, c-format 1517#, fuzzy, c-format
1525msgid "Failed to load datacache plugin for `%s'\n" 1518msgid "Failed to load datacache plugin for `%s'\n"
1526msgstr "Misslyckades att läsa kompislista från \"%s\"\n" 1519msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
1527 1520
1528#: src/datacache/datacache.c:295 1521#: src/datacache/datacache.c:329
1529#, fuzzy 1522#, fuzzy
1530msgid "# requests received" 1523msgid "# requests received"
1531msgstr "# byte mottogs via TCP" 1524msgstr "# byte mottogs via TCP"
1532 1525
1533#: src/datacache/datacache.c:304 1526#: src/datacache/datacache.c:339
1534msgid "# requests filtered by bloom filter" 1527msgid "# requests filtered by bloom filter"
1535msgstr "" 1528msgstr ""
1536 1529
1537#: src/datacache/plugin_datacache_heap.c:406 1530#: src/datacache/datacache.c:367
1538msgid "Heap datacache running\n" 1531#, fuzzy
1539msgstr "" 1532msgid "# requests for random value received"
1533msgstr "# byte mottogs via TCP"
1540 1534
1541#: src/datacache/plugin_datacache_postgres.c:391 1535#: src/datacache/datacache.c:399
1542msgid "Postgres datacache running\n" 1536#, fuzzy
1537msgid "# proximity search requests received"
1538msgstr "# klartext PONG-meddelanden mottagna"
1539
1540#: src/datacache/plugin_datacache_heap.c:466
1541msgid "Heap datacache running\n"
1543msgstr "" 1542msgstr ""
1544 1543
1545#: src/datacache/plugin_datacache_sqlite.c:69 1544#: src/datacache/plugin_datacache_sqlite.c:77
1546#: src/datacache/plugin_datacache_sqlite.c:72 1545#: src/datacache/plugin_datacache_sqlite.c:86
1547#: src/datastore/plugin_datastore_mysql.c:818 1546#: src/datastore/plugin_datastore_mysql.c:818
1548#: src/datastore/plugin_datastore_mysql.c:834 1547#: src/datastore/plugin_datastore_mysql.c:834
1549#: src/datastore/plugin_datastore_sqlite.c:57 src/mysql/mysql.c:41 1548#: src/datastore/plugin_datastore_sqlite.c:57 src/mysql/mysql.c:41
@@ -1558,32 +1557,19 @@ msgstr ""
1558#: src/testbed/gnunet-daemon-latency-logger.c:52 1557#: src/testbed/gnunet-daemon-latency-logger.c:52
1559#: src/testbed/gnunet-daemon-testbed-underlay.c:55 1558#: src/testbed/gnunet-daemon-testbed-underlay.c:55
1560#: src/testbed/testbed_api_hosts.c:69 src/util/crypto_ecc.c:51 1559#: src/testbed/testbed_api_hosts.c:69 src/util/crypto_ecc.c:51
1561#: src/util/crypto_mpi.c:39 src/include/gnunet_common.h:626 1560#: src/util/crypto_mpi.c:39 src/include/gnunet_common.h:667
1562#: src/include/gnunet_common.h:635 src/scalarproduct/scalarproduct.h:35 1561#: src/include/gnunet_common.h:676 src/scalarproduct/scalarproduct.h:35
1563#, c-format 1562#, c-format
1564msgid "`%s' failed at %s:%d with error: %s\n" 1563msgid "`%s' failed at %s:%d with error: %s\n"
1565msgstr "\"%s\" misslyckades vid %s:%d med fel: %s\n" 1564msgstr "\"%s\" misslyckades vid %s:%d med fel: %s\n"
1566 1565
1567#: src/datacache/plugin_datacache_sqlite.c:449 1566#: src/datacache/plugin_datacache_sqlite.c:749
1568msgid "Sqlite datacache running\n"
1569msgstr ""
1570
1571#: src/datacache/plugin_datacache_sqlite.c:483
1572#: src/datastore/plugin_datastore_sqlite.c:401 1567#: src/datastore/plugin_datastore_sqlite.c:401
1573#: src/namecache/plugin_namecache_sqlite.c:292 1568#: src/namecache/plugin_namecache_sqlite.c:292
1574#: src/namestore/plugin_namestore_sqlite.c:324 1569#: src/namestore/plugin_namestore_sqlite.c:324
1575msgid "Tried to close sqlite without finalizing all prepared statements.\n" 1570msgid "Tried to close sqlite without finalizing all prepared statements.\n"
1576msgstr "" 1571msgstr ""
1577 1572
1578#: src/datacache/plugin_datacache_sqlite.c:490
1579#, fuzzy, c-format
1580msgid "Failed to close statement %p: %d\n"
1581msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
1582
1583#: src/datacache/plugin_datacache_template.c:125
1584msgid "Template datacache running\n"
1585msgstr ""
1586
1587#: src/datastore/datastore_api.c:310 1573#: src/datastore/datastore_api.c:310
1588#, fuzzy 1574#, fuzzy
1589msgid "Failed to transmit request to drop database.\n" 1575msgid "Failed to transmit request to drop database.\n"
@@ -1831,6 +1817,12 @@ msgstr ""
1831msgid "Plugin does not support get_keys function. Please fix!\n" 1817msgid "Plugin does not support get_keys function. Please fix!\n"
1832msgstr "" 1818msgstr ""
1833 1819
1820#: src/datastore/gnunet-service-datastore.c:1598
1821#: src/datastore/gnunet-service-datastore.c:1609
1822#, fuzzy, c-format
1823msgid "No `%s' specified for `%s' in configuration!\n"
1824msgstr "Inga applikationer definierade i konfiguration!\n"
1825
1834#: src/datastore/gnunet-service-datastore.c:1603 1826#: src/datastore/gnunet-service-datastore.c:1603
1835#, fuzzy, c-format 1827#, fuzzy, c-format
1836msgid "# bytes used in file-sharing datastore `%s'" 1828msgid "# bytes used in file-sharing datastore `%s'"
@@ -2106,52 +2098,60 @@ msgstr ""
2106msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY." 2098msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY."
2107msgstr "" 2099msgstr ""
2108 2100
2109#: src/dht/gnunet-service-dht.c:172 src/dht/gnunet-service-xdht.c:193 2101#: src/dht/gnunet-service-dht.c:172
2110#, fuzzy 2102#, fuzzy
2111msgid "Failed to connect to transport service!\n" 2103msgid "Failed to connect to transport service!\n"
2112msgstr "Misslyckades att ansluta till gnunetd.\n" 2104msgstr "Misslyckades att ansluta till gnunetd.\n"
2113 2105
2114#: src/dht/gnunet-service-dht_clients.c:417 2106#: src/dht/gnunet-service-dht_clients.c:417
2107#: src/dht/gnunet-service-wdht_clients.c:852
2115#: src/dht/gnunet-service-xdht_clients.c:849 2108#: src/dht/gnunet-service-xdht_clients.c:849
2116#, fuzzy 2109#, fuzzy
2117msgid "# GET requests from clients injected" 2110msgid "# GET requests from clients injected"
2118msgstr "# byte mottogs via TCP" 2111msgstr "# byte mottogs via TCP"
2119 2112
2120#: src/dht/gnunet-service-dht_clients.c:513 2113#: src/dht/gnunet-service-dht_clients.c:513
2114#: src/dht/gnunet-service-wdht_clients.c:937
2121#: src/dht/gnunet-service-xdht_clients.c:933 2115#: src/dht/gnunet-service-xdht_clients.c:933
2122#, fuzzy 2116#, fuzzy
2123msgid "# PUT requests received from clients" 2117msgid "# PUT requests received from clients"
2124msgstr "Meddelande mottaget från klient är ogiltig.\n" 2118msgstr "Meddelande mottaget från klient är ogiltig.\n"
2125 2119
2126#: src/dht/gnunet-service-dht_clients.c:597 2120#: src/dht/gnunet-service-dht_clients.c:597
2121#: src/dht/gnunet-service-wdht_clients.c:1003
2127#: src/dht/gnunet-service-xdht_clients.c:998 2122#: src/dht/gnunet-service-xdht_clients.c:998
2128#, fuzzy 2123#, fuzzy
2129msgid "# GET requests received from clients" 2124msgid "# GET requests received from clients"
2130msgstr "Meddelande mottaget från klient är ogiltig.\n" 2125msgstr "Meddelande mottaget från klient är ogiltig.\n"
2131 2126
2132#: src/dht/gnunet-service-dht_clients.c:798 2127#: src/dht/gnunet-service-dht_clients.c:798
2128#: src/dht/gnunet-service-wdht_clients.c:1212
2133#: src/dht/gnunet-service-xdht_clients.c:1200 2129#: src/dht/gnunet-service-xdht_clients.c:1200
2134#, fuzzy 2130#, fuzzy
2135msgid "# GET STOP requests received from clients" 2131msgid "# GET STOP requests received from clients"
2136msgstr "Meddelande mottaget från klient är ogiltig.\n" 2132msgstr "Meddelande mottaget från klient är ogiltig.\n"
2137 2133
2138#: src/dht/gnunet-service-dht_clients.c:1040 2134#: src/dht/gnunet-service-dht_clients.c:1040
2135#: src/dht/gnunet-service-wdht_clients.c:505
2139#: src/dht/gnunet-service-xdht_clients.c:503 2136#: src/dht/gnunet-service-xdht_clients.c:503
2140msgid "# Key match, type mismatches in REPLY to CLIENT" 2137msgid "# Key match, type mismatches in REPLY to CLIENT"
2141msgstr "" 2138msgstr ""
2142 2139
2143#: src/dht/gnunet-service-dht_clients.c:1053 2140#: src/dht/gnunet-service-dht_clients.c:1053
2141#: src/dht/gnunet-service-wdht_clients.c:519
2144#: src/dht/gnunet-service-xdht_clients.c:517 2142#: src/dht/gnunet-service-xdht_clients.c:517
2145msgid "# Duplicate REPLIES to CLIENT request dropped" 2143msgid "# Duplicate REPLIES to CLIENT request dropped"
2146msgstr "" 2144msgstr ""
2147 2145
2148#: src/dht/gnunet-service-dht_clients.c:1098 2146#: src/dht/gnunet-service-dht_clients.c:1098
2147#: src/dht/gnunet-service-wdht_clients.c:561
2149#: src/dht/gnunet-service-xdht_clients.c:559 2148#: src/dht/gnunet-service-xdht_clients.c:559
2150#, c-format 2149#, c-format
2151msgid "Unsupported block type (%u) in request!\n" 2150msgid "Unsupported block type (%u) in request!\n"
2152msgstr "" 2151msgstr ""
2153 2152
2154#: src/dht/gnunet-service-dht_clients.c:1121 2153#: src/dht/gnunet-service-dht_clients.c:1121
2154#: src/dht/gnunet-service-wdht_clients.c:584
2155#: src/dht/gnunet-service-xdht_clients.c:582 2155#: src/dht/gnunet-service-xdht_clients.c:582
2156#, fuzzy 2156#, fuzzy
2157msgid "# RESULTS queued for clients" 2157msgid "# RESULTS queued for clients"
@@ -2159,61 +2159,71 @@ msgstr "Meddelande mottaget från klient är ogiltig.\n"
2159 2159
2160#: src/dht/gnunet-service-dht_clients.c:1175 2160#: src/dht/gnunet-service-dht_clients.c:1175
2161#: src/dht/gnunet-service-dht_clients.c:1218 2161#: src/dht/gnunet-service-dht_clients.c:1218
2162#: src/dht/gnunet-service-wdht_clients.c:638
2163#: src/dht/gnunet-service-wdht_clients.c:681
2162#: src/dht/gnunet-service-xdht_clients.c:636 2164#: src/dht/gnunet-service-xdht_clients.c:636
2163#: src/dht/gnunet-service-xdht_clients.c:679 2165#: src/dht/gnunet-service-xdht_clients.c:679
2164msgid "# REPLIES ignored for CLIENTS (no match)" 2166msgid "# REPLIES ignored for CLIENTS (no match)"
2165msgstr "" 2167msgstr ""
2166 2168
2167#: src/dht/gnunet-service-dht_clients.c:1185 2169#: src/dht/gnunet-service-dht_clients.c:1185
2170#: src/dht/gnunet-service-wdht_clients.c:648
2168#: src/dht/gnunet-service-xdht_clients.c:646 2171#: src/dht/gnunet-service-xdht_clients.c:646
2169#, fuzzy 2172#, fuzzy
2170msgid "Could not pass reply to client, message too big!\n" 2173msgid "Could not pass reply to client, message too big!\n"
2171msgstr "Kunde inte skicka meddelande till gnunetd\n" 2174msgstr "Kunde inte skicka meddelande till gnunetd\n"
2172 2175
2173#: src/dht/gnunet-service-dht_datacache.c:69 2176#: src/dht/gnunet-service-dht_datacache.c:68
2174#: src/dht/gnunet-service-xdht_datacache.c:71
2175#, fuzzy, c-format 2177#, fuzzy, c-format
2176msgid "%s request received, but have no datacache!\n" 2178msgid "%s request received, but have no datacache!\n"
2177msgstr "# byte mottagna av typen %d" 2179msgstr "# byte mottagna av typen %d"
2178 2180
2179#: src/dht/gnunet-service-dht_datacache.c:79 2181#: src/dht/gnunet-service-dht_datacache.c:78
2180#: src/dht/gnunet-service-xdht_datacache.c:82 2182#: src/dht/gnunet-service-wdht_datacache.c:107
2183#: src/dht/gnunet-service-xdht_datacache.c:91
2181msgid "# ITEMS stored in datacache" 2184msgid "# ITEMS stored in datacache"
2182msgstr "" 2185msgstr ""
2183 2186
2184#: src/dht/gnunet-service-dht_datacache.c:176 2187#: src/dht/gnunet-service-dht_datacache.c:184
2185#: src/dht/gnunet-service-xdht_datacache.c:230 2188#: src/dht/gnunet-service-wdht_datacache.c:216
2189#: src/dht/gnunet-service-xdht_datacache.c:238
2186msgid "# Good RESULTS found in datacache" 2190msgid "# Good RESULTS found in datacache"
2187msgstr "" 2191msgstr ""
2188 2192
2189#: src/dht/gnunet-service-dht_datacache.c:193 2193#: src/dht/gnunet-service-dht_datacache.c:201
2190#: src/dht/gnunet-service-xdht_datacache.c:253 2194#: src/dht/gnunet-service-wdht_datacache.c:231
2195#: src/dht/gnunet-service-xdht_datacache.c:267
2191msgid "# Duplicate RESULTS found in datacache" 2196msgid "# Duplicate RESULTS found in datacache"
2192msgstr "" 2197msgstr ""
2193 2198
2194#: src/dht/gnunet-service-dht_datacache.c:199 2199#: src/dht/gnunet-service-dht_datacache.c:207
2195#: src/dht/gnunet-service-xdht_datacache.c:259 2200#: src/dht/gnunet-service-wdht_datacache.c:237
2201#: src/dht/gnunet-service-xdht_datacache.c:273
2196msgid "# Invalid RESULTS found in datacache" 2202msgid "# Invalid RESULTS found in datacache"
2197msgstr "" 2203msgstr ""
2198 2204
2199#: src/dht/gnunet-service-dht_datacache.c:205 2205#: src/dht/gnunet-service-dht_datacache.c:213
2200#: src/dht/gnunet-service-xdht_datacache.c:265 2206#: src/dht/gnunet-service-wdht_datacache.c:243
2207#: src/dht/gnunet-service-xdht_datacache.c:279
2201msgid "# Irrelevant RESULTS found in datacache" 2208msgid "# Irrelevant RESULTS found in datacache"
2202msgstr "" 2209msgstr ""
2203 2210
2204#: src/dht/gnunet-service-dht_datacache.c:217 2211#: src/dht/gnunet-service-dht_datacache.c:225
2205#: src/dht/gnunet-service-xdht_datacache.c:277 2212#: src/dht/gnunet-service-wdht_datacache.c:255
2213#: src/dht/gnunet-service-xdht_datacache.c:291
2206msgid "# Unsupported RESULTS found in datacache" 2214msgid "# Unsupported RESULTS found in datacache"
2207msgstr "" 2215msgstr ""
2208 2216
2209#: src/dht/gnunet-service-dht_datacache.c:221 2217#: src/dht/gnunet-service-dht_datacache.c:229
2210#: src/dht/gnunet-service-xdht_datacache.c:280 2218#: src/dht/gnunet-service-wdht_datacache.c:258
2219#: src/dht/gnunet-service-xdht_datacache.c:294
2211#, c-format 2220#, c-format
2212msgid "Unsupported block type (%u) in local response!\n" 2221msgid "Unsupported block type (%u) in local response!\n"
2213msgstr "" 2222msgstr ""
2214 2223
2215#: src/dht/gnunet-service-dht_datacache.c:254 2224#: src/dht/gnunet-service-dht_datacache.c:262
2216#: src/dht/gnunet-service-xdht_datacache.c:318 2225#: src/dht/gnunet-service-wdht_datacache.c:295
2226#: src/dht/gnunet-service-xdht_datacache.c:334
2217#, fuzzy 2227#, fuzzy
2218msgid "# GET requests given to datacache" 2228msgid "# GET requests given to datacache"
2219msgstr "# byte mottogs via TCP" 2229msgstr "# byte mottogs via TCP"
@@ -2234,7 +2244,7 @@ msgid "# FIND PEER messages initiated"
2234msgstr "# PING-meddelanden skapade" 2244msgstr "# PING-meddelanden skapade"
2235 2245
2236#: src/dht/gnunet-service-dht_neighbours.c:763 2246#: src/dht/gnunet-service-dht_neighbours.c:763
2237#: src/dht/gnunet-service-xdht_neighbours.c:6060 2247#: src/dht/gnunet-service-xdht_neighbours.c:6062
2238#, fuzzy 2248#, fuzzy
2239msgid "# Queued messages discarded (peer disconnected)" 2249msgid "# Queued messages discarded (peer disconnected)"
2240msgstr "Nätverksannonsering avstängd i konfigurationen!\n" 2250msgstr "Nätverksannonsering avstängd i konfigurationen!\n"
@@ -2359,7 +2369,8 @@ msgstr "# krypterade PONG-meddelanden mottagna"
2359msgid "# P2P RESULT bytes received" 2369msgid "# P2P RESULT bytes received"
2360msgstr "# krypterade PONG-meddelanden mottagna" 2370msgstr "# krypterade PONG-meddelanden mottagna"
2361 2371
2362#: src/dht/gnunet-service-dht_nse.c:59 src/dht/gnunet-service-xdht_nse.c:59 2372#: src/dht/gnunet-service-dht_nse.c:59 src/dht/gnunet-service-wdht_nse.c:59
2373#: src/dht/gnunet-service-xdht_nse.c:59
2363#, fuzzy 2374#, fuzzy
2364msgid "# Network size estimates received" 2375msgid "# Network size estimates received"
2365msgstr "# byte mottogs via TCP" 2376msgstr "# byte mottogs via TCP"
@@ -2397,6 +2408,11 @@ msgstr ""
2397msgid "# DHT requests combined" 2408msgid "# DHT requests combined"
2398msgstr "# byte mottogs via TCP" 2409msgstr "# byte mottogs via TCP"
2399 2410
2411#: src/dht/gnunet-service-wdht_datacache.c:82
2412#, fuzzy
2413msgid "PUT request received, but have no datacache!\n"
2414msgstr "# byte mottagna av typen %d"
2415
2400#: src/dht/gnunet-service-xdht_neighbours.c:1832 2416#: src/dht/gnunet-service-xdht_neighbours.c:1832
2401#, c-format 2417#, c-format
2402msgid "" 2418msgid ""
@@ -2460,15 +2476,15 @@ msgstr ""
2460#: src/dht/gnunet-service-xdht_neighbours.c:3700 2476#: src/dht/gnunet-service-xdht_neighbours.c:3700
2461#: src/dht/gnunet-service-xdht_neighbours.c:3938 2477#: src/dht/gnunet-service-xdht_neighbours.c:3938
2462#: src/dht/gnunet-service-xdht_neighbours.c:4090 2478#: src/dht/gnunet-service-xdht_neighbours.c:4090
2463#: src/dht/gnunet-service-xdht_neighbours.c:4240 2479#: src/dht/gnunet-service-xdht_neighbours.c:4242
2464#: src/dht/gnunet-service-xdht_neighbours.c:4421 2480#: src/dht/gnunet-service-xdht_neighbours.c:4423
2465#: src/dht/gnunet-service-xdht_neighbours.c:4934 2481#: src/dht/gnunet-service-xdht_neighbours.c:4936
2466#: src/dht/gnunet-service-xdht_neighbours.c:5327 2482#: src/dht/gnunet-service-xdht_neighbours.c:5329
2467#: src/dht/gnunet-service-xdht_neighbours.c:5420 2483#: src/dht/gnunet-service-xdht_neighbours.c:5422
2468#: src/dht/gnunet-service-xdht_neighbours.c:5510 2484#: src/dht/gnunet-service-xdht_neighbours.c:5512
2469#: src/dht/gnunet-service-xdht_neighbours.c:5614 2485#: src/dht/gnunet-service-xdht_neighbours.c:5616
2470#: src/dht/gnunet-service-xdht_neighbours.c:5758 2486#: src/dht/gnunet-service-xdht_neighbours.c:5760
2471#: src/dht/gnunet-service-xdht_neighbours.c:5847 2487#: src/dht/gnunet-service-xdht_neighbours.c:5849
2472#, fuzzy 2488#, fuzzy
2473msgid "# Bytes received from other peers" 2489msgid "# Bytes received from other peers"
2474msgstr "# byte mottagna av typen %d" 2490msgstr "# byte mottagna av typen %d"
@@ -5981,64 +5997,64 @@ msgstr "Misslyckades att starta samling.\n"
5981msgid "Failed to get fragment!\n" 5997msgid "Failed to get fragment!\n"
5982msgstr "Kunde inte skapa värdnyckel!\n" 5998msgstr "Kunde inte skapa värdnyckel!\n"
5983 5999
5984#: src/psycstore/gnunet-service-psycstore.c:402 6000#: src/psycstore/gnunet-service-psycstore.c:417
5985#, fuzzy 6001#, fuzzy
5986msgid "Failed to get message!\n" 6002msgid "Failed to get message!\n"
5987msgstr "Kunde inte skapa värdnyckel!\n" 6003msgstr "Kunde inte skapa värdnyckel!\n"
5988 6004
5989#: src/psycstore/gnunet-service-psycstore.c:433 6005#: src/psycstore/gnunet-service-psycstore.c:448
5990#, fuzzy 6006#, fuzzy
5991msgid "Failed to get message fragment!\n" 6007msgid "Failed to get message fragment!\n"
5992msgstr "Misslyckades att läsa kompislista från \"%s\"\n" 6008msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
5993 6009
5994#: src/psycstore/gnunet-service-psycstore.c:461 6010#: src/psycstore/gnunet-service-psycstore.c:476
5995#, fuzzy 6011#, fuzzy
5996msgid "Failed to get master counters!\n" 6012msgid "Failed to get master counters!\n"
5997msgstr "Kunde inte skapa värdnyckel!\n" 6013msgstr "Kunde inte skapa värdnyckel!\n"
5998 6014
5999#: src/psycstore/gnunet-service-psycstore.c:497 6015#: src/psycstore/gnunet-service-psycstore.c:512
6000#: src/psycstore/gnunet-service-psycstore.c:570 6016#: src/psycstore/gnunet-service-psycstore.c:585
6001msgid "Tried to set invalid state variable name!\n" 6017msgid "Tried to set invalid state variable name!\n"
6002msgstr "" 6018msgstr ""
6003 6019
6004#: src/psycstore/gnunet-service-psycstore.c:513 6020#: src/psycstore/gnunet-service-psycstore.c:528
6005#, fuzzy 6021#, fuzzy
6006msgid "Failed to begin modifying state!\n" 6022msgid "Failed to begin modifying state!\n"
6007msgstr "Misslyckades att starta samling.\n" 6023msgstr "Misslyckades att starta samling.\n"
6008 6024
6009#: src/psycstore/gnunet-service-psycstore.c:536 6025#: src/psycstore/gnunet-service-psycstore.c:551
6010#, fuzzy, c-format 6026#, fuzzy, c-format
6011msgid "Unknown operator: %c\n" 6027msgid "Unknown operator: %c\n"
6012msgstr "Okänd operation \"%s\"\n" 6028msgstr "Okänd operation \"%s\"\n"
6013 6029
6014#: src/psycstore/gnunet-service-psycstore.c:546 6030#: src/psycstore/gnunet-service-psycstore.c:561
6015#, fuzzy 6031#, fuzzy
6016msgid "Failed to end modifying state!\n" 6032msgid "Failed to end modifying state!\n"
6017msgstr "Misslyckades att starta samling.\n" 6033msgstr "Misslyckades att starta samling.\n"
6018 6034
6019#: src/psycstore/gnunet-service-psycstore.c:584 6035#: src/psycstore/gnunet-service-psycstore.c:599
6020#, fuzzy 6036#, fuzzy
6021msgid "Failed to begin synchronizing state!\n" 6037msgid "Failed to begin synchronizing state!\n"
6022msgstr "Kunde inte skapa värdnyckel!\n" 6038msgstr "Kunde inte skapa värdnyckel!\n"
6023 6039
6024#: src/psycstore/gnunet-service-psycstore.c:600 6040#: src/psycstore/gnunet-service-psycstore.c:615
6025#, fuzzy 6041#, fuzzy
6026msgid "Failed to end synchronizing state!\n" 6042msgid "Failed to end synchronizing state!\n"
6027msgstr "Kunde inte skapa värdnyckel!\n" 6043msgstr "Kunde inte skapa värdnyckel!\n"
6028 6044
6029#: src/psycstore/gnunet-service-psycstore.c:620 6045#: src/psycstore/gnunet-service-psycstore.c:635
6030#: src/psycstore/gnunet-service-psycstore.c:639 6046#: src/psycstore/gnunet-service-psycstore.c:654
6031#, fuzzy 6047#, fuzzy
6032msgid "Failed to reset state!\n" 6048msgid "Failed to reset state!\n"
6033msgstr "Kunde inte skapa värdnyckel!\n" 6049msgstr "Kunde inte skapa värdnyckel!\n"
6034 6050
6035#: src/psycstore/gnunet-service-psycstore.c:662 6051#: src/psycstore/gnunet-service-psycstore.c:677
6036#: src/psycstore/gnunet-service-psycstore.c:713 6052#: src/psycstore/gnunet-service-psycstore.c:728
6037msgid "Tried to get invalid state variable name!\n" 6053msgid "Tried to get invalid state variable name!\n"
6038msgstr "" 6054msgstr ""
6039 6055
6040#: src/psycstore/gnunet-service-psycstore.c:689 6056#: src/psycstore/gnunet-service-psycstore.c:704
6041#: src/psycstore/gnunet-service-psycstore.c:728 6057#: src/psycstore/gnunet-service-psycstore.c:743
6042#, fuzzy 6058#, fuzzy
6043msgid "Failed to get state variable!\n" 6059msgid "Failed to get state variable!\n"
6044msgstr "Kunde inte skapa värdnyckel!\n" 6060msgstr "Kunde inte skapa värdnyckel!\n"
@@ -6048,7 +6064,7 @@ msgstr "Kunde inte skapa värdnyckel!\n"
6048msgid "`%s' failed at %s:%d with error: %s (%d)\n" 6064msgid "`%s' failed at %s:%d with error: %s (%d)\n"
6049msgstr "\"%s\" misslyckades vid %s:%d med fel: %s\n" 6065msgstr "\"%s\" misslyckades vid %s:%d med fel: %s\n"
6050 6066
6051#: src/psycstore/plugin_psycstore_sqlite.c:1932 6067#: src/psycstore/plugin_psycstore_sqlite.c:1936
6052msgid "SQLite database running\n" 6068msgid "SQLite database running\n"
6053msgstr "" 6069msgstr ""
6054 6070
@@ -8087,7 +8103,7 @@ msgid "Found %u addresses to report to NAT service\n"
8087msgstr "" 8103msgstr ""
8088 8104
8089#: src/transport/plugin_transport_http_server.c:2825 8105#: src/transport/plugin_transport_http_server.c:2825
8090#: src/transport/plugin_transport_udp.c:3335 8106#: src/transport/plugin_transport_udp.c:3338
8091msgid "Disabling IPv6 since it is not supported on this system!\n" 8107msgid "Disabling IPv6 since it is not supported on this system!\n"
8092msgstr "" 8108msgstr ""
8093 8109
@@ -8342,37 +8358,37 @@ msgid ""
8342"and disable IPv6 if your connection does not have a global IPv6 address\n" 8358"and disable IPv6 if your connection does not have a global IPv6 address\n"
8343msgstr "" 8359msgstr ""
8344 8360
8345#: src/transport/plugin_transport_udp.c:3411 8361#: src/transport/plugin_transport_udp.c:3414
8346#: src/transport/plugin_transport_udp.c:3510 8362#: src/transport/plugin_transport_udp.c:3513
8347#, fuzzy, c-format 8363#, fuzzy, c-format
8348msgid "Failed to bind UDP socket to %s: %s\n" 8364msgid "Failed to bind UDP socket to %s: %s\n"
8349msgstr "Misslyckades att binda till UDP6-port %d.\n" 8365msgstr "Misslyckades att binda till UDP6-port %d.\n"
8350 8366
8351#: src/transport/plugin_transport_udp.c:3429 8367#: src/transport/plugin_transport_udp.c:3432
8352msgid "Disabling IPv4 since it is not supported on this system!\n" 8368msgid "Disabling IPv4 since it is not supported on this system!\n"
8353msgstr "" 8369msgstr ""
8354 8370
8355#: src/transport/plugin_transport_udp.c:3520 8371#: src/transport/plugin_transport_udp.c:3523
8356#, fuzzy 8372#, fuzzy
8357msgid "Failed to open UDP sockets\n" 8373msgid "Failed to open UDP sockets\n"
8358msgstr "Misslyckades att binda till UDP6-port %d.\n" 8374msgstr "Misslyckades att binda till UDP6-port %d.\n"
8359 8375
8360#: src/transport/plugin_transport_udp.c:3591 8376#: src/transport/plugin_transport_udp.c:3594
8361#: src/transport/plugin_transport_udp.c:3605 8377#: src/transport/plugin_transport_udp.c:3608
8362msgid "must be in [0,65535]" 8378msgid "must be in [0,65535]"
8363msgstr "" 8379msgstr ""
8364 8380
8365#: src/transport/plugin_transport_udp.c:3637 8381#: src/transport/plugin_transport_udp.c:3640
8366#, fuzzy 8382#, fuzzy
8367msgid "must be valid IPv4 address" 8383msgid "must be valid IPv4 address"
8368msgstr "\"%s\" är inte tillgänglig." 8384msgstr "\"%s\" är inte tillgänglig."
8369 8385
8370#: src/transport/plugin_transport_udp.c:3664 8386#: src/transport/plugin_transport_udp.c:3667
8371#, fuzzy 8387#, fuzzy
8372msgid "must be valid IPv6 address" 8388msgid "must be valid IPv6 address"
8373msgstr "\"%s\" är inte tillgänglig." 8389msgstr "\"%s\" är inte tillgänglig."
8374 8390
8375#: src/transport/plugin_transport_udp.c:3730 8391#: src/transport/plugin_transport_udp.c:3733
8376#, fuzzy 8392#, fuzzy
8377msgid "Failed to create UDP network sockets\n" 8393msgid "Failed to create UDP network sockets\n"
8378msgstr "Kunde inte skapa namnrymd \"%s\" (existerar?).\n" 8394msgstr "Kunde inte skapa namnrymd \"%s\" (existerar?).\n"
@@ -8690,7 +8706,7 @@ msgstr "\"%s\" misslyckades vid %s:%d med fel: \"%s\".\n"
8690msgid "libgcrypt has not the expected version (version %s is required).\n" 8706msgid "libgcrypt has not the expected version (version %s is required).\n"
8691msgstr "libgcrypt har inte den förväntande versionen (version %s krävs).\n" 8707msgstr "libgcrypt har inte den förväntande versionen (version %s krävs).\n"
8692 8708
8693#: src/util/crypto_rsa.c:825 8709#: src/util/crypto_rsa.c:891
8694#, fuzzy, c-format 8710#, fuzzy, c-format
8695msgid "RSA signature verification failed at %s:%d: %s\n" 8711msgid "RSA signature verification failed at %s:%d: %s\n"
8696msgstr "\"%s\" misslyckades vid %s:%d med fel: \"%s\".\n" 8712msgstr "\"%s\" misslyckades vid %s:%d med fel: \"%s\".\n"
@@ -9500,23 +9516,27 @@ msgstr "# byte mottagna via UDP"
9500msgid "Setup tunnels via VPN." 9516msgid "Setup tunnels via VPN."
9501msgstr "" 9517msgstr ""
9502 9518
9503#: src/include/gnunet_common.h:590 src/include/gnunet_common.h:597 9519#: src/include/gnunet_common.h:631 src/include/gnunet_common.h:638
9504#: src/include/gnunet_common.h:605 9520#: src/include/gnunet_common.h:646
9505#, fuzzy, c-format 9521#, fuzzy, c-format
9506msgid "Assertion failed at %s:%d.\n" 9522msgid "Assertion failed at %s:%d.\n"
9507msgstr "\"%s\" misslyckades vid %s:%d med fel: \"%s\".\n" 9523msgstr "\"%s\" misslyckades vid %s:%d med fel: \"%s\".\n"
9508 9524
9509#: src/include/gnunet_common.h:617 9525#: src/include/gnunet_common.h:658
9510#, c-format 9526#, c-format
9511msgid "External protocol violation detected at %s:%d.\n" 9527msgid "External protocol violation detected at %s:%d.\n"
9512msgstr "" 9528msgstr ""
9513 9529
9514#: src/include/gnunet_common.h:644 src/include/gnunet_common.h:653 9530#: src/include/gnunet_common.h:685 src/include/gnunet_common.h:694
9515#, c-format 9531#, c-format
9516msgid "`%s' failed on file `%s' at %s:%d with error: %s\n" 9532msgid "`%s' failed on file `%s' at %s:%d with error: %s\n"
9517msgstr "\"%s\" misslyckades för fil \"%s\" vid %s:%d med fel: %s\n" 9533msgstr "\"%s\" misslyckades för fil \"%s\" vid %s:%d med fel: %s\n"
9518 9534
9519#, fuzzy 9535#, fuzzy
9536#~ msgid "Failed to close statement %p: %d\n"
9537#~ msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
9538
9539#, fuzzy
9520#~ msgid "Failed to initialize solver!\n" 9540#~ msgid "Failed to initialize solver!\n"
9521#~ msgstr "Kunde inte initiera SQLite.\n" 9541#~ msgstr "Kunde inte initiera SQLite.\n"
9522 9542
diff --git a/po/vi.po b/po/vi.po
index a706c1e1d..a2bd055f4 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -8,7 +8,7 @@ msgid ""
8msgstr "" 8msgstr ""
9"Project-Id-Version: gnunet 0.8.0a\n" 9"Project-Id-Version: gnunet 0.8.0a\n"
10"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n" 10"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
11"POT-Creation-Date: 2015-04-27 13:05+0200\n" 11"POT-Creation-Date: 2015-05-19 11:25+0200\n"
12"PO-Revision-Date: 2008-09-10 22:05+0930\n" 12"PO-Revision-Date: 2008-09-10 22:05+0930\n"
13"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n" 13"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
14"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n" 14"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
@@ -656,58 +656,58 @@ msgstr "In ra thông tin về các đồng đẳng GNUnet."
656msgid "Invalid target `%s'\n" 656msgid "Invalid target `%s'\n"
657msgstr "Đối số không hợp lệ cho « %s ».\n" 657msgstr "Đối số không hợp lệ cho « %s ».\n"
658 658
659#: src/cadet/gnunet-cadet.c:626 659#: src/cadet/gnunet-cadet.c:643
660#, fuzzy, c-format 660#, fuzzy, c-format
661msgid "Invalid peer ID `%s'\n" 661msgid "Invalid peer ID `%s'\n"
662msgstr "Dữ liệu nhập không hợp lệ.\n" 662msgstr "Dữ liệu nhập không hợp lệ.\n"
663 663
664#: src/cadet/gnunet-cadet.c:669 664#: src/cadet/gnunet-cadet.c:686
665#, fuzzy, c-format 665#, fuzzy, c-format
666msgid "Invalid tunnel owner `%s'\n" 666msgid "Invalid tunnel owner `%s'\n"
667msgstr "Địa chỉ IP định dạng sai: %s\n" 667msgstr "Địa chỉ IP định dạng sai: %s\n"
668 668
669#: src/cadet/gnunet-cadet.c:735 669#: src/cadet/gnunet-cadet.c:752
670msgid "You must NOT give a TARGETwhen using 'request all' options\n" 670msgid "You must NOT give a TARGETwhen using 'request all' options\n"
671msgstr "" 671msgstr ""
672 672
673#: src/cadet/gnunet-cadet.c:832 673#: src/cadet/gnunet-cadet.c:849
674#, fuzzy 674#, fuzzy
675msgid "provide information about a particular connection" 675msgid "provide information about a particular connection"
676msgstr "In ra thông tin về các đồng đẳng GNUnet." 676msgstr "In ra thông tin về các đồng đẳng GNUnet."
677 677
678#: src/cadet/gnunet-cadet.c:835 678#: src/cadet/gnunet-cadet.c:852
679msgid "activate echo mode" 679msgid "activate echo mode"
680msgstr "" 680msgstr ""
681 681
682#: src/cadet/gnunet-cadet.c:838 682#: src/cadet/gnunet-cadet.c:855
683msgid "dump debug information to STDERR" 683msgid "dump debug information to STDERR"
684msgstr "" 684msgstr ""
685 685
686#: src/cadet/gnunet-cadet.c:844 686#: src/cadet/gnunet-cadet.c:861
687msgid "port to listen to (default; 0)" 687msgid "port to listen to (default; 0)"
688msgstr "" 688msgstr ""
689 689
690#: src/cadet/gnunet-cadet.c:847 690#: src/cadet/gnunet-cadet.c:864
691#, fuzzy 691#, fuzzy
692msgid "provide information about a patricular peer" 692msgid "provide information about a patricular peer"
693msgstr "In ra thông tin về các đồng đẳng GNUnet." 693msgstr "In ra thông tin về các đồng đẳng GNUnet."
694 694
695#: src/cadet/gnunet-cadet.c:850 695#: src/cadet/gnunet-cadet.c:867
696#, fuzzy 696#, fuzzy
697msgid "provide information about all peers" 697msgid "provide information about all peers"
698msgstr "In ra thông tin về các đồng đẳng GNUnet." 698msgstr "In ra thông tin về các đồng đẳng GNUnet."
699 699
700#: src/cadet/gnunet-cadet.c:853 700#: src/cadet/gnunet-cadet.c:870
701#, fuzzy 701#, fuzzy
702msgid "provide information about a particular tunnel" 702msgid "provide information about a particular tunnel"
703msgstr "In ra thông tin về các đồng đẳng GNUnet." 703msgstr "In ra thông tin về các đồng đẳng GNUnet."
704 704
705#: src/cadet/gnunet-cadet.c:856 705#: src/cadet/gnunet-cadet.c:873
706#, fuzzy 706#, fuzzy
707msgid "provide information about all tunnels" 707msgid "provide information about all tunnels"
708msgstr "In ra thông tin về các đồng đẳng GNUnet." 708msgstr "In ra thông tin về các đồng đẳng GNUnet."
709 709
710#: src/cadet/gnunet-service-cadet_peer.c:507 710#: src/cadet/gnunet-service-cadet_peer.c:514
711msgid "Wrong CORE service\n" 711msgid "Wrong CORE service\n"
712msgstr "" 712msgstr ""
713 713
@@ -1504,54 +1504,53 @@ msgstr "# các thông báo phát hiện dht được nhận"
1504msgid "# updates to my type map" 1504msgid "# updates to my type map"
1505msgstr "" 1505msgstr ""
1506 1506
1507#: src/datacache/datacache.c:115 src/datacache/datacache.c:266 1507#: src/datacache/datacache.c:119 src/datacache/datacache.c:294
1508#: src/datastore/gnunet-service-datastore.c:841 1508#: src/datastore/gnunet-service-datastore.c:841
1509#, fuzzy 1509#, fuzzy
1510msgid "# bytes stored" 1510msgid "# bytes stored"
1511msgstr "# các byte trong kho dữ liệu" 1511msgstr "# các byte trong kho dữ liệu"
1512 1512
1513#: src/datacache/datacache.c:117 src/datacache/datacache.c:268 1513#: src/datacache/datacache.c:123 src/datacache/datacache.c:298
1514#, fuzzy 1514#, fuzzy
1515msgid "# items stored" 1515msgid "# items stored"
1516msgstr "# các byte trong kho dữ liệu" 1516msgstr "# các byte trong kho dữ liệu"
1517 1517
1518#: src/datacache/datacache.c:143 src/datacache/datacache.c:150 1518#: src/datacache/datacache.c:202
1519#: src/datastore/gnunet-service-datastore.c:1598
1520#: src/datastore/gnunet-service-datastore.c:1609
1521#, c-format
1522msgid "No `%s' specified for `%s' in configuration!\n"
1523msgstr ""
1524
1525#: src/datacache/datacache.c:184
1526#, c-format 1519#, c-format
1527msgid "Loading `%s' datacache plugin\n" 1520msgid "Loading `%s' datacache plugin\n"
1528msgstr "" 1521msgstr ""
1529 1522
1530#: src/datacache/datacache.c:192 1523#: src/datacache/datacache.c:213
1531#, fuzzy, c-format 1524#, fuzzy, c-format
1532msgid "Failed to load datacache plugin for `%s'\n" 1525msgid "Failed to load datacache plugin for `%s'\n"
1533msgstr "Lỗi cập nhật dữ liệu cho mô-đun « %s »\n" 1526msgstr "Lỗi cập nhật dữ liệu cho mô-đun « %s »\n"
1534 1527
1535#: src/datacache/datacache.c:295 1528#: src/datacache/datacache.c:329
1536#, fuzzy 1529#, fuzzy
1537msgid "# requests received" 1530msgid "# requests received"
1538msgstr "# các yêu cầu get (lấy) dht được nhận" 1531msgstr "# các yêu cầu get (lấy) dht được nhận"
1539 1532
1540#: src/datacache/datacache.c:304 1533#: src/datacache/datacache.c:339
1541msgid "# requests filtered by bloom filter" 1534msgid "# requests filtered by bloom filter"
1542msgstr "# các yêu cầu được lọc theo bộ lọc bloom" 1535msgstr "# các yêu cầu được lọc theo bộ lọc bloom"
1543 1536
1544#: src/datacache/plugin_datacache_heap.c:406 1537#: src/datacache/datacache.c:367
1538#, fuzzy
1539msgid "# requests for random value received"
1540msgstr "# tổng số yêu cầu lỗ hổng được nhận"
1541
1542#: src/datacache/datacache.c:399
1543#, fuzzy
1544msgid "# proximity search requests received"
1545msgstr "# các yêu cầu khách lỗ hổng được nhận"
1546
1547#: src/datacache/plugin_datacache_heap.c:466
1545#, fuzzy 1548#, fuzzy
1546msgid "Heap datacache running\n" 1549msgid "Heap datacache running\n"
1547msgstr "kho dữ liệu sqlite" 1550msgstr "kho dữ liệu sqlite"
1548 1551
1549#: src/datacache/plugin_datacache_postgres.c:391 1552#: src/datacache/plugin_datacache_sqlite.c:77
1550msgid "Postgres datacache running\n" 1553#: src/datacache/plugin_datacache_sqlite.c:86
1551msgstr ""
1552
1553#: src/datacache/plugin_datacache_sqlite.c:69
1554#: src/datacache/plugin_datacache_sqlite.c:72
1555#: src/datastore/plugin_datastore_mysql.c:818 1554#: src/datastore/plugin_datastore_mysql.c:818
1556#: src/datastore/plugin_datastore_mysql.c:834 1555#: src/datastore/plugin_datastore_mysql.c:834
1557#: src/datastore/plugin_datastore_sqlite.c:57 src/mysql/mysql.c:41 1556#: src/datastore/plugin_datastore_sqlite.c:57 src/mysql/mysql.c:41
@@ -1566,32 +1565,19 @@ msgstr ""
1566#: src/testbed/gnunet-daemon-latency-logger.c:52 1565#: src/testbed/gnunet-daemon-latency-logger.c:52
1567#: src/testbed/gnunet-daemon-testbed-underlay.c:55 1566#: src/testbed/gnunet-daemon-testbed-underlay.c:55
1568#: src/testbed/testbed_api_hosts.c:69 src/util/crypto_ecc.c:51 1567#: src/testbed/testbed_api_hosts.c:69 src/util/crypto_ecc.c:51
1569#: src/util/crypto_mpi.c:39 src/include/gnunet_common.h:626 1568#: src/util/crypto_mpi.c:39 src/include/gnunet_common.h:667
1570#: src/include/gnunet_common.h:635 src/scalarproduct/scalarproduct.h:35 1569#: src/include/gnunet_common.h:676 src/scalarproduct/scalarproduct.h:35
1571#, c-format 1570#, c-format
1572msgid "`%s' failed at %s:%d with error: %s\n" 1571msgid "`%s' failed at %s:%d with error: %s\n"
1573msgstr "« %s » bị lỗi tại %s:%d với lỗi: %s\n" 1572msgstr "« %s » bị lỗi tại %s:%d với lỗi: %s\n"
1574 1573
1575#: src/datacache/plugin_datacache_sqlite.c:449 1574#: src/datacache/plugin_datacache_sqlite.c:749
1576msgid "Sqlite datacache running\n"
1577msgstr ""
1578
1579#: src/datacache/plugin_datacache_sqlite.c:483
1580#: src/datastore/plugin_datastore_sqlite.c:401 1575#: src/datastore/plugin_datastore_sqlite.c:401
1581#: src/namecache/plugin_namecache_sqlite.c:292 1576#: src/namecache/plugin_namecache_sqlite.c:292
1582#: src/namestore/plugin_namestore_sqlite.c:324 1577#: src/namestore/plugin_namestore_sqlite.c:324
1583msgid "Tried to close sqlite without finalizing all prepared statements.\n" 1578msgid "Tried to close sqlite without finalizing all prepared statements.\n"
1584msgstr "" 1579msgstr ""
1585 1580
1586#: src/datacache/plugin_datacache_sqlite.c:490
1587#, fuzzy, c-format
1588msgid "Failed to close statement %p: %d\n"
1589msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
1590
1591#: src/datacache/plugin_datacache_template.c:125
1592msgid "Template datacache running\n"
1593msgstr ""
1594
1595#: src/datastore/datastore_api.c:310 1581#: src/datastore/datastore_api.c:310
1596msgid "Failed to transmit request to drop database.\n" 1582msgid "Failed to transmit request to drop database.\n"
1597msgstr "" 1583msgstr ""
@@ -1848,6 +1834,12 @@ msgstr ""
1848msgid "Plugin does not support get_keys function. Please fix!\n" 1834msgid "Plugin does not support get_keys function. Please fix!\n"
1849msgstr "" 1835msgstr ""
1850 1836
1837#: src/datastore/gnunet-service-datastore.c:1598
1838#: src/datastore/gnunet-service-datastore.c:1609
1839#, c-format
1840msgid "No `%s' specified for `%s' in configuration!\n"
1841msgstr ""
1842
1851#: src/datastore/gnunet-service-datastore.c:1603 1843#: src/datastore/gnunet-service-datastore.c:1603
1852#, fuzzy, c-format 1844#, fuzzy, c-format
1853msgid "# bytes used in file-sharing datastore `%s'" 1845msgid "# bytes used in file-sharing datastore `%s'"
@@ -2128,112 +2120,130 @@ msgstr ""
2128msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY." 2120msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY."
2129msgstr "" 2121msgstr ""
2130 2122
2131#: src/dht/gnunet-service-dht.c:172 src/dht/gnunet-service-xdht.c:193 2123#: src/dht/gnunet-service-dht.c:172
2132#, fuzzy 2124#, fuzzy
2133msgid "Failed to connect to transport service!\n" 2125msgid "Failed to connect to transport service!\n"
2134msgstr "Lỗi kết nối đến gnunetd.\n" 2126msgstr "Lỗi kết nối đến gnunetd.\n"
2135 2127
2136#: src/dht/gnunet-service-dht_clients.c:417 2128#: src/dht/gnunet-service-dht_clients.c:417
2129#: src/dht/gnunet-service-wdht_clients.c:852
2137#: src/dht/gnunet-service-xdht_clients.c:849 2130#: src/dht/gnunet-service-xdht_clients.c:849
2138#, fuzzy 2131#, fuzzy
2139msgid "# GET requests from clients injected" 2132msgid "# GET requests from clients injected"
2140msgstr "# các yêu cầu get (lấy) dht được nhận" 2133msgstr "# các yêu cầu get (lấy) dht được nhận"
2141 2134
2142#: src/dht/gnunet-service-dht_clients.c:513 2135#: src/dht/gnunet-service-dht_clients.c:513
2136#: src/dht/gnunet-service-wdht_clients.c:937
2143#: src/dht/gnunet-service-xdht_clients.c:933 2137#: src/dht/gnunet-service-xdht_clients.c:933
2144#, fuzzy 2138#, fuzzy
2145msgid "# PUT requests received from clients" 2139msgid "# PUT requests received from clients"
2146msgstr "# các đáp ứng lỗ hổng được gửi cho trình/máy khách" 2140msgstr "# các đáp ứng lỗ hổng được gửi cho trình/máy khách"
2147 2141
2148#: src/dht/gnunet-service-dht_clients.c:597 2142#: src/dht/gnunet-service-dht_clients.c:597
2143#: src/dht/gnunet-service-wdht_clients.c:1003
2149#: src/dht/gnunet-service-xdht_clients.c:998 2144#: src/dht/gnunet-service-xdht_clients.c:998
2150#, fuzzy 2145#, fuzzy
2151msgid "# GET requests received from clients" 2146msgid "# GET requests received from clients"
2152msgstr "# các yêu cầu get (lấy) dht được nhận" 2147msgstr "# các yêu cầu get (lấy) dht được nhận"
2153 2148
2154#: src/dht/gnunet-service-dht_clients.c:798 2149#: src/dht/gnunet-service-dht_clients.c:798
2150#: src/dht/gnunet-service-wdht_clients.c:1212
2155#: src/dht/gnunet-service-xdht_clients.c:1200 2151#: src/dht/gnunet-service-xdht_clients.c:1200
2156#, fuzzy 2152#, fuzzy
2157msgid "# GET STOP requests received from clients" 2153msgid "# GET STOP requests received from clients"
2158msgstr "# các yêu cầu get (lấy) dht được nhận" 2154msgstr "# các yêu cầu get (lấy) dht được nhận"
2159 2155
2160#: src/dht/gnunet-service-dht_clients.c:1040 2156#: src/dht/gnunet-service-dht_clients.c:1040
2157#: src/dht/gnunet-service-wdht_clients.c:505
2161#: src/dht/gnunet-service-xdht_clients.c:503 2158#: src/dht/gnunet-service-xdht_clients.c:503
2162msgid "# Key match, type mismatches in REPLY to CLIENT" 2159msgid "# Key match, type mismatches in REPLY to CLIENT"
2163msgstr "" 2160msgstr ""
2164 2161
2165#: src/dht/gnunet-service-dht_clients.c:1053 2162#: src/dht/gnunet-service-dht_clients.c:1053
2163#: src/dht/gnunet-service-wdht_clients.c:519
2166#: src/dht/gnunet-service-xdht_clients.c:517 2164#: src/dht/gnunet-service-xdht_clients.c:517
2167msgid "# Duplicate REPLIES to CLIENT request dropped" 2165msgid "# Duplicate REPLIES to CLIENT request dropped"
2168msgstr "" 2166msgstr ""
2169 2167
2170#: src/dht/gnunet-service-dht_clients.c:1098 2168#: src/dht/gnunet-service-dht_clients.c:1098
2169#: src/dht/gnunet-service-wdht_clients.c:561
2171#: src/dht/gnunet-service-xdht_clients.c:559 2170#: src/dht/gnunet-service-xdht_clients.c:559
2172#, c-format 2171#, c-format
2173msgid "Unsupported block type (%u) in request!\n" 2172msgid "Unsupported block type (%u) in request!\n"
2174msgstr "" 2173msgstr ""
2175 2174
2176#: src/dht/gnunet-service-dht_clients.c:1121 2175#: src/dht/gnunet-service-dht_clients.c:1121
2176#: src/dht/gnunet-service-wdht_clients.c:584
2177#: src/dht/gnunet-service-xdht_clients.c:582 2177#: src/dht/gnunet-service-xdht_clients.c:582
2178msgid "# RESULTS queued for clients" 2178msgid "# RESULTS queued for clients"
2179msgstr "" 2179msgstr ""
2180 2180
2181#: src/dht/gnunet-service-dht_clients.c:1175 2181#: src/dht/gnunet-service-dht_clients.c:1175
2182#: src/dht/gnunet-service-dht_clients.c:1218 2182#: src/dht/gnunet-service-dht_clients.c:1218
2183#: src/dht/gnunet-service-wdht_clients.c:638
2184#: src/dht/gnunet-service-wdht_clients.c:681
2183#: src/dht/gnunet-service-xdht_clients.c:636 2185#: src/dht/gnunet-service-xdht_clients.c:636
2184#: src/dht/gnunet-service-xdht_clients.c:679 2186#: src/dht/gnunet-service-xdht_clients.c:679
2185msgid "# REPLIES ignored for CLIENTS (no match)" 2187msgid "# REPLIES ignored for CLIENTS (no match)"
2186msgstr "" 2188msgstr ""
2187 2189
2188#: src/dht/gnunet-service-dht_clients.c:1185 2190#: src/dht/gnunet-service-dht_clients.c:1185
2191#: src/dht/gnunet-service-wdht_clients.c:648
2189#: src/dht/gnunet-service-xdht_clients.c:646 2192#: src/dht/gnunet-service-xdht_clients.c:646
2190msgid "Could not pass reply to client, message too big!\n" 2193msgid "Could not pass reply to client, message too big!\n"
2191msgstr "" 2194msgstr ""
2192 2195
2193#: src/dht/gnunet-service-dht_datacache.c:69 2196#: src/dht/gnunet-service-dht_datacache.c:68
2194#: src/dht/gnunet-service-xdht_datacache.c:71
2195#, fuzzy, c-format 2197#, fuzzy, c-format
2196msgid "%s request received, but have no datacache!\n" 2198msgid "%s request received, but have no datacache!\n"
2197msgstr "# các byte kiểu %d được nhận" 2199msgstr "# các byte kiểu %d được nhận"
2198 2200
2199#: src/dht/gnunet-service-dht_datacache.c:79 2201#: src/dht/gnunet-service-dht_datacache.c:78
2200#: src/dht/gnunet-service-xdht_datacache.c:82 2202#: src/dht/gnunet-service-wdht_datacache.c:107
2203#: src/dht/gnunet-service-xdht_datacache.c:91
2201msgid "# ITEMS stored in datacache" 2204msgid "# ITEMS stored in datacache"
2202msgstr "" 2205msgstr ""
2203 2206
2204#: src/dht/gnunet-service-dht_datacache.c:176 2207#: src/dht/gnunet-service-dht_datacache.c:184
2205#: src/dht/gnunet-service-xdht_datacache.c:230 2208#: src/dht/gnunet-service-wdht_datacache.c:216
2209#: src/dht/gnunet-service-xdht_datacache.c:238
2206msgid "# Good RESULTS found in datacache" 2210msgid "# Good RESULTS found in datacache"
2207msgstr "" 2211msgstr ""
2208 2212
2209#: src/dht/gnunet-service-dht_datacache.c:193 2213#: src/dht/gnunet-service-dht_datacache.c:201
2210#: src/dht/gnunet-service-xdht_datacache.c:253 2214#: src/dht/gnunet-service-wdht_datacache.c:231
2215#: src/dht/gnunet-service-xdht_datacache.c:267
2211msgid "# Duplicate RESULTS found in datacache" 2216msgid "# Duplicate RESULTS found in datacache"
2212msgstr "" 2217msgstr ""
2213 2218
2214#: src/dht/gnunet-service-dht_datacache.c:199 2219#: src/dht/gnunet-service-dht_datacache.c:207
2215#: src/dht/gnunet-service-xdht_datacache.c:259 2220#: src/dht/gnunet-service-wdht_datacache.c:237
2221#: src/dht/gnunet-service-xdht_datacache.c:273
2216msgid "# Invalid RESULTS found in datacache" 2222msgid "# Invalid RESULTS found in datacache"
2217msgstr "" 2223msgstr ""
2218 2224
2219#: src/dht/gnunet-service-dht_datacache.c:205 2225#: src/dht/gnunet-service-dht_datacache.c:213
2220#: src/dht/gnunet-service-xdht_datacache.c:265 2226#: src/dht/gnunet-service-wdht_datacache.c:243
2227#: src/dht/gnunet-service-xdht_datacache.c:279
2221msgid "# Irrelevant RESULTS found in datacache" 2228msgid "# Irrelevant RESULTS found in datacache"
2222msgstr "" 2229msgstr ""
2223 2230
2224#: src/dht/gnunet-service-dht_datacache.c:217 2231#: src/dht/gnunet-service-dht_datacache.c:225
2225#: src/dht/gnunet-service-xdht_datacache.c:277 2232#: src/dht/gnunet-service-wdht_datacache.c:255
2233#: src/dht/gnunet-service-xdht_datacache.c:291
2226msgid "# Unsupported RESULTS found in datacache" 2234msgid "# Unsupported RESULTS found in datacache"
2227msgstr "" 2235msgstr ""
2228 2236
2229#: src/dht/gnunet-service-dht_datacache.c:221 2237#: src/dht/gnunet-service-dht_datacache.c:229
2230#: src/dht/gnunet-service-xdht_datacache.c:280 2238#: src/dht/gnunet-service-wdht_datacache.c:258
2239#: src/dht/gnunet-service-xdht_datacache.c:294
2231#, c-format 2240#, c-format
2232msgid "Unsupported block type (%u) in local response!\n" 2241msgid "Unsupported block type (%u) in local response!\n"
2233msgstr "" 2242msgstr ""
2234 2243
2235#: src/dht/gnunet-service-dht_datacache.c:254 2244#: src/dht/gnunet-service-dht_datacache.c:262
2236#: src/dht/gnunet-service-xdht_datacache.c:318 2245#: src/dht/gnunet-service-wdht_datacache.c:295
2246#: src/dht/gnunet-service-xdht_datacache.c:334
2237#, fuzzy 2247#, fuzzy
2238msgid "# GET requests given to datacache" 2248msgid "# GET requests given to datacache"
2239msgstr "# các yêu cầu get (lấy) dht được nhận" 2249msgstr "# các yêu cầu get (lấy) dht được nhận"
@@ -2254,7 +2264,7 @@ msgid "# FIND PEER messages initiated"
2254msgstr "# các thông báo PING được tạo" 2264msgstr "# các thông báo PING được tạo"
2255 2265
2256#: src/dht/gnunet-service-dht_neighbours.c:763 2266#: src/dht/gnunet-service-dht_neighbours.c:763
2257#: src/dht/gnunet-service-xdht_neighbours.c:6060 2267#: src/dht/gnunet-service-xdht_neighbours.c:6062
2258#, fuzzy 2268#, fuzzy
2259msgid "# Queued messages discarded (peer disconnected)" 2269msgid "# Queued messages discarded (peer disconnected)"
2260msgstr "# các thông báo được chắp liền" 2270msgstr "# các thông báo được chắp liền"
@@ -2382,7 +2392,8 @@ msgstr "# Tín hiệu HTTP PUT được nhận"
2382msgid "# P2P RESULT bytes received" 2392msgid "# P2P RESULT bytes received"
2383msgstr "# Tín hiệu HTTP PUT được nhận" 2393msgstr "# Tín hiệu HTTP PUT được nhận"
2384 2394
2385#: src/dht/gnunet-service-dht_nse.c:59 src/dht/gnunet-service-xdht_nse.c:59 2395#: src/dht/gnunet-service-dht_nse.c:59 src/dht/gnunet-service-wdht_nse.c:59
2396#: src/dht/gnunet-service-xdht_nse.c:59
2386#, fuzzy 2397#, fuzzy
2387msgid "# Network size estimates received" 2398msgid "# Network size estimates received"
2388msgstr "# các yêu cầu get (lấy) dht được nhận" 2399msgstr "# các yêu cầu get (lấy) dht được nhận"
@@ -2420,6 +2431,11 @@ msgstr ""
2420msgid "# DHT requests combined" 2431msgid "# DHT requests combined"
2421msgstr "# các yêu cầu get (lấy) dht được nhận" 2432msgstr "# các yêu cầu get (lấy) dht được nhận"
2422 2433
2434#: src/dht/gnunet-service-wdht_datacache.c:82
2435#, fuzzy
2436msgid "PUT request received, but have no datacache!\n"
2437msgstr "# các byte kiểu %d được nhận"
2438
2423#: src/dht/gnunet-service-xdht_neighbours.c:1832 2439#: src/dht/gnunet-service-xdht_neighbours.c:1832
2424#, c-format 2440#, c-format
2425msgid "" 2441msgid ""
@@ -2483,15 +2499,15 @@ msgstr ""
2483#: src/dht/gnunet-service-xdht_neighbours.c:3700 2499#: src/dht/gnunet-service-xdht_neighbours.c:3700
2484#: src/dht/gnunet-service-xdht_neighbours.c:3938 2500#: src/dht/gnunet-service-xdht_neighbours.c:3938
2485#: src/dht/gnunet-service-xdht_neighbours.c:4090 2501#: src/dht/gnunet-service-xdht_neighbours.c:4090
2486#: src/dht/gnunet-service-xdht_neighbours.c:4240 2502#: src/dht/gnunet-service-xdht_neighbours.c:4242
2487#: src/dht/gnunet-service-xdht_neighbours.c:4421 2503#: src/dht/gnunet-service-xdht_neighbours.c:4423
2488#: src/dht/gnunet-service-xdht_neighbours.c:4934 2504#: src/dht/gnunet-service-xdht_neighbours.c:4936
2489#: src/dht/gnunet-service-xdht_neighbours.c:5327 2505#: src/dht/gnunet-service-xdht_neighbours.c:5329
2490#: src/dht/gnunet-service-xdht_neighbours.c:5420 2506#: src/dht/gnunet-service-xdht_neighbours.c:5422
2491#: src/dht/gnunet-service-xdht_neighbours.c:5510 2507#: src/dht/gnunet-service-xdht_neighbours.c:5512
2492#: src/dht/gnunet-service-xdht_neighbours.c:5614 2508#: src/dht/gnunet-service-xdht_neighbours.c:5616
2493#: src/dht/gnunet-service-xdht_neighbours.c:5758 2509#: src/dht/gnunet-service-xdht_neighbours.c:5760
2494#: src/dht/gnunet-service-xdht_neighbours.c:5847 2510#: src/dht/gnunet-service-xdht_neighbours.c:5849
2495#, fuzzy 2511#, fuzzy
2496msgid "# Bytes received from other peers" 2512msgid "# Bytes received from other peers"
2497msgstr "# các byte kiểu %d được nhận" 2513msgstr "# các byte kiểu %d được nhận"
@@ -6041,64 +6057,64 @@ msgstr "Lỗi bắt đầu thu thập.\n"
6041msgid "Failed to get fragment!\n" 6057msgid "Failed to get fragment!\n"
6042msgstr "Lỗi lấy thông kê về truyền tải.\n" 6058msgstr "Lỗi lấy thông kê về truyền tải.\n"
6043 6059
6044#: src/psycstore/gnunet-service-psycstore.c:402 6060#: src/psycstore/gnunet-service-psycstore.c:417
6045#, fuzzy 6061#, fuzzy
6046msgid "Failed to get message!\n" 6062msgid "Failed to get message!\n"
6047msgstr "Lỗi lấy thông kê về truyền tải.\n" 6063msgstr "Lỗi lấy thông kê về truyền tải.\n"
6048 6064
6049#: src/psycstore/gnunet-service-psycstore.c:433 6065#: src/psycstore/gnunet-service-psycstore.c:448
6050#, fuzzy 6066#, fuzzy
6051msgid "Failed to get message fragment!\n" 6067msgid "Failed to get message fragment!\n"
6052msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n" 6068msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
6053 6069
6054#: src/psycstore/gnunet-service-psycstore.c:461 6070#: src/psycstore/gnunet-service-psycstore.c:476
6055#, fuzzy 6071#, fuzzy
6056msgid "Failed to get master counters!\n" 6072msgid "Failed to get master counters!\n"
6057msgstr "Lỗi lấy thông kê về truyền tải.\n" 6073msgstr "Lỗi lấy thông kê về truyền tải.\n"
6058 6074
6059#: src/psycstore/gnunet-service-psycstore.c:497 6075#: src/psycstore/gnunet-service-psycstore.c:512
6060#: src/psycstore/gnunet-service-psycstore.c:570 6076#: src/psycstore/gnunet-service-psycstore.c:585
6061msgid "Tried to set invalid state variable name!\n" 6077msgid "Tried to set invalid state variable name!\n"
6062msgstr "" 6078msgstr ""
6063 6079
6064#: src/psycstore/gnunet-service-psycstore.c:513 6080#: src/psycstore/gnunet-service-psycstore.c:528
6065#, fuzzy 6081#, fuzzy
6066msgid "Failed to begin modifying state!\n" 6082msgid "Failed to begin modifying state!\n"
6067msgstr "Lỗi bắt đầu thu thập.\n" 6083msgstr "Lỗi bắt đầu thu thập.\n"
6068 6084
6069#: src/psycstore/gnunet-service-psycstore.c:536 6085#: src/psycstore/gnunet-service-psycstore.c:551
6070#, fuzzy, c-format 6086#, fuzzy, c-format
6071msgid "Unknown operator: %c\n" 6087msgid "Unknown operator: %c\n"
6072msgstr "Không rõ thao tác « %s ».\n" 6088msgstr "Không rõ thao tác « %s ».\n"
6073 6089
6074#: src/psycstore/gnunet-service-psycstore.c:546 6090#: src/psycstore/gnunet-service-psycstore.c:561
6075#, fuzzy 6091#, fuzzy
6076msgid "Failed to end modifying state!\n" 6092msgid "Failed to end modifying state!\n"
6077msgstr "Lỗi bắt đầu thu thập.\n" 6093msgstr "Lỗi bắt đầu thu thập.\n"
6078 6094
6079#: src/psycstore/gnunet-service-psycstore.c:584 6095#: src/psycstore/gnunet-service-psycstore.c:599
6080#, fuzzy 6096#, fuzzy
6081msgid "Failed to begin synchronizing state!\n" 6097msgid "Failed to begin synchronizing state!\n"
6082msgstr "Lỗi lấy thông kê về truyền tải.\n" 6098msgstr "Lỗi lấy thông kê về truyền tải.\n"
6083 6099
6084#: src/psycstore/gnunet-service-psycstore.c:600 6100#: src/psycstore/gnunet-service-psycstore.c:615
6085#, fuzzy 6101#, fuzzy
6086msgid "Failed to end synchronizing state!\n" 6102msgid "Failed to end synchronizing state!\n"
6087msgstr "Lỗi lấy thông kê về truyền tải.\n" 6103msgstr "Lỗi lấy thông kê về truyền tải.\n"
6088 6104
6089#: src/psycstore/gnunet-service-psycstore.c:620 6105#: src/psycstore/gnunet-service-psycstore.c:635
6090#: src/psycstore/gnunet-service-psycstore.c:639 6106#: src/psycstore/gnunet-service-psycstore.c:654
6091#, fuzzy 6107#, fuzzy
6092msgid "Failed to reset state!\n" 6108msgid "Failed to reset state!\n"
6093msgstr "Lỗi lấy thông kê về truyền tải.\n" 6109msgstr "Lỗi lấy thông kê về truyền tải.\n"
6094 6110
6095#: src/psycstore/gnunet-service-psycstore.c:662 6111#: src/psycstore/gnunet-service-psycstore.c:677
6096#: src/psycstore/gnunet-service-psycstore.c:713 6112#: src/psycstore/gnunet-service-psycstore.c:728
6097msgid "Tried to get invalid state variable name!\n" 6113msgid "Tried to get invalid state variable name!\n"
6098msgstr "" 6114msgstr ""
6099 6115
6100#: src/psycstore/gnunet-service-psycstore.c:689 6116#: src/psycstore/gnunet-service-psycstore.c:704
6101#: src/psycstore/gnunet-service-psycstore.c:728 6117#: src/psycstore/gnunet-service-psycstore.c:743
6102#, fuzzy 6118#, fuzzy
6103msgid "Failed to get state variable!\n" 6119msgid "Failed to get state variable!\n"
6104msgstr "Lỗi lấy thông kê về truyền tải.\n" 6120msgstr "Lỗi lấy thông kê về truyền tải.\n"
@@ -6108,7 +6124,7 @@ msgstr "Lỗi lấy thông kê về truyền tải.\n"
6108msgid "`%s' failed at %s:%d with error: %s (%d)\n" 6124msgid "`%s' failed at %s:%d with error: %s (%d)\n"
6109msgstr "« %s » bị lỗi tại %s:%d với lỗi: %s\n" 6125msgstr "« %s » bị lỗi tại %s:%d với lỗi: %s\n"
6110 6126
6111#: src/psycstore/plugin_psycstore_sqlite.c:1932 6127#: src/psycstore/plugin_psycstore_sqlite.c:1936
6112#, fuzzy 6128#, fuzzy
6113msgid "SQLite database running\n" 6129msgid "SQLite database running\n"
6114msgstr "kho dữ liệu sqlite" 6130msgstr "kho dữ liệu sqlite"
@@ -8156,7 +8172,7 @@ msgid "Found %u addresses to report to NAT service\n"
8156msgstr "" 8172msgstr ""
8157 8173
8158#: src/transport/plugin_transport_http_server.c:2825 8174#: src/transport/plugin_transport_http_server.c:2825
8159#: src/transport/plugin_transport_udp.c:3335 8175#: src/transport/plugin_transport_udp.c:3338
8160msgid "Disabling IPv6 since it is not supported on this system!\n" 8176msgid "Disabling IPv6 since it is not supported on this system!\n"
8161msgstr "" 8177msgstr ""
8162 8178
@@ -8403,37 +8419,37 @@ msgid ""
8403"and disable IPv6 if your connection does not have a global IPv6 address\n" 8419"and disable IPv6 if your connection does not have a global IPv6 address\n"
8404msgstr "" 8420msgstr ""
8405 8421
8406#: src/transport/plugin_transport_udp.c:3411 8422#: src/transport/plugin_transport_udp.c:3414
8407#: src/transport/plugin_transport_udp.c:3510 8423#: src/transport/plugin_transport_udp.c:3513
8408#, fuzzy, c-format 8424#, fuzzy, c-format
8409msgid "Failed to bind UDP socket to %s: %s\n" 8425msgid "Failed to bind UDP socket to %s: %s\n"
8410msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n" 8426msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
8411 8427
8412#: src/transport/plugin_transport_udp.c:3429 8428#: src/transport/plugin_transport_udp.c:3432
8413msgid "Disabling IPv4 since it is not supported on this system!\n" 8429msgid "Disabling IPv4 since it is not supported on this system!\n"
8414msgstr "" 8430msgstr ""
8415 8431
8416#: src/transport/plugin_transport_udp.c:3520 8432#: src/transport/plugin_transport_udp.c:3523
8417#, fuzzy 8433#, fuzzy
8418msgid "Failed to open UDP sockets\n" 8434msgid "Failed to open UDP sockets\n"
8419msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n" 8435msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
8420 8436
8421#: src/transport/plugin_transport_udp.c:3591 8437#: src/transport/plugin_transport_udp.c:3594
8422#: src/transport/plugin_transport_udp.c:3605 8438#: src/transport/plugin_transport_udp.c:3608
8423msgid "must be in [0,65535]" 8439msgid "must be in [0,65535]"
8424msgstr "" 8440msgstr ""
8425 8441
8426#: src/transport/plugin_transport_udp.c:3637 8442#: src/transport/plugin_transport_udp.c:3640
8427#, fuzzy 8443#, fuzzy
8428msgid "must be valid IPv4 address" 8444msgid "must be valid IPv4 address"
8429msgstr "« %s » không sẵn sàng.\n" 8445msgstr "« %s » không sẵn sàng.\n"
8430 8446
8431#: src/transport/plugin_transport_udp.c:3664 8447#: src/transport/plugin_transport_udp.c:3667
8432#, fuzzy 8448#, fuzzy
8433msgid "must be valid IPv6 address" 8449msgid "must be valid IPv6 address"
8434msgstr "« %s » không sẵn sàng.\n" 8450msgstr "« %s » không sẵn sàng.\n"
8435 8451
8436#: src/transport/plugin_transport_udp.c:3730 8452#: src/transport/plugin_transport_udp.c:3733
8437#, fuzzy 8453#, fuzzy
8438msgid "Failed to create UDP network sockets\n" 8454msgid "Failed to create UDP network sockets\n"
8439msgstr "Không thể tạo miền tên.\n" 8455msgstr "Không thể tạo miền tên.\n"
@@ -8754,7 +8770,7 @@ msgstr "Lỗi thẩm tra chữ ký RSA tại %s:%d: %s\n"
8754msgid "libgcrypt has not the expected version (version %s is required).\n" 8770msgid "libgcrypt has not the expected version (version %s is required).\n"
8755msgstr "libgcrypt không có phiên bản mong đợi (yêu cầu phiên bản %s).\n" 8771msgstr "libgcrypt không có phiên bản mong đợi (yêu cầu phiên bản %s).\n"
8756 8772
8757#: src/util/crypto_rsa.c:825 8773#: src/util/crypto_rsa.c:891
8758#, c-format 8774#, c-format
8759msgid "RSA signature verification failed at %s:%d: %s\n" 8775msgid "RSA signature verification failed at %s:%d: %s\n"
8760msgstr "Lỗi thẩm tra chữ ký RSA tại %s:%d: %s\n" 8776msgstr "Lỗi thẩm tra chữ ký RSA tại %s:%d: %s\n"
@@ -9561,23 +9577,27 @@ msgstr "# các byte đã nhận qua UDP"
9561msgid "Setup tunnels via VPN." 9577msgid "Setup tunnels via VPN."
9562msgstr "" 9578msgstr ""
9563 9579
9564#: src/include/gnunet_common.h:590 src/include/gnunet_common.h:597 9580#: src/include/gnunet_common.h:631 src/include/gnunet_common.h:638
9565#: src/include/gnunet_common.h:605 9581#: src/include/gnunet_common.h:646
9566#, fuzzy, c-format 9582#, fuzzy, c-format
9567msgid "Assertion failed at %s:%d.\n" 9583msgid "Assertion failed at %s:%d.\n"
9568msgstr "Lỗi nội bộ : khẳng định không thành công tại %s:%d.\n" 9584msgstr "Lỗi nội bộ : khẳng định không thành công tại %s:%d.\n"
9569 9585
9570#: src/include/gnunet_common.h:617 9586#: src/include/gnunet_common.h:658
9571#, fuzzy, c-format 9587#, fuzzy, c-format
9572msgid "External protocol violation detected at %s:%d.\n" 9588msgid "External protocol violation detected at %s:%d.\n"
9573msgstr "Lỗi nội bộ : khẳng định không thành công tại %s:%d.\n" 9589msgstr "Lỗi nội bộ : khẳng định không thành công tại %s:%d.\n"
9574 9590
9575#: src/include/gnunet_common.h:644 src/include/gnunet_common.h:653 9591#: src/include/gnunet_common.h:685 src/include/gnunet_common.h:694
9576#, c-format 9592#, c-format
9577msgid "`%s' failed on file `%s' at %s:%d with error: %s\n" 9593msgid "`%s' failed on file `%s' at %s:%d with error: %s\n"
9578msgstr "« %s » thất bại ở tập tin « %s » tại %s:%d với lỗi: %s\n" 9594msgstr "« %s » thất bại ở tập tin « %s » tại %s:%d với lỗi: %s\n"
9579 9595
9580#, fuzzy 9596#, fuzzy
9597#~ msgid "Failed to close statement %p: %d\n"
9598#~ msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
9599
9600#, fuzzy
9581#~ msgid "Failed to initialize solver!\n" 9601#~ msgid "Failed to initialize solver!\n"
9582#~ msgstr "Không thể sơ khởi SQLite: %s.\n" 9602#~ msgstr "Không thể sơ khởi SQLite: %s.\n"
9583 9603
@@ -12099,9 +12119,6 @@ msgstr "« %s » thất bại ở tập tin « %s » tại %s:%d với lỗi: %s
12099#~ msgid "Datastore full.\n" 12119#~ msgid "Datastore full.\n"
12100#~ msgstr "Kho dữ liệu đầy.\n" 12120#~ msgstr "Kho dữ liệu đầy.\n"
12101 12121
12102#~ msgid "# gap requests total received"
12103#~ msgstr "# tổng số yêu cầu lỗ hổng được nhận"
12104
12105#~ msgid "# gap total trust awarded" 12122#~ msgid "# gap total trust awarded"
12106#~ msgstr "# tổng số tin cậy lỗ hổng được cấp" 12123#~ msgstr "# tổng số tin cậy lỗ hổng được cấp"
12107 12124
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 91203f264..bdca7ad45 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -7,7 +7,7 @@ msgid ""
7msgstr "" 7msgstr ""
8"Project-Id-Version: gnunet-0.8.1\n" 8"Project-Id-Version: gnunet-0.8.1\n"
9"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n" 9"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
10"POT-Creation-Date: 2015-04-27 13:05+0200\n" 10"POT-Creation-Date: 2015-05-19 11:25+0200\n"
11"PO-Revision-Date: 2011-07-09 12:12+0800\n" 11"PO-Revision-Date: 2011-07-09 12:12+0800\n"
12"Last-Translator: Wylmer Wang <wantinghard@gmail.com>\n" 12"Last-Translator: Wylmer Wang <wantinghard@gmail.com>\n"
13"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n" 13"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -647,58 +647,58 @@ msgstr "无法获取有关用户“%s”的信息:%s\n"
647msgid "Invalid target `%s'\n" 647msgid "Invalid target `%s'\n"
648msgstr "“%s”的参数无效。\n" 648msgstr "“%s”的参数无效。\n"
649 649
650#: src/cadet/gnunet-cadet.c:626 650#: src/cadet/gnunet-cadet.c:643
651#, fuzzy, c-format 651#, fuzzy, c-format
652msgid "Invalid peer ID `%s'\n" 652msgid "Invalid peer ID `%s'\n"
653msgstr "无效条目。\n" 653msgstr "无效条目。\n"
654 654
655#: src/cadet/gnunet-cadet.c:669 655#: src/cadet/gnunet-cadet.c:686
656#, fuzzy, c-format 656#, fuzzy, c-format
657msgid "Invalid tunnel owner `%s'\n" 657msgid "Invalid tunnel owner `%s'\n"
658msgstr "IP 格式无效:“%s”\n" 658msgstr "IP 格式无效:“%s”\n"
659 659
660#: src/cadet/gnunet-cadet.c:735 660#: src/cadet/gnunet-cadet.c:752
661msgid "You must NOT give a TARGETwhen using 'request all' options\n" 661msgid "You must NOT give a TARGETwhen using 'request all' options\n"
662msgstr "" 662msgstr ""
663 663
664#: src/cadet/gnunet-cadet.c:832 664#: src/cadet/gnunet-cadet.c:849
665#, fuzzy 665#, fuzzy
666msgid "provide information about a particular connection" 666msgid "provide information about a particular connection"
667msgstr "无法获取有关用户“%s”的信息:%s\n" 667msgstr "无法获取有关用户“%s”的信息:%s\n"
668 668
669#: src/cadet/gnunet-cadet.c:835 669#: src/cadet/gnunet-cadet.c:852
670msgid "activate echo mode" 670msgid "activate echo mode"
671msgstr "" 671msgstr ""
672 672
673#: src/cadet/gnunet-cadet.c:838 673#: src/cadet/gnunet-cadet.c:855
674msgid "dump debug information to STDERR" 674msgid "dump debug information to STDERR"
675msgstr "" 675msgstr ""
676 676
677#: src/cadet/gnunet-cadet.c:844 677#: src/cadet/gnunet-cadet.c:861
678msgid "port to listen to (default; 0)" 678msgid "port to listen to (default; 0)"
679msgstr "" 679msgstr ""
680 680
681#: src/cadet/gnunet-cadet.c:847 681#: src/cadet/gnunet-cadet.c:864
682#, fuzzy 682#, fuzzy
683msgid "provide information about a patricular peer" 683msgid "provide information about a patricular peer"
684msgstr "无法获取有关用户“%s”的信息:%s\n" 684msgstr "无法获取有关用户“%s”的信息:%s\n"
685 685
686#: src/cadet/gnunet-cadet.c:850 686#: src/cadet/gnunet-cadet.c:867
687#, fuzzy 687#, fuzzy
688msgid "provide information about all peers" 688msgid "provide information about all peers"
689msgstr "无法获取有关用户“%s”的信息:%s\n" 689msgstr "无法获取有关用户“%s”的信息:%s\n"
690 690
691#: src/cadet/gnunet-cadet.c:853 691#: src/cadet/gnunet-cadet.c:870
692#, fuzzy 692#, fuzzy
693msgid "provide information about a particular tunnel" 693msgid "provide information about a particular tunnel"
694msgstr "无法获取有关用户“%s”的信息:%s\n" 694msgstr "无法获取有关用户“%s”的信息:%s\n"
695 695
696#: src/cadet/gnunet-cadet.c:856 696#: src/cadet/gnunet-cadet.c:873
697#, fuzzy 697#, fuzzy
698msgid "provide information about all tunnels" 698msgid "provide information about all tunnels"
699msgstr "无法获取有关用户“%s”的信息:%s\n" 699msgstr "无法获取有关用户“%s”的信息:%s\n"
700 700
701#: src/cadet/gnunet-service-cadet_peer.c:507 701#: src/cadet/gnunet-service-cadet_peer.c:514
702msgid "Wrong CORE service\n" 702msgid "Wrong CORE service\n"
703msgstr "" 703msgstr ""
704 704
@@ -1460,51 +1460,48 @@ msgstr ""
1460msgid "# updates to my type map" 1460msgid "# updates to my type map"
1461msgstr "" 1461msgstr ""
1462 1462
1463#: src/datacache/datacache.c:115 src/datacache/datacache.c:266 1463#: src/datacache/datacache.c:119 src/datacache/datacache.c:294
1464#: src/datastore/gnunet-service-datastore.c:841 1464#: src/datastore/gnunet-service-datastore.c:841
1465msgid "# bytes stored" 1465msgid "# bytes stored"
1466msgstr "" 1466msgstr ""
1467 1467
1468#: src/datacache/datacache.c:117 src/datacache/datacache.c:268 1468#: src/datacache/datacache.c:123 src/datacache/datacache.c:298
1469msgid "# items stored" 1469msgid "# items stored"
1470msgstr "" 1470msgstr ""
1471 1471
1472#: src/datacache/datacache.c:143 src/datacache/datacache.c:150 1472#: src/datacache/datacache.c:202
1473#: src/datastore/gnunet-service-datastore.c:1598
1474#: src/datastore/gnunet-service-datastore.c:1609
1475#, c-format
1476msgid "No `%s' specified for `%s' in configuration!\n"
1477msgstr ""
1478
1479#: src/datacache/datacache.c:184
1480#, c-format 1473#, c-format
1481msgid "Loading `%s' datacache plugin\n" 1474msgid "Loading `%s' datacache plugin\n"
1482msgstr "" 1475msgstr ""
1483 1476
1484#: src/datacache/datacache.c:192 1477#: src/datacache/datacache.c:213
1485#, c-format 1478#, c-format
1486msgid "Failed to load datacache plugin for `%s'\n" 1479msgid "Failed to load datacache plugin for `%s'\n"
1487msgstr "" 1480msgstr ""
1488 1481
1489#: src/datacache/datacache.c:295 1482#: src/datacache/datacache.c:329
1490msgid "# requests received" 1483msgid "# requests received"
1491msgstr "" 1484msgstr ""
1492 1485
1493#: src/datacache/datacache.c:304 1486#: src/datacache/datacache.c:339
1494msgid "# requests filtered by bloom filter" 1487msgid "# requests filtered by bloom filter"
1495msgstr "" 1488msgstr ""
1496 1489
1497#: src/datacache/plugin_datacache_heap.c:406 1490#: src/datacache/datacache.c:367
1491msgid "# requests for random value received"
1492msgstr ""
1493
1494#: src/datacache/datacache.c:399
1495msgid "# proximity search requests received"
1496msgstr ""
1497
1498#: src/datacache/plugin_datacache_heap.c:466
1498#, fuzzy 1499#, fuzzy
1499msgid "Heap datacache running\n" 1500msgid "Heap datacache running\n"
1500msgstr "sqlite 数据仓库" 1501msgstr "sqlite 数据仓库"
1501 1502
1502#: src/datacache/plugin_datacache_postgres.c:391 1503#: src/datacache/plugin_datacache_sqlite.c:77
1503msgid "Postgres datacache running\n" 1504#: src/datacache/plugin_datacache_sqlite.c:86
1504msgstr ""
1505
1506#: src/datacache/plugin_datacache_sqlite.c:69
1507#: src/datacache/plugin_datacache_sqlite.c:72
1508#: src/datastore/plugin_datastore_mysql.c:818 1505#: src/datastore/plugin_datastore_mysql.c:818
1509#: src/datastore/plugin_datastore_mysql.c:834 1506#: src/datastore/plugin_datastore_mysql.c:834
1510#: src/datastore/plugin_datastore_sqlite.c:57 src/mysql/mysql.c:41 1507#: src/datastore/plugin_datastore_sqlite.c:57 src/mysql/mysql.c:41
@@ -1519,32 +1516,19 @@ msgstr ""
1519#: src/testbed/gnunet-daemon-latency-logger.c:52 1516#: src/testbed/gnunet-daemon-latency-logger.c:52
1520#: src/testbed/gnunet-daemon-testbed-underlay.c:55 1517#: src/testbed/gnunet-daemon-testbed-underlay.c:55
1521#: src/testbed/testbed_api_hosts.c:69 src/util/crypto_ecc.c:51 1518#: src/testbed/testbed_api_hosts.c:69 src/util/crypto_ecc.c:51
1522#: src/util/crypto_mpi.c:39 src/include/gnunet_common.h:626 1519#: src/util/crypto_mpi.c:39 src/include/gnunet_common.h:667
1523#: src/include/gnunet_common.h:635 src/scalarproduct/scalarproduct.h:35 1520#: src/include/gnunet_common.h:676 src/scalarproduct/scalarproduct.h:35
1524#, fuzzy, c-format 1521#, fuzzy, c-format
1525msgid "`%s' failed at %s:%d with error: %s\n" 1522msgid "`%s' failed at %s:%d with error: %s\n"
1526msgstr "“%s”于 %s:%d 处失败,错误为:%s\n" 1523msgstr "“%s”于 %s:%d 处失败,错误为:%s\n"
1527 1524
1528#: src/datacache/plugin_datacache_sqlite.c:449 1525#: src/datacache/plugin_datacache_sqlite.c:749
1529msgid "Sqlite datacache running\n"
1530msgstr ""
1531
1532#: src/datacache/plugin_datacache_sqlite.c:483
1533#: src/datastore/plugin_datastore_sqlite.c:401 1526#: src/datastore/plugin_datastore_sqlite.c:401
1534#: src/namecache/plugin_namecache_sqlite.c:292 1527#: src/namecache/plugin_namecache_sqlite.c:292
1535#: src/namestore/plugin_namestore_sqlite.c:324 1528#: src/namestore/plugin_namestore_sqlite.c:324
1536msgid "Tried to close sqlite without finalizing all prepared statements.\n" 1529msgid "Tried to close sqlite without finalizing all prepared statements.\n"
1537msgstr "" 1530msgstr ""
1538 1531
1539#: src/datacache/plugin_datacache_sqlite.c:490
1540#, fuzzy, c-format
1541msgid "Failed to close statement %p: %d\n"
1542msgstr "解析配置文件“%s”失败\n"
1543
1544#: src/datacache/plugin_datacache_template.c:125
1545msgid "Template datacache running\n"
1546msgstr ""
1547
1548#: src/datastore/datastore_api.c:310 1532#: src/datastore/datastore_api.c:310
1549msgid "Failed to transmit request to drop database.\n" 1533msgid "Failed to transmit request to drop database.\n"
1550msgstr "" 1534msgstr ""
@@ -1778,6 +1762,12 @@ msgstr ""
1778msgid "Plugin does not support get_keys function. Please fix!\n" 1762msgid "Plugin does not support get_keys function. Please fix!\n"
1779msgstr "" 1763msgstr ""
1780 1764
1765#: src/datastore/gnunet-service-datastore.c:1598
1766#: src/datastore/gnunet-service-datastore.c:1609
1767#, c-format
1768msgid "No `%s' specified for `%s' in configuration!\n"
1769msgstr ""
1770
1781#: src/datastore/gnunet-service-datastore.c:1603 1771#: src/datastore/gnunet-service-datastore.c:1603
1782#, c-format 1772#, c-format
1783msgid "# bytes used in file-sharing datastore `%s'" 1773msgid "# bytes used in file-sharing datastore `%s'"
@@ -2054,108 +2044,126 @@ msgstr ""
2054msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY." 2044msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY."
2055msgstr "" 2045msgstr ""
2056 2046
2057#: src/dht/gnunet-service-dht.c:172 src/dht/gnunet-service-xdht.c:193 2047#: src/dht/gnunet-service-dht.c:172
2058#, fuzzy 2048#, fuzzy
2059msgid "Failed to connect to transport service!\n" 2049msgid "Failed to connect to transport service!\n"
2060msgstr "初始化“%s”服务失败。\n" 2050msgstr "初始化“%s”服务失败。\n"
2061 2051
2062#: src/dht/gnunet-service-dht_clients.c:417 2052#: src/dht/gnunet-service-dht_clients.c:417
2053#: src/dht/gnunet-service-wdht_clients.c:852
2063#: src/dht/gnunet-service-xdht_clients.c:849 2054#: src/dht/gnunet-service-xdht_clients.c:849
2064msgid "# GET requests from clients injected" 2055msgid "# GET requests from clients injected"
2065msgstr "" 2056msgstr ""
2066 2057
2067#: src/dht/gnunet-service-dht_clients.c:513 2058#: src/dht/gnunet-service-dht_clients.c:513
2059#: src/dht/gnunet-service-wdht_clients.c:937
2068#: src/dht/gnunet-service-xdht_clients.c:933 2060#: src/dht/gnunet-service-xdht_clients.c:933
2069msgid "# PUT requests received from clients" 2061msgid "# PUT requests received from clients"
2070msgstr "" 2062msgstr ""
2071 2063
2072#: src/dht/gnunet-service-dht_clients.c:597 2064#: src/dht/gnunet-service-dht_clients.c:597
2065#: src/dht/gnunet-service-wdht_clients.c:1003
2073#: src/dht/gnunet-service-xdht_clients.c:998 2066#: src/dht/gnunet-service-xdht_clients.c:998
2074msgid "# GET requests received from clients" 2067msgid "# GET requests received from clients"
2075msgstr "" 2068msgstr ""
2076 2069
2077#: src/dht/gnunet-service-dht_clients.c:798 2070#: src/dht/gnunet-service-dht_clients.c:798
2071#: src/dht/gnunet-service-wdht_clients.c:1212
2078#: src/dht/gnunet-service-xdht_clients.c:1200 2072#: src/dht/gnunet-service-xdht_clients.c:1200
2079msgid "# GET STOP requests received from clients" 2073msgid "# GET STOP requests received from clients"
2080msgstr "" 2074msgstr ""
2081 2075
2082#: src/dht/gnunet-service-dht_clients.c:1040 2076#: src/dht/gnunet-service-dht_clients.c:1040
2077#: src/dht/gnunet-service-wdht_clients.c:505
2083#: src/dht/gnunet-service-xdht_clients.c:503 2078#: src/dht/gnunet-service-xdht_clients.c:503
2084msgid "# Key match, type mismatches in REPLY to CLIENT" 2079msgid "# Key match, type mismatches in REPLY to CLIENT"
2085msgstr "" 2080msgstr ""
2086 2081
2087#: src/dht/gnunet-service-dht_clients.c:1053 2082#: src/dht/gnunet-service-dht_clients.c:1053
2083#: src/dht/gnunet-service-wdht_clients.c:519
2088#: src/dht/gnunet-service-xdht_clients.c:517 2084#: src/dht/gnunet-service-xdht_clients.c:517
2089msgid "# Duplicate REPLIES to CLIENT request dropped" 2085msgid "# Duplicate REPLIES to CLIENT request dropped"
2090msgstr "" 2086msgstr ""
2091 2087
2092#: src/dht/gnunet-service-dht_clients.c:1098 2088#: src/dht/gnunet-service-dht_clients.c:1098
2089#: src/dht/gnunet-service-wdht_clients.c:561
2093#: src/dht/gnunet-service-xdht_clients.c:559 2090#: src/dht/gnunet-service-xdht_clients.c:559
2094#, c-format 2091#, c-format
2095msgid "Unsupported block type (%u) in request!\n" 2092msgid "Unsupported block type (%u) in request!\n"
2096msgstr "" 2093msgstr ""
2097 2094
2098#: src/dht/gnunet-service-dht_clients.c:1121 2095#: src/dht/gnunet-service-dht_clients.c:1121
2096#: src/dht/gnunet-service-wdht_clients.c:584
2099#: src/dht/gnunet-service-xdht_clients.c:582 2097#: src/dht/gnunet-service-xdht_clients.c:582
2100msgid "# RESULTS queued for clients" 2098msgid "# RESULTS queued for clients"
2101msgstr "" 2099msgstr ""
2102 2100
2103#: src/dht/gnunet-service-dht_clients.c:1175 2101#: src/dht/gnunet-service-dht_clients.c:1175
2104#: src/dht/gnunet-service-dht_clients.c:1218 2102#: src/dht/gnunet-service-dht_clients.c:1218
2103#: src/dht/gnunet-service-wdht_clients.c:638
2104#: src/dht/gnunet-service-wdht_clients.c:681
2105#: src/dht/gnunet-service-xdht_clients.c:636 2105#: src/dht/gnunet-service-xdht_clients.c:636
2106#: src/dht/gnunet-service-xdht_clients.c:679 2106#: src/dht/gnunet-service-xdht_clients.c:679
2107msgid "# REPLIES ignored for CLIENTS (no match)" 2107msgid "# REPLIES ignored for CLIENTS (no match)"
2108msgstr "" 2108msgstr ""
2109 2109
2110#: src/dht/gnunet-service-dht_clients.c:1185 2110#: src/dht/gnunet-service-dht_clients.c:1185
2111#: src/dht/gnunet-service-wdht_clients.c:648
2111#: src/dht/gnunet-service-xdht_clients.c:646 2112#: src/dht/gnunet-service-xdht_clients.c:646
2112msgid "Could not pass reply to client, message too big!\n" 2113msgid "Could not pass reply to client, message too big!\n"
2113msgstr "" 2114msgstr ""
2114 2115
2115#: src/dht/gnunet-service-dht_datacache.c:69 2116#: src/dht/gnunet-service-dht_datacache.c:68
2116#: src/dht/gnunet-service-xdht_datacache.c:71
2117#, c-format 2117#, c-format
2118msgid "%s request received, but have no datacache!\n" 2118msgid "%s request received, but have no datacache!\n"
2119msgstr "" 2119msgstr ""
2120 2120
2121#: src/dht/gnunet-service-dht_datacache.c:79 2121#: src/dht/gnunet-service-dht_datacache.c:78
2122#: src/dht/gnunet-service-xdht_datacache.c:82 2122#: src/dht/gnunet-service-wdht_datacache.c:107
2123#: src/dht/gnunet-service-xdht_datacache.c:91
2123msgid "# ITEMS stored in datacache" 2124msgid "# ITEMS stored in datacache"
2124msgstr "" 2125msgstr ""
2125 2126
2126#: src/dht/gnunet-service-dht_datacache.c:176 2127#: src/dht/gnunet-service-dht_datacache.c:184
2127#: src/dht/gnunet-service-xdht_datacache.c:230 2128#: src/dht/gnunet-service-wdht_datacache.c:216
2129#: src/dht/gnunet-service-xdht_datacache.c:238
2128msgid "# Good RESULTS found in datacache" 2130msgid "# Good RESULTS found in datacache"
2129msgstr "" 2131msgstr ""
2130 2132
2131#: src/dht/gnunet-service-dht_datacache.c:193 2133#: src/dht/gnunet-service-dht_datacache.c:201
2132#: src/dht/gnunet-service-xdht_datacache.c:253 2134#: src/dht/gnunet-service-wdht_datacache.c:231
2135#: src/dht/gnunet-service-xdht_datacache.c:267
2133msgid "# Duplicate RESULTS found in datacache" 2136msgid "# Duplicate RESULTS found in datacache"
2134msgstr "" 2137msgstr ""
2135 2138
2136#: src/dht/gnunet-service-dht_datacache.c:199 2139#: src/dht/gnunet-service-dht_datacache.c:207
2137#: src/dht/gnunet-service-xdht_datacache.c:259 2140#: src/dht/gnunet-service-wdht_datacache.c:237
2141#: src/dht/gnunet-service-xdht_datacache.c:273
2138msgid "# Invalid RESULTS found in datacache" 2142msgid "# Invalid RESULTS found in datacache"
2139msgstr "" 2143msgstr ""
2140 2144
2141#: src/dht/gnunet-service-dht_datacache.c:205 2145#: src/dht/gnunet-service-dht_datacache.c:213
2142#: src/dht/gnunet-service-xdht_datacache.c:265 2146#: src/dht/gnunet-service-wdht_datacache.c:243
2147#: src/dht/gnunet-service-xdht_datacache.c:279
2143msgid "# Irrelevant RESULTS found in datacache" 2148msgid "# Irrelevant RESULTS found in datacache"
2144msgstr "" 2149msgstr ""
2145 2150
2146#: src/dht/gnunet-service-dht_datacache.c:217 2151#: src/dht/gnunet-service-dht_datacache.c:225
2147#: src/dht/gnunet-service-xdht_datacache.c:277 2152#: src/dht/gnunet-service-wdht_datacache.c:255
2153#: src/dht/gnunet-service-xdht_datacache.c:291
2148msgid "# Unsupported RESULTS found in datacache" 2154msgid "# Unsupported RESULTS found in datacache"
2149msgstr "" 2155msgstr ""
2150 2156
2151#: src/dht/gnunet-service-dht_datacache.c:221 2157#: src/dht/gnunet-service-dht_datacache.c:229
2152#: src/dht/gnunet-service-xdht_datacache.c:280 2158#: src/dht/gnunet-service-wdht_datacache.c:258
2159#: src/dht/gnunet-service-xdht_datacache.c:294
2153#, c-format 2160#, c-format
2154msgid "Unsupported block type (%u) in local response!\n" 2161msgid "Unsupported block type (%u) in local response!\n"
2155msgstr "" 2162msgstr ""
2156 2163
2157#: src/dht/gnunet-service-dht_datacache.c:254 2164#: src/dht/gnunet-service-dht_datacache.c:262
2158#: src/dht/gnunet-service-xdht_datacache.c:318 2165#: src/dht/gnunet-service-wdht_datacache.c:295
2166#: src/dht/gnunet-service-xdht_datacache.c:334
2159msgid "# GET requests given to datacache" 2167msgid "# GET requests given to datacache"
2160msgstr "" 2168msgstr ""
2161 2169
@@ -2173,7 +2181,7 @@ msgid "# FIND PEER messages initiated"
2173msgstr "" 2181msgstr ""
2174 2182
2175#: src/dht/gnunet-service-dht_neighbours.c:763 2183#: src/dht/gnunet-service-dht_neighbours.c:763
2176#: src/dht/gnunet-service-xdht_neighbours.c:6060 2184#: src/dht/gnunet-service-xdht_neighbours.c:6062
2177msgid "# Queued messages discarded (peer disconnected)" 2185msgid "# Queued messages discarded (peer disconnected)"
2178msgstr "" 2186msgstr ""
2179 2187
@@ -2280,7 +2288,8 @@ msgstr ""
2280msgid "# P2P RESULT bytes received" 2288msgid "# P2P RESULT bytes received"
2281msgstr "" 2289msgstr ""
2282 2290
2283#: src/dht/gnunet-service-dht_nse.c:59 src/dht/gnunet-service-xdht_nse.c:59 2291#: src/dht/gnunet-service-dht_nse.c:59 src/dht/gnunet-service-wdht_nse.c:59
2292#: src/dht/gnunet-service-xdht_nse.c:59
2284msgid "# Network size estimates received" 2293msgid "# Network size estimates received"
2285msgstr "" 2294msgstr ""
2286 2295
@@ -2316,6 +2325,10 @@ msgstr ""
2316msgid "# DHT requests combined" 2325msgid "# DHT requests combined"
2317msgstr "" 2326msgstr ""
2318 2327
2328#: src/dht/gnunet-service-wdht_datacache.c:82
2329msgid "PUT request received, but have no datacache!\n"
2330msgstr ""
2331
2319#: src/dht/gnunet-service-xdht_neighbours.c:1832 2332#: src/dht/gnunet-service-xdht_neighbours.c:1832
2320#, c-format 2333#, c-format
2321msgid "" 2334msgid ""
@@ -2379,15 +2392,15 @@ msgstr ""
2379#: src/dht/gnunet-service-xdht_neighbours.c:3700 2392#: src/dht/gnunet-service-xdht_neighbours.c:3700
2380#: src/dht/gnunet-service-xdht_neighbours.c:3938 2393#: src/dht/gnunet-service-xdht_neighbours.c:3938
2381#: src/dht/gnunet-service-xdht_neighbours.c:4090 2394#: src/dht/gnunet-service-xdht_neighbours.c:4090
2382#: src/dht/gnunet-service-xdht_neighbours.c:4240 2395#: src/dht/gnunet-service-xdht_neighbours.c:4242
2383#: src/dht/gnunet-service-xdht_neighbours.c:4421 2396#: src/dht/gnunet-service-xdht_neighbours.c:4423
2384#: src/dht/gnunet-service-xdht_neighbours.c:4934 2397#: src/dht/gnunet-service-xdht_neighbours.c:4936
2385#: src/dht/gnunet-service-xdht_neighbours.c:5327 2398#: src/dht/gnunet-service-xdht_neighbours.c:5329
2386#: src/dht/gnunet-service-xdht_neighbours.c:5420 2399#: src/dht/gnunet-service-xdht_neighbours.c:5422
2387#: src/dht/gnunet-service-xdht_neighbours.c:5510 2400#: src/dht/gnunet-service-xdht_neighbours.c:5512
2388#: src/dht/gnunet-service-xdht_neighbours.c:5614 2401#: src/dht/gnunet-service-xdht_neighbours.c:5616
2389#: src/dht/gnunet-service-xdht_neighbours.c:5758 2402#: src/dht/gnunet-service-xdht_neighbours.c:5760
2390#: src/dht/gnunet-service-xdht_neighbours.c:5847 2403#: src/dht/gnunet-service-xdht_neighbours.c:5849
2391msgid "# Bytes received from other peers" 2404msgid "# Bytes received from other peers"
2392msgstr "" 2405msgstr ""
2393 2406
@@ -5803,64 +5816,64 @@ msgstr "运行 %s失败:%s %d\n"
5803msgid "Failed to get fragment!\n" 5816msgid "Failed to get fragment!\n"
5804msgstr "发送消息失败。\n" 5817msgstr "发送消息失败。\n"
5805 5818
5806#: src/psycstore/gnunet-service-psycstore.c:402 5819#: src/psycstore/gnunet-service-psycstore.c:417
5807#, fuzzy 5820#, fuzzy
5808msgid "Failed to get message!\n" 5821msgid "Failed to get message!\n"
5809msgstr "发送消息失败。\n" 5822msgstr "发送消息失败。\n"
5810 5823
5811#: src/psycstore/gnunet-service-psycstore.c:433 5824#: src/psycstore/gnunet-service-psycstore.c:448
5812#, fuzzy 5825#, fuzzy
5813msgid "Failed to get message fragment!\n" 5826msgid "Failed to get message fragment!\n"
5814msgstr "打开日志文件“%s”失败:%s\n" 5827msgstr "打开日志文件“%s”失败:%s\n"
5815 5828
5816#: src/psycstore/gnunet-service-psycstore.c:461 5829#: src/psycstore/gnunet-service-psycstore.c:476
5817#, fuzzy 5830#, fuzzy
5818msgid "Failed to get master counters!\n" 5831msgid "Failed to get master counters!\n"
5819msgstr "发送消息失败。\n" 5832msgstr "发送消息失败。\n"
5820 5833
5821#: src/psycstore/gnunet-service-psycstore.c:497 5834#: src/psycstore/gnunet-service-psycstore.c:512
5822#: src/psycstore/gnunet-service-psycstore.c:570 5835#: src/psycstore/gnunet-service-psycstore.c:585
5823msgid "Tried to set invalid state variable name!\n" 5836msgid "Tried to set invalid state variable name!\n"
5824msgstr "" 5837msgstr ""
5825 5838
5826#: src/psycstore/gnunet-service-psycstore.c:513 5839#: src/psycstore/gnunet-service-psycstore.c:528
5827#, fuzzy 5840#, fuzzy
5828msgid "Failed to begin modifying state!\n" 5841msgid "Failed to begin modifying state!\n"
5829msgstr "运行 %s失败:%s %d\n" 5842msgstr "运行 %s失败:%s %d\n"
5830 5843
5831#: src/psycstore/gnunet-service-psycstore.c:536 5844#: src/psycstore/gnunet-service-psycstore.c:551
5832#, fuzzy, c-format 5845#, fuzzy, c-format
5833msgid "Unknown operator: %c\n" 5846msgid "Unknown operator: %c\n"
5834msgstr "未知错误" 5847msgstr "未知错误"
5835 5848
5836#: src/psycstore/gnunet-service-psycstore.c:546 5849#: src/psycstore/gnunet-service-psycstore.c:561
5837#, fuzzy 5850#, fuzzy
5838msgid "Failed to end modifying state!\n" 5851msgid "Failed to end modifying state!\n"
5839msgstr "运行 %s失败:%s %d\n" 5852msgstr "运行 %s失败:%s %d\n"
5840 5853
5841#: src/psycstore/gnunet-service-psycstore.c:584 5854#: src/psycstore/gnunet-service-psycstore.c:599
5842#, fuzzy 5855#, fuzzy
5843msgid "Failed to begin synchronizing state!\n" 5856msgid "Failed to begin synchronizing state!\n"
5844msgstr "发送消息失败。\n" 5857msgstr "发送消息失败。\n"
5845 5858
5846#: src/psycstore/gnunet-service-psycstore.c:600 5859#: src/psycstore/gnunet-service-psycstore.c:615
5847#, fuzzy 5860#, fuzzy
5848msgid "Failed to end synchronizing state!\n" 5861msgid "Failed to end synchronizing state!\n"
5849msgstr "发送消息失败。\n" 5862msgstr "发送消息失败。\n"
5850 5863
5851#: src/psycstore/gnunet-service-psycstore.c:620 5864#: src/psycstore/gnunet-service-psycstore.c:635
5852#: src/psycstore/gnunet-service-psycstore.c:639 5865#: src/psycstore/gnunet-service-psycstore.c:654
5853#, fuzzy 5866#, fuzzy
5854msgid "Failed to reset state!\n" 5867msgid "Failed to reset state!\n"
5855msgstr "发送消息失败。\n" 5868msgstr "发送消息失败。\n"
5856 5869
5857#: src/psycstore/gnunet-service-psycstore.c:662 5870#: src/psycstore/gnunet-service-psycstore.c:677
5858#: src/psycstore/gnunet-service-psycstore.c:713 5871#: src/psycstore/gnunet-service-psycstore.c:728
5859msgid "Tried to get invalid state variable name!\n" 5872msgid "Tried to get invalid state variable name!\n"
5860msgstr "" 5873msgstr ""
5861 5874
5862#: src/psycstore/gnunet-service-psycstore.c:689 5875#: src/psycstore/gnunet-service-psycstore.c:704
5863#: src/psycstore/gnunet-service-psycstore.c:728 5876#: src/psycstore/gnunet-service-psycstore.c:743
5864#, fuzzy 5877#, fuzzy
5865msgid "Failed to get state variable!\n" 5878msgid "Failed to get state variable!\n"
5866msgstr "发送消息失败。\n" 5879msgstr "发送消息失败。\n"
@@ -5870,7 +5883,7 @@ msgstr "发送消息失败。\n"
5870msgid "`%s' failed at %s:%d with error: %s (%d)\n" 5883msgid "`%s' failed at %s:%d with error: %s (%d)\n"
5871msgstr "“%s”于 %s:%d 处失败,错误为:%s\n" 5884msgstr "“%s”于 %s:%d 处失败,错误为:%s\n"
5872 5885
5873#: src/psycstore/plugin_psycstore_sqlite.c:1932 5886#: src/psycstore/plugin_psycstore_sqlite.c:1936
5874#, fuzzy 5887#, fuzzy
5875msgid "SQLite database running\n" 5888msgid "SQLite database running\n"
5876msgstr "sqlite 数据仓库" 5889msgstr "sqlite 数据仓库"
@@ -7853,7 +7866,7 @@ msgid "Found %u addresses to report to NAT service\n"
7853msgstr "" 7866msgstr ""
7854 7867
7855#: src/transport/plugin_transport_http_server.c:2825 7868#: src/transport/plugin_transport_http_server.c:2825
7856#: src/transport/plugin_transport_udp.c:3335 7869#: src/transport/plugin_transport_udp.c:3338
7857msgid "Disabling IPv6 since it is not supported on this system!\n" 7870msgid "Disabling IPv6 since it is not supported on this system!\n"
7858msgstr "" 7871msgstr ""
7859 7872
@@ -8097,37 +8110,37 @@ msgid ""
8097"and disable IPv6 if your connection does not have a global IPv6 address\n" 8110"and disable IPv6 if your connection does not have a global IPv6 address\n"
8098msgstr "" 8111msgstr ""
8099 8112
8100#: src/transport/plugin_transport_udp.c:3411 8113#: src/transport/plugin_transport_udp.c:3414
8101#: src/transport/plugin_transport_udp.c:3510 8114#: src/transport/plugin_transport_udp.c:3513
8102#, fuzzy, c-format 8115#, fuzzy, c-format
8103msgid "Failed to bind UDP socket to %s: %s\n" 8116msgid "Failed to bind UDP socket to %s: %s\n"
8104msgstr "打开日志文件“%s”失败:%s\n" 8117msgstr "打开日志文件“%s”失败:%s\n"
8105 8118
8106#: src/transport/plugin_transport_udp.c:3429 8119#: src/transport/plugin_transport_udp.c:3432
8107msgid "Disabling IPv4 since it is not supported on this system!\n" 8120msgid "Disabling IPv4 since it is not supported on this system!\n"
8108msgstr "" 8121msgstr ""
8109 8122
8110#: src/transport/plugin_transport_udp.c:3520 8123#: src/transport/plugin_transport_udp.c:3523
8111#, fuzzy 8124#, fuzzy
8112msgid "Failed to open UDP sockets\n" 8125msgid "Failed to open UDP sockets\n"
8113msgstr "打开日志文件“%s”失败:%s\n" 8126msgstr "打开日志文件“%s”失败:%s\n"
8114 8127
8115#: src/transport/plugin_transport_udp.c:3591 8128#: src/transport/plugin_transport_udp.c:3594
8116#: src/transport/plugin_transport_udp.c:3605 8129#: src/transport/plugin_transport_udp.c:3608
8117msgid "must be in [0,65535]" 8130msgid "must be in [0,65535]"
8118msgstr "" 8131msgstr ""
8119 8132
8120#: src/transport/plugin_transport_udp.c:3637 8133#: src/transport/plugin_transport_udp.c:3640
8121#, fuzzy 8134#, fuzzy
8122msgid "must be valid IPv4 address" 8135msgid "must be valid IPv4 address"
8123msgstr "“%s”不可用。\n" 8136msgstr "“%s”不可用。\n"
8124 8137
8125#: src/transport/plugin_transport_udp.c:3664 8138#: src/transport/plugin_transport_udp.c:3667
8126#, fuzzy 8139#, fuzzy
8127msgid "must be valid IPv6 address" 8140msgid "must be valid IPv6 address"
8128msgstr "“%s”不可用。\n" 8141msgstr "“%s”不可用。\n"
8129 8142
8130#: src/transport/plugin_transport_udp.c:3730 8143#: src/transport/plugin_transport_udp.c:3733
8131#, fuzzy 8144#, fuzzy
8132msgid "Failed to create UDP network sockets\n" 8145msgid "Failed to create UDP network sockets\n"
8133msgstr "发送消息失败。\n" 8146msgstr "发送消息失败。\n"
@@ -8434,7 +8447,7 @@ msgstr "对驱动器“%2$s”的“%1$s”操作失败:%3$u\n"
8434msgid "libgcrypt has not the expected version (version %s is required).\n" 8447msgid "libgcrypt has not the expected version (version %s is required).\n"
8435msgstr "libgcrypt 的版本不符合预期(要求版本 %s)。\n" 8448msgstr "libgcrypt 的版本不符合预期(要求版本 %s)。\n"
8436 8449
8437#: src/util/crypto_rsa.c:825 8450#: src/util/crypto_rsa.c:891
8438#, fuzzy, c-format 8451#, fuzzy, c-format
8439msgid "RSA signature verification failed at %s:%d: %s\n" 8452msgid "RSA signature verification failed at %s:%d: %s\n"
8440msgstr "对驱动器“%2$s”的“%1$s”操作失败:%3$u\n" 8453msgstr "对驱动器“%2$s”的“%1$s”操作失败:%3$u\n"
@@ -9229,23 +9242,27 @@ msgstr ""
9229msgid "Setup tunnels via VPN." 9242msgid "Setup tunnels via VPN."
9230msgstr "" 9243msgstr ""
9231 9244
9232#: src/include/gnunet_common.h:590 src/include/gnunet_common.h:597 9245#: src/include/gnunet_common.h:631 src/include/gnunet_common.h:638
9233#: src/include/gnunet_common.h:605 9246#: src/include/gnunet_common.h:646
9234#, c-format 9247#, c-format
9235msgid "Assertion failed at %s:%d.\n" 9248msgid "Assertion failed at %s:%d.\n"
9236msgstr "" 9249msgstr ""
9237 9250
9238#: src/include/gnunet_common.h:617 9251#: src/include/gnunet_common.h:658
9239#, c-format 9252#, c-format
9240msgid "External protocol violation detected at %s:%d.\n" 9253msgid "External protocol violation detected at %s:%d.\n"
9241msgstr "" 9254msgstr ""
9242 9255
9243#: src/include/gnunet_common.h:644 src/include/gnunet_common.h:653 9256#: src/include/gnunet_common.h:685 src/include/gnunet_common.h:694
9244#, c-format 9257#, c-format
9245msgid "`%s' failed on file `%s' at %s:%d with error: %s\n" 9258msgid "`%s' failed on file `%s' at %s:%d with error: %s\n"
9246msgstr "" 9259msgstr ""
9247 9260
9248#, fuzzy 9261#, fuzzy
9262#~ msgid "Failed to close statement %p: %d\n"
9263#~ msgstr "解析配置文件“%s”失败\n"
9264
9265#, fuzzy
9249#~ msgid "Failed to initialize solver!\n" 9266#~ msgid "Failed to initialize solver!\n"
9250#~ msgstr "无法初始化 SQLite:%s。\n" 9267#~ msgstr "无法初始化 SQLite:%s。\n"
9251 9268
diff --git a/src/Makefile.am b/src/Makefile.am
index ae623bddc..8e3d02993 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -47,6 +47,12 @@ if HAVE_REST
47 REST_DIR = rest 47 REST_DIR = rest
48endif 48endif
49 49
50if TALER_ONLY
51SUBDIRS = \
52 include \
53 util
54else
55
50SUBDIRS = \ 56SUBDIRS = \
51 include $(INTLEMU_SUBDIRS) \ 57 include $(INTLEMU_SUBDIRS) \
52 util \ 58 util \
@@ -95,3 +101,5 @@ SUBDIRS = \
95 pt \ 101 pt \
96 integration-tests \ 102 integration-tests \
97 $(EXP_DIR) 103 $(EXP_DIR)
104
105endif
diff --git a/src/include/Makefile.am b/src/include/Makefile.am
index ff5252d3d..ad5773556 100644
--- a/src/include/Makefile.am
+++ b/src/include/Makefile.am
@@ -13,6 +13,11 @@ EXTRA_DIST = \
13 block_dns.h \ 13 block_dns.h \
14 block_regex.h 14 block_regex.h
15 15
16if TALER_ONLY
17gnunetinclude_HEADERS = \
18 gnunet_util_taler_wallet.h
19else
20
16gnunetinclude_HEADERS = \ 21gnunetinclude_HEADERS = \
17 platform.h plibc.h $(WINPROC) gettext.h \ 22 platform.h plibc.h $(WINPROC) gettext.h \
18 gnunet_applications.h \ 23 gnunet_applications.h \
@@ -105,3 +110,5 @@ gnunetinclude_HEADERS = \
105 gnunet_tun_lib.h \ 110 gnunet_tun_lib.h \
106 gnunet_util_lib.h \ 111 gnunet_util_lib.h \
107 gnunet_vpn_service.h 112 gnunet_vpn_service.h
113
114endif
diff --git a/src/include/gnunet_util_taler_wallet_lib.h b/src/include/gnunet_util_taler_wallet_lib.h
new file mode 100644
index 000000000..ff3b2613b
--- /dev/null
+++ b/src/include/gnunet_util_taler_wallet_lib.h
@@ -0,0 +1,56 @@
1/*
2 This file is part of GNUnet
3 Copyright (C) 2009, 2015 Christian Grothoff (and other contributing authors)
4
5 GNUnet is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published
7 by the Free Software Foundation; either version 3, or (at your
8 option) any later version.
9
10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with GNUnet; see the file COPYING. If not, write to the
17 Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA.
19 */
20
21/**
22 * @file include/gnunet_util_taler_wallet_lib.h
23 * @brief convenience header including all headers of subsystems in
24 * gnunet_util_taler_wallet library. Note that (due to the
25 * structure of the original headers), not all symbols declared
26 * by the included headers are actually included in the
27 * gnunet_util_taler_wallet library! The library excludes anything
28 * relating to the GNUnet installation location, scheduler, networking
29 * or OS-specific logic that would not apply to Apps/Browser extensions.
30 * @author Christian Grothoff
31 */
32
33#ifndef GNUNET_UTIL_TALER_WALLET_LIB_H
34#define GNUNET_UTIL_TALER_WALLET_LIB_H
35
36#ifdef __cplusplus
37extern "C"
38{
39#if 0 /* keep Emacsens' auto-indent happy */
40}
41#endif
42#endif
43
44#include "gnunet_crypto_lib.h"
45#include "gnunet_container_lib.h"
46#include "gnunet_disk_lib.h"
47#include "gnunet_strings_lib.h"
48
49#if 0 /* keep Emacsens' auto-indent happy */
50{
51#endif
52#ifdef __cplusplus
53}
54#endif
55
56#endif
diff --git a/src/util/Makefile.am b/src/util/Makefile.am
index 685632b49..a2482fc87 100644
--- a/src/util/Makefile.am
+++ b/src/util/Makefile.am
@@ -46,12 +46,6 @@ gnunet_helper_w32_console_SOURCES = \
46gnunet_helper_w32_console_LDADD = \ 46gnunet_helper_w32_console_LDADD = \
47 libgnunetutil.la 47 libgnunetutil.la
48 48
49noinst_PROGRAMS = \
50 gnunet-config-diff \
51 $(W32CAT) \
52 test_common_logging_dummy
53
54
55gnunet_config_diff_SOURCES = \ 49gnunet_config_diff_SOURCES = \
56 gnunet-config-diff.c 50 gnunet-config-diff.c
57gnunet_config_diff_LDADD = \ 51gnunet_config_diff_LDADD = \
@@ -62,8 +56,6 @@ test_common_logging_dummy_SOURCES = \
62test_common_logging_dummy_LDADD = \ 56test_common_logging_dummy_LDADD = \
63 libgnunetutil.la 57 libgnunetutil.la
64 58
65lib_LTLIBRARIES = libgnunetutil.la
66
67libgnunetutil_la_SOURCES = \ 59libgnunetutil_la_SOURCES = \
68 bandwidth.c \ 60 bandwidth.c \
69 bio.c \ 61 bio.c \
@@ -73,6 +65,7 @@ libgnunetutil_la_SOURCES = \
73 common_endian.c \ 65 common_endian.c \
74 common_logging.c \ 66 common_logging.c \
75 configuration.c \ 67 configuration.c \
68 configuration_loader.c \
76 connection.c \ 69 connection.c \
77 container_bloomfilter.c \ 70 container_bloomfilter.c \
78 container_heap.c \ 71 container_heap.c \
@@ -83,7 +76,9 @@ libgnunetutil_la_SOURCES = \
83 crypto_symmetric.c \ 76 crypto_symmetric.c \
84 crypto_crc.c \ 77 crypto_crc.c \
85 crypto_ecc.c \ 78 crypto_ecc.c \
79 crypto_ecc_setup.c \
86 crypto_hash.c \ 80 crypto_hash.c \
81 crypto_hash_file.c \
87 crypto_hkdf.c \ 82 crypto_hkdf.c \
88 crypto_kdf.c \ 83 crypto_kdf.c \
89 crypto_mpi.c \ 84 crypto_mpi.c \
@@ -91,6 +86,7 @@ libgnunetutil_la_SOURCES = \
91 crypto_random.c \ 86 crypto_random.c \
92 crypto_rsa.c \ 87 crypto_rsa.c \
93 disk.c \ 88 disk.c \
89 disk_iterator.c \
94 disk.h \ 90 disk.h \
95 getopt.c \ 91 getopt.c \
96 getopt_helpers.c \ 92 getopt_helpers.c \
@@ -127,11 +123,46 @@ libgnunetutil_la_LDFLAGS = \
127 $(GN_LIB_LDFLAGS) \ 123 $(GN_LIB_LDFLAGS) \
128 -version-info 13:0:0 124 -version-info 13:0:0
129 125
126
127libgnunetutil_taler_wallet_la_SOURCES = \
128 common_allocation.c \
129 common_endian.c \
130 common_logging.c \
131 configuration.c \
132 container_heap.c \
133 container_multihashmap.c \
134 container_multihashmap32.c \
135 crypto_symmetric.c \
136 crypto_crc.c \
137 crypto_ecc.c \
138 crypto_hash.c \
139 crypto_hkdf.c \
140 crypto_kdf.c \
141 crypto_mpi.c \
142 crypto_random.c \
143 crypto_rsa.c \
144 disk.c \
145 disk.h \
146 strings.c \
147 time.c
148
149libgnunetutil_taler_wallet_la_LIBADD = \
150 $(LIBGCRYPT_LIBS) \
151 -lunistring
152
153libgnunetutil_taler_wallet_la_LDFLAGS = \
154 $(GN_LIB_LDFLAGS) \
155 -version-info 0:0:0
156
130if HAVE_TESTING 157if HAVE_TESTING
131 GNUNET_ECC = gnunet-ecc 158 GNUNET_ECC = gnunet-ecc
132 GNUNET_SCRYPT = gnunet-scrypt 159 GNUNET_SCRYPT = gnunet-scrypt
133endif 160endif
134 161
162if TALER_ONLY
163lib_LTLIBRARIES = libgnunetutil_taler_wallet.la
164else
165lib_LTLIBRARIES = libgnunetutil.la
135 166
136libexec_PROGRAMS = \ 167libexec_PROGRAMS = \
137 gnunet-service-resolver \ 168 gnunet-service-resolver \
@@ -147,6 +178,20 @@ bin_PROGRAMS = \
147 $(GNUNET_SCRYPT) \ 178 $(GNUNET_SCRYPT) \
148 gnunet-uri 179 gnunet-uri
149 180
181noinst_PROGRAMS = \
182 gnunet-config-diff \
183 $(W32CAT) \
184 test_common_logging_dummy
185
186
187if ENABLE_TEST_RUN
188AM_TESTS_ENVIRONMENT=export GNUNET_PREFIX=$${GNUNET_PREFIX:-@libdir@};export PATH=$${GNUNET_PREFIX:-@prefix@}/bin:$$PATH;
189TESTS = $(check_PROGRAMS)
190endif
191
192endif
193
194
150do_subst = $(SED) -e 's,[@]PYTHON[@],$(PYTHON),g' 195do_subst = $(SED) -e 's,[@]PYTHON[@],$(PYTHON),g'
151 196
152gnunet-qr: gnunet-qr.py.in Makefile 197gnunet-qr: gnunet-qr.py.in Makefile
@@ -266,10 +311,6 @@ check_PROGRAMS = \
266 test_os_start_process \ 311 test_os_start_process \
267 test_common_logging_runtime_loglevels 312 test_common_logging_runtime_loglevels
268 313
269if ENABLE_TEST_RUN
270AM_TESTS_ENVIRONMENT=export GNUNET_PREFIX=$${GNUNET_PREFIX:-@libdir@};export PATH=$${GNUNET_PREFIX:-@prefix@}/bin:$$PATH;
271TESTS = $(check_PROGRAMS)
272endif
273 314
274# Declare .nc (NO-CONCURRENCY) as a test extension so that we can impart 315# Declare .nc (NO-CONCURRENCY) as a test extension so that we can impart
275# sequential execution order for them 316# sequential execution order for them
diff --git a/src/util/configuration.c b/src/util/configuration.c
index 24b38f933..f61b43d57 100644
--- a/src/util/configuration.c
+++ b/src/util/configuration.c
@@ -1694,47 +1694,4 @@ GNUNET_CONFIGURATION_load_from (struct GNUNET_CONFIGURATION_Handle *cfg,
1694} 1694}
1695 1695
1696 1696
1697/**
1698 * Load configuration (starts with defaults, then loads
1699 * system-specific configuration).
1700 *
1701 * @param cfg configuration to update
1702 * @param filename name of the configuration file, NULL to load defaults
1703 * @return #GNUNET_OK on success, #GNUNET_SYSERR on error
1704 */
1705int
1706GNUNET_CONFIGURATION_load (struct GNUNET_CONFIGURATION_Handle *cfg,
1707 const char *filename)
1708{
1709 char *baseconfig;
1710 char *ipath;
1711
1712 ipath = GNUNET_OS_installation_get_path (GNUNET_OS_IPK_DATADIR);
1713 if (NULL == ipath)
1714 return GNUNET_SYSERR;
1715 baseconfig = NULL;
1716 GNUNET_asprintf (&baseconfig, "%s%s", ipath, "config.d");
1717 GNUNET_free (ipath);
1718 if (GNUNET_SYSERR ==
1719 GNUNET_DISK_directory_scan (baseconfig, &parse_configuration_file, cfg))
1720 {
1721 GNUNET_free (baseconfig);
1722 return GNUNET_SYSERR; /* no configuration at all found */
1723 }
1724 GNUNET_free (baseconfig);
1725 if ((NULL != filename) &&
1726 (GNUNET_OK != GNUNET_CONFIGURATION_parse (cfg, filename)))
1727 {
1728 /* specified configuration not found */
1729 return GNUNET_SYSERR;
1730 }
1731 if (((GNUNET_YES !=
1732 GNUNET_CONFIGURATION_have_value (cfg, "PATHS", "DEFAULTCONFIG"))) &&
1733 (filename != NULL))
1734 GNUNET_CONFIGURATION_set_value_string (cfg, "PATHS", "DEFAULTCONFIG",
1735 filename);
1736 return GNUNET_OK;
1737}
1738
1739
1740/* end of configuration.c */ 1697/* end of configuration.c */
diff --git a/src/util/configuration_loader.c b/src/util/configuration_loader.c
new file mode 100644
index 000000000..0b7f2865d
--- /dev/null
+++ b/src/util/configuration_loader.c
@@ -0,0 +1,69 @@
1/*
2 This file is part of GNUnet.
3 Copyright (C) 2006, 2007, 2008, 2009, 2013 Christian Grothoff (and other contributing authors)
4
5 GNUnet is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published
7 by the Free Software Foundation; either version 3, or (at your
8 option) any later version.
9
10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with GNUnet; see the file COPYING. If not, write to the
17 Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA.
19*/
20
21/**
22 * @file src/util/configuration_loader.c
23 * @brief configuration loading
24 * @author Christian Grothoff
25 */
26
27/**
28 * Load configuration (starts with defaults, then loads
29 * system-specific configuration).
30 *
31 * @param cfg configuration to update
32 * @param filename name of the configuration file, NULL to load defaults
33 * @return #GNUNET_OK on success, #GNUNET_SYSERR on error
34 */
35int
36GNUNET_CONFIGURATION_load (struct GNUNET_CONFIGURATION_Handle *cfg,
37 const char *filename)
38{
39 char *baseconfig;
40 char *ipath;
41
42 ipath = GNUNET_OS_installation_get_path (GNUNET_OS_IPK_DATADIR);
43 if (NULL == ipath)
44 return GNUNET_SYSERR;
45 baseconfig = NULL;
46 GNUNET_asprintf (&baseconfig, "%s%s", ipath, "config.d");
47 GNUNET_free (ipath);
48 if (GNUNET_SYSERR ==
49 GNUNET_DISK_directory_scan (baseconfig, &parse_configuration_file, cfg))
50 {
51 GNUNET_free (baseconfig);
52 return GNUNET_SYSERR; /* no configuration at all found */
53 }
54 GNUNET_free (baseconfig);
55 if ((NULL != filename) &&
56 (GNUNET_OK != GNUNET_CONFIGURATION_parse (cfg, filename)))
57 {
58 /* specified configuration not found */
59 return GNUNET_SYSERR;
60 }
61 if (((GNUNET_YES !=
62 GNUNET_CONFIGURATION_have_value (cfg, "PATHS", "DEFAULTCONFIG"))) &&
63 (filename != NULL))
64 GNUNET_CONFIGURATION_set_value_string (cfg, "PATHS", "DEFAULTCONFIG",
65 filename);
66 return GNUNET_OK;
67}
68
69/* end of configuration_loader.c */
diff --git a/src/util/crypto_ecc.c b/src/util/crypto_ecc.c
index e6d6bc133..87c787185 100644
--- a/src/util/crypto_ecc.c
+++ b/src/util/crypto_ecc.c
@@ -658,407 +658,6 @@ GNUNET_CRYPTO_ecdsa_key_get_anonymous ()
658 658
659 659
660/** 660/**
661 * Wait for a short time (we're trying to lock a file or want
662 * to give another process a shot at finishing a disk write, etc.).
663 * Sleeps for 100ms (as that should be long enough for virtually all
664 * modern systems to context switch and allow another process to do
665 * some 'real' work).
666 */
667static void
668short_wait ()
669{
670 struct GNUNET_TIME_Relative timeout;
671
672 timeout = GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, 100);
673 (void) GNUNET_NETWORK_socket_select (NULL, NULL, NULL, timeout);
674}
675
676
677/**
678 * Create a new private key by reading it from a file. If the
679 * files does not exist, create a new key and write it to the
680 * file. Caller must free return value. Note that this function
681 * can not guarantee that another process might not be trying
682 * the same operation on the same file at the same time.
683 * If the contents of the file
684 * are invalid the old file is deleted and a fresh key is
685 * created.
686 *
687 * @param filename name of file to use to store the key
688 * @return new private key, NULL on error (for example,
689 * permission denied)
690 */
691struct GNUNET_CRYPTO_EddsaPrivateKey *
692GNUNET_CRYPTO_eddsa_key_create_from_file (const char *filename)
693{
694 struct GNUNET_CRYPTO_EddsaPrivateKey *priv;
695 struct GNUNET_DISK_FileHandle *fd;
696 unsigned int cnt;
697 int ec;
698 uint64_t fs;
699
700 if (GNUNET_SYSERR == GNUNET_DISK_directory_create_for_file (filename))
701 return NULL;
702 while (GNUNET_YES != GNUNET_DISK_file_test (filename))
703 {
704 fd = GNUNET_DISK_file_open (filename,
705 GNUNET_DISK_OPEN_WRITE | GNUNET_DISK_OPEN_CREATE
706 | GNUNET_DISK_OPEN_FAILIFEXISTS,
707 GNUNET_DISK_PERM_USER_READ |
708 GNUNET_DISK_PERM_USER_WRITE);
709 if (NULL == fd)
710 {
711 if (EEXIST == errno)
712 {
713 if (GNUNET_YES != GNUNET_DISK_file_test (filename))
714 {
715 /* must exist but not be accessible, fail for good! */
716 if (0 != ACCESS (filename, R_OK))
717 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_ERROR, "access", filename);
718 else
719 GNUNET_break (0); /* what is going on!? */
720 return NULL;
721 }
722 continue;
723 }
724 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_ERROR, "open", filename);
725 return NULL;
726 }
727 cnt = 0;
728 while (GNUNET_YES !=
729 GNUNET_DISK_file_lock (fd, 0,
730 sizeof (struct GNUNET_CRYPTO_EddsaPrivateKey),
731 GNUNET_YES))
732 {
733 short_wait ();
734 if (0 == ++cnt % 10)
735 {
736 ec = errno;
737 LOG (GNUNET_ERROR_TYPE_ERROR,
738 _("Could not acquire lock on file `%s': %s...\n"), filename,
739 STRERROR (ec));
740 }
741 }
742 LOG (GNUNET_ERROR_TYPE_INFO,
743 _("Creating a new private key. This may take a while.\n"));
744 priv = GNUNET_CRYPTO_eddsa_key_create ();
745 GNUNET_assert (NULL != priv);
746 GNUNET_assert (sizeof (*priv) ==
747 GNUNET_DISK_file_write (fd, priv, sizeof (*priv)));
748 GNUNET_DISK_file_sync (fd);
749 if (GNUNET_YES !=
750 GNUNET_DISK_file_unlock (fd, 0,
751 sizeof (struct GNUNET_CRYPTO_EddsaPrivateKey)))
752 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING, "fcntl", filename);
753 GNUNET_assert (GNUNET_YES == GNUNET_DISK_file_close (fd));
754 return priv;
755 }
756 /* key file exists already, read it! */
757 fd = GNUNET_DISK_file_open (filename, GNUNET_DISK_OPEN_READ,
758 GNUNET_DISK_PERM_NONE);
759 if (NULL == fd)
760 {
761 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_ERROR, "open", filename);
762 return NULL;
763 }
764 cnt = 0;
765 while (1)
766 {
767 if (GNUNET_YES !=
768 GNUNET_DISK_file_lock (fd, 0,
769 sizeof (struct GNUNET_CRYPTO_EddsaPrivateKey),
770 GNUNET_NO))
771 {
772 if (0 == ++cnt % 60)
773 {
774 ec = errno;
775 LOG (GNUNET_ERROR_TYPE_ERROR,
776 _("Could not acquire lock on file `%s': %s...\n"), filename,
777 STRERROR (ec));
778 LOG (GNUNET_ERROR_TYPE_ERROR,
779 _
780 ("This may be ok if someone is currently generating a private key.\n"));
781 }
782 short_wait ();
783 continue;
784 }
785 if (GNUNET_YES != GNUNET_DISK_file_test (filename))
786 {
787 /* eh, what!? File we opened is now gone!? */
788 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING, "stat", filename);
789 if (GNUNET_YES !=
790 GNUNET_DISK_file_unlock (fd, 0,
791 sizeof (struct GNUNET_CRYPTO_EddsaPrivateKey)))
792 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING, "fcntl", filename);
793 GNUNET_assert (GNUNET_OK == GNUNET_DISK_file_close (fd));
794
795 return NULL;
796 }
797 if (GNUNET_OK != GNUNET_DISK_file_size (filename, &fs, GNUNET_YES, GNUNET_YES))
798 fs = 0;
799 if (fs < sizeof (struct GNUNET_CRYPTO_EddsaPrivateKey))
800 {
801 /* maybe we got the read lock before the key generating
802 * process had a chance to get the write lock; give it up! */
803 if (GNUNET_YES !=
804 GNUNET_DISK_file_unlock (fd, 0,
805 sizeof (struct GNUNET_CRYPTO_EddsaPrivateKey)))
806 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING, "fcntl", filename);
807 if (0 == ++cnt % 10)
808 {
809 LOG (GNUNET_ERROR_TYPE_ERROR,
810 _("When trying to read key file `%s' I found %u bytes but I need at least %u.\n"),
811 filename, (unsigned int) fs,
812 (unsigned int) sizeof (struct GNUNET_CRYPTO_EddsaPrivateKey));
813 LOG (GNUNET_ERROR_TYPE_ERROR,
814 _("This may be ok if someone is currently generating a key.\n"));
815 }
816 short_wait (); /* wait a bit longer! */
817 continue;
818 }
819 break;
820 }
821 fs = sizeof (struct GNUNET_CRYPTO_EddsaPrivateKey);
822 priv = GNUNET_malloc (fs);
823 GNUNET_assert (fs == GNUNET_DISK_file_read (fd, priv, fs));
824 if (GNUNET_YES !=
825 GNUNET_DISK_file_unlock (fd, 0,
826 sizeof (struct GNUNET_CRYPTO_EddsaPrivateKey)))
827 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING, "fcntl", filename);
828 GNUNET_assert (GNUNET_YES == GNUNET_DISK_file_close (fd));
829 return priv;
830}
831
832
833/**
834 * Create a new private key by reading it from a file. If the
835 * files does not exist, create a new key and write it to the
836 * file. Caller must free return value. Note that this function
837 * can not guarantee that another process might not be trying
838 * the same operation on the same file at the same time.
839 * If the contents of the file
840 * are invalid the old file is deleted and a fresh key is
841 * created.
842 *
843 * @param filename name of file to use to store the key
844 * @return new private key, NULL on error (for example,
845 * permission denied)
846 */
847struct GNUNET_CRYPTO_EcdsaPrivateKey *
848GNUNET_CRYPTO_ecdsa_key_create_from_file (const char *filename)
849{
850 struct GNUNET_CRYPTO_EcdsaPrivateKey *priv;
851 struct GNUNET_DISK_FileHandle *fd;
852 unsigned int cnt;
853 int ec;
854 uint64_t fs;
855
856 if (GNUNET_SYSERR == GNUNET_DISK_directory_create_for_file (filename))
857 return NULL;
858 while (GNUNET_YES != GNUNET_DISK_file_test (filename))
859 {
860 fd = GNUNET_DISK_file_open (filename,
861 GNUNET_DISK_OPEN_WRITE | GNUNET_DISK_OPEN_CREATE
862 | GNUNET_DISK_OPEN_FAILIFEXISTS,
863 GNUNET_DISK_PERM_USER_READ |
864 GNUNET_DISK_PERM_USER_WRITE);
865 if (NULL == fd)
866 {
867 if (EEXIST == errno)
868 {
869 if (GNUNET_YES != GNUNET_DISK_file_test (filename))
870 {
871 /* must exist but not be accessible, fail for good! */
872 if (0 != ACCESS (filename, R_OK))
873 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_ERROR, "access", filename);
874 else
875 GNUNET_break (0); /* what is going on!? */
876 return NULL;
877 }
878 continue;
879 }
880 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_ERROR, "open", filename);
881 return NULL;
882 }
883 cnt = 0;
884 while (GNUNET_YES !=
885 GNUNET_DISK_file_lock (fd, 0,
886 sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey),
887 GNUNET_YES))
888 {
889 short_wait ();
890 if (0 == ++cnt % 10)
891 {
892 ec = errno;
893 LOG (GNUNET_ERROR_TYPE_ERROR,
894 _("Could not acquire lock on file `%s': %s...\n"), filename,
895 STRERROR (ec));
896 }
897 }
898 LOG (GNUNET_ERROR_TYPE_INFO,
899 _("Creating a new private key. This may take a while.\n"));
900 priv = GNUNET_CRYPTO_ecdsa_key_create ();
901 GNUNET_assert (NULL != priv);
902 GNUNET_assert (sizeof (*priv) ==
903 GNUNET_DISK_file_write (fd, priv, sizeof (*priv)));
904 GNUNET_DISK_file_sync (fd);
905 if (GNUNET_YES !=
906 GNUNET_DISK_file_unlock (fd, 0,
907 sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey)))
908 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING, "fcntl", filename);
909 GNUNET_assert (GNUNET_YES == GNUNET_DISK_file_close (fd));
910 return priv;
911 }
912 /* key file exists already, read it! */
913 fd = GNUNET_DISK_file_open (filename, GNUNET_DISK_OPEN_READ,
914 GNUNET_DISK_PERM_NONE);
915 if (NULL == fd)
916 {
917 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_ERROR, "open", filename);
918 return NULL;
919 }
920 cnt = 0;
921 while (1)
922 {
923 if (GNUNET_YES !=
924 GNUNET_DISK_file_lock (fd, 0,
925 sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey),
926 GNUNET_NO))
927 {
928 if (0 == ++cnt % 60)
929 {
930 ec = errno;
931 LOG (GNUNET_ERROR_TYPE_ERROR,
932 _("Could not acquire lock on file `%s': %s...\n"), filename,
933 STRERROR (ec));
934 LOG (GNUNET_ERROR_TYPE_ERROR,
935 _
936 ("This may be ok if someone is currently generating a private key.\n"));
937 }
938 short_wait ();
939 continue;
940 }
941 if (GNUNET_YES != GNUNET_DISK_file_test (filename))
942 {
943 /* eh, what!? File we opened is now gone!? */
944 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING, "stat", filename);
945 if (GNUNET_YES !=
946 GNUNET_DISK_file_unlock (fd, 0,
947 sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey)))
948 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING, "fcntl", filename);
949 GNUNET_assert (GNUNET_OK == GNUNET_DISK_file_close (fd));
950
951 return NULL;
952 }
953 if (GNUNET_OK != GNUNET_DISK_file_size (filename, &fs, GNUNET_YES, GNUNET_YES))
954 fs = 0;
955 if (fs < sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey))
956 {
957 /* maybe we got the read lock before the key generating
958 * process had a chance to get the write lock; give it up! */
959 if (GNUNET_YES !=
960 GNUNET_DISK_file_unlock (fd, 0,
961 sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey)))
962 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING, "fcntl", filename);
963 if (0 == ++cnt % 10)
964 {
965 LOG (GNUNET_ERROR_TYPE_ERROR,
966 _("When trying to read key file `%s' I found %u bytes but I need at least %u.\n"),
967 filename, (unsigned int) fs,
968 (unsigned int) sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey));
969 LOG (GNUNET_ERROR_TYPE_ERROR,
970 _("This may be ok if someone is currently generating a key.\n"));
971 }
972 short_wait (); /* wait a bit longer! */
973 continue;
974 }
975 break;
976 }
977 fs = sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey);
978 priv = GNUNET_malloc (fs);
979 GNUNET_assert (fs == GNUNET_DISK_file_read (fd, priv, fs));
980 if (GNUNET_YES !=
981 GNUNET_DISK_file_unlock (fd, 0,
982 sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey)))
983 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING, "fcntl", filename);
984 GNUNET_assert (GNUNET_YES == GNUNET_DISK_file_close (fd));
985 return priv;
986}
987
988
989/**
990 * Create a new private key by reading our peer's key from
991 * the file specified in the configuration.
992 *
993 * @param cfg the configuration to use
994 * @return new private key, NULL on error (for example,
995 * permission denied)
996 */
997struct GNUNET_CRYPTO_EddsaPrivateKey *
998GNUNET_CRYPTO_eddsa_key_create_from_configuration (const struct GNUNET_CONFIGURATION_Handle *cfg)
999{
1000 struct GNUNET_CRYPTO_EddsaPrivateKey *priv;
1001 char *fn;
1002
1003 if (GNUNET_OK !=
1004 GNUNET_CONFIGURATION_get_value_filename (cfg, "PEER", "PRIVATE_KEY", &fn))
1005 return NULL;
1006 priv = GNUNET_CRYPTO_eddsa_key_create_from_file (fn);
1007 GNUNET_free (fn);
1008 return priv;
1009}
1010
1011
1012/**
1013 * Setup a key file for a peer given the name of the
1014 * configuration file (!). This function is used so that
1015 * at a later point code can be certain that reading a
1016 * key is fast (for example in time-dependent testcases).
1017 *
1018 * @param cfg_name name of the configuration file to use
1019 */
1020void
1021GNUNET_CRYPTO_eddsa_setup_key (const char *cfg_name)
1022{
1023 struct GNUNET_CONFIGURATION_Handle *cfg;
1024 struct GNUNET_CRYPTO_EddsaPrivateKey *priv;
1025
1026 cfg = GNUNET_CONFIGURATION_create ();
1027 (void) GNUNET_CONFIGURATION_load (cfg, cfg_name);
1028 priv = GNUNET_CRYPTO_eddsa_key_create_from_configuration (cfg);
1029 if (NULL != priv)
1030 GNUNET_free (priv);
1031 GNUNET_CONFIGURATION_destroy (cfg);
1032}
1033
1034
1035/**
1036 * Retrieve the identity of the host's peer.
1037 *
1038 * @param cfg configuration to use
1039 * @param dst pointer to where to write the peer identity
1040 * @return #GNUNET_OK on success, #GNUNET_SYSERR if the identity
1041 * could not be retrieved
1042 */
1043int
1044GNUNET_CRYPTO_get_peer_identity (const struct GNUNET_CONFIGURATION_Handle *cfg,
1045 struct GNUNET_PeerIdentity *dst)
1046{
1047 struct GNUNET_CRYPTO_EddsaPrivateKey *priv;
1048
1049 if (NULL == (priv = GNUNET_CRYPTO_eddsa_key_create_from_configuration (cfg)))
1050 {
1051 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
1052 _("Could not load peer's private key\n"));
1053 return GNUNET_SYSERR;
1054 }
1055 GNUNET_CRYPTO_eddsa_key_get_public (priv, &dst->public_key);
1056 GNUNET_free (priv);
1057 return GNUNET_OK;
1058}
1059
1060
1061/**
1062 * Compare two Peer Identities. 661 * Compare two Peer Identities.
1063 * 662 *
1064 * @param first first peer identity 663 * @param first first peer identity
diff --git a/src/util/crypto_ecc_setup.c b/src/util/crypto_ecc_setup.c
new file mode 100644
index 000000000..32e1acee3
--- /dev/null
+++ b/src/util/crypto_ecc_setup.c
@@ -0,0 +1,431 @@
1/*
2 This file is part of GNUnet.
3 Copyright (C) 2012, 2013, 2015 Christian Grothoff (and other contributing authors)
4
5 GNUnet is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published
7 by the Free Software Foundation; either version 3, or (at your
8 option) any later version.
9
10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with GNUnet; see the file COPYING. If not, write to the
17 Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA.
19*/
20
21/**
22 * @file util/crypto_ecc_setup.c
23 * @brief helper function for easy EdDSA key setup
24 * @author Christian Grothoff
25 */
26#include "platform.h"
27#include <gcrypt.h>
28#include "gnunet_util_lib.h"
29
30
31/**
32 * Wait for a short time (we're trying to lock a file or want
33 * to give another process a shot at finishing a disk write, etc.).
34 * Sleeps for 100ms (as that should be long enough for virtually all
35 * modern systems to context switch and allow another process to do
36 * some 'real' work).
37 */
38static void
39short_wait ()
40{
41 struct GNUNET_TIME_Relative timeout;
42
43 timeout = GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, 100);
44 (void) GNUNET_NETWORK_socket_select (NULL, NULL, NULL, timeout);
45}
46
47
48/**
49 * Create a new private key by reading it from a file. If the
50 * files does not exist, create a new key and write it to the
51 * file. Caller must free return value. Note that this function
52 * can not guarantee that another process might not be trying
53 * the same operation on the same file at the same time.
54 * If the contents of the file
55 * are invalid the old file is deleted and a fresh key is
56 * created.
57 *
58 * @param filename name of file to use to store the key
59 * @return new private key, NULL on error (for example,
60 * permission denied)
61 */
62struct GNUNET_CRYPTO_EddsaPrivateKey *
63GNUNET_CRYPTO_eddsa_key_create_from_file (const char *filename)
64{
65 struct GNUNET_CRYPTO_EddsaPrivateKey *priv;
66 struct GNUNET_DISK_FileHandle *fd;
67 unsigned int cnt;
68 int ec;
69 uint64_t fs;
70
71 if (GNUNET_SYSERR == GNUNET_DISK_directory_create_for_file (filename))
72 return NULL;
73 while (GNUNET_YES != GNUNET_DISK_file_test (filename))
74 {
75 fd = GNUNET_DISK_file_open (filename,
76 GNUNET_DISK_OPEN_WRITE | GNUNET_DISK_OPEN_CREATE
77 | GNUNET_DISK_OPEN_FAILIFEXISTS,
78 GNUNET_DISK_PERM_USER_READ |
79 GNUNET_DISK_PERM_USER_WRITE);
80 if (NULL == fd)
81 {
82 if (EEXIST == errno)
83 {
84 if (GNUNET_YES != GNUNET_DISK_file_test (filename))
85 {
86 /* must exist but not be accessible, fail for good! */
87 if (0 != ACCESS (filename, R_OK))
88 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_ERROR, "access", filename);
89 else
90 GNUNET_break (0); /* what is going on!? */
91 return NULL;
92 }
93 continue;
94 }
95 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_ERROR, "open", filename);
96 return NULL;
97 }
98 cnt = 0;
99 while (GNUNET_YES !=
100 GNUNET_DISK_file_lock (fd, 0,
101 sizeof (struct GNUNET_CRYPTO_EddsaPrivateKey),
102 GNUNET_YES))
103 {
104 short_wait ();
105 if (0 == ++cnt % 10)
106 {
107 ec = errno;
108 LOG (GNUNET_ERROR_TYPE_ERROR,
109 _("Could not acquire lock on file `%s': %s...\n"), filename,
110 STRERROR (ec));
111 }
112 }
113 LOG (GNUNET_ERROR_TYPE_INFO,
114 _("Creating a new private key. This may take a while.\n"));
115 priv = GNUNET_CRYPTO_eddsa_key_create ();
116 GNUNET_assert (NULL != priv);
117 GNUNET_assert (sizeof (*priv) ==
118 GNUNET_DISK_file_write (fd, priv, sizeof (*priv)));
119 GNUNET_DISK_file_sync (fd);
120 if (GNUNET_YES !=
121 GNUNET_DISK_file_unlock (fd, 0,
122 sizeof (struct GNUNET_CRYPTO_EddsaPrivateKey)))
123 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING, "fcntl", filename);
124 GNUNET_assert (GNUNET_YES == GNUNET_DISK_file_close (fd));
125 return priv;
126 }
127 /* key file exists already, read it! */
128 fd = GNUNET_DISK_file_open (filename, GNUNET_DISK_OPEN_READ,
129 GNUNET_DISK_PERM_NONE);
130 if (NULL == fd)
131 {
132 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_ERROR, "open", filename);
133 return NULL;
134 }
135 cnt = 0;
136 while (1)
137 {
138 if (GNUNET_YES !=
139 GNUNET_DISK_file_lock (fd, 0,
140 sizeof (struct GNUNET_CRYPTO_EddsaPrivateKey),
141 GNUNET_NO))
142 {
143 if (0 == ++cnt % 60)
144 {
145 ec = errno;
146 LOG (GNUNET_ERROR_TYPE_ERROR,
147 _("Could not acquire lock on file `%s': %s...\n"), filename,
148 STRERROR (ec));
149 LOG (GNUNET_ERROR_TYPE_ERROR,
150 _
151 ("This may be ok if someone is currently generating a private key.\n"));
152 }
153 short_wait ();
154 continue;
155 }
156 if (GNUNET_YES != GNUNET_DISK_file_test (filename))
157 {
158 /* eh, what!? File we opened is now gone!? */
159 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING, "stat", filename);
160 if (GNUNET_YES !=
161 GNUNET_DISK_file_unlock (fd, 0,
162 sizeof (struct GNUNET_CRYPTO_EddsaPrivateKey)))
163 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING, "fcntl", filename);
164 GNUNET_assert (GNUNET_OK == GNUNET_DISK_file_close (fd));
165
166 return NULL;
167 }
168 if (GNUNET_OK != GNUNET_DISK_file_size (filename, &fs, GNUNET_YES, GNUNET_YES))
169 fs = 0;
170 if (fs < sizeof (struct GNUNET_CRYPTO_EddsaPrivateKey))
171 {
172 /* maybe we got the read lock before the key generating
173 * process had a chance to get the write lock; give it up! */
174 if (GNUNET_YES !=
175 GNUNET_DISK_file_unlock (fd, 0,
176 sizeof (struct GNUNET_CRYPTO_EddsaPrivateKey)))
177 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING, "fcntl", filename);
178 if (0 == ++cnt % 10)
179 {
180 LOG (GNUNET_ERROR_TYPE_ERROR,
181 _("When trying to read key file `%s' I found %u bytes but I need at least %u.\n"),
182 filename, (unsigned int) fs,
183 (unsigned int) sizeof (struct GNUNET_CRYPTO_EddsaPrivateKey));
184 LOG (GNUNET_ERROR_TYPE_ERROR,
185 _("This may be ok if someone is currently generating a key.\n"));
186 }
187 short_wait (); /* wait a bit longer! */
188 continue;
189 }
190 break;
191 }
192 fs = sizeof (struct GNUNET_CRYPTO_EddsaPrivateKey);
193 priv = GNUNET_malloc (fs);
194 GNUNET_assert (fs == GNUNET_DISK_file_read (fd, priv, fs));
195 if (GNUNET_YES !=
196 GNUNET_DISK_file_unlock (fd, 0,
197 sizeof (struct GNUNET_CRYPTO_EddsaPrivateKey)))
198 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING, "fcntl", filename);
199 GNUNET_assert (GNUNET_YES == GNUNET_DISK_file_close (fd));
200 return priv;
201}
202
203
204/**
205 * Create a new private key by reading it from a file. If the
206 * files does not exist, create a new key and write it to the
207 * file. Caller must free return value. Note that this function
208 * can not guarantee that another process might not be trying
209 * the same operation on the same file at the same time.
210 * If the contents of the file
211 * are invalid the old file is deleted and a fresh key is
212 * created.
213 *
214 * @param filename name of file to use to store the key
215 * @return new private key, NULL on error (for example,
216 * permission denied)
217 */
218struct GNUNET_CRYPTO_EcdsaPrivateKey *
219GNUNET_CRYPTO_ecdsa_key_create_from_file (const char *filename)
220{
221 struct GNUNET_CRYPTO_EcdsaPrivateKey *priv;
222 struct GNUNET_DISK_FileHandle *fd;
223 unsigned int cnt;
224 int ec;
225 uint64_t fs;
226
227 if (GNUNET_SYSERR == GNUNET_DISK_directory_create_for_file (filename))
228 return NULL;
229 while (GNUNET_YES != GNUNET_DISK_file_test (filename))
230 {
231 fd = GNUNET_DISK_file_open (filename,
232 GNUNET_DISK_OPEN_WRITE | GNUNET_DISK_OPEN_CREATE
233 | GNUNET_DISK_OPEN_FAILIFEXISTS,
234 GNUNET_DISK_PERM_USER_READ |
235 GNUNET_DISK_PERM_USER_WRITE);
236 if (NULL == fd)
237 {
238 if (EEXIST == errno)
239 {
240 if (GNUNET_YES != GNUNET_DISK_file_test (filename))
241 {
242 /* must exist but not be accessible, fail for good! */
243 if (0 != ACCESS (filename, R_OK))
244 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_ERROR, "access", filename);
245 else
246 GNUNET_break (0); /* what is going on!? */
247 return NULL;
248 }
249 continue;
250 }
251 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_ERROR, "open", filename);
252 return NULL;
253 }
254 cnt = 0;
255 while (GNUNET_YES !=
256 GNUNET_DISK_file_lock (fd, 0,
257 sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey),
258 GNUNET_YES))
259 {
260 short_wait ();
261 if (0 == ++cnt % 10)
262 {
263 ec = errno;
264 LOG (GNUNET_ERROR_TYPE_ERROR,
265 _("Could not acquire lock on file `%s': %s...\n"), filename,
266 STRERROR (ec));
267 }
268 }
269 LOG (GNUNET_ERROR_TYPE_INFO,
270 _("Creating a new private key. This may take a while.\n"));
271 priv = GNUNET_CRYPTO_ecdsa_key_create ();
272 GNUNET_assert (NULL != priv);
273 GNUNET_assert (sizeof (*priv) ==
274 GNUNET_DISK_file_write (fd, priv, sizeof (*priv)));
275 GNUNET_DISK_file_sync (fd);
276 if (GNUNET_YES !=
277 GNUNET_DISK_file_unlock (fd, 0,
278 sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey)))
279 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING, "fcntl", filename);
280 GNUNET_assert (GNUNET_YES == GNUNET_DISK_file_close (fd));
281 return priv;
282 }
283 /* key file exists already, read it! */
284 fd = GNUNET_DISK_file_open (filename, GNUNET_DISK_OPEN_READ,
285 GNUNET_DISK_PERM_NONE);
286 if (NULL == fd)
287 {
288 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_ERROR, "open", filename);
289 return NULL;
290 }
291 cnt = 0;
292 while (1)
293 {
294 if (GNUNET_YES !=
295 GNUNET_DISK_file_lock (fd, 0,
296 sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey),
297 GNUNET_NO))
298 {
299 if (0 == ++cnt % 60)
300 {
301 ec = errno;
302 LOG (GNUNET_ERROR_TYPE_ERROR,
303 _("Could not acquire lock on file `%s': %s...\n"), filename,
304 STRERROR (ec));
305 LOG (GNUNET_ERROR_TYPE_ERROR,
306 _
307 ("This may be ok if someone is currently generating a private key.\n"));
308 }
309 short_wait ();
310 continue;
311 }
312 if (GNUNET_YES != GNUNET_DISK_file_test (filename))
313 {
314 /* eh, what!? File we opened is now gone!? */
315 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING, "stat", filename);
316 if (GNUNET_YES !=
317 GNUNET_DISK_file_unlock (fd, 0,
318 sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey)))
319 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING, "fcntl", filename);
320 GNUNET_assert (GNUNET_OK == GNUNET_DISK_file_close (fd));
321
322 return NULL;
323 }
324 if (GNUNET_OK != GNUNET_DISK_file_size (filename, &fs, GNUNET_YES, GNUNET_YES))
325 fs = 0;
326 if (fs < sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey))
327 {
328 /* maybe we got the read lock before the key generating
329 * process had a chance to get the write lock; give it up! */
330 if (GNUNET_YES !=
331 GNUNET_DISK_file_unlock (fd, 0,
332 sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey)))
333 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING, "fcntl", filename);
334 if (0 == ++cnt % 10)
335 {
336 LOG (GNUNET_ERROR_TYPE_ERROR,
337 _("When trying to read key file `%s' I found %u bytes but I need at least %u.\n"),
338 filename, (unsigned int) fs,
339 (unsigned int) sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey));
340 LOG (GNUNET_ERROR_TYPE_ERROR,
341 _("This may be ok if someone is currently generating a key.\n"));
342 }
343 short_wait (); /* wait a bit longer! */
344 continue;
345 }
346 break;
347 }
348 fs = sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey);
349 priv = GNUNET_malloc (fs);
350 GNUNET_assert (fs == GNUNET_DISK_file_read (fd, priv, fs));
351 if (GNUNET_YES !=
352 GNUNET_DISK_file_unlock (fd, 0,
353 sizeof (struct GNUNET_CRYPTO_EcdsaPrivateKey)))
354 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING, "fcntl", filename);
355 GNUNET_assert (GNUNET_YES == GNUNET_DISK_file_close (fd));
356 return priv;
357}
358
359
360/**
361 * Create a new private key by reading our peer's key from
362 * the file specified in the configuration.
363 *
364 * @param cfg the configuration to use
365 * @return new private key, NULL on error (for example,
366 * permission denied)
367 */
368struct GNUNET_CRYPTO_EddsaPrivateKey *
369GNUNET_CRYPTO_eddsa_key_create_from_configuration (const struct GNUNET_CONFIGURATION_Handle *cfg)
370{
371 struct GNUNET_CRYPTO_EddsaPrivateKey *priv;
372 char *fn;
373
374 if (GNUNET_OK !=
375 GNUNET_CONFIGURATION_get_value_filename (cfg, "PEER", "PRIVATE_KEY", &fn))
376 return NULL;
377 priv = GNUNET_CRYPTO_eddsa_key_create_from_file (fn);
378 GNUNET_free (fn);
379 return priv;
380}
381
382
383/**
384 * Retrieve the identity of the host's peer.
385 *
386 * @param cfg configuration to use
387 * @param dst pointer to where to write the peer identity
388 * @return #GNUNET_OK on success, #GNUNET_SYSERR if the identity
389 * could not be retrieved
390 */
391int
392GNUNET_CRYPTO_get_peer_identity (const struct GNUNET_CONFIGURATION_Handle *cfg,
393 struct GNUNET_PeerIdentity *dst)
394{
395 struct GNUNET_CRYPTO_EddsaPrivateKey *priv;
396
397 if (NULL == (priv = GNUNET_CRYPTO_eddsa_key_create_from_configuration (cfg)))
398 {
399 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
400 _("Could not load peer's private key\n"));
401 return GNUNET_SYSERR;
402 }
403 GNUNET_CRYPTO_eddsa_key_get_public (priv, &dst->public_key);
404 GNUNET_free (priv);
405 return GNUNET_OK;
406}
407
408
409/**
410 * Setup a key file for a peer given the name of the
411 * configuration file (!). This function is used so that
412 * at a later point code can be certain that reading a
413 * key is fast (for example in time-dependent testcases).
414 *
415 * @param cfg_name name of the configuration file to use
416 */
417void
418GNUNET_CRYPTO_eddsa_setup_key (const char *cfg_name)
419{
420 struct GNUNET_CONFIGURATION_Handle *cfg;
421 struct GNUNET_CRYPTO_EddsaPrivateKey *priv;
422
423 cfg = GNUNET_CONFIGURATION_create ();
424 (void) GNUNET_CONFIGURATION_load (cfg, cfg_name);
425 priv = GNUNET_CRYPTO_eddsa_key_create_from_configuration (cfg);
426 if (NULL != priv)
427 GNUNET_free (priv);
428 GNUNET_CONFIGURATION_destroy (cfg);
429}
430
431/* end of crypto_ecc_setup.c */
diff --git a/src/util/crypto_hash.c b/src/util/crypto_hash.c
index 64f55e14c..9456e343b 100644
--- a/src/util/crypto_hash.c
+++ b/src/util/crypto_hash.c
@@ -21,7 +21,7 @@
21 21
22/** 22/**
23 * @file util/crypto_hash.c 23 * @file util/crypto_hash.c
24 * @brief SHA-512 GNUNET_CRYPTO_hash related functions 24 * @brief SHA-512 #GNUNET_CRYPTO_hash() related functions
25 * @author Christian Grothoff 25 * @author Christian Grothoff
26 */ 26 */
27 27
@@ -49,193 +49,6 @@ GNUNET_CRYPTO_hash (const void *block,
49} 49}
50 50
51 51
52/**
53 * Context used when hashing a file.
54 */
55struct GNUNET_CRYPTO_FileHashContext
56{
57
58 /**
59 * Function to call upon completion.
60 */
61 GNUNET_CRYPTO_HashCompletedCallback callback;
62
63 /**
64 * Closure for callback.
65 */
66 void *callback_cls;
67
68 /**
69 * IO buffer.
70 */
71 unsigned char *buffer;
72
73 /**
74 * Name of the file we are hashing.
75 */
76 char *filename;
77
78 /**
79 * File descriptor.
80 */
81 struct GNUNET_DISK_FileHandle *fh;
82
83 /**
84 * Cummulated hash.
85 */
86 gcry_md_hd_t md;
87
88 /**
89 * Size of the file.
90 */
91 uint64_t fsize;
92
93 /**
94 * Current offset.
95 */
96 uint64_t offset;
97
98 /**
99 * Current task for hashing.
100 */
101 struct GNUNET_SCHEDULER_Task * task;
102
103 /**
104 * Priority we use.
105 */
106 enum GNUNET_SCHEDULER_Priority priority;
107
108 /**
109 * Blocksize.
110 */
111 size_t bsize;
112
113};
114
115
116/**
117 * Report result of hash computation to callback
118 * and free associated resources.
119 */
120static void
121file_hash_finish (struct GNUNET_CRYPTO_FileHashContext *fhc,
122 const struct GNUNET_HashCode * res)
123{
124 fhc->callback (fhc->callback_cls, res);
125 GNUNET_free (fhc->filename);
126 if (!GNUNET_DISK_handle_invalid (fhc->fh))
127 GNUNET_break (GNUNET_OK == GNUNET_DISK_file_close (fhc->fh));
128 gcry_md_close (fhc->md);
129 GNUNET_free (fhc); /* also frees fhc->buffer */
130}
131
132
133/**
134 * File hashing task.
135 *
136 * @param cls closure
137 * @param tc context
138 */
139static void
140file_hash_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
141{
142 struct GNUNET_CRYPTO_FileHashContext *fhc = cls;
143 struct GNUNET_HashCode *res;
144 size_t delta;
145
146 fhc->task = NULL;
147 GNUNET_assert (fhc->offset <= fhc->fsize);
148 delta = fhc->bsize;
149 if (fhc->fsize - fhc->offset < delta)
150 delta = fhc->fsize - fhc->offset;
151 if (delta != GNUNET_DISK_file_read (fhc->fh, fhc->buffer, delta))
152 {
153 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING, "read", fhc->filename);
154 file_hash_finish (fhc, NULL);
155 return;
156 }
157 gcry_md_write (fhc->md, fhc->buffer, delta);
158 fhc->offset += delta;
159 if (fhc->offset == fhc->fsize)
160 {
161 res = (struct GNUNET_HashCode *) gcry_md_read (fhc->md, GCRY_MD_SHA512);
162 file_hash_finish (fhc, res);
163 return;
164 }
165 fhc->task = GNUNET_SCHEDULER_add_with_priority (fhc->priority,
166 &file_hash_task, fhc);
167}
168
169
170/**
171 * Compute the hash of an entire file.
172 *
173 * @param priority scheduling priority to use
174 * @param filename name of file to hash
175 * @param blocksize number of bytes to process in one task
176 * @param callback function to call upon completion
177 * @param callback_cls closure for callback
178 * @return NULL on (immediate) errror
179 */
180struct GNUNET_CRYPTO_FileHashContext *
181GNUNET_CRYPTO_hash_file (enum GNUNET_SCHEDULER_Priority priority,
182 const char *filename, size_t blocksize,
183 GNUNET_CRYPTO_HashCompletedCallback callback,
184 void *callback_cls)
185{
186 struct GNUNET_CRYPTO_FileHashContext *fhc;
187
188 GNUNET_assert (blocksize > 0);
189 fhc =
190 GNUNET_malloc (sizeof (struct GNUNET_CRYPTO_FileHashContext) + blocksize);
191 fhc->callback = callback;
192 fhc->callback_cls = callback_cls;
193 fhc->buffer = (unsigned char *) &fhc[1];
194 fhc->filename = GNUNET_strdup (filename);
195 if (GPG_ERR_NO_ERROR != gcry_md_open (&fhc->md, GCRY_MD_SHA512, 0))
196 {
197 GNUNET_break (0);
198 GNUNET_free (fhc);
199 return NULL;
200 }
201 fhc->bsize = blocksize;
202 if (GNUNET_OK != GNUNET_DISK_file_size (filename, &fhc->fsize, GNUNET_NO, GNUNET_YES))
203 {
204 GNUNET_free (fhc->filename);
205 GNUNET_free (fhc);
206 return NULL;
207 }
208 fhc->fh =
209 GNUNET_DISK_file_open (filename, GNUNET_DISK_OPEN_READ,
210 GNUNET_DISK_PERM_NONE);
211 if (!fhc->fh)
212 {
213 GNUNET_free (fhc->filename);
214 GNUNET_free (fhc);
215 return NULL;
216 }
217 fhc->priority = priority;
218 fhc->task =
219 GNUNET_SCHEDULER_add_with_priority (priority, &file_hash_task, fhc);
220 return fhc;
221}
222
223
224/**
225 * Cancel a file hashing operation.
226 *
227 * @param fhc operation to cancel (callback must not yet have been invoked)
228 */
229void
230GNUNET_CRYPTO_hash_file_cancel (struct GNUNET_CRYPTO_FileHashContext *fhc)
231{
232 GNUNET_SCHEDULER_cancel (fhc->task);
233 GNUNET_free (fhc->filename);
234 GNUNET_break (GNUNET_OK == GNUNET_DISK_file_close (fhc->fh));
235 GNUNET_free (fhc);
236}
237
238
239/* ***************** binary-ASCII encoding *************** */ 52/* ***************** binary-ASCII encoding *************** */
240 53
241 54
diff --git a/src/util/crypto_hash_file.c b/src/util/crypto_hash_file.c
new file mode 100644
index 000000000..2d15fac36
--- /dev/null
+++ b/src/util/crypto_hash_file.c
@@ -0,0 +1,215 @@
1/*
2 This file is part of GNUnet.
3 Copyright (C) 2001-2013 Christian Grothoff (and other contributing authors)
4
5 GNUnet is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published
7 by the Free Software Foundation; either version 3, or (at your
8 option) any later version.
9
10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with GNUnet; see the file COPYING. If not, write to the
17 Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA.
19
20*/
21
22/**
23 * @file util/crypto_hash_file.c
24 * @brief incremental hashing of files
25 * @author Christian Grothoff
26 */
27
28
29/**
30 * Context used when hashing a file.
31 */
32struct GNUNET_CRYPTO_FileHashContext
33{
34
35 /**
36 * Function to call upon completion.
37 */
38 GNUNET_CRYPTO_HashCompletedCallback callback;
39
40 /**
41 * Closure for callback.
42 */
43 void *callback_cls;
44
45 /**
46 * IO buffer.
47 */
48 unsigned char *buffer;
49
50 /**
51 * Name of the file we are hashing.
52 */
53 char *filename;
54
55 /**
56 * File descriptor.
57 */
58 struct GNUNET_DISK_FileHandle *fh;
59
60 /**
61 * Cummulated hash.
62 */
63 gcry_md_hd_t md;
64
65 /**
66 * Size of the file.
67 */
68 uint64_t fsize;
69
70 /**
71 * Current offset.
72 */
73 uint64_t offset;
74
75 /**
76 * Current task for hashing.
77 */
78 struct GNUNET_SCHEDULER_Task * task;
79
80 /**
81 * Priority we use.
82 */
83 enum GNUNET_SCHEDULER_Priority priority;
84
85 /**
86 * Blocksize.
87 */
88 size_t bsize;
89
90};
91
92
93/**
94 * Report result of hash computation to callback
95 * and free associated resources.
96 */
97static void
98file_hash_finish (struct GNUNET_CRYPTO_FileHashContext *fhc,
99 const struct GNUNET_HashCode * res)
100{
101 fhc->callback (fhc->callback_cls, res);
102 GNUNET_free (fhc->filename);
103 if (!GNUNET_DISK_handle_invalid (fhc->fh))
104 GNUNET_break (GNUNET_OK == GNUNET_DISK_file_close (fhc->fh));
105 gcry_md_close (fhc->md);
106 GNUNET_free (fhc); /* also frees fhc->buffer */
107}
108
109
110/**
111 * File hashing task.
112 *
113 * @param cls closure
114 * @param tc context
115 */
116static void
117file_hash_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
118{
119 struct GNUNET_CRYPTO_FileHashContext *fhc = cls;
120 struct GNUNET_HashCode *res;
121 size_t delta;
122
123 fhc->task = NULL;
124 GNUNET_assert (fhc->offset <= fhc->fsize);
125 delta = fhc->bsize;
126 if (fhc->fsize - fhc->offset < delta)
127 delta = fhc->fsize - fhc->offset;
128 if (delta != GNUNET_DISK_file_read (fhc->fh, fhc->buffer, delta))
129 {
130 LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING, "read", fhc->filename);
131 file_hash_finish (fhc, NULL);
132 return;
133 }
134 gcry_md_write (fhc->md, fhc->buffer, delta);
135 fhc->offset += delta;
136 if (fhc->offset == fhc->fsize)
137 {
138 res = (struct GNUNET_HashCode *) gcry_md_read (fhc->md, GCRY_MD_SHA512);
139 file_hash_finish (fhc, res);
140 return;
141 }
142 fhc->task = GNUNET_SCHEDULER_add_with_priority (fhc->priority,
143 &file_hash_task, fhc);
144}
145
146
147/**
148 * Compute the hash of an entire file.
149 *
150 * @param priority scheduling priority to use
151 * @param filename name of file to hash
152 * @param blocksize number of bytes to process in one task
153 * @param callback function to call upon completion
154 * @param callback_cls closure for callback
155 * @return NULL on (immediate) errror
156 */
157struct GNUNET_CRYPTO_FileHashContext *
158GNUNET_CRYPTO_hash_file (enum GNUNET_SCHEDULER_Priority priority,
159 const char *filename, size_t blocksize,
160 GNUNET_CRYPTO_HashCompletedCallback callback,
161 void *callback_cls)
162{
163 struct GNUNET_CRYPTO_FileHashContext *fhc;
164
165 GNUNET_assert (blocksize > 0);
166 fhc =
167 GNUNET_malloc (sizeof (struct GNUNET_CRYPTO_FileHashContext) + blocksize);
168 fhc->callback = callback;
169 fhc->callback_cls = callback_cls;
170 fhc->buffer = (unsigned char *) &fhc[1];
171 fhc->filename = GNUNET_strdup (filename);
172 if (GPG_ERR_NO_ERROR != gcry_md_open (&fhc->md, GCRY_MD_SHA512, 0))
173 {
174 GNUNET_break (0);
175 GNUNET_free (fhc);
176 return NULL;
177 }
178 fhc->bsize = blocksize;
179 if (GNUNET_OK != GNUNET_DISK_file_size (filename, &fhc->fsize, GNUNET_NO, GNUNET_YES))
180 {
181 GNUNET_free (fhc->filename);
182 GNUNET_free (fhc);
183 return NULL;
184 }
185 fhc->fh =
186 GNUNET_DISK_file_open (filename, GNUNET_DISK_OPEN_READ,
187 GNUNET_DISK_PERM_NONE);
188 if (!fhc->fh)
189 {
190 GNUNET_free (fhc->filename);
191 GNUNET_free (fhc);
192 return NULL;
193 }
194 fhc->priority = priority;
195 fhc->task =
196 GNUNET_SCHEDULER_add_with_priority (priority, &file_hash_task, fhc);
197 return fhc;
198}
199
200
201/**
202 * Cancel a file hashing operation.
203 *
204 * @param fhc operation to cancel (callback must not yet have been invoked)
205 */
206void
207GNUNET_CRYPTO_hash_file_cancel (struct GNUNET_CRYPTO_FileHashContext *fhc)
208{
209 GNUNET_SCHEDULER_cancel (fhc->task);
210 GNUNET_free (fhc->filename);
211 GNUNET_break (GNUNET_OK == GNUNET_DISK_file_close (fhc->fh));
212 GNUNET_free (fhc);
213}
214
215/* end of crypto_hash_file.c */
diff --git a/src/util/disk.c b/src/util/disk.c
index da78a1e1d..81413265e 100644
--- a/src/util/disk.c
+++ b/src/util/disk.c
@@ -1278,145 +1278,6 @@ GNUNET_DISK_directory_scan (const char *dir_name,
1278 1278
1279 1279
1280/** 1280/**
1281 * Opaque handle used for iterating over a directory.
1282 */
1283struct GNUNET_DISK_DirectoryIterator
1284{
1285
1286 /**
1287 * Function to call on directory entries.
1288 */
1289 GNUNET_DISK_DirectoryIteratorCallback callback;
1290
1291 /**
1292 * Closure for callback.
1293 */
1294 void *callback_cls;
1295
1296 /**
1297 * Reference to directory.
1298 */
1299 DIR *directory;
1300
1301 /**
1302 * Directory name.
1303 */
1304 char *dirname;
1305
1306 /**
1307 * Next filename to process.
1308 */
1309 char *next_name;
1310
1311 /**
1312 * Our priority.
1313 */
1314 enum GNUNET_SCHEDULER_Priority priority;
1315
1316};
1317
1318
1319/**
1320 * Task used by the directory iterator.
1321 */
1322static void
1323directory_iterator_task (void *cls,
1324 const struct GNUNET_SCHEDULER_TaskContext *tc)
1325{
1326 struct GNUNET_DISK_DirectoryIterator *iter = cls;
1327 char *name;
1328
1329 name = iter->next_name;
1330 GNUNET_assert (name != NULL);
1331 iter->next_name = NULL;
1332 iter->callback (iter->callback_cls, iter, name, iter->dirname);
1333 GNUNET_free (name);
1334}
1335
1336
1337/**
1338 * This function must be called during the DiskIteratorCallback
1339 * (exactly once) to schedule the task to process the next
1340 * filename in the directory (if there is one).
1341 *
1342 * @param iter opaque handle for the iterator
1343 * @param can set to GNUNET_YES to terminate the iteration early
1344 * @return GNUNET_YES if iteration will continue,
1345 * GNUNET_NO if this was the last entry (and iteration is complete),
1346 * GNUNET_SYSERR if abort was YES
1347 */
1348int
1349GNUNET_DISK_directory_iterator_next (struct GNUNET_DISK_DirectoryIterator *iter,
1350 int can)
1351{
1352 struct dirent *finfo;
1353
1354 GNUNET_assert (iter->next_name == NULL);
1355 if (can == GNUNET_YES)
1356 {
1357 CLOSEDIR (iter->directory);
1358 GNUNET_free (iter->dirname);
1359 GNUNET_free (iter);
1360 return GNUNET_SYSERR;
1361 }
1362 while (NULL != (finfo = READDIR (iter->directory)))
1363 {
1364 if ((0 == strcmp (finfo->d_name, ".")) ||
1365 (0 == strcmp (finfo->d_name, "..")))
1366 continue;
1367 GNUNET_asprintf (&iter->next_name, "%s%s%s", iter->dirname,
1368 DIR_SEPARATOR_STR, finfo->d_name);
1369 break;
1370 }
1371 if (finfo == NULL)
1372 {
1373 GNUNET_DISK_directory_iterator_next (iter, GNUNET_YES);
1374 return GNUNET_NO;
1375 }
1376 GNUNET_SCHEDULER_add_with_priority (iter->priority, &directory_iterator_task,
1377 iter);
1378 return GNUNET_YES;
1379}
1380
1381
1382/**
1383 * Scan a directory for files using the scheduler to run a task for
1384 * each entry. The name of the directory must be expanded first (!).
1385 * If a scheduler does not need to be used, GNUNET_DISK_directory_scan
1386 * may provide a simpler API.
1387 *
1388 * @param prio priority to use
1389 * @param dir_name the name of the directory
1390 * @param callback the method to call for each file
1391 * @param callback_cls closure for callback
1392 * @return GNUNET_YES if directory is not empty and 'callback'
1393 * will be called later, GNUNET_NO otherwise, GNUNET_SYSERR on error.
1394 */
1395int
1396GNUNET_DISK_directory_iterator_start (enum GNUNET_SCHEDULER_Priority prio,
1397 const char *dir_name,
1398 GNUNET_DISK_DirectoryIteratorCallback
1399 callback, void *callback_cls)
1400{
1401 struct GNUNET_DISK_DirectoryIterator *di;
1402
1403 di = GNUNET_new (struct GNUNET_DISK_DirectoryIterator);
1404 di->callback = callback;
1405 di->callback_cls = callback_cls;
1406 di->directory = OPENDIR (dir_name);
1407 if (di->directory == NULL)
1408 {
1409 GNUNET_free (di);
1410 callback (callback_cls, NULL, NULL, NULL);
1411 return GNUNET_SYSERR;
1412 }
1413 di->dirname = GNUNET_strdup (dir_name);
1414 di->priority = prio;
1415 return GNUNET_DISK_directory_iterator_next (di, GNUNET_NO);
1416}
1417
1418
1419/**
1420 * Function that removes the given directory by calling 1281 * Function that removes the given directory by calling
1421 * "GNUNET_DISK_directory_remove". 1282 * "GNUNET_DISK_directory_remove".
1422 * 1283 *
diff --git a/src/util/disk_iterator.c b/src/util/disk_iterator.c
new file mode 100644
index 000000000..118823df6
--- /dev/null
+++ b/src/util/disk_iterator.c
@@ -0,0 +1,166 @@
1/*
2 This file is part of GNUnet.
3 Copyright (C) 2001--2013 Christian Grothoff (and other contributing authors)
4
5 GNUnet is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published
7 by the Free Software Foundation; either version 3, or (at your
8 option) any later version.
9
10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with GNUnet; see the file COPYING. If not, write to the
17 Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA.
19*/
20/**
21 * @file util/disk_iterator.c
22 * @brief asynchronous iteration over a directory
23 * @author Christian Grothoff
24 * @author Nils Durner
25 */
26
27
28/**
29 * Opaque handle used for iterating over a directory.
30 */
31struct GNUNET_DISK_DirectoryIterator
32{
33
34 /**
35 * Function to call on directory entries.
36 */
37 GNUNET_DISK_DirectoryIteratorCallback callback;
38
39 /**
40 * Closure for @e callback.
41 */
42 void *callback_cls;
43
44 /**
45 * Reference to directory.
46 */
47 DIR *directory;
48
49 /**
50 * Directory name.
51 */
52 char *dirname;
53
54 /**
55 * Next filename to process.
56 */
57 char *next_name;
58
59 /**
60 * Our priority.
61 */
62 enum GNUNET_SCHEDULER_Priority priority;
63
64};
65
66
67/**
68 * Task used by the directory iterator.
69 */
70static void
71directory_iterator_task (void *cls,
72 const struct GNUNET_SCHEDULER_TaskContext *tc)
73{
74 struct GNUNET_DISK_DirectoryIterator *iter = cls;
75 char *name;
76
77 name = iter->next_name;
78 GNUNET_assert (name != NULL);
79 iter->next_name = NULL;
80 iter->callback (iter->callback_cls, iter, name, iter->dirname);
81 GNUNET_free (name);
82}
83
84
85/**
86 * This function must be called during the DiskIteratorCallback
87 * (exactly once) to schedule the task to process the next
88 * filename in the directory (if there is one).
89 *
90 * @param iter opaque handle for the iterator
91 * @param can set to #GNUNET_YES to terminate the iteration early
92 * @return #GNUNET_YES if iteration will continue,
93 * #GNUNET_NO if this was the last entry (and iteration is complete),
94 * #GNUNET_SYSERR if abort was YES
95 */
96int
97GNUNET_DISK_directory_iterator_next (struct GNUNET_DISK_DirectoryIterator *iter,
98 int can)
99{
100 struct dirent *finfo;
101
102 GNUNET_assert (iter->next_name == NULL);
103 if (can == GNUNET_YES)
104 {
105 CLOSEDIR (iter->directory);
106 GNUNET_free (iter->dirname);
107 GNUNET_free (iter);
108 return GNUNET_SYSERR;
109 }
110 while (NULL != (finfo = READDIR (iter->directory)))
111 {
112 if ((0 == strcmp (finfo->d_name, ".")) ||
113 (0 == strcmp (finfo->d_name, "..")))
114 continue;
115 GNUNET_asprintf (&iter->next_name, "%s%s%s", iter->dirname,
116 DIR_SEPARATOR_STR, finfo->d_name);
117 break;
118 }
119 if (finfo == NULL)
120 {
121 GNUNET_DISK_directory_iterator_next (iter, GNUNET_YES);
122 return GNUNET_NO;
123 }
124 GNUNET_SCHEDULER_add_with_priority (iter->priority, &directory_iterator_task,
125 iter);
126 return GNUNET_YES;
127}
128
129
130/**
131 * Scan a directory for files using the scheduler to run a task for
132 * each entry. The name of the directory must be expanded first (!).
133 * If a scheduler does not need to be used, GNUNET_DISK_directory_scan
134 * may provide a simpler API.
135 *
136 * @param prio priority to use
137 * @param dir_name the name of the directory
138 * @param callback the method to call for each file
139 * @param callback_cls closure for @a callback
140 * @return #GNUNET_YES if directory is not empty and @a callback
141 * will be called later, #GNUNET_NO otherwise, #GNUNET_SYSERR on error.
142 */
143int
144GNUNET_DISK_directory_iterator_start (enum GNUNET_SCHEDULER_Priority prio,
145 const char *dir_name,
146 GNUNET_DISK_DirectoryIteratorCallback
147 callback, void *callback_cls)
148{
149 struct GNUNET_DISK_DirectoryIterator *di;
150
151 di = GNUNET_new (struct GNUNET_DISK_DirectoryIterator);
152 di->callback = callback;
153 di->callback_cls = callback_cls;
154 di->directory = OPENDIR (dir_name);
155 if (di->directory == NULL)
156 {
157 GNUNET_free (di);
158 callback (callback_cls, NULL, NULL, NULL);
159 return GNUNET_SYSERR;
160 }
161 di->dirname = GNUNET_strdup (dir_name);
162 di->priority = prio;
163 return GNUNET_DISK_directory_iterator_next (di, GNUNET_NO);
164}
165
166/* end of disk_iterator */