diff options
-rw-r--r-- | configure.ac | 18 | ||||
-rwxr-xr-x | contrib/gnunet-gns-import.sh | 19 | ||||
-rw-r--r-- | po/de.po | 241 | ||||
-rw-r--r-- | po/es.po | 252 | ||||
-rw-r--r-- | po/fr.po | 233 | ||||
-rw-r--r-- | po/sv.po | 242 | ||||
-rw-r--r-- | po/vi.po | 245 | ||||
-rw-r--r-- | po/zh_CN.po | 239 | ||||
-rw-r--r-- | src/Makefile.am | 8 | ||||
-rw-r--r-- | src/include/Makefile.am | 7 | ||||
-rw-r--r-- | src/include/gnunet_util_taler_wallet_lib.h | 56 | ||||
-rw-r--r-- | src/util/Makefile.am | 65 | ||||
-rw-r--r-- | src/util/configuration.c | 43 | ||||
-rw-r--r-- | src/util/configuration_loader.c | 69 | ||||
-rw-r--r-- | src/util/crypto_ecc.c | 401 | ||||
-rw-r--r-- | src/util/crypto_ecc_setup.c | 431 | ||||
-rw-r--r-- | src/util/crypto_hash.c | 189 | ||||
-rw-r--r-- | src/util/crypto_hash_file.c | 215 | ||||
-rw-r--r-- | src/util/disk.c | 139 | ||||
-rw-r--r-- | src/util/disk_iterator.c | 166 |
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 | |||
546 | AC_CHECK_LIB([kvm],[kvm_open]) | 546 | AC_CHECK_LIB([kvm],[kvm_open]) |
547 | AC_CHECK_LIB([kstat],[kstat_open]) | 547 | AC_CHECK_LIB([kstat],[kstat_open]) |
548 | 548 | ||
549 | |||
550 | # should experimental code be compiled (code that may not yet compile)? | ||
551 | AC_MSG_CHECKING(whether to compile GNU Taler Wallet library ONLY) | ||
552 | AC_ARG_ENABLE([taler-wallet], | ||
553 | [AS_HELP_STRING([--taler-wallet], [only compile for Taler wallet])], | ||
554 | [taler_only=${enableval}], | ||
555 | [taler_only=no]) | ||
556 | AC_MSG_RESULT($taler_only) | ||
557 | AM_CONDITIONAL([TALER_ONLY], [test "x$taler_only" = "xyes"]) | ||
558 | |||
559 | if test "$taler_only" != yes | ||
560 | then | ||
561 | |||
562 | |||
563 | |||
549 | # test for libextractor | 564 | # test for libextractor |
550 | extractor=0 | 565 | extractor=0 |
551 | AC_MSG_CHECKING(for libextractor) | 566 | AC_MSG_CHECKING(for libextractor) |
@@ -581,6 +596,7 @@ fi | |||
581 | # restore LIBS | 596 | # restore LIBS |
582 | LIBS=$SAVE_LIBS | 597 | LIBS=$SAVE_LIBS |
583 | 598 | ||
599 | |||
584 | # Check for libltdl header (#2999) | 600 | # Check for libltdl header (#2999) |
585 | ltdl=0 | 601 | ltdl=0 |
586 | AC_MSG_CHECKING(for libltdl) | 602 | AC_MSG_CHECKING(for libltdl) |
@@ -618,6 +634,8 @@ fi | |||
618 | # restore LIBS | 634 | # restore LIBS |
619 | LIBS=$SAVE_LIBS | 635 | LIBS=$SAVE_LIBS |
620 | 636 | ||
637 | fi | ||
638 | |||
621 | # test for libunistring | 639 | # test for libunistring |
622 | gl_LIBUNISTRING | 640 | gl_LIBUNISTRING |
623 | if test $HAVE_LIBUNISTRING != yes; then | 641 | if 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 |
48 | gnunet-identity -C sks-zone $options | 48 | gnunet-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) | ||
51 | gnunet-identity -e short-zone -s gns-short $options | 54 | gnunet-identity -e short-zone -s gns-short $options |
55 | |||
56 | # Default zone for 'gnunet-gns' lookups | ||
52 | gnunet-identity -e master-zone -s gns-master $options | 57 | gnunet-identity -e master-zone -s gns-master $options |
58 | |||
59 | # Default zone for 'gnunet-namestore' operations | ||
53 | gnunet-identity -e master-zone -s namestore $options | 60 | gnunet-identity -e master-zone -s namestore $options |
61 | |||
62 | # Use master-zone for GNS proxy lookups | ||
54 | gnunet-identity -e master-zone -s gns-proxy $options | 63 | gnunet-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) | ||
67 | gnunet-identity -e master-zone -s gns-intercept $options | ||
68 | |||
69 | # 'gns-private' is not yet used (!) | ||
55 | gnunet-identity -e private-zone -s gns-private $options | 70 | gnunet-identity -e private-zone -s gns-private $options |
71 | |||
72 | # 'fs-sks' default ego for gnunet-fs-gtk namespace operations | ||
56 | gnunet-identity -e sks-zone -s fs-sks $options | 73 | gnunet-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) |
@@ -10,7 +10,7 @@ msgid "" | |||
10 | msgstr "" | 10 | msgstr "" |
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." | |||
643 | msgid "Invalid target `%s'\n" | 643 | msgid "Invalid target `%s'\n" |
644 | msgstr "Ungültiger Parameter: `%s'\n" | 644 | msgstr "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 |
648 | msgid "Invalid peer ID `%s'\n" | 648 | msgid "Invalid peer ID `%s'\n" |
649 | msgstr "Ungültige Antwort auf `%s'.\n" | 649 | msgstr "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 |
653 | msgid "Invalid tunnel owner `%s'\n" | 653 | msgid "Invalid tunnel owner `%s'\n" |
654 | msgstr "Ungültiger Parameter: `%s'\n" | 654 | msgstr "Ungültiger Parameter: `%s'\n" |
655 | 655 | ||
656 | #: src/cadet/gnunet-cadet.c:735 | 656 | #: src/cadet/gnunet-cadet.c:752 |
657 | msgid "You must NOT give a TARGETwhen using 'request all' options\n" | 657 | msgid "You must NOT give a TARGETwhen using 'request all' options\n" |
658 | msgstr "" | 658 | msgstr "" |
659 | 659 | ||
660 | #: src/cadet/gnunet-cadet.c:832 | 660 | #: src/cadet/gnunet-cadet.c:849 |
661 | msgid "provide information about a particular connection" | 661 | msgid "provide information about a particular connection" |
662 | msgstr "" | 662 | msgstr "" |
663 | 663 | ||
664 | #: src/cadet/gnunet-cadet.c:835 | 664 | #: src/cadet/gnunet-cadet.c:852 |
665 | msgid "activate echo mode" | 665 | msgid "activate echo mode" |
666 | msgstr "" | 666 | msgstr "" |
667 | 667 | ||
668 | #: src/cadet/gnunet-cadet.c:838 | 668 | #: src/cadet/gnunet-cadet.c:855 |
669 | msgid "dump debug information to STDERR" | 669 | msgid "dump debug information to STDERR" |
670 | msgstr "" | 670 | msgstr "" |
671 | 671 | ||
672 | #: src/cadet/gnunet-cadet.c:844 | 672 | #: src/cadet/gnunet-cadet.c:861 |
673 | msgid "port to listen to (default; 0)" | 673 | msgid "port to listen to (default; 0)" |
674 | msgstr "" | 674 | msgstr "" |
675 | 675 | ||
676 | #: src/cadet/gnunet-cadet.c:847 | 676 | #: src/cadet/gnunet-cadet.c:864 |
677 | #, fuzzy | 677 | #, fuzzy |
678 | msgid "provide information about a patricular peer" | 678 | msgid "provide information about a patricular peer" |
679 | msgstr "Informationen über andere GNUnet Knoten ausgeben." | 679 | msgstr "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 |
683 | msgid "provide information about all peers" | 683 | msgid "provide information about all peers" |
684 | msgstr "Informationen über andere GNUnet Knoten ausgeben." | 684 | msgstr "Informationen über andere GNUnet Knoten ausgeben." |
685 | 685 | ||
686 | #: src/cadet/gnunet-cadet.c:853 | 686 | #: src/cadet/gnunet-cadet.c:870 |
687 | msgid "provide information about a particular tunnel" | 687 | msgid "provide information about a particular tunnel" |
688 | msgstr "" | 688 | msgstr "" |
689 | 689 | ||
690 | #: src/cadet/gnunet-cadet.c:856 | 690 | #: src/cadet/gnunet-cadet.c:873 |
691 | #, fuzzy | 691 | #, fuzzy |
692 | msgid "provide information about all tunnels" | 692 | msgid "provide information about all tunnels" |
693 | msgstr "Informationen über andere GNUnet Knoten ausgeben." | 693 | msgstr "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 |
696 | msgid "Wrong CORE service\n" | 696 | msgid "Wrong CORE service\n" |
697 | msgstr "" | 697 | msgstr "" |
698 | 698 | ||
@@ -1469,50 +1469,49 @@ msgstr "# Bytes empfangen über TCP" | |||
1469 | msgid "# updates to my type map" | 1469 | msgid "# updates to my type map" |
1470 | msgstr "" | 1470 | msgstr "" |
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 |
1474 | msgid "# bytes stored" | 1474 | msgid "# bytes stored" |
1475 | msgstr "# gespeicherte Bytes" | 1475 | msgstr "# 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 |
1478 | msgid "# items stored" | 1478 | msgid "# items stored" |
1479 | msgstr "# gespeicherte Objekte" | 1479 | msgstr "# 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 | ||
1485 | msgid "No `%s' specified for `%s' in configuration!\n" | ||
1486 | msgstr "In der Konfigurationsdatei wurden keine Anwendungen definiert!\n" | ||
1487 | |||
1488 | #: src/datacache/datacache.c:184 | ||
1489 | #, c-format | 1482 | #, c-format |
1490 | msgid "Loading `%s' datacache plugin\n" | 1483 | msgid "Loading `%s' datacache plugin\n" |
1491 | msgstr "" | 1484 | msgstr "" |
1492 | 1485 | ||
1493 | #: src/datacache/datacache.c:192 | 1486 | #: src/datacache/datacache.c:213 |
1494 | #, fuzzy, c-format | 1487 | #, fuzzy, c-format |
1495 | msgid "Failed to load datacache plugin for `%s'\n" | 1488 | msgid "Failed to load datacache plugin for `%s'\n" |
1496 | msgstr "Fehler beim Aktualisieren der Daten des Moduls `%s'\n" | 1489 | msgstr "Fehler beim Aktualisieren der Daten des Moduls `%s'\n" |
1497 | 1490 | ||
1498 | #: src/datacache/datacache.c:295 | 1491 | #: src/datacache/datacache.c:329 |
1499 | msgid "# requests received" | 1492 | msgid "# requests received" |
1500 | msgstr "# Anfragen empfangen" | 1493 | msgstr "# Anfragen empfangen" |
1501 | 1494 | ||
1502 | #: src/datacache/datacache.c:304 | 1495 | #: src/datacache/datacache.c:339 |
1503 | msgid "# requests filtered by bloom filter" | 1496 | msgid "# requests filtered by bloom filter" |
1504 | msgstr "" | 1497 | msgstr "" |
1505 | 1498 | ||
1506 | #: src/datacache/plugin_datacache_heap.c:406 | 1499 | #: src/datacache/datacache.c:367 |
1507 | msgid "Heap datacache running\n" | 1500 | #, fuzzy |
1508 | msgstr "" | 1501 | msgid "# requests for random value received" |
1502 | msgstr "# Anfragen empfangen" | ||
1503 | |||
1504 | #: src/datacache/datacache.c:399 | ||
1505 | #, fuzzy | ||
1506 | msgid "# proximity search requests received" | ||
1507 | msgstr "# Klartext PONG Nachrichten empfangen" | ||
1509 | 1508 | ||
1510 | #: src/datacache/plugin_datacache_postgres.c:391 | 1509 | #: src/datacache/plugin_datacache_heap.c:466 |
1511 | msgid "Postgres datacache running\n" | 1510 | msgid "Heap datacache running\n" |
1512 | msgstr "" | 1511 | msgstr "" |
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 |
1533 | msgid "`%s' failed at %s:%d with error: %s\n" | 1532 | msgid "`%s' failed at %s:%d with error: %s\n" |
1534 | msgstr "»%s« schlug bei %s:%d mit dem Fehler %s fehl\n" | 1533 | msgstr "»%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 |
1537 | msgid "Sqlite datacache running\n" | ||
1538 | msgstr "" | ||
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 |
1544 | msgid "Tried to close sqlite without finalizing all prepared statements.\n" | 1539 | msgid "Tried to close sqlite without finalizing all prepared statements.\n" |
1545 | msgstr "" | 1540 | msgstr "" |
1546 | 1541 | ||
1547 | #: src/datacache/plugin_datacache_sqlite.c:490 | ||
1548 | #, c-format | ||
1549 | msgid "Failed to close statement %p: %d\n" | ||
1550 | msgstr "Anweisung %p konnte nicht geschlossen werden: %d\n" | ||
1551 | |||
1552 | #: src/datacache/plugin_datacache_template.c:125 | ||
1553 | msgid "Template datacache running\n" | ||
1554 | msgstr "" | ||
1555 | |||
1556 | #: src/datastore/datastore_api.c:310 | 1542 | #: src/datastore/datastore_api.c:310 |
1557 | #, fuzzy | 1543 | #, fuzzy |
1558 | msgid "Failed to transmit request to drop database.\n" | 1544 | msgid "Failed to transmit request to drop database.\n" |
@@ -1802,6 +1788,12 @@ msgstr "" | |||
1802 | msgid "Plugin does not support get_keys function. Please fix!\n" | 1788 | msgid "Plugin does not support get_keys function. Please fix!\n" |
1803 | msgstr "" | 1789 | msgstr "" |
1804 | 1790 | ||
1791 | #: src/datastore/gnunet-service-datastore.c:1598 | ||
1792 | #: src/datastore/gnunet-service-datastore.c:1609 | ||
1793 | #, fuzzy, c-format | ||
1794 | msgid "No `%s' specified for `%s' in configuration!\n" | ||
1795 | msgstr "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 |
1807 | msgid "# bytes used in file-sharing datastore `%s'" | 1799 | msgid "# bytes used in file-sharing datastore `%s'" |
@@ -2072,112 +2064,130 @@ msgstr "" | |||
2072 | msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY." | 2064 | msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY." |
2073 | msgstr "" | 2065 | msgstr "" |
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 |
2076 | msgid "Failed to connect to transport service!\n" | 2068 | msgid "Failed to connect to transport service!\n" |
2077 | msgstr "Verbindung zum Transportdienst ist fehlgeschlagen!\n" | 2069 | msgstr "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 |
2082 | msgid "# GET requests from clients injected" | 2075 | msgid "# GET requests from clients injected" |
2083 | msgstr "# gap Anfragen mit taktischer Entscheidung: nicht Antworten" | 2076 | msgstr "# 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 |
2088 | msgid "# PUT requests received from clients" | 2082 | msgid "# PUT requests received from clients" |
2089 | msgstr "Die `%s' Anfrage, die vom Client empfangen wurde, ist beschädigt.\n" | 2083 | msgstr "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 |
2094 | msgid "# GET requests received from clients" | 2089 | msgid "# GET requests received from clients" |
2095 | msgstr "Die `%s' Anfrage, die vom Client empfangen wurde, ist beschädigt.\n" | 2090 | msgstr "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 |
2100 | msgid "# GET STOP requests received from clients" | 2096 | msgid "# GET STOP requests received from clients" |
2101 | msgstr "Die `%s' Anfrage, die vom Client empfangen wurde, ist beschädigt.\n" | 2097 | msgstr "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 |
2105 | msgid "# Key match, type mismatches in REPLY to CLIENT" | 2102 | msgid "# Key match, type mismatches in REPLY to CLIENT" |
2106 | msgstr "" | 2103 | msgstr "" |
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 |
2110 | msgid "# Duplicate REPLIES to CLIENT request dropped" | 2108 | msgid "# Duplicate REPLIES to CLIENT request dropped" |
2111 | msgstr "" | 2109 | msgstr "" |
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 |
2116 | msgid "Unsupported block type (%u) in request!\n" | 2115 | msgid "Unsupported block type (%u) in request!\n" |
2117 | msgstr "" | 2116 | msgstr "" |
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 |
2121 | msgid "# RESULTS queued for clients" | 2121 | msgid "# RESULTS queued for clients" |
2122 | msgstr "" | 2122 | msgstr "" |
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 |
2128 | msgid "# REPLIES ignored for CLIENTS (no match)" | 2130 | msgid "# REPLIES ignored for CLIENTS (no match)" |
2129 | msgstr "" | 2131 | msgstr "" |
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 |
2134 | msgid "Could not pass reply to client, message too big!\n" | 2137 | msgid "Could not pass reply to client, message too big!\n" |
2135 | msgstr "'join' Nachricht konnte nicht an gnunetd gesendet werden.\n" | 2138 | msgstr "'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 |
2140 | msgid "%s request received, but have no datacache!\n" | 2142 | msgid "%s request received, but have no datacache!\n" |
2141 | msgstr "" | 2143 | msgstr "" |
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 | ||
2145 | msgid "# ITEMS stored in datacache" | 2148 | msgid "# ITEMS stored in datacache" |
2146 | msgstr "" | 2149 | msgstr "" |
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 | ||
2150 | msgid "# Good RESULTS found in datacache" | 2154 | msgid "# Good RESULTS found in datacache" |
2151 | msgstr "" | 2155 | msgstr "" |
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 | ||
2155 | msgid "# Duplicate RESULTS found in datacache" | 2160 | msgid "# Duplicate RESULTS found in datacache" |
2156 | msgstr "" | 2161 | msgstr "" |
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 | ||
2160 | msgid "# Invalid RESULTS found in datacache" | 2166 | msgid "# Invalid RESULTS found in datacache" |
2161 | msgstr "" | 2167 | msgstr "" |
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 | ||
2165 | msgid "# Irrelevant RESULTS found in datacache" | 2172 | msgid "# Irrelevant RESULTS found in datacache" |
2166 | msgstr "" | 2173 | msgstr "" |
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 | ||
2170 | msgid "# Unsupported RESULTS found in datacache" | 2178 | msgid "# Unsupported RESULTS found in datacache" |
2171 | msgstr "" | 2179 | msgstr "" |
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 |
2176 | msgid "Unsupported block type (%u) in local response!\n" | 2185 | msgid "Unsupported block type (%u) in local response!\n" |
2177 | msgstr "" | 2186 | msgstr "" |
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 | ||
2181 | msgid "# GET requests given to datacache" | 2191 | msgid "# GET requests given to datacache" |
2182 | msgstr "" | 2192 | msgstr "" |
2183 | 2193 | ||
@@ -2196,7 +2206,7 @@ msgid "# FIND PEER messages initiated" | |||
2196 | msgstr "# PING Nachrichten erstellt" | 2206 | msgstr "# 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 |
2200 | msgid "# Queued messages discarded (peer disconnected)" | 2210 | msgid "# Queued messages discarded (peer disconnected)" |
2201 | msgstr "" | 2211 | msgstr "" |
2202 | 2212 | ||
@@ -2315,7 +2325,8 @@ msgstr "" | |||
2315 | msgid "# P2P RESULT bytes received" | 2325 | msgid "# P2P RESULT bytes received" |
2316 | msgstr "# Bytes empfangen über TCP" | 2326 | msgstr "# 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 |
2320 | msgid "# Network size estimates received" | 2331 | msgid "# Network size estimates received" |
2321 | msgstr "# verschlüsselter PING Nachrichten empfangen" | 2332 | msgstr "# verschlüsselter PING Nachrichten empfangen" |
@@ -2353,6 +2364,11 @@ msgstr "" | |||
2353 | msgid "# DHT requests combined" | 2364 | msgid "# DHT requests combined" |
2354 | msgstr "# dht Anfragen weitergeleitet" | 2365 | msgstr "# dht Anfragen weitergeleitet" |
2355 | 2366 | ||
2367 | #: src/dht/gnunet-service-wdht_datacache.c:82 | ||
2368 | #, fuzzy | ||
2369 | msgid "PUT request received, but have no datacache!\n" | ||
2370 | msgstr "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 |
2358 | msgid "" | 2374 | msgid "" |
@@ -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 |
2429 | msgid "# Bytes received from other peers" | 2445 | msgid "# Bytes received from other peers" |
2430 | msgstr "# Bytes des Typs %d empfangen" | 2446 | msgstr "# Bytes des Typs %d empfangen" |
@@ -5933,64 +5949,64 @@ msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n" | |||
5933 | msgid "Failed to get fragment!\n" | 5949 | msgid "Failed to get fragment!\n" |
5934 | msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n" | 5950 | msgstr "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 |
5938 | msgid "Failed to get message!\n" | 5954 | msgid "Failed to get message!\n" |
5939 | msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n" | 5955 | msgstr "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 |
5943 | msgid "Failed to get message fragment!\n" | 5959 | msgid "Failed to get message fragment!\n" |
5944 | msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n" | 5960 | msgstr "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 |
5948 | msgid "Failed to get master counters!\n" | 5964 | msgid "Failed to get master counters!\n" |
5949 | msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n" | 5965 | msgstr "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 |
5953 | msgid "Tried to set invalid state variable name!\n" | 5969 | msgid "Tried to set invalid state variable name!\n" |
5954 | msgstr "" | 5970 | msgstr "" |
5955 | 5971 | ||
5956 | #: src/psycstore/gnunet-service-psycstore.c:513 | 5972 | #: src/psycstore/gnunet-service-psycstore.c:528 |
5957 | #, fuzzy | 5973 | #, fuzzy |
5958 | msgid "Failed to begin modifying state!\n" | 5974 | msgid "Failed to begin modifying state!\n" |
5959 | msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n" | 5975 | msgstr "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 |
5963 | msgid "Unknown operator: %c\n" | 5979 | msgid "Unknown operator: %c\n" |
5964 | msgstr "Unbekannte Operation `%s'\n" | 5980 | msgstr "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 |
5968 | msgid "Failed to end modifying state!\n" | 5984 | msgid "Failed to end modifying state!\n" |
5969 | msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n" | 5985 | msgstr "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 |
5973 | msgid "Failed to begin synchronizing state!\n" | 5989 | msgid "Failed to begin synchronizing state!\n" |
5974 | msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n" | 5990 | msgstr "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 |
5978 | msgid "Failed to end synchronizing state!\n" | 5994 | msgid "Failed to end synchronizing state!\n" |
5979 | msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n" | 5995 | msgstr "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 |
5984 | msgid "Failed to reset state!\n" | 6000 | msgid "Failed to reset state!\n" |
5985 | msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n" | 6001 | msgstr "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 |
5989 | msgid "Tried to get invalid state variable name!\n" | 6005 | msgid "Tried to get invalid state variable name!\n" |
5990 | msgstr "" | 6006 | msgstr "" |
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 |
5995 | msgid "Failed to get state variable!\n" | 6011 | msgid "Failed to get state variable!\n" |
5996 | msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n" | 6012 | msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n" |
@@ -6000,7 +6016,7 @@ msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n" | |||
6000 | msgid "`%s' failed at %s:%d with error: %s (%d)\n" | 6016 | msgid "`%s' failed at %s:%d with error: %s (%d)\n" |
6001 | msgstr "`%s' schlug bei %s:%d mit dem Fehler %s fehl\n" | 6017 | msgstr "`%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 |
6005 | msgid "SQLite database running\n" | 6021 | msgid "SQLite database running\n" |
6006 | msgstr "SQL Datenbank beschädigt, Ergebnis wird ignoriert.\n" | 6022 | msgstr "SQL Datenbank beschädigt, Ergebnis wird ignoriert.\n" |
@@ -7988,7 +8004,7 @@ msgid "Found %u addresses to report to NAT service\n" | |||
7988 | msgstr "" | 8004 | msgstr "" |
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 |
7992 | msgid "Disabling IPv6 since it is not supported on this system!\n" | 8008 | msgid "Disabling IPv6 since it is not supported on this system!\n" |
7993 | msgstr "" | 8009 | msgstr "" |
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" |
8231 | msgstr "" | 8247 | msgstr "" |
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 |
8236 | msgid "Failed to bind UDP socket to %s: %s\n" | 8252 | msgid "Failed to bind UDP socket to %s: %s\n" |
8237 | msgstr "UDP-Sockets können nicht geöffnet werden\n" | 8253 | msgstr "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 |
8240 | msgid "Disabling IPv4 since it is not supported on this system!\n" | 8256 | msgid "Disabling IPv4 since it is not supported on this system!\n" |
8241 | msgstr "" | 8257 | msgstr "" |
8242 | 8258 | ||
8243 | #: src/transport/plugin_transport_udp.c:3520 | 8259 | #: src/transport/plugin_transport_udp.c:3523 |
8244 | msgid "Failed to open UDP sockets\n" | 8260 | msgid "Failed to open UDP sockets\n" |
8245 | msgstr "UDP-Sockets können nicht geöffnet werden\n" | 8261 | msgstr "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 |
8249 | msgid "must be in [0,65535]" | 8265 | msgid "must be in [0,65535]" |
8250 | msgstr "" | 8266 | msgstr "" |
8251 | 8267 | ||
8252 | #: src/transport/plugin_transport_udp.c:3637 | 8268 | #: src/transport/plugin_transport_udp.c:3640 |
8253 | #, fuzzy | 8269 | #, fuzzy |
8254 | msgid "must be valid IPv4 address" | 8270 | msgid "must be valid IPv4 address" |
8255 | msgstr "»%s« ist keine gültige IP-Adresse.\n" | 8271 | msgstr "»%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 |
8259 | msgid "must be valid IPv6 address" | 8275 | msgid "must be valid IPv6 address" |
8260 | msgstr "»%s« ist keine gültige IP-Adresse.\n" | 8276 | msgstr "»%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 |
8264 | msgid "Failed to create UDP network sockets\n" | 8280 | msgid "Failed to create UDP network sockets\n" |
8265 | msgstr "UDP-Sockets können nicht geöffnet werden\n" | 8281 | msgstr "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" | |||
8582 | msgstr "" | 8598 | msgstr "" |
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 |
8587 | msgid "RSA signature verification failed at %s:%d: %s\n" | 8603 | msgid "RSA signature verification failed at %s:%d: %s\n" |
8588 | msgstr "RSA Signaturüberprüfung fehlgeschlagen bei %s:%d: %s\n" | 8604 | msgstr "RSA Signaturüberprüfung fehlgeschlagen bei %s:%d: %s\n" |
@@ -9384,22 +9400,25 @@ msgstr "Dienst wird über UDP angeboten" | |||
9384 | msgid "Setup tunnels via VPN." | 9400 | msgid "Setup tunnels via VPN." |
9385 | msgstr "Tunnel über VPN einrichten." | 9401 | msgstr "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 |
9390 | msgid "Assertion failed at %s:%d.\n" | 9406 | msgid "Assertion failed at %s:%d.\n" |
9391 | msgstr "`%s' schlug fehl bei %s:%d mit dem Fehler: `%s'.\n" | 9407 | msgstr "`%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 |
9395 | msgid "External protocol violation detected at %s:%d.\n" | 9411 | msgid "External protocol violation detected at %s:%d.\n" |
9396 | msgstr "Protokollverletzung auf Socket. Kommando erwartet.\n" | 9412 | msgstr "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 |
9400 | msgid "`%s' failed on file `%s' at %s:%d with error: %s\n" | 9416 | msgid "`%s' failed on file `%s' at %s:%d with error: %s\n" |
9401 | msgstr "`%s' schlug bei Datei `%s' fehl. Ort: %s:%d. Fehler: %s\n" | 9417 | msgstr "`%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" |
@@ -7,11 +7,11 @@ msgid "" | |||
7 | msgstr "" | 7 | msgstr "" |
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" | |||
699 | msgid "Invalid target `%s'\n" | 699 | msgid "Invalid target `%s'\n" |
700 | msgstr "Parámetro no válido «%s»\n" | 700 | msgstr "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 |
704 | msgid "Invalid peer ID `%s'\n" | 704 | msgid "Invalid peer ID `%s'\n" |
705 | msgstr "URI no válida: «%s»\n" | 705 | msgstr "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 |
709 | msgid "Invalid tunnel owner `%s'\n" | 709 | msgid "Invalid tunnel owner `%s'\n" |
710 | msgstr "Formato de tiempo no válido «%s»\n" | 710 | msgstr "Formato de tiempo no válido «%s»\n" |
711 | 711 | ||
712 | #: src/cadet/gnunet-cadet.c:735 | 712 | #: src/cadet/gnunet-cadet.c:752 |
713 | msgid "You must NOT give a TARGETwhen using 'request all' options\n" | 713 | msgid "You must NOT give a TARGETwhen using 'request all' options\n" |
714 | msgstr "" | 714 | msgstr "" |
715 | 715 | ||
716 | #: src/cadet/gnunet-cadet.c:832 | 716 | #: src/cadet/gnunet-cadet.c:849 |
717 | #, fuzzy | 717 | #, fuzzy |
718 | msgid "provide information about a particular connection" | 718 | msgid "provide information about a particular connection" |
719 | msgstr "proveer información acerca de un túnel en particular" | 719 | msgstr "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 |
722 | msgid "activate echo mode" | 722 | msgid "activate echo mode" |
723 | msgstr "" | 723 | msgstr "" |
724 | 724 | ||
725 | #: src/cadet/gnunet-cadet.c:838 | 725 | #: src/cadet/gnunet-cadet.c:855 |
726 | msgid "dump debug information to STDERR" | 726 | msgid "dump debug information to STDERR" |
727 | msgstr "" | 727 | msgstr "" |
728 | 728 | ||
729 | #: src/cadet/gnunet-cadet.c:844 | 729 | #: src/cadet/gnunet-cadet.c:861 |
730 | msgid "port to listen to (default; 0)" | 730 | msgid "port to listen to (default; 0)" |
731 | msgstr "" | 731 | msgstr "" |
732 | 732 | ||
733 | #: src/cadet/gnunet-cadet.c:847 | 733 | #: src/cadet/gnunet-cadet.c:864 |
734 | #, fuzzy | 734 | #, fuzzy |
735 | msgid "provide information about a patricular peer" | 735 | msgid "provide information about a patricular peer" |
736 | msgstr "proveer información acerca de un túnel en particular" | 736 | msgstr "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 |
740 | msgid "provide information about all peers" | 740 | msgid "provide information about all peers" |
741 | msgstr "proveer información acerca de un túnel en particular" | 741 | msgstr "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 |
744 | msgid "provide information about a particular tunnel" | 744 | msgid "provide information about a particular tunnel" |
745 | msgstr "proveer información acerca de un túnel en particular" | 745 | msgstr "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 |
749 | msgid "provide information about all tunnels" | 749 | msgid "provide information about all tunnels" |
750 | msgstr "proveer información acerca de un túnel en particular" | 750 | msgstr "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 |
753 | msgid "Wrong CORE service\n" | 753 | msgid "Wrong CORE service\n" |
754 | msgstr "Servicio principal (CORE) erróneo\n" | 754 | msgstr "Servicio principal (CORE) erróneo\n" |
755 | 755 | ||
@@ -1538,51 +1538,50 @@ msgstr "# mapas de tipos recibidos" | |||
1538 | msgid "# updates to my type map" | 1538 | msgid "# updates to my type map" |
1539 | msgstr "# actualizaciones de mi mapa de tipos" | 1539 | msgstr "# 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 |
1543 | msgid "# bytes stored" | 1543 | msgid "# bytes stored" |
1544 | msgstr "# bytes almacenados" | 1544 | msgstr "# 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 |
1547 | msgid "# items stored" | 1547 | msgid "# items stored" |
1548 | msgstr "# elementos almacenados" | 1548 | msgstr "# 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 | ||
1554 | msgid "No `%s' specified for `%s' in configuration!\n" | ||
1555 | msgstr "¡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 |
1559 | msgid "Loading `%s' datacache plugin\n" | 1552 | msgid "Loading `%s' datacache plugin\n" |
1560 | msgstr "Cargando el módulo de la cache de datos «%s»\n" | 1553 | msgstr "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 |
1564 | msgid "Failed to load datacache plugin for `%s'\n" | 1557 | msgid "Failed to load datacache plugin for `%s'\n" |
1565 | msgstr "" | 1558 | msgstr "" |
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 |
1569 | msgid "# requests received" | 1562 | msgid "# requests received" |
1570 | msgstr "# peticiones recibidas" | 1563 | msgstr "# peticiones recibidas" |
1571 | 1564 | ||
1572 | #: src/datacache/datacache.c:304 | 1565 | #: src/datacache/datacache.c:339 |
1573 | msgid "# requests filtered by bloom filter" | 1566 | msgid "# requests filtered by bloom filter" |
1574 | msgstr "# peticiones filtradas por el «bloomfilter»" | 1567 | msgstr "# peticiones filtradas por el «bloomfilter»" |
1575 | 1568 | ||
1576 | #: src/datacache/plugin_datacache_heap.c:406 | 1569 | #: src/datacache/datacache.c:367 |
1570 | #, fuzzy | ||
1571 | msgid "# requests for random value received" | ||
1572 | msgstr "# peticiones recibidas" | ||
1573 | |||
1574 | #: src/datacache/datacache.c:399 | ||
1575 | #, fuzzy | ||
1576 | msgid "# proximity search requests received" | ||
1577 | msgstr "# búsquedas de clientes recibidas" | ||
1578 | |||
1579 | #: src/datacache/plugin_datacache_heap.c:466 | ||
1577 | msgid "Heap datacache running\n" | 1580 | msgid "Heap datacache running\n" |
1578 | msgstr "Caché de datos de montículo (heap) ejecutándose\n" | 1581 | msgstr "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 |
1581 | msgid "Postgres datacache running\n" | 1584 | #: src/datacache/plugin_datacache_sqlite.c:86 |
1582 | msgstr "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 |
1603 | msgid "`%s' failed at %s:%d with error: %s\n" | 1602 | msgid "`%s' failed at %s:%d with error: %s\n" |
1604 | msgstr "«%s» falló en %s: %d con el error: %s\n" | 1603 | msgstr "«%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 |
1607 | msgid "Sqlite datacache running\n" | ||
1608 | msgstr "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" | |||
1615 | msgstr "" | 1610 | msgstr "" |
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 | ||
1620 | msgid "Failed to close statement %p: %d\n" | ||
1621 | msgstr "Se produjo un fallo al cerrar la sentencia %p: %d\n" | ||
1622 | |||
1623 | #: src/datacache/plugin_datacache_template.c:125 | ||
1624 | msgid "Template datacache running\n" | ||
1625 | msgstr "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" | |||
1874 | msgid "Plugin does not support get_keys function. Please fix!\n" | 1860 | msgid "Plugin does not support get_keys function. Please fix!\n" |
1875 | msgstr "El módulo no soporta la función «get_keys». Por favor, corríjalo.\n" | 1861 | msgstr "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 | ||
1866 | msgid "No `%s' specified for `%s' in configuration!\n" | ||
1867 | msgstr "¡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 |
1879 | msgid "# bytes used in file-sharing datastore `%s'" | 1871 | msgid "# 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 |
2162 | msgid "Failed to connect to transport service!\n" | 2154 | msgid "Failed to connect to transport service!\n" |
2163 | msgstr "¡Se produjo un fallo al conectar con el servicio de transporte!\n" | 2155 | msgstr "¡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 |
2167 | msgid "# GET requests from clients injected" | 2160 | msgid "# GET requests from clients injected" |
2168 | msgstr "# peticiones «GET» inyectadas de clientes" | 2161 | msgstr "# 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 |
2172 | msgid "# PUT requests received from clients" | 2166 | msgid "# PUT requests received from clients" |
2173 | msgstr "# peticiones «PUT» recibidas de clientes" | 2167 | msgstr "# 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 |
2177 | msgid "# GET requests received from clients" | 2172 | msgid "# GET requests received from clients" |
2178 | msgstr "# peticiones «GET» recibidas de clientes" | 2173 | msgstr "# 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 |
2182 | msgid "# GET STOP requests received from clients" | 2178 | msgid "# GET STOP requests received from clients" |
2183 | msgstr "# peticiones «GET STOP» recibidas de clientes" | 2179 | msgstr "# 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 |
2187 | msgid "# Key match, type mismatches in REPLY to CLIENT" | 2184 | msgid "# Key match, type mismatches in REPLY to CLIENT" |
2188 | msgstr "" | 2185 | msgstr "" |
@@ -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 |
2194 | msgid "# Duplicate REPLIES to CLIENT request dropped" | 2192 | msgid "# Duplicate REPLIES to CLIENT request dropped" |
2195 | msgstr "" | 2193 | msgstr "" |
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 |
2201 | msgid "Unsupported block type (%u) in request!\n" | 2200 | msgid "Unsupported block type (%u) in request!\n" |
2202 | msgstr "¡Tipo de bloque no soportado (%u) en la petición!\n" | 2201 | msgstr "¡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 |
2206 | msgid "# RESULTS queued for clients" | 2206 | msgid "# RESULTS queued for clients" |
2207 | msgstr "# Resultados (RESULTS) encolados para clientes" | 2207 | msgstr "# 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 |
2213 | msgid "# REPLIES ignored for CLIENTS (no match)" | 2215 | msgid "# 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 |
2219 | msgid "Could not pass reply to client, message too big!\n" | 2222 | msgid "Could not pass reply to client, message too big!\n" |
2220 | msgstr "" | 2223 | msgstr "" |
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 |
2226 | msgid "%s request received, but have no datacache!\n" | 2228 | msgid "%s request received, but have no datacache!\n" |
2227 | msgstr "¡Petición %s recibida, pero no tiene caché de datos!\n" | 2229 | msgstr "¡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 | ||
2231 | msgid "# ITEMS stored in datacache" | 2234 | msgid "# ITEMS stored in datacache" |
2232 | msgstr "# Elementos (ITEMS) almacenados en la caché de datos" | 2235 | msgstr "# 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 | ||
2236 | msgid "# Good RESULTS found in datacache" | 2240 | msgid "# Good RESULTS found in datacache" |
2237 | msgstr "# Buenos resultados (RESULTS) encontrados en la caché de datos" | 2241 | msgstr "# 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 | ||
2241 | msgid "# Duplicate RESULTS found in datacache" | 2246 | msgid "# Duplicate RESULTS found in datacache" |
2242 | msgstr "# Resultados (RESULTS) duplicados encontrados en la caché de datos" | 2247 | msgstr "# 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 | ||
2246 | msgid "# Invalid RESULTS found in datacache" | 2252 | msgid "# Invalid RESULTS found in datacache" |
2247 | msgstr "# Resultados (RESULTS) no válidos encontrados en la caché de datos" | 2253 | msgstr "# 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 | ||
2251 | msgid "# Irrelevant RESULTS found in datacache" | 2258 | msgid "# Irrelevant RESULTS found in datacache" |
2252 | msgstr "# Resultados (RESULTS) irrelevantes encontrados en la caché de datos" | 2259 | msgstr "# 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 | ||
2256 | msgid "# Unsupported RESULTS found in datacache" | 2264 | msgid "# Unsupported RESULTS found in datacache" |
2257 | msgstr "# Resultados (RESULTS) no soportados encontrados en la caché de datos" | 2265 | msgstr "# 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 |
2262 | msgid "Unsupported block type (%u) in local response!\n" | 2271 | msgid "Unsupported block type (%u) in local response!\n" |
2263 | msgstr "¡Tipo de bloque no soportado (%u) en respuesta local!\n" | 2272 | msgstr "¡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 | ||
2267 | msgid "# GET requests given to datacache" | 2277 | msgid "# GET requests given to datacache" |
2268 | msgstr "# Peticiones «GET» realizadas a la caché de datos" | 2278 | msgstr "# Peticiones «GET» realizadas a la caché de datos" |
2269 | 2279 | ||
@@ -2281,7 +2291,7 @@ msgid "# FIND PEER messages initiated" | |||
2281 | msgstr "# mensajes «FIND PEER» iniciados" | 2291 | msgstr "# 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 |
2285 | msgid "# Queued messages discarded (peer disconnected)" | 2295 | msgid "# Queued messages discarded (peer disconnected)" |
2286 | msgstr "# Mensajes encolados descartados (par desconectado)" | 2296 | msgstr "# Mensajes encolados descartados (par desconectado)" |
2287 | 2297 | ||
@@ -2393,7 +2403,8 @@ msgstr "# Resultados (RESULTS) P2P recibidos" | |||
2393 | msgid "# P2P RESULT bytes received" | 2403 | msgid "# P2P RESULT bytes received" |
2394 | msgstr "# Resultados (RESULTS) P2P recibidos" | 2404 | msgstr "# 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 | ||
2397 | msgid "# Network size estimates received" | 2408 | msgid "# Network size estimates received" |
2398 | msgstr "# Estimaciones del tamaño de red recibidas" | 2409 | msgstr "# Estimaciones del tamaño de red recibidas" |
2399 | 2410 | ||
@@ -2435,6 +2446,11 @@ msgstr "# Entradas añadidas a la tabla de encaminamiento" | |||
2435 | msgid "# DHT requests combined" | 2446 | msgid "# DHT requests combined" |
2436 | msgstr "# Peticiones a la DHT combinadas" | 2447 | msgstr "# Peticiones a la DHT combinadas" |
2437 | 2448 | ||
2449 | #: src/dht/gnunet-service-wdht_datacache.c:82 | ||
2450 | #, fuzzy | ||
2451 | msgid "PUT request received, but have no datacache!\n" | ||
2452 | msgstr "¡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 |
2440 | msgid "" | 2456 | msgid "" |
@@ -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 |
2511 | msgid "# Bytes received from other peers" | 2527 | msgid "# Bytes received from other peers" |
2512 | msgstr "# respuestas recibidas de otros pares" | 2528 | msgstr "# respuestas recibidas de otros pares" |
@@ -6121,64 +6137,64 @@ msgstr "Se produjo un fallo al iniciar el demonio: %s\n" | |||
6121 | msgid "Failed to get fragment!\n" | 6137 | msgid "Failed to get fragment!\n" |
6122 | msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n" | 6138 | msgstr "¡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 |
6126 | msgid "Failed to get message!\n" | 6142 | msgid "Failed to get message!\n" |
6127 | msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n" | 6143 | msgstr "¡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 |
6131 | msgid "Failed to get message fragment!\n" | 6147 | msgid "Failed to get message fragment!\n" |
6132 | msgstr "Se produjo un fallo al procesar un mensaje «HELLO»: mal formado\n" | 6148 | msgstr "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 |
6136 | msgid "Failed to get master counters!\n" | 6152 | msgid "Failed to get master counters!\n" |
6137 | msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n" | 6153 | msgstr "¡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 |
6141 | msgid "Tried to set invalid state variable name!\n" | 6157 | msgid "Tried to set invalid state variable name!\n" |
6142 | msgstr "" | 6158 | msgstr "" |
6143 | 6159 | ||
6144 | #: src/psycstore/gnunet-service-psycstore.c:513 | 6160 | #: src/psycstore/gnunet-service-psycstore.c:528 |
6145 | #, fuzzy | 6161 | #, fuzzy |
6146 | msgid "Failed to begin modifying state!\n" | 6162 | msgid "Failed to begin modifying state!\n" |
6147 | msgstr "Se produjo un fallo al cargar el estado: %s\n" | 6163 | msgstr "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 |
6151 | msgid "Unknown operator: %c\n" | 6167 | msgid "Unknown operator: %c\n" |
6152 | msgstr "Operación desconocida '%s'\n" | 6168 | msgstr "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 |
6156 | msgid "Failed to end modifying state!\n" | 6172 | msgid "Failed to end modifying state!\n" |
6157 | msgstr "Se produjo un fallo al cargar el estado: %s\n" | 6173 | msgstr "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 |
6161 | msgid "Failed to begin synchronizing state!\n" | 6177 | msgid "Failed to begin synchronizing state!\n" |
6162 | msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n" | 6178 | msgstr "¡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 |
6166 | msgid "Failed to end synchronizing state!\n" | 6182 | msgid "Failed to end synchronizing state!\n" |
6167 | msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n" | 6183 | msgstr "¡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 |
6172 | msgid "Failed to reset state!\n" | 6188 | msgid "Failed to reset state!\n" |
6173 | msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n" | 6189 | msgstr "¡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 |
6177 | msgid "Tried to get invalid state variable name!\n" | 6193 | msgid "Tried to get invalid state variable name!\n" |
6178 | msgstr "" | 6194 | msgstr "" |
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 |
6183 | msgid "Failed to get state variable!\n" | 6199 | msgid "Failed to get state variable!\n" |
6184 | msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n" | 6200 | msgstr "¡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" | |||
6188 | msgid "`%s' failed at %s:%d with error: %s (%d)\n" | 6204 | msgid "`%s' failed at %s:%d with error: %s (%d)\n" |
6189 | msgstr "«%s» falló en %s: %d con el error: %s\n" | 6205 | msgstr "«%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 |
6193 | msgid "SQLite database running\n" | 6209 | msgid "SQLite database running\n" |
6194 | msgstr "Base de datos sqlite ejecutándose\n" | 6210 | msgstr "Base de datos sqlite ejecutándose\n" |
@@ -8293,7 +8309,7 @@ msgid "Found %u addresses to report to NAT service\n" | |||
8293 | msgstr "Encontradas %u direcciones para comunicar al servicio NAT\n" | 8309 | msgstr "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 |
8297 | msgid "Disabling IPv6 since it is not supported on this system!\n" | 8313 | msgid "Disabling IPv6 since it is not supported on this system!\n" |
8298 | msgstr "¡Deshabilitando IPv6 ya que no está soportado en este sistema!\n" | 8314 | msgstr "¡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 |
8553 | msgid "Failed to bind UDP socket to %s: %s\n" | 8569 | msgid "Failed to bind UDP socket to %s: %s\n" |
8554 | msgstr "Se produjo un fallo al abrir los «sockets» UDP\n" | 8570 | msgstr "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 |
8558 | msgid "Disabling IPv4 since it is not supported on this system!\n" | 8574 | msgid "Disabling IPv4 since it is not supported on this system!\n" |
8559 | msgstr "¡Deshabilitando IPv6 ya que no está soportado en este sistema!\n" | 8575 | msgstr "¡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 |
8562 | msgid "Failed to open UDP sockets\n" | 8578 | msgid "Failed to open UDP sockets\n" |
8563 | msgstr "Se produjo un fallo al abrir los «sockets» UDP\n" | 8579 | msgstr "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 |
8567 | msgid "must be in [0,65535]" | 8583 | msgid "must be in [0,65535]" |
8568 | msgstr "" | 8584 | msgstr "" |
8569 | 8585 | ||
8570 | #: src/transport/plugin_transport_udp.c:3637 | 8586 | #: src/transport/plugin_transport_udp.c:3640 |
8571 | #, fuzzy | 8587 | #, fuzzy |
8572 | msgid "must be valid IPv4 address" | 8588 | msgid "must be valid IPv4 address" |
8573 | msgstr "«%s» no es una dirección IP válida.\n" | 8589 | msgstr "«%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 |
8577 | msgid "must be valid IPv6 address" | 8593 | msgid "must be valid IPv6 address" |
8578 | msgstr "«%s» no es una dirección IP válida.\n" | 8594 | msgstr "«%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 |
8582 | msgid "Failed to create UDP network sockets\n" | 8598 | msgid "Failed to create UDP network sockets\n" |
8583 | msgstr "Se produjo un fallo al crear una nueva firma" | 8599 | msgstr "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" | |||
8912 | msgid "libgcrypt has not the expected version (version %s is required).\n" | 8928 | msgid "libgcrypt has not the expected version (version %s is required).\n" |
8913 | msgstr "libgcrypt no tiene la versión esperada (se necesita la versión %s).\n" | 8929 | msgstr "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 |
8917 | msgid "RSA signature verification failed at %s:%d: %s\n" | 8933 | msgid "RSA signature verification failed at %s:%d: %s\n" |
8918 | msgstr "La verificación de la firma RSA fallo en %s:%d: %s\n" | 8934 | msgstr "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" | |||
9741 | msgid "Setup tunnels via VPN." | 9757 | msgid "Setup tunnels via VPN." |
9742 | msgstr "Configurar túneles vía VPN." | 9758 | msgstr "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 |
9747 | msgid "Assertion failed at %s:%d.\n" | 9763 | msgid "Assertion failed at %s:%d.\n" |
9748 | msgstr "Aserción fallida en %s:%d.\n" | 9764 | msgstr "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 |
9752 | msgid "External protocol violation detected at %s:%d.\n" | 9768 | msgid "External protocol violation detected at %s:%d.\n" |
9753 | msgstr "Violación externa del protocolo detectada en %s:%d.\n" | 9769 | msgstr "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 |
9757 | msgid "`%s' failed on file `%s' at %s:%d with error: %s\n" | 9773 | msgid "`%s' failed on file `%s' at %s:%d with error: %s\n" |
9758 | msgstr "«%s» falló en el fichero «%s» en %s:%d con el error: %s\n" | 9774 | msgstr "«%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 | ||
@@ -7,7 +7,7 @@ msgid "" | |||
7 | msgstr "" | 7 | msgstr "" |
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 "" | |||
630 | msgid "Invalid target `%s'\n" | 630 | msgid "Invalid target `%s'\n" |
631 | msgstr "" | 631 | msgstr "" |
632 | 632 | ||
633 | #: src/cadet/gnunet-cadet.c:626 | 633 | #: src/cadet/gnunet-cadet.c:643 |
634 | #, c-format | 634 | #, c-format |
635 | msgid "Invalid peer ID `%s'\n" | 635 | msgid "Invalid peer ID `%s'\n" |
636 | msgstr "" | 636 | msgstr "" |
637 | 637 | ||
638 | #: src/cadet/gnunet-cadet.c:669 | 638 | #: src/cadet/gnunet-cadet.c:686 |
639 | #, c-format | 639 | #, c-format |
640 | msgid "Invalid tunnel owner `%s'\n" | 640 | msgid "Invalid tunnel owner `%s'\n" |
641 | msgstr "" | 641 | msgstr "" |
642 | 642 | ||
643 | #: src/cadet/gnunet-cadet.c:735 | 643 | #: src/cadet/gnunet-cadet.c:752 |
644 | msgid "You must NOT give a TARGETwhen using 'request all' options\n" | 644 | msgid "You must NOT give a TARGETwhen using 'request all' options\n" |
645 | msgstr "" | 645 | msgstr "" |
646 | 646 | ||
647 | #: src/cadet/gnunet-cadet.c:832 | 647 | #: src/cadet/gnunet-cadet.c:849 |
648 | msgid "provide information about a particular connection" | 648 | msgid "provide information about a particular connection" |
649 | msgstr "" | 649 | msgstr "" |
650 | 650 | ||
651 | #: src/cadet/gnunet-cadet.c:835 | 651 | #: src/cadet/gnunet-cadet.c:852 |
652 | msgid "activate echo mode" | 652 | msgid "activate echo mode" |
653 | msgstr "" | 653 | msgstr "" |
654 | 654 | ||
655 | #: src/cadet/gnunet-cadet.c:838 | 655 | #: src/cadet/gnunet-cadet.c:855 |
656 | msgid "dump debug information to STDERR" | 656 | msgid "dump debug information to STDERR" |
657 | msgstr "" | 657 | msgstr "" |
658 | 658 | ||
659 | #: src/cadet/gnunet-cadet.c:844 | 659 | #: src/cadet/gnunet-cadet.c:861 |
660 | msgid "port to listen to (default; 0)" | 660 | msgid "port to listen to (default; 0)" |
661 | msgstr "" | 661 | msgstr "" |
662 | 662 | ||
663 | #: src/cadet/gnunet-cadet.c:847 | 663 | #: src/cadet/gnunet-cadet.c:864 |
664 | msgid "provide information about a patricular peer" | 664 | msgid "provide information about a patricular peer" |
665 | msgstr "" | 665 | msgstr "" |
666 | 666 | ||
667 | #: src/cadet/gnunet-cadet.c:850 | 667 | #: src/cadet/gnunet-cadet.c:867 |
668 | msgid "provide information about all peers" | 668 | msgid "provide information about all peers" |
669 | msgstr "" | 669 | msgstr "" |
670 | 670 | ||
671 | #: src/cadet/gnunet-cadet.c:853 | 671 | #: src/cadet/gnunet-cadet.c:870 |
672 | msgid "provide information about a particular tunnel" | 672 | msgid "provide information about a particular tunnel" |
673 | msgstr "" | 673 | msgstr "" |
674 | 674 | ||
675 | #: src/cadet/gnunet-cadet.c:856 | 675 | #: src/cadet/gnunet-cadet.c:873 |
676 | msgid "provide information about all tunnels" | 676 | msgid "provide information about all tunnels" |
677 | msgstr "" | 677 | msgstr "" |
678 | 678 | ||
679 | #: src/cadet/gnunet-service-cadet_peer.c:507 | 679 | #: src/cadet/gnunet-service-cadet_peer.c:514 |
680 | msgid "Wrong CORE service\n" | 680 | msgid "Wrong CORE service\n" |
681 | msgstr "" | 681 | msgstr "" |
682 | 682 | ||
@@ -1420,50 +1420,47 @@ msgstr "" | |||
1420 | msgid "# updates to my type map" | 1420 | msgid "# updates to my type map" |
1421 | msgstr "" | 1421 | msgstr "" |
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 |
1425 | msgid "# bytes stored" | 1425 | msgid "# bytes stored" |
1426 | msgstr "" | 1426 | msgstr "" |
1427 | 1427 | ||
1428 | #: src/datacache/datacache.c:117 src/datacache/datacache.c:268 | 1428 | #: src/datacache/datacache.c:123 src/datacache/datacache.c:298 |
1429 | msgid "# items stored" | 1429 | msgid "# items stored" |
1430 | msgstr "" | 1430 | msgstr "" |
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 | ||
1436 | msgid "No `%s' specified for `%s' in configuration!\n" | ||
1437 | msgstr "" | ||
1438 | |||
1439 | #: src/datacache/datacache.c:184 | ||
1440 | #, c-format | 1433 | #, c-format |
1441 | msgid "Loading `%s' datacache plugin\n" | 1434 | msgid "Loading `%s' datacache plugin\n" |
1442 | msgstr "" | 1435 | msgstr "" |
1443 | 1436 | ||
1444 | #: src/datacache/datacache.c:192 | 1437 | #: src/datacache/datacache.c:213 |
1445 | #, c-format | 1438 | #, c-format |
1446 | msgid "Failed to load datacache plugin for `%s'\n" | 1439 | msgid "Failed to load datacache plugin for `%s'\n" |
1447 | msgstr "" | 1440 | msgstr "" |
1448 | 1441 | ||
1449 | #: src/datacache/datacache.c:295 | 1442 | #: src/datacache/datacache.c:329 |
1450 | msgid "# requests received" | 1443 | msgid "# requests received" |
1451 | msgstr "" | 1444 | msgstr "" |
1452 | 1445 | ||
1453 | #: src/datacache/datacache.c:304 | 1446 | #: src/datacache/datacache.c:339 |
1454 | msgid "# requests filtered by bloom filter" | 1447 | msgid "# requests filtered by bloom filter" |
1455 | msgstr "" | 1448 | msgstr "" |
1456 | 1449 | ||
1457 | #: src/datacache/plugin_datacache_heap.c:406 | 1450 | #: src/datacache/datacache.c:367 |
1458 | msgid "Heap datacache running\n" | 1451 | msgid "# requests for random value received" |
1459 | msgstr "" | 1452 | msgstr "" |
1460 | 1453 | ||
1461 | #: src/datacache/plugin_datacache_postgres.c:391 | 1454 | #: src/datacache/datacache.c:399 |
1462 | msgid "Postgres datacache running\n" | 1455 | msgid "# proximity search requests received" |
1463 | msgstr "" | 1456 | msgstr "" |
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 | 1459 | msgid "Heap datacache running\n" |
1460 | msgstr "" | ||
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 |
1484 | msgid "`%s' failed at %s:%d with error: %s\n" | 1481 | msgid "`%s' failed at %s:%d with error: %s\n" |
1485 | msgstr "" | 1482 | msgstr "" |
1486 | 1483 | ||
1487 | #: src/datacache/plugin_datacache_sqlite.c:449 | 1484 | #: src/datacache/plugin_datacache_sqlite.c:749 |
1488 | msgid "Sqlite datacache running\n" | ||
1489 | msgstr "" | ||
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 |
1495 | msgid "Tried to close sqlite without finalizing all prepared statements.\n" | 1488 | msgid "Tried to close sqlite without finalizing all prepared statements.\n" |
1496 | msgstr "" | 1489 | msgstr "" |
1497 | 1490 | ||
1498 | #: src/datacache/plugin_datacache_sqlite.c:490 | ||
1499 | #, c-format | ||
1500 | msgid "Failed to close statement %p: %d\n" | ||
1501 | msgstr "" | ||
1502 | |||
1503 | #: src/datacache/plugin_datacache_template.c:125 | ||
1504 | msgid "Template datacache running\n" | ||
1505 | msgstr "" | ||
1506 | |||
1507 | #: src/datastore/datastore_api.c:310 | 1491 | #: src/datastore/datastore_api.c:310 |
1508 | msgid "Failed to transmit request to drop database.\n" | 1492 | msgid "Failed to transmit request to drop database.\n" |
1509 | msgstr "" | 1493 | msgstr "" |
@@ -1736,6 +1720,12 @@ msgstr "" | |||
1736 | msgid "Plugin does not support get_keys function. Please fix!\n" | 1720 | msgid "Plugin does not support get_keys function. Please fix!\n" |
1737 | msgstr "" | 1721 | msgstr "" |
1738 | 1722 | ||
1723 | #: src/datastore/gnunet-service-datastore.c:1598 | ||
1724 | #: src/datastore/gnunet-service-datastore.c:1609 | ||
1725 | #, c-format | ||
1726 | msgid "No `%s' specified for `%s' in configuration!\n" | ||
1727 | msgstr "" | ||
1728 | |||
1739 | #: src/datastore/gnunet-service-datastore.c:1603 | 1729 | #: src/datastore/gnunet-service-datastore.c:1603 |
1740 | #, c-format | 1730 | #, c-format |
1741 | msgid "# bytes used in file-sharing datastore `%s'" | 1731 | msgid "# bytes used in file-sharing datastore `%s'" |
@@ -2003,107 +1993,125 @@ msgstr "" | |||
2003 | msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY." | 1993 | msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY." |
2004 | msgstr "" | 1994 | msgstr "" |
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 |
2007 | msgid "Failed to connect to transport service!\n" | 1997 | msgid "Failed to connect to transport service!\n" |
2008 | msgstr "" | 1998 | msgstr "" |
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 |
2012 | msgid "# GET requests from clients injected" | 2003 | msgid "# GET requests from clients injected" |
2013 | msgstr "" | 2004 | msgstr "" |
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 |
2017 | msgid "# PUT requests received from clients" | 2009 | msgid "# PUT requests received from clients" |
2018 | msgstr "" | 2010 | msgstr "" |
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 |
2022 | msgid "# GET requests received from clients" | 2015 | msgid "# GET requests received from clients" |
2023 | msgstr "" | 2016 | msgstr "" |
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 |
2027 | msgid "# GET STOP requests received from clients" | 2021 | msgid "# GET STOP requests received from clients" |
2028 | msgstr "" | 2022 | msgstr "" |
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 |
2032 | msgid "# Key match, type mismatches in REPLY to CLIENT" | 2027 | msgid "# Key match, type mismatches in REPLY to CLIENT" |
2033 | msgstr "" | 2028 | msgstr "" |
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 |
2037 | msgid "# Duplicate REPLIES to CLIENT request dropped" | 2033 | msgid "# Duplicate REPLIES to CLIENT request dropped" |
2038 | msgstr "" | 2034 | msgstr "" |
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 |
2043 | msgid "Unsupported block type (%u) in request!\n" | 2040 | msgid "Unsupported block type (%u) in request!\n" |
2044 | msgstr "" | 2041 | msgstr "" |
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 |
2048 | msgid "# RESULTS queued for clients" | 2046 | msgid "# RESULTS queued for clients" |
2049 | msgstr "" | 2047 | msgstr "" |
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 |
2055 | msgid "# REPLIES ignored for CLIENTS (no match)" | 2055 | msgid "# REPLIES ignored for CLIENTS (no match)" |
2056 | msgstr "" | 2056 | msgstr "" |
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 |
2060 | msgid "Could not pass reply to client, message too big!\n" | 2061 | msgid "Could not pass reply to client, message too big!\n" |
2061 | msgstr "" | 2062 | msgstr "" |
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 |
2066 | msgid "%s request received, but have no datacache!\n" | 2066 | msgid "%s request received, but have no datacache!\n" |
2067 | msgstr "" | 2067 | msgstr "" |
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 | ||
2071 | msgid "# ITEMS stored in datacache" | 2072 | msgid "# ITEMS stored in datacache" |
2072 | msgstr "" | 2073 | msgstr "" |
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 | ||
2076 | msgid "# Good RESULTS found in datacache" | 2078 | msgid "# Good RESULTS found in datacache" |
2077 | msgstr "" | 2079 | msgstr "" |
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 | ||
2081 | msgid "# Duplicate RESULTS found in datacache" | 2084 | msgid "# Duplicate RESULTS found in datacache" |
2082 | msgstr "" | 2085 | msgstr "" |
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 | ||
2086 | msgid "# Invalid RESULTS found in datacache" | 2090 | msgid "# Invalid RESULTS found in datacache" |
2087 | msgstr "" | 2091 | msgstr "" |
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 | ||
2091 | msgid "# Irrelevant RESULTS found in datacache" | 2096 | msgid "# Irrelevant RESULTS found in datacache" |
2092 | msgstr "" | 2097 | msgstr "" |
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 | ||
2096 | msgid "# Unsupported RESULTS found in datacache" | 2102 | msgid "# Unsupported RESULTS found in datacache" |
2097 | msgstr "" | 2103 | msgstr "" |
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 |
2102 | msgid "Unsupported block type (%u) in local response!\n" | 2109 | msgid "Unsupported block type (%u) in local response!\n" |
2103 | msgstr "" | 2110 | msgstr "" |
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 | ||
2107 | msgid "# GET requests given to datacache" | 2115 | msgid "# GET requests given to datacache" |
2108 | msgstr "" | 2116 | msgstr "" |
2109 | 2117 | ||
@@ -2121,7 +2129,7 @@ msgid "# FIND PEER messages initiated" | |||
2121 | msgstr "" | 2129 | msgstr "" |
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 |
2125 | msgid "# Queued messages discarded (peer disconnected)" | 2133 | msgid "# Queued messages discarded (peer disconnected)" |
2126 | msgstr "" | 2134 | msgstr "" |
2127 | 2135 | ||
@@ -2228,7 +2236,8 @@ msgstr "" | |||
2228 | msgid "# P2P RESULT bytes received" | 2236 | msgid "# P2P RESULT bytes received" |
2229 | msgstr "" | 2237 | msgstr "" |
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 | ||
2232 | msgid "# Network size estimates received" | 2241 | msgid "# Network size estimates received" |
2233 | msgstr "" | 2242 | msgstr "" |
2234 | 2243 | ||
@@ -2264,6 +2273,10 @@ msgstr "" | |||
2264 | msgid "# DHT requests combined" | 2273 | msgid "# DHT requests combined" |
2265 | msgstr "" | 2274 | msgstr "" |
2266 | 2275 | ||
2276 | #: src/dht/gnunet-service-wdht_datacache.c:82 | ||
2277 | msgid "PUT request received, but have no datacache!\n" | ||
2278 | msgstr "" | ||
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 |
2269 | msgid "" | 2282 | msgid "" |
@@ -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 |
2339 | msgid "# Bytes received from other peers" | 2352 | msgid "# Bytes received from other peers" |
2340 | msgstr "" | 2353 | msgstr "" |
2341 | 2354 | ||
@@ -5675,56 +5688,56 @@ msgstr "" | |||
5675 | msgid "Failed to get fragment!\n" | 5688 | msgid "Failed to get fragment!\n" |
5676 | msgstr "" | 5689 | msgstr "" |
5677 | 5690 | ||
5678 | #: src/psycstore/gnunet-service-psycstore.c:402 | 5691 | #: src/psycstore/gnunet-service-psycstore.c:417 |
5679 | msgid "Failed to get message!\n" | 5692 | msgid "Failed to get message!\n" |
5680 | msgstr "" | 5693 | msgstr "" |
5681 | 5694 | ||
5682 | #: src/psycstore/gnunet-service-psycstore.c:433 | 5695 | #: src/psycstore/gnunet-service-psycstore.c:448 |
5683 | msgid "Failed to get message fragment!\n" | 5696 | msgid "Failed to get message fragment!\n" |
5684 | msgstr "" | 5697 | msgstr "" |
5685 | 5698 | ||
5686 | #: src/psycstore/gnunet-service-psycstore.c:461 | 5699 | #: src/psycstore/gnunet-service-psycstore.c:476 |
5687 | msgid "Failed to get master counters!\n" | 5700 | msgid "Failed to get master counters!\n" |
5688 | msgstr "" | 5701 | msgstr "" |
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 |
5692 | msgid "Tried to set invalid state variable name!\n" | 5705 | msgid "Tried to set invalid state variable name!\n" |
5693 | msgstr "" | 5706 | msgstr "" |
5694 | 5707 | ||
5695 | #: src/psycstore/gnunet-service-psycstore.c:513 | 5708 | #: src/psycstore/gnunet-service-psycstore.c:528 |
5696 | msgid "Failed to begin modifying state!\n" | 5709 | msgid "Failed to begin modifying state!\n" |
5697 | msgstr "" | 5710 | msgstr "" |
5698 | 5711 | ||
5699 | #: src/psycstore/gnunet-service-psycstore.c:536 | 5712 | #: src/psycstore/gnunet-service-psycstore.c:551 |
5700 | #, c-format | 5713 | #, c-format |
5701 | msgid "Unknown operator: %c\n" | 5714 | msgid "Unknown operator: %c\n" |
5702 | msgstr "" | 5715 | msgstr "" |
5703 | 5716 | ||
5704 | #: src/psycstore/gnunet-service-psycstore.c:546 | 5717 | #: src/psycstore/gnunet-service-psycstore.c:561 |
5705 | msgid "Failed to end modifying state!\n" | 5718 | msgid "Failed to end modifying state!\n" |
5706 | msgstr "" | 5719 | msgstr "" |
5707 | 5720 | ||
5708 | #: src/psycstore/gnunet-service-psycstore.c:584 | 5721 | #: src/psycstore/gnunet-service-psycstore.c:599 |
5709 | msgid "Failed to begin synchronizing state!\n" | 5722 | msgid "Failed to begin synchronizing state!\n" |
5710 | msgstr "" | 5723 | msgstr "" |
5711 | 5724 | ||
5712 | #: src/psycstore/gnunet-service-psycstore.c:600 | 5725 | #: src/psycstore/gnunet-service-psycstore.c:615 |
5713 | msgid "Failed to end synchronizing state!\n" | 5726 | msgid "Failed to end synchronizing state!\n" |
5714 | msgstr "" | 5727 | msgstr "" |
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 |
5718 | msgid "Failed to reset state!\n" | 5731 | msgid "Failed to reset state!\n" |
5719 | msgstr "" | 5732 | msgstr "" |
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 |
5723 | msgid "Tried to get invalid state variable name!\n" | 5736 | msgid "Tried to get invalid state variable name!\n" |
5724 | msgstr "" | 5737 | msgstr "" |
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 |
5728 | msgid "Failed to get state variable!\n" | 5741 | msgid "Failed to get state variable!\n" |
5729 | msgstr "" | 5742 | msgstr "" |
5730 | 5743 | ||
@@ -5733,7 +5746,7 @@ msgstr "" | |||
5733 | msgid "`%s' failed at %s:%d with error: %s (%d)\n" | 5746 | msgid "`%s' failed at %s:%d with error: %s (%d)\n" |
5734 | msgstr "" | 5747 | msgstr "" |
5735 | 5748 | ||
5736 | #: src/psycstore/plugin_psycstore_sqlite.c:1932 | 5749 | #: src/psycstore/plugin_psycstore_sqlite.c:1936 |
5737 | msgid "SQLite database running\n" | 5750 | msgid "SQLite database running\n" |
5738 | msgstr "" | 5751 | msgstr "" |
5739 | 5752 | ||
@@ -7637,7 +7650,7 @@ msgid "Found %u addresses to report to NAT service\n" | |||
7637 | msgstr "" | 7650 | msgstr "" |
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 |
7641 | msgid "Disabling IPv6 since it is not supported on this system!\n" | 7654 | msgid "Disabling IPv6 since it is not supported on this system!\n" |
7642 | msgstr "" | 7655 | msgstr "" |
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" |
7871 | msgstr "" | 7884 | msgstr "" |
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 |
7876 | msgid "Failed to bind UDP socket to %s: %s\n" | 7889 | msgid "Failed to bind UDP socket to %s: %s\n" |
7877 | msgstr "" | 7890 | msgstr "" |
7878 | 7891 | ||
7879 | #: src/transport/plugin_transport_udp.c:3429 | 7892 | #: src/transport/plugin_transport_udp.c:3432 |
7880 | msgid "Disabling IPv4 since it is not supported on this system!\n" | 7893 | msgid "Disabling IPv4 since it is not supported on this system!\n" |
7881 | msgstr "" | 7894 | msgstr "" |
7882 | 7895 | ||
7883 | #: src/transport/plugin_transport_udp.c:3520 | 7896 | #: src/transport/plugin_transport_udp.c:3523 |
7884 | msgid "Failed to open UDP sockets\n" | 7897 | msgid "Failed to open UDP sockets\n" |
7885 | msgstr "" | 7898 | msgstr "" |
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 |
7889 | msgid "must be in [0,65535]" | 7902 | msgid "must be in [0,65535]" |
7890 | msgstr "" | 7903 | msgstr "" |
7891 | 7904 | ||
7892 | #: src/transport/plugin_transport_udp.c:3637 | 7905 | #: src/transport/plugin_transport_udp.c:3640 |
7893 | msgid "must be valid IPv4 address" | 7906 | msgid "must be valid IPv4 address" |
7894 | msgstr "" | 7907 | msgstr "" |
7895 | 7908 | ||
7896 | #: src/transport/plugin_transport_udp.c:3664 | 7909 | #: src/transport/plugin_transport_udp.c:3667 |
7897 | msgid "must be valid IPv6 address" | 7910 | msgid "must be valid IPv6 address" |
7898 | msgstr "" | 7911 | msgstr "" |
7899 | 7912 | ||
7900 | #: src/transport/plugin_transport_udp.c:3730 | 7913 | #: src/transport/plugin_transport_udp.c:3733 |
7901 | msgid "Failed to create UDP network sockets\n" | 7914 | msgid "Failed to create UDP network sockets\n" |
7902 | msgstr "" | 7915 | msgstr "" |
7903 | 7916 | ||
@@ -8198,7 +8211,7 @@ msgstr "" | |||
8198 | msgid "libgcrypt has not the expected version (version %s is required).\n" | 8211 | msgid "libgcrypt has not the expected version (version %s is required).\n" |
8199 | msgstr "" | 8212 | msgstr "" |
8200 | 8213 | ||
8201 | #: src/util/crypto_rsa.c:825 | 8214 | #: src/util/crypto_rsa.c:891 |
8202 | #, c-format | 8215 | #, c-format |
8203 | msgid "RSA signature verification failed at %s:%d: %s\n" | 8216 | msgid "RSA signature verification failed at %s:%d: %s\n" |
8204 | msgstr "" | 8217 | msgstr "" |
@@ -8978,18 +8991,18 @@ msgstr "" | |||
8978 | msgid "Setup tunnels via VPN." | 8991 | msgid "Setup tunnels via VPN." |
8979 | msgstr "" | 8992 | msgstr "" |
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 |
8984 | msgid "Assertion failed at %s:%d.\n" | 8997 | msgid "Assertion failed at %s:%d.\n" |
8985 | msgstr "" | 8998 | msgstr "" |
8986 | 8999 | ||
8987 | #: src/include/gnunet_common.h:617 | 9000 | #: src/include/gnunet_common.h:658 |
8988 | #, c-format | 9001 | #, c-format |
8989 | msgid "External protocol violation detected at %s:%d.\n" | 9002 | msgid "External protocol violation detected at %s:%d.\n" |
8990 | msgstr "" | 9003 | msgstr "" |
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 |
8994 | msgid "`%s' failed on file `%s' at %s:%d with error: %s\n" | 9007 | msgid "`%s' failed on file `%s' at %s:%d with error: %s\n" |
8995 | msgstr "" | 9008 | msgstr "" |
@@ -7,7 +7,7 @@ msgid "" | |||
7 | msgstr "" | 7 | msgstr "" |
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." | |||
648 | msgid "Invalid target `%s'\n" | 648 | msgid "Invalid target `%s'\n" |
649 | msgstr "Ogiltigt argument: \"%s\"\n" | 649 | msgstr "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 |
653 | msgid "Invalid peer ID `%s'\n" | 653 | msgid "Invalid peer ID `%s'\n" |
654 | msgstr "Ogiltiga argument: " | 654 | msgstr "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 |
658 | msgid "Invalid tunnel owner `%s'\n" | 658 | msgid "Invalid tunnel owner `%s'\n" |
659 | msgstr "Ogiltigt format för IP: \"%s\"\n" | 659 | msgstr "Ogiltigt format för IP: \"%s\"\n" |
660 | 660 | ||
661 | #: src/cadet/gnunet-cadet.c:735 | 661 | #: src/cadet/gnunet-cadet.c:752 |
662 | msgid "You must NOT give a TARGETwhen using 'request all' options\n" | 662 | msgid "You must NOT give a TARGETwhen using 'request all' options\n" |
663 | msgstr "" | 663 | msgstr "" |
664 | 664 | ||
665 | #: src/cadet/gnunet-cadet.c:832 | 665 | #: src/cadet/gnunet-cadet.c:849 |
666 | #, fuzzy | 666 | #, fuzzy |
667 | msgid "provide information about a particular connection" | 667 | msgid "provide information about a particular connection" |
668 | msgstr "Skriv ut information om GNUnets motparter." | 668 | msgstr "Skriv ut information om GNUnets motparter." |
669 | 669 | ||
670 | #: src/cadet/gnunet-cadet.c:835 | 670 | #: src/cadet/gnunet-cadet.c:852 |
671 | msgid "activate echo mode" | 671 | msgid "activate echo mode" |
672 | msgstr "" | 672 | msgstr "" |
673 | 673 | ||
674 | #: src/cadet/gnunet-cadet.c:838 | 674 | #: src/cadet/gnunet-cadet.c:855 |
675 | msgid "dump debug information to STDERR" | 675 | msgid "dump debug information to STDERR" |
676 | msgstr "" | 676 | msgstr "" |
677 | 677 | ||
678 | #: src/cadet/gnunet-cadet.c:844 | 678 | #: src/cadet/gnunet-cadet.c:861 |
679 | msgid "port to listen to (default; 0)" | 679 | msgid "port to listen to (default; 0)" |
680 | msgstr "" | 680 | msgstr "" |
681 | 681 | ||
682 | #: src/cadet/gnunet-cadet.c:847 | 682 | #: src/cadet/gnunet-cadet.c:864 |
683 | #, fuzzy | 683 | #, fuzzy |
684 | msgid "provide information about a patricular peer" | 684 | msgid "provide information about a patricular peer" |
685 | msgstr "Skriv ut information om GNUnets motparter." | 685 | msgstr "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 |
689 | msgid "provide information about all peers" | 689 | msgid "provide information about all peers" |
690 | msgstr "Skriv ut information om GNUnets motparter." | 690 | msgstr "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 |
694 | msgid "provide information about a particular tunnel" | 694 | msgid "provide information about a particular tunnel" |
695 | msgstr "Skriv ut information om GNUnets motparter." | 695 | msgstr "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 |
699 | msgid "provide information about all tunnels" | 699 | msgid "provide information about all tunnels" |
700 | msgstr "Skriv ut information om GNUnets motparter." | 700 | msgstr "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 |
703 | msgid "Wrong CORE service\n" | 703 | msgid "Wrong CORE service\n" |
704 | msgstr "" | 704 | msgstr "" |
705 | 705 | ||
@@ -1497,53 +1497,52 @@ msgstr "# krypterade PONG-meddelanden mottagna" | |||
1497 | msgid "# updates to my type map" | 1497 | msgid "# updates to my type map" |
1498 | msgstr "" | 1498 | msgstr "" |
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 |
1503 | msgid "# bytes stored" | 1503 | msgid "# bytes stored" |
1504 | msgstr "# byte krypterade" | 1504 | msgstr "# 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 |
1508 | msgid "# items stored" | 1508 | msgid "# items stored" |
1509 | msgstr "# byte krypterade" | 1509 | msgstr "# 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 | ||
1515 | msgid "No `%s' specified for `%s' in configuration!\n" | ||
1516 | msgstr "Inga applikationer definierade i konfiguration!\n" | ||
1517 | |||
1518 | #: src/datacache/datacache.c:184 | ||
1519 | #, c-format | 1512 | #, c-format |
1520 | msgid "Loading `%s' datacache plugin\n" | 1513 | msgid "Loading `%s' datacache plugin\n" |
1521 | msgstr "" | 1514 | msgstr "" |
1522 | 1515 | ||
1523 | #: src/datacache/datacache.c:192 | 1516 | #: src/datacache/datacache.c:213 |
1524 | #, fuzzy, c-format | 1517 | #, fuzzy, c-format |
1525 | msgid "Failed to load datacache plugin for `%s'\n" | 1518 | msgid "Failed to load datacache plugin for `%s'\n" |
1526 | msgstr "Misslyckades att läsa kompislista från \"%s\"\n" | 1519 | msgstr "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 |
1530 | msgid "# requests received" | 1523 | msgid "# requests received" |
1531 | msgstr "# byte mottogs via TCP" | 1524 | msgstr "# byte mottogs via TCP" |
1532 | 1525 | ||
1533 | #: src/datacache/datacache.c:304 | 1526 | #: src/datacache/datacache.c:339 |
1534 | msgid "# requests filtered by bloom filter" | 1527 | msgid "# requests filtered by bloom filter" |
1535 | msgstr "" | 1528 | msgstr "" |
1536 | 1529 | ||
1537 | #: src/datacache/plugin_datacache_heap.c:406 | 1530 | #: src/datacache/datacache.c:367 |
1538 | msgid "Heap datacache running\n" | 1531 | #, fuzzy |
1539 | msgstr "" | 1532 | msgid "# requests for random value received" |
1533 | msgstr "# byte mottogs via TCP" | ||
1540 | 1534 | ||
1541 | #: src/datacache/plugin_datacache_postgres.c:391 | 1535 | #: src/datacache/datacache.c:399 |
1542 | msgid "Postgres datacache running\n" | 1536 | #, fuzzy |
1537 | msgid "# proximity search requests received" | ||
1538 | msgstr "# klartext PONG-meddelanden mottagna" | ||
1539 | |||
1540 | #: src/datacache/plugin_datacache_heap.c:466 | ||
1541 | msgid "Heap datacache running\n" | ||
1543 | msgstr "" | 1542 | msgstr "" |
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 |
1564 | msgid "`%s' failed at %s:%d with error: %s\n" | 1563 | msgid "`%s' failed at %s:%d with error: %s\n" |
1565 | msgstr "\"%s\" misslyckades vid %s:%d med fel: %s\n" | 1564 | msgstr "\"%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 |
1568 | msgid "Sqlite datacache running\n" | ||
1569 | msgstr "" | ||
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 |
1575 | msgid "Tried to close sqlite without finalizing all prepared statements.\n" | 1570 | msgid "Tried to close sqlite without finalizing all prepared statements.\n" |
1576 | msgstr "" | 1571 | msgstr "" |
1577 | 1572 | ||
1578 | #: src/datacache/plugin_datacache_sqlite.c:490 | ||
1579 | #, fuzzy, c-format | ||
1580 | msgid "Failed to close statement %p: %d\n" | ||
1581 | msgstr "Misslyckades att läsa kompislista från \"%s\"\n" | ||
1582 | |||
1583 | #: src/datacache/plugin_datacache_template.c:125 | ||
1584 | msgid "Template datacache running\n" | ||
1585 | msgstr "" | ||
1586 | |||
1587 | #: src/datastore/datastore_api.c:310 | 1573 | #: src/datastore/datastore_api.c:310 |
1588 | #, fuzzy | 1574 | #, fuzzy |
1589 | msgid "Failed to transmit request to drop database.\n" | 1575 | msgid "Failed to transmit request to drop database.\n" |
@@ -1831,6 +1817,12 @@ msgstr "" | |||
1831 | msgid "Plugin does not support get_keys function. Please fix!\n" | 1817 | msgid "Plugin does not support get_keys function. Please fix!\n" |
1832 | msgstr "" | 1818 | msgstr "" |
1833 | 1819 | ||
1820 | #: src/datastore/gnunet-service-datastore.c:1598 | ||
1821 | #: src/datastore/gnunet-service-datastore.c:1609 | ||
1822 | #, fuzzy, c-format | ||
1823 | msgid "No `%s' specified for `%s' in configuration!\n" | ||
1824 | msgstr "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 |
1836 | msgid "# bytes used in file-sharing datastore `%s'" | 1828 | msgid "# bytes used in file-sharing datastore `%s'" |
@@ -2106,52 +2098,60 @@ msgstr "" | |||
2106 | msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY." | 2098 | msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY." |
2107 | msgstr "" | 2099 | msgstr "" |
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 |
2111 | msgid "Failed to connect to transport service!\n" | 2103 | msgid "Failed to connect to transport service!\n" |
2112 | msgstr "Misslyckades att ansluta till gnunetd.\n" | 2104 | msgstr "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 |
2117 | msgid "# GET requests from clients injected" | 2110 | msgid "# GET requests from clients injected" |
2118 | msgstr "# byte mottogs via TCP" | 2111 | msgstr "# 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 |
2123 | msgid "# PUT requests received from clients" | 2117 | msgid "# PUT requests received from clients" |
2124 | msgstr "Meddelande mottaget från klient är ogiltig.\n" | 2118 | msgstr "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 |
2129 | msgid "# GET requests received from clients" | 2124 | msgid "# GET requests received from clients" |
2130 | msgstr "Meddelande mottaget från klient är ogiltig.\n" | 2125 | msgstr "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 |
2135 | msgid "# GET STOP requests received from clients" | 2131 | msgid "# GET STOP requests received from clients" |
2136 | msgstr "Meddelande mottaget från klient är ogiltig.\n" | 2132 | msgstr "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 |
2140 | msgid "# Key match, type mismatches in REPLY to CLIENT" | 2137 | msgid "# Key match, type mismatches in REPLY to CLIENT" |
2141 | msgstr "" | 2138 | msgstr "" |
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 |
2145 | msgid "# Duplicate REPLIES to CLIENT request dropped" | 2143 | msgid "# Duplicate REPLIES to CLIENT request dropped" |
2146 | msgstr "" | 2144 | msgstr "" |
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 |
2151 | msgid "Unsupported block type (%u) in request!\n" | 2150 | msgid "Unsupported block type (%u) in request!\n" |
2152 | msgstr "" | 2151 | msgstr "" |
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 |
2157 | msgid "# RESULTS queued for clients" | 2157 | msgid "# 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 |
2164 | msgid "# REPLIES ignored for CLIENTS (no match)" | 2166 | msgid "# REPLIES ignored for CLIENTS (no match)" |
2165 | msgstr "" | 2167 | msgstr "" |
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 |
2170 | msgid "Could not pass reply to client, message too big!\n" | 2173 | msgid "Could not pass reply to client, message too big!\n" |
2171 | msgstr "Kunde inte skicka meddelande till gnunetd\n" | 2174 | msgstr "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 |
2176 | msgid "%s request received, but have no datacache!\n" | 2178 | msgid "%s request received, but have no datacache!\n" |
2177 | msgstr "# byte mottagna av typen %d" | 2179 | msgstr "# 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 | ||
2181 | msgid "# ITEMS stored in datacache" | 2184 | msgid "# ITEMS stored in datacache" |
2182 | msgstr "" | 2185 | msgstr "" |
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 | ||
2186 | msgid "# Good RESULTS found in datacache" | 2190 | msgid "# Good RESULTS found in datacache" |
2187 | msgstr "" | 2191 | msgstr "" |
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 | ||
2191 | msgid "# Duplicate RESULTS found in datacache" | 2196 | msgid "# Duplicate RESULTS found in datacache" |
2192 | msgstr "" | 2197 | msgstr "" |
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 | ||
2196 | msgid "# Invalid RESULTS found in datacache" | 2202 | msgid "# Invalid RESULTS found in datacache" |
2197 | msgstr "" | 2203 | msgstr "" |
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 | ||
2201 | msgid "# Irrelevant RESULTS found in datacache" | 2208 | msgid "# Irrelevant RESULTS found in datacache" |
2202 | msgstr "" | 2209 | msgstr "" |
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 | ||
2206 | msgid "# Unsupported RESULTS found in datacache" | 2214 | msgid "# Unsupported RESULTS found in datacache" |
2207 | msgstr "" | 2215 | msgstr "" |
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 |
2212 | msgid "Unsupported block type (%u) in local response!\n" | 2221 | msgid "Unsupported block type (%u) in local response!\n" |
2213 | msgstr "" | 2222 | msgstr "" |
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 |
2218 | msgid "# GET requests given to datacache" | 2228 | msgid "# GET requests given to datacache" |
2219 | msgstr "# byte mottogs via TCP" | 2229 | msgstr "# byte mottogs via TCP" |
@@ -2234,7 +2244,7 @@ msgid "# FIND PEER messages initiated" | |||
2234 | msgstr "# PING-meddelanden skapade" | 2244 | msgstr "# 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 |
2239 | msgid "# Queued messages discarded (peer disconnected)" | 2249 | msgid "# Queued messages discarded (peer disconnected)" |
2240 | msgstr "Nätverksannonsering avstängd i konfigurationen!\n" | 2250 | msgstr "Nätverksannonsering avstängd i konfigurationen!\n" |
@@ -2359,7 +2369,8 @@ msgstr "# krypterade PONG-meddelanden mottagna" | |||
2359 | msgid "# P2P RESULT bytes received" | 2369 | msgid "# P2P RESULT bytes received" |
2360 | msgstr "# krypterade PONG-meddelanden mottagna" | 2370 | msgstr "# 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 |
2364 | msgid "# Network size estimates received" | 2375 | msgid "# Network size estimates received" |
2365 | msgstr "# byte mottogs via TCP" | 2376 | msgstr "# byte mottogs via TCP" |
@@ -2397,6 +2408,11 @@ msgstr "" | |||
2397 | msgid "# DHT requests combined" | 2408 | msgid "# DHT requests combined" |
2398 | msgstr "# byte mottogs via TCP" | 2409 | msgstr "# byte mottogs via TCP" |
2399 | 2410 | ||
2411 | #: src/dht/gnunet-service-wdht_datacache.c:82 | ||
2412 | #, fuzzy | ||
2413 | msgid "PUT request received, but have no datacache!\n" | ||
2414 | msgstr "# 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 |
2402 | msgid "" | 2418 | msgid "" |
@@ -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 |
2473 | msgid "# Bytes received from other peers" | 2489 | msgid "# Bytes received from other peers" |
2474 | msgstr "# byte mottagna av typen %d" | 2490 | msgstr "# byte mottagna av typen %d" |
@@ -5981,64 +5997,64 @@ msgstr "Misslyckades att starta samling.\n" | |||
5981 | msgid "Failed to get fragment!\n" | 5997 | msgid "Failed to get fragment!\n" |
5982 | msgstr "Kunde inte skapa värdnyckel!\n" | 5998 | msgstr "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 |
5986 | msgid "Failed to get message!\n" | 6002 | msgid "Failed to get message!\n" |
5987 | msgstr "Kunde inte skapa värdnyckel!\n" | 6003 | msgstr "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 |
5991 | msgid "Failed to get message fragment!\n" | 6007 | msgid "Failed to get message fragment!\n" |
5992 | msgstr "Misslyckades att läsa kompislista från \"%s\"\n" | 6008 | msgstr "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 |
5996 | msgid "Failed to get master counters!\n" | 6012 | msgid "Failed to get master counters!\n" |
5997 | msgstr "Kunde inte skapa värdnyckel!\n" | 6013 | msgstr "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 |
6001 | msgid "Tried to set invalid state variable name!\n" | 6017 | msgid "Tried to set invalid state variable name!\n" |
6002 | msgstr "" | 6018 | msgstr "" |
6003 | 6019 | ||
6004 | #: src/psycstore/gnunet-service-psycstore.c:513 | 6020 | #: src/psycstore/gnunet-service-psycstore.c:528 |
6005 | #, fuzzy | 6021 | #, fuzzy |
6006 | msgid "Failed to begin modifying state!\n" | 6022 | msgid "Failed to begin modifying state!\n" |
6007 | msgstr "Misslyckades att starta samling.\n" | 6023 | msgstr "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 |
6011 | msgid "Unknown operator: %c\n" | 6027 | msgid "Unknown operator: %c\n" |
6012 | msgstr "Okänd operation \"%s\"\n" | 6028 | msgstr "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 |
6016 | msgid "Failed to end modifying state!\n" | 6032 | msgid "Failed to end modifying state!\n" |
6017 | msgstr "Misslyckades att starta samling.\n" | 6033 | msgstr "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 |
6021 | msgid "Failed to begin synchronizing state!\n" | 6037 | msgid "Failed to begin synchronizing state!\n" |
6022 | msgstr "Kunde inte skapa värdnyckel!\n" | 6038 | msgstr "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 |
6026 | msgid "Failed to end synchronizing state!\n" | 6042 | msgid "Failed to end synchronizing state!\n" |
6027 | msgstr "Kunde inte skapa värdnyckel!\n" | 6043 | msgstr "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 |
6032 | msgid "Failed to reset state!\n" | 6048 | msgid "Failed to reset state!\n" |
6033 | msgstr "Kunde inte skapa värdnyckel!\n" | 6049 | msgstr "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 |
6037 | msgid "Tried to get invalid state variable name!\n" | 6053 | msgid "Tried to get invalid state variable name!\n" |
6038 | msgstr "" | 6054 | msgstr "" |
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 |
6043 | msgid "Failed to get state variable!\n" | 6059 | msgid "Failed to get state variable!\n" |
6044 | msgstr "Kunde inte skapa värdnyckel!\n" | 6060 | msgstr "Kunde inte skapa värdnyckel!\n" |
@@ -6048,7 +6064,7 @@ msgstr "Kunde inte skapa värdnyckel!\n" | |||
6048 | msgid "`%s' failed at %s:%d with error: %s (%d)\n" | 6064 | msgid "`%s' failed at %s:%d with error: %s (%d)\n" |
6049 | msgstr "\"%s\" misslyckades vid %s:%d med fel: %s\n" | 6065 | msgstr "\"%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 |
6052 | msgid "SQLite database running\n" | 6068 | msgid "SQLite database running\n" |
6053 | msgstr "" | 6069 | msgstr "" |
6054 | 6070 | ||
@@ -8087,7 +8103,7 @@ msgid "Found %u addresses to report to NAT service\n" | |||
8087 | msgstr "" | 8103 | msgstr "" |
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 |
8091 | msgid "Disabling IPv6 since it is not supported on this system!\n" | 8107 | msgid "Disabling IPv6 since it is not supported on this system!\n" |
8092 | msgstr "" | 8108 | msgstr "" |
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" |
8343 | msgstr "" | 8359 | msgstr "" |
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 |
8348 | msgid "Failed to bind UDP socket to %s: %s\n" | 8364 | msgid "Failed to bind UDP socket to %s: %s\n" |
8349 | msgstr "Misslyckades att binda till UDP6-port %d.\n" | 8365 | msgstr "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 |
8352 | msgid "Disabling IPv4 since it is not supported on this system!\n" | 8368 | msgid "Disabling IPv4 since it is not supported on this system!\n" |
8353 | msgstr "" | 8369 | msgstr "" |
8354 | 8370 | ||
8355 | #: src/transport/plugin_transport_udp.c:3520 | 8371 | #: src/transport/plugin_transport_udp.c:3523 |
8356 | #, fuzzy | 8372 | #, fuzzy |
8357 | msgid "Failed to open UDP sockets\n" | 8373 | msgid "Failed to open UDP sockets\n" |
8358 | msgstr "Misslyckades att binda till UDP6-port %d.\n" | 8374 | msgstr "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 |
8362 | msgid "must be in [0,65535]" | 8378 | msgid "must be in [0,65535]" |
8363 | msgstr "" | 8379 | msgstr "" |
8364 | 8380 | ||
8365 | #: src/transport/plugin_transport_udp.c:3637 | 8381 | #: src/transport/plugin_transport_udp.c:3640 |
8366 | #, fuzzy | 8382 | #, fuzzy |
8367 | msgid "must be valid IPv4 address" | 8383 | msgid "must be valid IPv4 address" |
8368 | msgstr "\"%s\" är inte tillgänglig." | 8384 | msgstr "\"%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 |
8372 | msgid "must be valid IPv6 address" | 8388 | msgid "must be valid IPv6 address" |
8373 | msgstr "\"%s\" är inte tillgänglig." | 8389 | msgstr "\"%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 |
8377 | msgid "Failed to create UDP network sockets\n" | 8393 | msgid "Failed to create UDP network sockets\n" |
8378 | msgstr "Kunde inte skapa namnrymd \"%s\" (existerar?).\n" | 8394 | msgstr "Kunde inte skapa namnrymd \"%s\" (existerar?).\n" |
@@ -8690,7 +8706,7 @@ msgstr "\"%s\" misslyckades vid %s:%d med fel: \"%s\".\n" | |||
8690 | msgid "libgcrypt has not the expected version (version %s is required).\n" | 8706 | msgid "libgcrypt has not the expected version (version %s is required).\n" |
8691 | msgstr "libgcrypt har inte den förväntande versionen (version %s krävs).\n" | 8707 | msgstr "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 |
8695 | msgid "RSA signature verification failed at %s:%d: %s\n" | 8711 | msgid "RSA signature verification failed at %s:%d: %s\n" |
8696 | msgstr "\"%s\" misslyckades vid %s:%d med fel: \"%s\".\n" | 8712 | msgstr "\"%s\" misslyckades vid %s:%d med fel: \"%s\".\n" |
@@ -9500,23 +9516,27 @@ msgstr "# byte mottagna via UDP" | |||
9500 | msgid "Setup tunnels via VPN." | 9516 | msgid "Setup tunnels via VPN." |
9501 | msgstr "" | 9517 | msgstr "" |
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 |
9506 | msgid "Assertion failed at %s:%d.\n" | 9522 | msgid "Assertion failed at %s:%d.\n" |
9507 | msgstr "\"%s\" misslyckades vid %s:%d med fel: \"%s\".\n" | 9523 | msgstr "\"%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 |
9511 | msgid "External protocol violation detected at %s:%d.\n" | 9527 | msgid "External protocol violation detected at %s:%d.\n" |
9512 | msgstr "" | 9528 | msgstr "" |
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 |
9516 | msgid "`%s' failed on file `%s' at %s:%d with error: %s\n" | 9532 | msgid "`%s' failed on file `%s' at %s:%d with error: %s\n" |
9517 | msgstr "\"%s\" misslyckades för fil \"%s\" vid %s:%d med fel: %s\n" | 9533 | msgstr "\"%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 | ||
@@ -8,7 +8,7 @@ msgid "" | |||
8 | msgstr "" | 8 | msgstr "" |
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." | |||
656 | msgid "Invalid target `%s'\n" | 656 | msgid "Invalid target `%s'\n" |
657 | msgstr "Đối số không hợp lệ cho « %s ».\n" | 657 | msgstr "Đố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 |
661 | msgid "Invalid peer ID `%s'\n" | 661 | msgid "Invalid peer ID `%s'\n" |
662 | msgstr "Dữ liệu nhập không hợp lệ.\n" | 662 | msgstr "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 |
666 | msgid "Invalid tunnel owner `%s'\n" | 666 | msgid "Invalid tunnel owner `%s'\n" |
667 | msgstr "Địa chỉ IP định dạng sai: %s\n" | 667 | msgstr "Đị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 |
670 | msgid "You must NOT give a TARGETwhen using 'request all' options\n" | 670 | msgid "You must NOT give a TARGETwhen using 'request all' options\n" |
671 | msgstr "" | 671 | msgstr "" |
672 | 672 | ||
673 | #: src/cadet/gnunet-cadet.c:832 | 673 | #: src/cadet/gnunet-cadet.c:849 |
674 | #, fuzzy | 674 | #, fuzzy |
675 | msgid "provide information about a particular connection" | 675 | msgid "provide information about a particular connection" |
676 | msgstr "In ra thông tin về các đồng đẳng GNUnet." | 676 | msgstr "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 |
679 | msgid "activate echo mode" | 679 | msgid "activate echo mode" |
680 | msgstr "" | 680 | msgstr "" |
681 | 681 | ||
682 | #: src/cadet/gnunet-cadet.c:838 | 682 | #: src/cadet/gnunet-cadet.c:855 |
683 | msgid "dump debug information to STDERR" | 683 | msgid "dump debug information to STDERR" |
684 | msgstr "" | 684 | msgstr "" |
685 | 685 | ||
686 | #: src/cadet/gnunet-cadet.c:844 | 686 | #: src/cadet/gnunet-cadet.c:861 |
687 | msgid "port to listen to (default; 0)" | 687 | msgid "port to listen to (default; 0)" |
688 | msgstr "" | 688 | msgstr "" |
689 | 689 | ||
690 | #: src/cadet/gnunet-cadet.c:847 | 690 | #: src/cadet/gnunet-cadet.c:864 |
691 | #, fuzzy | 691 | #, fuzzy |
692 | msgid "provide information about a patricular peer" | 692 | msgid "provide information about a patricular peer" |
693 | msgstr "In ra thông tin về các đồng đẳng GNUnet." | 693 | msgstr "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 |
697 | msgid "provide information about all peers" | 697 | msgid "provide information about all peers" |
698 | msgstr "In ra thông tin về các đồng đẳng GNUnet." | 698 | msgstr "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 |
702 | msgid "provide information about a particular tunnel" | 702 | msgid "provide information about a particular tunnel" |
703 | msgstr "In ra thông tin về các đồng đẳng GNUnet." | 703 | msgstr "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 |
707 | msgid "provide information about all tunnels" | 707 | msgid "provide information about all tunnels" |
708 | msgstr "In ra thông tin về các đồng đẳng GNUnet." | 708 | msgstr "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 |
711 | msgid "Wrong CORE service\n" | 711 | msgid "Wrong CORE service\n" |
712 | msgstr "" | 712 | msgstr "" |
713 | 713 | ||
@@ -1504,54 +1504,53 @@ msgstr "# các thông báo phát hiện dht được nhận" | |||
1504 | msgid "# updates to my type map" | 1504 | msgid "# updates to my type map" |
1505 | msgstr "" | 1505 | msgstr "" |
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 |
1510 | msgid "# bytes stored" | 1510 | msgid "# bytes stored" |
1511 | msgstr "# các byte trong kho dữ liệu" | 1511 | msgstr "# 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 |
1515 | msgid "# items stored" | 1515 | msgid "# items stored" |
1516 | msgstr "# các byte trong kho dữ liệu" | 1516 | msgstr "# 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 | ||
1522 | msgid "No `%s' specified for `%s' in configuration!\n" | ||
1523 | msgstr "" | ||
1524 | |||
1525 | #: src/datacache/datacache.c:184 | ||
1526 | #, c-format | 1519 | #, c-format |
1527 | msgid "Loading `%s' datacache plugin\n" | 1520 | msgid "Loading `%s' datacache plugin\n" |
1528 | msgstr "" | 1521 | msgstr "" |
1529 | 1522 | ||
1530 | #: src/datacache/datacache.c:192 | 1523 | #: src/datacache/datacache.c:213 |
1531 | #, fuzzy, c-format | 1524 | #, fuzzy, c-format |
1532 | msgid "Failed to load datacache plugin for `%s'\n" | 1525 | msgid "Failed to load datacache plugin for `%s'\n" |
1533 | msgstr "Lỗi cập nhật dữ liệu cho mô-đun « %s »\n" | 1526 | msgstr "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 |
1537 | msgid "# requests received" | 1530 | msgid "# requests received" |
1538 | msgstr "# các yêu cầu get (lấy) dht được nhận" | 1531 | msgstr "# 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 |
1541 | msgid "# requests filtered by bloom filter" | 1534 | msgid "# requests filtered by bloom filter" |
1542 | msgstr "# các yêu cầu được lọc theo bộ lọc bloom" | 1535 | msgstr "# 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 | ||
1539 | msgid "# requests for random value received" | ||
1540 | msgstr "# tổng số yêu cầu lỗ hổng được nhận" | ||
1541 | |||
1542 | #: src/datacache/datacache.c:399 | ||
1543 | #, fuzzy | ||
1544 | msgid "# proximity search requests received" | ||
1545 | msgstr "# 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 |
1546 | msgid "Heap datacache running\n" | 1549 | msgid "Heap datacache running\n" |
1547 | msgstr "kho dữ liệu sqlite" | 1550 | msgstr "kho dữ liệu sqlite" |
1548 | 1551 | ||
1549 | #: src/datacache/plugin_datacache_postgres.c:391 | 1552 | #: src/datacache/plugin_datacache_sqlite.c:77 |
1550 | msgid "Postgres datacache running\n" | 1553 | #: src/datacache/plugin_datacache_sqlite.c:86 |
1551 | msgstr "" | ||
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 |
1572 | msgid "`%s' failed at %s:%d with error: %s\n" | 1571 | msgid "`%s' failed at %s:%d with error: %s\n" |
1573 | msgstr "« %s » bị lỗi tại %s:%d với lỗi: %s\n" | 1572 | msgstr "« %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 |
1576 | msgid "Sqlite datacache running\n" | ||
1577 | msgstr "" | ||
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 |
1583 | msgid "Tried to close sqlite without finalizing all prepared statements.\n" | 1578 | msgid "Tried to close sqlite without finalizing all prepared statements.\n" |
1584 | msgstr "" | 1579 | msgstr "" |
1585 | 1580 | ||
1586 | #: src/datacache/plugin_datacache_sqlite.c:490 | ||
1587 | #, fuzzy, c-format | ||
1588 | msgid "Failed to close statement %p: %d\n" | ||
1589 | msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n" | ||
1590 | |||
1591 | #: src/datacache/plugin_datacache_template.c:125 | ||
1592 | msgid "Template datacache running\n" | ||
1593 | msgstr "" | ||
1594 | |||
1595 | #: src/datastore/datastore_api.c:310 | 1581 | #: src/datastore/datastore_api.c:310 |
1596 | msgid "Failed to transmit request to drop database.\n" | 1582 | msgid "Failed to transmit request to drop database.\n" |
1597 | msgstr "" | 1583 | msgstr "" |
@@ -1848,6 +1834,12 @@ msgstr "" | |||
1848 | msgid "Plugin does not support get_keys function. Please fix!\n" | 1834 | msgid "Plugin does not support get_keys function. Please fix!\n" |
1849 | msgstr "" | 1835 | msgstr "" |
1850 | 1836 | ||
1837 | #: src/datastore/gnunet-service-datastore.c:1598 | ||
1838 | #: src/datastore/gnunet-service-datastore.c:1609 | ||
1839 | #, c-format | ||
1840 | msgid "No `%s' specified for `%s' in configuration!\n" | ||
1841 | msgstr "" | ||
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 |
1853 | msgid "# bytes used in file-sharing datastore `%s'" | 1845 | msgid "# bytes used in file-sharing datastore `%s'" |
@@ -2128,112 +2120,130 @@ msgstr "" | |||
2128 | msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY." | 2120 | msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY." |
2129 | msgstr "" | 2121 | msgstr "" |
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 |
2133 | msgid "Failed to connect to transport service!\n" | 2125 | msgid "Failed to connect to transport service!\n" |
2134 | msgstr "Lỗi kết nối đến gnunetd.\n" | 2126 | msgstr "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 |
2139 | msgid "# GET requests from clients injected" | 2132 | msgid "# GET requests from clients injected" |
2140 | msgstr "# các yêu cầu get (lấy) dht được nhận" | 2133 | msgstr "# 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 |
2145 | msgid "# PUT requests received from clients" | 2139 | msgid "# PUT requests received from clients" |
2146 | msgstr "# các đáp ứng lỗ hổng được gửi cho trình/máy khách" | 2140 | msgstr "# 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 |
2151 | msgid "# GET requests received from clients" | 2146 | msgid "# GET requests received from clients" |
2152 | msgstr "# các yêu cầu get (lấy) dht được nhận" | 2147 | msgstr "# 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 |
2157 | msgid "# GET STOP requests received from clients" | 2153 | msgid "# GET STOP requests received from clients" |
2158 | msgstr "# các yêu cầu get (lấy) dht được nhận" | 2154 | msgstr "# 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 |
2162 | msgid "# Key match, type mismatches in REPLY to CLIENT" | 2159 | msgid "# Key match, type mismatches in REPLY to CLIENT" |
2163 | msgstr "" | 2160 | msgstr "" |
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 |
2167 | msgid "# Duplicate REPLIES to CLIENT request dropped" | 2165 | msgid "# Duplicate REPLIES to CLIENT request dropped" |
2168 | msgstr "" | 2166 | msgstr "" |
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 |
2173 | msgid "Unsupported block type (%u) in request!\n" | 2172 | msgid "Unsupported block type (%u) in request!\n" |
2174 | msgstr "" | 2173 | msgstr "" |
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 |
2178 | msgid "# RESULTS queued for clients" | 2178 | msgid "# RESULTS queued for clients" |
2179 | msgstr "" | 2179 | msgstr "" |
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 |
2185 | msgid "# REPLIES ignored for CLIENTS (no match)" | 2187 | msgid "# REPLIES ignored for CLIENTS (no match)" |
2186 | msgstr "" | 2188 | msgstr "" |
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 |
2190 | msgid "Could not pass reply to client, message too big!\n" | 2193 | msgid "Could not pass reply to client, message too big!\n" |
2191 | msgstr "" | 2194 | msgstr "" |
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 |
2196 | msgid "%s request received, but have no datacache!\n" | 2198 | msgid "%s request received, but have no datacache!\n" |
2197 | msgstr "# các byte kiểu %d được nhận" | 2199 | msgstr "# 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 | ||
2201 | msgid "# ITEMS stored in datacache" | 2204 | msgid "# ITEMS stored in datacache" |
2202 | msgstr "" | 2205 | msgstr "" |
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 | ||
2206 | msgid "# Good RESULTS found in datacache" | 2210 | msgid "# Good RESULTS found in datacache" |
2207 | msgstr "" | 2211 | msgstr "" |
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 | ||
2211 | msgid "# Duplicate RESULTS found in datacache" | 2216 | msgid "# Duplicate RESULTS found in datacache" |
2212 | msgstr "" | 2217 | msgstr "" |
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 | ||
2216 | msgid "# Invalid RESULTS found in datacache" | 2222 | msgid "# Invalid RESULTS found in datacache" |
2217 | msgstr "" | 2223 | msgstr "" |
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 | ||
2221 | msgid "# Irrelevant RESULTS found in datacache" | 2228 | msgid "# Irrelevant RESULTS found in datacache" |
2222 | msgstr "" | 2229 | msgstr "" |
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 | ||
2226 | msgid "# Unsupported RESULTS found in datacache" | 2234 | msgid "# Unsupported RESULTS found in datacache" |
2227 | msgstr "" | 2235 | msgstr "" |
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 |
2232 | msgid "Unsupported block type (%u) in local response!\n" | 2241 | msgid "Unsupported block type (%u) in local response!\n" |
2233 | msgstr "" | 2242 | msgstr "" |
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 |
2238 | msgid "# GET requests given to datacache" | 2248 | msgid "# GET requests given to datacache" |
2239 | msgstr "# các yêu cầu get (lấy) dht được nhận" | 2249 | msgstr "# các yêu cầu get (lấy) dht được nhận" |
@@ -2254,7 +2264,7 @@ msgid "# FIND PEER messages initiated" | |||
2254 | msgstr "# các thông báo PING được tạo" | 2264 | msgstr "# 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 |
2259 | msgid "# Queued messages discarded (peer disconnected)" | 2269 | msgid "# Queued messages discarded (peer disconnected)" |
2260 | msgstr "# các thông báo được chắp liền" | 2270 | msgstr "# 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" | |||
2382 | msgid "# P2P RESULT bytes received" | 2392 | msgid "# P2P RESULT bytes received" |
2383 | msgstr "# Tín hiệu HTTP PUT được nhận" | 2393 | msgstr "# 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 |
2387 | msgid "# Network size estimates received" | 2398 | msgid "# Network size estimates received" |
2388 | msgstr "# các yêu cầu get (lấy) dht được nhận" | 2399 | msgstr "# các yêu cầu get (lấy) dht được nhận" |
@@ -2420,6 +2431,11 @@ msgstr "" | |||
2420 | msgid "# DHT requests combined" | 2431 | msgid "# DHT requests combined" |
2421 | msgstr "# các yêu cầu get (lấy) dht được nhận" | 2432 | msgstr "# 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 | ||
2436 | msgid "PUT request received, but have no datacache!\n" | ||
2437 | msgstr "# 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 |
2425 | msgid "" | 2441 | msgid "" |
@@ -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 |
2496 | msgid "# Bytes received from other peers" | 2512 | msgid "# Bytes received from other peers" |
2497 | msgstr "# các byte kiểu %d được nhận" | 2513 | msgstr "# các byte kiểu %d được nhận" |
@@ -6041,64 +6057,64 @@ msgstr "Lỗi bắt đầu thu thập.\n" | |||
6041 | msgid "Failed to get fragment!\n" | 6057 | msgid "Failed to get fragment!\n" |
6042 | msgstr "Lỗi lấy thông kê về truyền tải.\n" | 6058 | msgstr "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 |
6046 | msgid "Failed to get message!\n" | 6062 | msgid "Failed to get message!\n" |
6047 | msgstr "Lỗi lấy thông kê về truyền tải.\n" | 6063 | msgstr "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 |
6051 | msgid "Failed to get message fragment!\n" | 6067 | msgid "Failed to get message fragment!\n" |
6052 | msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n" | 6068 | msgstr "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 |
6056 | msgid "Failed to get master counters!\n" | 6072 | msgid "Failed to get master counters!\n" |
6057 | msgstr "Lỗi lấy thông kê về truyền tải.\n" | 6073 | msgstr "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 |
6061 | msgid "Tried to set invalid state variable name!\n" | 6077 | msgid "Tried to set invalid state variable name!\n" |
6062 | msgstr "" | 6078 | msgstr "" |
6063 | 6079 | ||
6064 | #: src/psycstore/gnunet-service-psycstore.c:513 | 6080 | #: src/psycstore/gnunet-service-psycstore.c:528 |
6065 | #, fuzzy | 6081 | #, fuzzy |
6066 | msgid "Failed to begin modifying state!\n" | 6082 | msgid "Failed to begin modifying state!\n" |
6067 | msgstr "Lỗi bắt đầu thu thập.\n" | 6083 | msgstr "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 |
6071 | msgid "Unknown operator: %c\n" | 6087 | msgid "Unknown operator: %c\n" |
6072 | msgstr "Không rõ thao tác « %s ».\n" | 6088 | msgstr "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 |
6076 | msgid "Failed to end modifying state!\n" | 6092 | msgid "Failed to end modifying state!\n" |
6077 | msgstr "Lỗi bắt đầu thu thập.\n" | 6093 | msgstr "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 |
6081 | msgid "Failed to begin synchronizing state!\n" | 6097 | msgid "Failed to begin synchronizing state!\n" |
6082 | msgstr "Lỗi lấy thông kê về truyền tải.\n" | 6098 | msgstr "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 |
6086 | msgid "Failed to end synchronizing state!\n" | 6102 | msgid "Failed to end synchronizing state!\n" |
6087 | msgstr "Lỗi lấy thông kê về truyền tải.\n" | 6103 | msgstr "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 |
6092 | msgid "Failed to reset state!\n" | 6108 | msgid "Failed to reset state!\n" |
6093 | msgstr "Lỗi lấy thông kê về truyền tải.\n" | 6109 | msgstr "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 |
6097 | msgid "Tried to get invalid state variable name!\n" | 6113 | msgid "Tried to get invalid state variable name!\n" |
6098 | msgstr "" | 6114 | msgstr "" |
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 |
6103 | msgid "Failed to get state variable!\n" | 6119 | msgid "Failed to get state variable!\n" |
6104 | msgstr "Lỗi lấy thông kê về truyền tải.\n" | 6120 | msgstr "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" | |||
6108 | msgid "`%s' failed at %s:%d with error: %s (%d)\n" | 6124 | msgid "`%s' failed at %s:%d with error: %s (%d)\n" |
6109 | msgstr "« %s » bị lỗi tại %s:%d với lỗi: %s\n" | 6125 | msgstr "« %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 |
6113 | msgid "SQLite database running\n" | 6129 | msgid "SQLite database running\n" |
6114 | msgstr "kho dữ liệu sqlite" | 6130 | msgstr "kho dữ liệu sqlite" |
@@ -8156,7 +8172,7 @@ msgid "Found %u addresses to report to NAT service\n" | |||
8156 | msgstr "" | 8172 | msgstr "" |
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 |
8160 | msgid "Disabling IPv6 since it is not supported on this system!\n" | 8176 | msgid "Disabling IPv6 since it is not supported on this system!\n" |
8161 | msgstr "" | 8177 | msgstr "" |
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" |
8404 | msgstr "" | 8420 | msgstr "" |
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 |
8409 | msgid "Failed to bind UDP socket to %s: %s\n" | 8425 | msgid "Failed to bind UDP socket to %s: %s\n" |
8410 | msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n" | 8426 | msgstr "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 |
8413 | msgid "Disabling IPv4 since it is not supported on this system!\n" | 8429 | msgid "Disabling IPv4 since it is not supported on this system!\n" |
8414 | msgstr "" | 8430 | msgstr "" |
8415 | 8431 | ||
8416 | #: src/transport/plugin_transport_udp.c:3520 | 8432 | #: src/transport/plugin_transport_udp.c:3523 |
8417 | #, fuzzy | 8433 | #, fuzzy |
8418 | msgid "Failed to open UDP sockets\n" | 8434 | msgid "Failed to open UDP sockets\n" |
8419 | msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n" | 8435 | msgstr "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 |
8423 | msgid "must be in [0,65535]" | 8439 | msgid "must be in [0,65535]" |
8424 | msgstr "" | 8440 | msgstr "" |
8425 | 8441 | ||
8426 | #: src/transport/plugin_transport_udp.c:3637 | 8442 | #: src/transport/plugin_transport_udp.c:3640 |
8427 | #, fuzzy | 8443 | #, fuzzy |
8428 | msgid "must be valid IPv4 address" | 8444 | msgid "must be valid IPv4 address" |
8429 | msgstr "« %s » không sẵn sàng.\n" | 8445 | msgstr "« %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 |
8433 | msgid "must be valid IPv6 address" | 8449 | msgid "must be valid IPv6 address" |
8434 | msgstr "« %s » không sẵn sàng.\n" | 8450 | msgstr "« %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 |
8438 | msgid "Failed to create UDP network sockets\n" | 8454 | msgid "Failed to create UDP network sockets\n" |
8439 | msgstr "Không thể tạo miền tên.\n" | 8455 | msgstr "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" | |||
8754 | msgid "libgcrypt has not the expected version (version %s is required).\n" | 8770 | msgid "libgcrypt has not the expected version (version %s is required).\n" |
8755 | msgstr "libgcrypt không có phiên bản mong đợi (yêu cầu phiên bản %s).\n" | 8771 | msgstr "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 |
8759 | msgid "RSA signature verification failed at %s:%d: %s\n" | 8775 | msgid "RSA signature verification failed at %s:%d: %s\n" |
8760 | msgstr "Lỗi thẩm tra chữ ký RSA tại %s:%d: %s\n" | 8776 | msgstr "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" | |||
9561 | msgid "Setup tunnels via VPN." | 9577 | msgid "Setup tunnels via VPN." |
9562 | msgstr "" | 9578 | msgstr "" |
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 |
9567 | msgid "Assertion failed at %s:%d.\n" | 9583 | msgid "Assertion failed at %s:%d.\n" |
9568 | msgstr "Lỗi nội bộ : khẳng định không thành công tại %s:%d.\n" | 9584 | msgstr "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 |
9572 | msgid "External protocol violation detected at %s:%d.\n" | 9588 | msgid "External protocol violation detected at %s:%d.\n" |
9573 | msgstr "Lỗi nội bộ : khẳng định không thành công tại %s:%d.\n" | 9589 | msgstr "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 |
9577 | msgid "`%s' failed on file `%s' at %s:%d with error: %s\n" | 9593 | msgid "`%s' failed on file `%s' at %s:%d with error: %s\n" |
9578 | msgstr "« %s » thất bại ở tập tin « %s » tại %s:%d với lỗi: %s\n" | 9594 | msgstr "« %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 "" | |||
7 | msgstr "" | 7 | msgstr "" |
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" | |||
647 | msgid "Invalid target `%s'\n" | 647 | msgid "Invalid target `%s'\n" |
648 | msgstr "“%s”的参数无效。\n" | 648 | msgstr "“%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 |
652 | msgid "Invalid peer ID `%s'\n" | 652 | msgid "Invalid peer ID `%s'\n" |
653 | msgstr "无效条目。\n" | 653 | msgstr "无效条目。\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 |
657 | msgid "Invalid tunnel owner `%s'\n" | 657 | msgid "Invalid tunnel owner `%s'\n" |
658 | msgstr "IP 格式无效:“%s”\n" | 658 | msgstr "IP 格式无效:“%s”\n" |
659 | 659 | ||
660 | #: src/cadet/gnunet-cadet.c:735 | 660 | #: src/cadet/gnunet-cadet.c:752 |
661 | msgid "You must NOT give a TARGETwhen using 'request all' options\n" | 661 | msgid "You must NOT give a TARGETwhen using 'request all' options\n" |
662 | msgstr "" | 662 | msgstr "" |
663 | 663 | ||
664 | #: src/cadet/gnunet-cadet.c:832 | 664 | #: src/cadet/gnunet-cadet.c:849 |
665 | #, fuzzy | 665 | #, fuzzy |
666 | msgid "provide information about a particular connection" | 666 | msgid "provide information about a particular connection" |
667 | msgstr "无法获取有关用户“%s”的信息:%s\n" | 667 | msgstr "无法获取有关用户“%s”的信息:%s\n" |
668 | 668 | ||
669 | #: src/cadet/gnunet-cadet.c:835 | 669 | #: src/cadet/gnunet-cadet.c:852 |
670 | msgid "activate echo mode" | 670 | msgid "activate echo mode" |
671 | msgstr "" | 671 | msgstr "" |
672 | 672 | ||
673 | #: src/cadet/gnunet-cadet.c:838 | 673 | #: src/cadet/gnunet-cadet.c:855 |
674 | msgid "dump debug information to STDERR" | 674 | msgid "dump debug information to STDERR" |
675 | msgstr "" | 675 | msgstr "" |
676 | 676 | ||
677 | #: src/cadet/gnunet-cadet.c:844 | 677 | #: src/cadet/gnunet-cadet.c:861 |
678 | msgid "port to listen to (default; 0)" | 678 | msgid "port to listen to (default; 0)" |
679 | msgstr "" | 679 | msgstr "" |
680 | 680 | ||
681 | #: src/cadet/gnunet-cadet.c:847 | 681 | #: src/cadet/gnunet-cadet.c:864 |
682 | #, fuzzy | 682 | #, fuzzy |
683 | msgid "provide information about a patricular peer" | 683 | msgid "provide information about a patricular peer" |
684 | msgstr "无法获取有关用户“%s”的信息:%s\n" | 684 | msgstr "无法获取有关用户“%s”的信息:%s\n" |
685 | 685 | ||
686 | #: src/cadet/gnunet-cadet.c:850 | 686 | #: src/cadet/gnunet-cadet.c:867 |
687 | #, fuzzy | 687 | #, fuzzy |
688 | msgid "provide information about all peers" | 688 | msgid "provide information about all peers" |
689 | msgstr "无法获取有关用户“%s”的信息:%s\n" | 689 | msgstr "无法获取有关用户“%s”的信息:%s\n" |
690 | 690 | ||
691 | #: src/cadet/gnunet-cadet.c:853 | 691 | #: src/cadet/gnunet-cadet.c:870 |
692 | #, fuzzy | 692 | #, fuzzy |
693 | msgid "provide information about a particular tunnel" | 693 | msgid "provide information about a particular tunnel" |
694 | msgstr "无法获取有关用户“%s”的信息:%s\n" | 694 | msgstr "无法获取有关用户“%s”的信息:%s\n" |
695 | 695 | ||
696 | #: src/cadet/gnunet-cadet.c:856 | 696 | #: src/cadet/gnunet-cadet.c:873 |
697 | #, fuzzy | 697 | #, fuzzy |
698 | msgid "provide information about all tunnels" | 698 | msgid "provide information about all tunnels" |
699 | msgstr "无法获取有关用户“%s”的信息:%s\n" | 699 | msgstr "无法获取有关用户“%s”的信息:%s\n" |
700 | 700 | ||
701 | #: src/cadet/gnunet-service-cadet_peer.c:507 | 701 | #: src/cadet/gnunet-service-cadet_peer.c:514 |
702 | msgid "Wrong CORE service\n" | 702 | msgid "Wrong CORE service\n" |
703 | msgstr "" | 703 | msgstr "" |
704 | 704 | ||
@@ -1460,51 +1460,48 @@ msgstr "" | |||
1460 | msgid "# updates to my type map" | 1460 | msgid "# updates to my type map" |
1461 | msgstr "" | 1461 | msgstr "" |
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 |
1465 | msgid "# bytes stored" | 1465 | msgid "# bytes stored" |
1466 | msgstr "" | 1466 | msgstr "" |
1467 | 1467 | ||
1468 | #: src/datacache/datacache.c:117 src/datacache/datacache.c:268 | 1468 | #: src/datacache/datacache.c:123 src/datacache/datacache.c:298 |
1469 | msgid "# items stored" | 1469 | msgid "# items stored" |
1470 | msgstr "" | 1470 | msgstr "" |
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 | ||
1476 | msgid "No `%s' specified for `%s' in configuration!\n" | ||
1477 | msgstr "" | ||
1478 | |||
1479 | #: src/datacache/datacache.c:184 | ||
1480 | #, c-format | 1473 | #, c-format |
1481 | msgid "Loading `%s' datacache plugin\n" | 1474 | msgid "Loading `%s' datacache plugin\n" |
1482 | msgstr "" | 1475 | msgstr "" |
1483 | 1476 | ||
1484 | #: src/datacache/datacache.c:192 | 1477 | #: src/datacache/datacache.c:213 |
1485 | #, c-format | 1478 | #, c-format |
1486 | msgid "Failed to load datacache plugin for `%s'\n" | 1479 | msgid "Failed to load datacache plugin for `%s'\n" |
1487 | msgstr "" | 1480 | msgstr "" |
1488 | 1481 | ||
1489 | #: src/datacache/datacache.c:295 | 1482 | #: src/datacache/datacache.c:329 |
1490 | msgid "# requests received" | 1483 | msgid "# requests received" |
1491 | msgstr "" | 1484 | msgstr "" |
1492 | 1485 | ||
1493 | #: src/datacache/datacache.c:304 | 1486 | #: src/datacache/datacache.c:339 |
1494 | msgid "# requests filtered by bloom filter" | 1487 | msgid "# requests filtered by bloom filter" |
1495 | msgstr "" | 1488 | msgstr "" |
1496 | 1489 | ||
1497 | #: src/datacache/plugin_datacache_heap.c:406 | 1490 | #: src/datacache/datacache.c:367 |
1491 | msgid "# requests for random value received" | ||
1492 | msgstr "" | ||
1493 | |||
1494 | #: src/datacache/datacache.c:399 | ||
1495 | msgid "# proximity search requests received" | ||
1496 | msgstr "" | ||
1497 | |||
1498 | #: src/datacache/plugin_datacache_heap.c:466 | ||
1498 | #, fuzzy | 1499 | #, fuzzy |
1499 | msgid "Heap datacache running\n" | 1500 | msgid "Heap datacache running\n" |
1500 | msgstr "sqlite 数据仓库" | 1501 | msgstr "sqlite 数据仓库" |
1501 | 1502 | ||
1502 | #: src/datacache/plugin_datacache_postgres.c:391 | 1503 | #: src/datacache/plugin_datacache_sqlite.c:77 |
1503 | msgid "Postgres datacache running\n" | 1504 | #: src/datacache/plugin_datacache_sqlite.c:86 |
1504 | msgstr "" | ||
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 |
1525 | msgid "`%s' failed at %s:%d with error: %s\n" | 1522 | msgid "`%s' failed at %s:%d with error: %s\n" |
1526 | msgstr "“%s”于 %s:%d 处失败,错误为:%s\n" | 1523 | msgstr "“%s”于 %s:%d 处失败,错误为:%s\n" |
1527 | 1524 | ||
1528 | #: src/datacache/plugin_datacache_sqlite.c:449 | 1525 | #: src/datacache/plugin_datacache_sqlite.c:749 |
1529 | msgid "Sqlite datacache running\n" | ||
1530 | msgstr "" | ||
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 |
1536 | msgid "Tried to close sqlite without finalizing all prepared statements.\n" | 1529 | msgid "Tried to close sqlite without finalizing all prepared statements.\n" |
1537 | msgstr "" | 1530 | msgstr "" |
1538 | 1531 | ||
1539 | #: src/datacache/plugin_datacache_sqlite.c:490 | ||
1540 | #, fuzzy, c-format | ||
1541 | msgid "Failed to close statement %p: %d\n" | ||
1542 | msgstr "解析配置文件“%s”失败\n" | ||
1543 | |||
1544 | #: src/datacache/plugin_datacache_template.c:125 | ||
1545 | msgid "Template datacache running\n" | ||
1546 | msgstr "" | ||
1547 | |||
1548 | #: src/datastore/datastore_api.c:310 | 1532 | #: src/datastore/datastore_api.c:310 |
1549 | msgid "Failed to transmit request to drop database.\n" | 1533 | msgid "Failed to transmit request to drop database.\n" |
1550 | msgstr "" | 1534 | msgstr "" |
@@ -1778,6 +1762,12 @@ msgstr "" | |||
1778 | msgid "Plugin does not support get_keys function. Please fix!\n" | 1762 | msgid "Plugin does not support get_keys function. Please fix!\n" |
1779 | msgstr "" | 1763 | msgstr "" |
1780 | 1764 | ||
1765 | #: src/datastore/gnunet-service-datastore.c:1598 | ||
1766 | #: src/datastore/gnunet-service-datastore.c:1609 | ||
1767 | #, c-format | ||
1768 | msgid "No `%s' specified for `%s' in configuration!\n" | ||
1769 | msgstr "" | ||
1770 | |||
1781 | #: src/datastore/gnunet-service-datastore.c:1603 | 1771 | #: src/datastore/gnunet-service-datastore.c:1603 |
1782 | #, c-format | 1772 | #, c-format |
1783 | msgid "# bytes used in file-sharing datastore `%s'" | 1773 | msgid "# bytes used in file-sharing datastore `%s'" |
@@ -2054,108 +2044,126 @@ msgstr "" | |||
2054 | msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY." | 2044 | msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY." |
2055 | msgstr "" | 2045 | msgstr "" |
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 |
2059 | msgid "Failed to connect to transport service!\n" | 2049 | msgid "Failed to connect to transport service!\n" |
2060 | msgstr "初始化“%s”服务失败。\n" | 2050 | msgstr "初始化“%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 |
2064 | msgid "# GET requests from clients injected" | 2055 | msgid "# GET requests from clients injected" |
2065 | msgstr "" | 2056 | msgstr "" |
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 |
2069 | msgid "# PUT requests received from clients" | 2061 | msgid "# PUT requests received from clients" |
2070 | msgstr "" | 2062 | msgstr "" |
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 |
2074 | msgid "# GET requests received from clients" | 2067 | msgid "# GET requests received from clients" |
2075 | msgstr "" | 2068 | msgstr "" |
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 |
2079 | msgid "# GET STOP requests received from clients" | 2073 | msgid "# GET STOP requests received from clients" |
2080 | msgstr "" | 2074 | msgstr "" |
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 |
2084 | msgid "# Key match, type mismatches in REPLY to CLIENT" | 2079 | msgid "# Key match, type mismatches in REPLY to CLIENT" |
2085 | msgstr "" | 2080 | msgstr "" |
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 |
2089 | msgid "# Duplicate REPLIES to CLIENT request dropped" | 2085 | msgid "# Duplicate REPLIES to CLIENT request dropped" |
2090 | msgstr "" | 2086 | msgstr "" |
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 |
2095 | msgid "Unsupported block type (%u) in request!\n" | 2092 | msgid "Unsupported block type (%u) in request!\n" |
2096 | msgstr "" | 2093 | msgstr "" |
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 |
2100 | msgid "# RESULTS queued for clients" | 2098 | msgid "# RESULTS queued for clients" |
2101 | msgstr "" | 2099 | msgstr "" |
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 |
2107 | msgid "# REPLIES ignored for CLIENTS (no match)" | 2107 | msgid "# REPLIES ignored for CLIENTS (no match)" |
2108 | msgstr "" | 2108 | msgstr "" |
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 |
2112 | msgid "Could not pass reply to client, message too big!\n" | 2113 | msgid "Could not pass reply to client, message too big!\n" |
2113 | msgstr "" | 2114 | msgstr "" |
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 |
2118 | msgid "%s request received, but have no datacache!\n" | 2118 | msgid "%s request received, but have no datacache!\n" |
2119 | msgstr "" | 2119 | msgstr "" |
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 | ||
2123 | msgid "# ITEMS stored in datacache" | 2124 | msgid "# ITEMS stored in datacache" |
2124 | msgstr "" | 2125 | msgstr "" |
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 | ||
2128 | msgid "# Good RESULTS found in datacache" | 2130 | msgid "# Good RESULTS found in datacache" |
2129 | msgstr "" | 2131 | msgstr "" |
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 | ||
2133 | msgid "# Duplicate RESULTS found in datacache" | 2136 | msgid "# Duplicate RESULTS found in datacache" |
2134 | msgstr "" | 2137 | msgstr "" |
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 | ||
2138 | msgid "# Invalid RESULTS found in datacache" | 2142 | msgid "# Invalid RESULTS found in datacache" |
2139 | msgstr "" | 2143 | msgstr "" |
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 | ||
2143 | msgid "# Irrelevant RESULTS found in datacache" | 2148 | msgid "# Irrelevant RESULTS found in datacache" |
2144 | msgstr "" | 2149 | msgstr "" |
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 | ||
2148 | msgid "# Unsupported RESULTS found in datacache" | 2154 | msgid "# Unsupported RESULTS found in datacache" |
2149 | msgstr "" | 2155 | msgstr "" |
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 |
2154 | msgid "Unsupported block type (%u) in local response!\n" | 2161 | msgid "Unsupported block type (%u) in local response!\n" |
2155 | msgstr "" | 2162 | msgstr "" |
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 | ||
2159 | msgid "# GET requests given to datacache" | 2167 | msgid "# GET requests given to datacache" |
2160 | msgstr "" | 2168 | msgstr "" |
2161 | 2169 | ||
@@ -2173,7 +2181,7 @@ msgid "# FIND PEER messages initiated" | |||
2173 | msgstr "" | 2181 | msgstr "" |
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 |
2177 | msgid "# Queued messages discarded (peer disconnected)" | 2185 | msgid "# Queued messages discarded (peer disconnected)" |
2178 | msgstr "" | 2186 | msgstr "" |
2179 | 2187 | ||
@@ -2280,7 +2288,8 @@ msgstr "" | |||
2280 | msgid "# P2P RESULT bytes received" | 2288 | msgid "# P2P RESULT bytes received" |
2281 | msgstr "" | 2289 | msgstr "" |
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 | ||
2284 | msgid "# Network size estimates received" | 2293 | msgid "# Network size estimates received" |
2285 | msgstr "" | 2294 | msgstr "" |
2286 | 2295 | ||
@@ -2316,6 +2325,10 @@ msgstr "" | |||
2316 | msgid "# DHT requests combined" | 2325 | msgid "# DHT requests combined" |
2317 | msgstr "" | 2326 | msgstr "" |
2318 | 2327 | ||
2328 | #: src/dht/gnunet-service-wdht_datacache.c:82 | ||
2329 | msgid "PUT request received, but have no datacache!\n" | ||
2330 | msgstr "" | ||
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 |
2321 | msgid "" | 2334 | msgid "" |
@@ -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 |
2391 | msgid "# Bytes received from other peers" | 2404 | msgid "# Bytes received from other peers" |
2392 | msgstr "" | 2405 | msgstr "" |
2393 | 2406 | ||
@@ -5803,64 +5816,64 @@ msgstr "运行 %s失败:%s %d\n" | |||
5803 | msgid "Failed to get fragment!\n" | 5816 | msgid "Failed to get fragment!\n" |
5804 | msgstr "发送消息失败。\n" | 5817 | msgstr "发送消息失败。\n" |
5805 | 5818 | ||
5806 | #: src/psycstore/gnunet-service-psycstore.c:402 | 5819 | #: src/psycstore/gnunet-service-psycstore.c:417 |
5807 | #, fuzzy | 5820 | #, fuzzy |
5808 | msgid "Failed to get message!\n" | 5821 | msgid "Failed to get message!\n" |
5809 | msgstr "发送消息失败。\n" | 5822 | msgstr "发送消息失败。\n" |
5810 | 5823 | ||
5811 | #: src/psycstore/gnunet-service-psycstore.c:433 | 5824 | #: src/psycstore/gnunet-service-psycstore.c:448 |
5812 | #, fuzzy | 5825 | #, fuzzy |
5813 | msgid "Failed to get message fragment!\n" | 5826 | msgid "Failed to get message fragment!\n" |
5814 | msgstr "打开日志文件“%s”失败:%s\n" | 5827 | msgstr "打开日志文件“%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 |
5818 | msgid "Failed to get master counters!\n" | 5831 | msgid "Failed to get master counters!\n" |
5819 | msgstr "发送消息失败。\n" | 5832 | msgstr "发送消息失败。\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 |
5823 | msgid "Tried to set invalid state variable name!\n" | 5836 | msgid "Tried to set invalid state variable name!\n" |
5824 | msgstr "" | 5837 | msgstr "" |
5825 | 5838 | ||
5826 | #: src/psycstore/gnunet-service-psycstore.c:513 | 5839 | #: src/psycstore/gnunet-service-psycstore.c:528 |
5827 | #, fuzzy | 5840 | #, fuzzy |
5828 | msgid "Failed to begin modifying state!\n" | 5841 | msgid "Failed to begin modifying state!\n" |
5829 | msgstr "运行 %s失败:%s %d\n" | 5842 | msgstr "运行 %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 |
5833 | msgid "Unknown operator: %c\n" | 5846 | msgid "Unknown operator: %c\n" |
5834 | msgstr "未知错误" | 5847 | msgstr "未知错误" |
5835 | 5848 | ||
5836 | #: src/psycstore/gnunet-service-psycstore.c:546 | 5849 | #: src/psycstore/gnunet-service-psycstore.c:561 |
5837 | #, fuzzy | 5850 | #, fuzzy |
5838 | msgid "Failed to end modifying state!\n" | 5851 | msgid "Failed to end modifying state!\n" |
5839 | msgstr "运行 %s失败:%s %d\n" | 5852 | msgstr "运行 %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 |
5843 | msgid "Failed to begin synchronizing state!\n" | 5856 | msgid "Failed to begin synchronizing state!\n" |
5844 | msgstr "发送消息失败。\n" | 5857 | msgstr "发送消息失败。\n" |
5845 | 5858 | ||
5846 | #: src/psycstore/gnunet-service-psycstore.c:600 | 5859 | #: src/psycstore/gnunet-service-psycstore.c:615 |
5847 | #, fuzzy | 5860 | #, fuzzy |
5848 | msgid "Failed to end synchronizing state!\n" | 5861 | msgid "Failed to end synchronizing state!\n" |
5849 | msgstr "发送消息失败。\n" | 5862 | msgstr "发送消息失败。\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 |
5854 | msgid "Failed to reset state!\n" | 5867 | msgid "Failed to reset state!\n" |
5855 | msgstr "发送消息失败。\n" | 5868 | msgstr "发送消息失败。\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 |
5859 | msgid "Tried to get invalid state variable name!\n" | 5872 | msgid "Tried to get invalid state variable name!\n" |
5860 | msgstr "" | 5873 | msgstr "" |
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 |
5865 | msgid "Failed to get state variable!\n" | 5878 | msgid "Failed to get state variable!\n" |
5866 | msgstr "发送消息失败。\n" | 5879 | msgstr "发送消息失败。\n" |
@@ -5870,7 +5883,7 @@ msgstr "发送消息失败。\n" | |||
5870 | msgid "`%s' failed at %s:%d with error: %s (%d)\n" | 5883 | msgid "`%s' failed at %s:%d with error: %s (%d)\n" |
5871 | msgstr "“%s”于 %s:%d 处失败,错误为:%s\n" | 5884 | msgstr "“%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 |
5875 | msgid "SQLite database running\n" | 5888 | msgid "SQLite database running\n" |
5876 | msgstr "sqlite 数据仓库" | 5889 | msgstr "sqlite 数据仓库" |
@@ -7853,7 +7866,7 @@ msgid "Found %u addresses to report to NAT service\n" | |||
7853 | msgstr "" | 7866 | msgstr "" |
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 |
7857 | msgid "Disabling IPv6 since it is not supported on this system!\n" | 7870 | msgid "Disabling IPv6 since it is not supported on this system!\n" |
7858 | msgstr "" | 7871 | msgstr "" |
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" |
8098 | msgstr "" | 8111 | msgstr "" |
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 |
8103 | msgid "Failed to bind UDP socket to %s: %s\n" | 8116 | msgid "Failed to bind UDP socket to %s: %s\n" |
8104 | msgstr "打开日志文件“%s”失败:%s\n" | 8117 | msgstr "打开日志文件“%s”失败:%s\n" |
8105 | 8118 | ||
8106 | #: src/transport/plugin_transport_udp.c:3429 | 8119 | #: src/transport/plugin_transport_udp.c:3432 |
8107 | msgid "Disabling IPv4 since it is not supported on this system!\n" | 8120 | msgid "Disabling IPv4 since it is not supported on this system!\n" |
8108 | msgstr "" | 8121 | msgstr "" |
8109 | 8122 | ||
8110 | #: src/transport/plugin_transport_udp.c:3520 | 8123 | #: src/transport/plugin_transport_udp.c:3523 |
8111 | #, fuzzy | 8124 | #, fuzzy |
8112 | msgid "Failed to open UDP sockets\n" | 8125 | msgid "Failed to open UDP sockets\n" |
8113 | msgstr "打开日志文件“%s”失败:%s\n" | 8126 | msgstr "打开日志文件“%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 |
8117 | msgid "must be in [0,65535]" | 8130 | msgid "must be in [0,65535]" |
8118 | msgstr "" | 8131 | msgstr "" |
8119 | 8132 | ||
8120 | #: src/transport/plugin_transport_udp.c:3637 | 8133 | #: src/transport/plugin_transport_udp.c:3640 |
8121 | #, fuzzy | 8134 | #, fuzzy |
8122 | msgid "must be valid IPv4 address" | 8135 | msgid "must be valid IPv4 address" |
8123 | msgstr "“%s”不可用。\n" | 8136 | msgstr "“%s”不可用。\n" |
8124 | 8137 | ||
8125 | #: src/transport/plugin_transport_udp.c:3664 | 8138 | #: src/transport/plugin_transport_udp.c:3667 |
8126 | #, fuzzy | 8139 | #, fuzzy |
8127 | msgid "must be valid IPv6 address" | 8140 | msgid "must be valid IPv6 address" |
8128 | msgstr "“%s”不可用。\n" | 8141 | msgstr "“%s”不可用。\n" |
8129 | 8142 | ||
8130 | #: src/transport/plugin_transport_udp.c:3730 | 8143 | #: src/transport/plugin_transport_udp.c:3733 |
8131 | #, fuzzy | 8144 | #, fuzzy |
8132 | msgid "Failed to create UDP network sockets\n" | 8145 | msgid "Failed to create UDP network sockets\n" |
8133 | msgstr "发送消息失败。\n" | 8146 | msgstr "发送消息失败。\n" |
@@ -8434,7 +8447,7 @@ msgstr "对驱动器“%2$s”的“%1$s”操作失败:%3$u\n" | |||
8434 | msgid "libgcrypt has not the expected version (version %s is required).\n" | 8447 | msgid "libgcrypt has not the expected version (version %s is required).\n" |
8435 | msgstr "libgcrypt 的版本不符合预期(要求版本 %s)。\n" | 8448 | msgstr "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 |
8439 | msgid "RSA signature verification failed at %s:%d: %s\n" | 8452 | msgid "RSA signature verification failed at %s:%d: %s\n" |
8440 | msgstr "对驱动器“%2$s”的“%1$s”操作失败:%3$u\n" | 8453 | msgstr "对驱动器“%2$s”的“%1$s”操作失败:%3$u\n" |
@@ -9229,23 +9242,27 @@ msgstr "" | |||
9229 | msgid "Setup tunnels via VPN." | 9242 | msgid "Setup tunnels via VPN." |
9230 | msgstr "" | 9243 | msgstr "" |
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 |
9235 | msgid "Assertion failed at %s:%d.\n" | 9248 | msgid "Assertion failed at %s:%d.\n" |
9236 | msgstr "" | 9249 | msgstr "" |
9237 | 9250 | ||
9238 | #: src/include/gnunet_common.h:617 | 9251 | #: src/include/gnunet_common.h:658 |
9239 | #, c-format | 9252 | #, c-format |
9240 | msgid "External protocol violation detected at %s:%d.\n" | 9253 | msgid "External protocol violation detected at %s:%d.\n" |
9241 | msgstr "" | 9254 | msgstr "" |
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 |
9245 | msgid "`%s' failed on file `%s' at %s:%d with error: %s\n" | 9258 | msgid "`%s' failed on file `%s' at %s:%d with error: %s\n" |
9246 | msgstr "" | 9259 | msgstr "" |
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 |
48 | endif | 48 | endif |
49 | 49 | ||
50 | if TALER_ONLY | ||
51 | SUBDIRS = \ | ||
52 | include \ | ||
53 | util | ||
54 | else | ||
55 | |||
50 | SUBDIRS = \ | 56 | SUBDIRS = \ |
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 | |||
105 | endif | ||
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 | ||
16 | if TALER_ONLY | ||
17 | gnunetinclude_HEADERS = \ | ||
18 | gnunet_util_taler_wallet.h | ||
19 | else | ||
20 | |||
16 | gnunetinclude_HEADERS = \ | 21 | gnunetinclude_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 | |||
114 | endif | ||
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 | ||
37 | extern "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 = \ | |||
46 | gnunet_helper_w32_console_LDADD = \ | 46 | gnunet_helper_w32_console_LDADD = \ |
47 | libgnunetutil.la | 47 | libgnunetutil.la |
48 | 48 | ||
49 | noinst_PROGRAMS = \ | ||
50 | gnunet-config-diff \ | ||
51 | $(W32CAT) \ | ||
52 | test_common_logging_dummy | ||
53 | |||
54 | |||
55 | gnunet_config_diff_SOURCES = \ | 49 | gnunet_config_diff_SOURCES = \ |
56 | gnunet-config-diff.c | 50 | gnunet-config-diff.c |
57 | gnunet_config_diff_LDADD = \ | 51 | gnunet_config_diff_LDADD = \ |
@@ -62,8 +56,6 @@ test_common_logging_dummy_SOURCES = \ | |||
62 | test_common_logging_dummy_LDADD = \ | 56 | test_common_logging_dummy_LDADD = \ |
63 | libgnunetutil.la | 57 | libgnunetutil.la |
64 | 58 | ||
65 | lib_LTLIBRARIES = libgnunetutil.la | ||
66 | |||
67 | libgnunetutil_la_SOURCES = \ | 59 | libgnunetutil_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 | |||
127 | libgnunetutil_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 | |||
149 | libgnunetutil_taler_wallet_la_LIBADD = \ | ||
150 | $(LIBGCRYPT_LIBS) \ | ||
151 | -lunistring | ||
152 | |||
153 | libgnunetutil_taler_wallet_la_LDFLAGS = \ | ||
154 | $(GN_LIB_LDFLAGS) \ | ||
155 | -version-info 0:0:0 | ||
156 | |||
130 | if HAVE_TESTING | 157 | if HAVE_TESTING |
131 | GNUNET_ECC = gnunet-ecc | 158 | GNUNET_ECC = gnunet-ecc |
132 | GNUNET_SCRYPT = gnunet-scrypt | 159 | GNUNET_SCRYPT = gnunet-scrypt |
133 | endif | 160 | endif |
134 | 161 | ||
162 | if TALER_ONLY | ||
163 | lib_LTLIBRARIES = libgnunetutil_taler_wallet.la | ||
164 | else | ||
165 | lib_LTLIBRARIES = libgnunetutil.la | ||
135 | 166 | ||
136 | libexec_PROGRAMS = \ | 167 | libexec_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 | ||
181 | noinst_PROGRAMS = \ | ||
182 | gnunet-config-diff \ | ||
183 | $(W32CAT) \ | ||
184 | test_common_logging_dummy | ||
185 | |||
186 | |||
187 | if ENABLE_TEST_RUN | ||
188 | AM_TESTS_ENVIRONMENT=export GNUNET_PREFIX=$${GNUNET_PREFIX:-@libdir@};export PATH=$${GNUNET_PREFIX:-@prefix@}/bin:$$PATH; | ||
189 | TESTS = $(check_PROGRAMS) | ||
190 | endif | ||
191 | |||
192 | endif | ||
193 | |||
194 | |||
150 | do_subst = $(SED) -e 's,[@]PYTHON[@],$(PYTHON),g' | 195 | do_subst = $(SED) -e 's,[@]PYTHON[@],$(PYTHON),g' |
151 | 196 | ||
152 | gnunet-qr: gnunet-qr.py.in Makefile | 197 | gnunet-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 | ||
269 | if ENABLE_TEST_RUN | ||
270 | AM_TESTS_ENVIRONMENT=export GNUNET_PREFIX=$${GNUNET_PREFIX:-@libdir@};export PATH=$${GNUNET_PREFIX:-@prefix@}/bin:$$PATH; | ||
271 | TESTS = $(check_PROGRAMS) | ||
272 | endif | ||
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 | */ | ||
1705 | int | ||
1706 | GNUNET_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 | */ | ||
35 | int | ||
36 | GNUNET_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 | */ | ||
667 | static void | ||
668 | short_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 | */ | ||
691 | struct GNUNET_CRYPTO_EddsaPrivateKey * | ||
692 | GNUNET_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 | */ | ||
847 | struct GNUNET_CRYPTO_EcdsaPrivateKey * | ||
848 | GNUNET_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 | */ | ||
997 | struct GNUNET_CRYPTO_EddsaPrivateKey * | ||
998 | GNUNET_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 | */ | ||
1020 | void | ||
1021 | GNUNET_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 | */ | ||
1043 | int | ||
1044 | GNUNET_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 | */ | ||
38 | static void | ||
39 | short_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 | */ | ||
62 | struct GNUNET_CRYPTO_EddsaPrivateKey * | ||
63 | GNUNET_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 | */ | ||
218 | struct GNUNET_CRYPTO_EcdsaPrivateKey * | ||
219 | GNUNET_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 | */ | ||
368 | struct GNUNET_CRYPTO_EddsaPrivateKey * | ||
369 | GNUNET_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 | */ | ||
391 | int | ||
392 | GNUNET_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 | */ | ||
417 | void | ||
418 | GNUNET_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 | */ | ||
55 | struct 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 | */ | ||
120 | static void | ||
121 | file_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 | */ | ||
139 | static void | ||
140 | file_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 | */ | ||
180 | struct GNUNET_CRYPTO_FileHashContext * | ||
181 | GNUNET_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 | */ | ||
229 | void | ||
230 | GNUNET_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 | */ | ||
32 | struct 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 | */ | ||
97 | static void | ||
98 | file_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 | */ | ||
116 | static void | ||
117 | file_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 | */ | ||
157 | struct GNUNET_CRYPTO_FileHashContext * | ||
158 | GNUNET_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 | */ | ||
206 | void | ||
207 | GNUNET_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 | */ | ||
1283 | struct 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 | */ | ||
1322 | static void | ||
1323 | directory_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 | */ | ||
1348 | int | ||
1349 | GNUNET_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 | */ | ||
1395 | int | ||
1396 | GNUNET_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 | */ | ||
31 | struct 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 | */ | ||
70 | static void | ||
71 | directory_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 | */ | ||
96 | int | ||
97 | GNUNET_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 | */ | ||
143 | int | ||
144 | GNUNET_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 */ | ||