From 252641fac99f52ab225fbba3a305b5e0396338c0 Mon Sep 17 00:00:00 2001 From: "Schanzenbach, Martin" Date: Fri, 17 Apr 2020 19:58:40 +0200 Subject: add argon2 for LSD0001 --- src/util/Makefile.am | 1 + src/util/crypto_pow.c | 59 +++++++++++++++++++++++++++++++-------------------- 2 files changed, 37 insertions(+), 23 deletions(-) diff --git a/src/util/Makefile.am b/src/util/Makefile.am index ae72abb44..fed0dad79 100644 --- a/src/util/Makefile.am +++ b/src/util/Makefile.am @@ -133,6 +133,7 @@ libgnunetutil_la_LIBADD = \ $(LIBIDN) $(LIBIDN2) \ $(Z_LIBS) \ -lunistring \ + -largon2 \ $(XLIB) \ $(PTHREAD) diff --git a/src/util/crypto_pow.c b/src/util/crypto_pow.c index 9b20ab345..d3e4dbc43 100644 --- a/src/util/crypto_pow.c +++ b/src/util/crypto_pow.c @@ -25,7 +25,9 @@ */ #include "platform.h" #include "gnunet_crypto_lib.h" -#include +#include + +#define LSD001 /** * Calculate the 'proof-of-work' hash (an expensive hash). @@ -44,21 +46,21 @@ GNUNET_CRYPTO_pow_hash (const char *salt, struct GNUNET_HashCode *result) { #ifdef LSD001 - char twofish_iv[128 / 8]; //128 bit IV - char twofish_key[256 / 8]; //256 bit Key + char twofish_iv[128 / 8]; // 128 bit IV + char twofish_key[256 / 8]; // 256 bit Key char rbuf[buf_len]; int rc; gcry_cipher_hd_t handle; - GNUNET_break (0 == gcry_kdf_derive (buf, - buf_len, - GCRY_KDF_SCRYPT, - 1 /* subalgo */, - salt, - strlen (salt), - 2 /* iterations; keep cost of individual op small */, - sizeof(twofish_key), - &twofish_key)); + GNUNET_break (ARGON2_OK == argon2d_hash_raw (2, /* iterations */ + 100000, /* memory (kb) */ + 1, /* threads */ + buf, + buf_len, + salt, + strlen (salt), + &twofish_key, + sizeof (twofish_key))); GNUNET_CRYPTO_kdf (twofish_iv, sizeof (twofish_iv), @@ -80,22 +82,33 @@ GNUNET_CRYPTO_pow_hash (const char *salt, twofish_iv, sizeof(twofish_iv)); GNUNET_assert ((0 == rc) || ((char) rc == GPG_ERR_WEAK_KEY)); - GNUNET_assert (0 == gcry_cipher_encrypt (handle, &rbuf, buf_len, buf, buf_len)); + GNUNET_assert (0 == gcry_cipher_encrypt (handle, &rbuf, buf_len, buf, + buf_len)); gcry_cipher_close (handle); + GNUNET_break (ARGON2_OK == argon2d_hash_raw (2, /* iterations */ + 100000, /* memory */ + 1, /* threads */ + rbuf, + buf_len, + salt, + strlen (salt), + result, + sizeof (struct GNUNET_HashCode))); + #else struct GNUNET_CRYPTO_SymmetricInitializationVector iv; struct GNUNET_CRYPTO_SymmetricSessionKey skey; char rbuf[buf_len]; - GNUNET_break (0 == gcry_kdf_derive (buf, - buf_len, - GCRY_KDF_SCRYPT, - 1 /* subalgo */, - salt, - strlen (salt), - 2 /* iterations; keep cost of individual op small */, - sizeof(skey), - &skey)); + GNUNET_break (ARGON2_OK == argon2d_hash_raw (buf, + buf_len, + GCRY_KDF_SCRYPT, + 1 /* subalgo */, + salt, + strlen (salt), + 2 /* iterations; keep cost of individual op small */, + sizeof(skey), + &skey)); GNUNET_CRYPTO_symmetric_derive_iv (&iv, &skey, "gnunet-proof-of-work-iv", @@ -108,7 +121,6 @@ GNUNET_CRYPTO_pow_hash (const char *salt, &skey, &iv, &rbuf); -#endif GNUNET_break (0 == gcry_kdf_derive (rbuf, buf_len, GCRY_KDF_SCRYPT, @@ -118,6 +130,7 @@ GNUNET_CRYPTO_pow_hash (const char *salt, 2 /* iterations; keep cost of individual op small */, sizeof(struct GNUNET_HashCode), result)); +#endif } -- cgit v1.2.3 From 2be21d379f34329dd38b66242701549731261828 Mon Sep 17 00:00:00 2001 From: "Schanzenbach, Martin" Date: Fri, 17 Apr 2020 19:58:40 +0200 Subject: add argon2 for LSD0001 --- src/util/Makefile.am | 1 + src/util/crypto_pow.c | 59 +++++++++++++++++++++++++++++++-------------------- 2 files changed, 37 insertions(+), 23 deletions(-) diff --git a/src/util/Makefile.am b/src/util/Makefile.am index ae72abb44..fed0dad79 100644 --- a/src/util/Makefile.am +++ b/src/util/Makefile.am @@ -133,6 +133,7 @@ libgnunetutil_la_LIBADD = \ $(LIBIDN) $(LIBIDN2) \ $(Z_LIBS) \ -lunistring \ + -largon2 \ $(XLIB) \ $(PTHREAD) diff --git a/src/util/crypto_pow.c b/src/util/crypto_pow.c index 9b20ab345..d3e4dbc43 100644 --- a/src/util/crypto_pow.c +++ b/src/util/crypto_pow.c @@ -25,7 +25,9 @@ */ #include "platform.h" #include "gnunet_crypto_lib.h" -#include +#include + +#define LSD001 /** * Calculate the 'proof-of-work' hash (an expensive hash). @@ -44,21 +46,21 @@ GNUNET_CRYPTO_pow_hash (const char *salt, struct GNUNET_HashCode *result) { #ifdef LSD001 - char twofish_iv[128 / 8]; //128 bit IV - char twofish_key[256 / 8]; //256 bit Key + char twofish_iv[128 / 8]; // 128 bit IV + char twofish_key[256 / 8]; // 256 bit Key char rbuf[buf_len]; int rc; gcry_cipher_hd_t handle; - GNUNET_break (0 == gcry_kdf_derive (buf, - buf_len, - GCRY_KDF_SCRYPT, - 1 /* subalgo */, - salt, - strlen (salt), - 2 /* iterations; keep cost of individual op small */, - sizeof(twofish_key), - &twofish_key)); + GNUNET_break (ARGON2_OK == argon2d_hash_raw (2, /* iterations */ + 100000, /* memory (kb) */ + 1, /* threads */ + buf, + buf_len, + salt, + strlen (salt), + &twofish_key, + sizeof (twofish_key))); GNUNET_CRYPTO_kdf (twofish_iv, sizeof (twofish_iv), @@ -80,22 +82,33 @@ GNUNET_CRYPTO_pow_hash (const char *salt, twofish_iv, sizeof(twofish_iv)); GNUNET_assert ((0 == rc) || ((char) rc == GPG_ERR_WEAK_KEY)); - GNUNET_assert (0 == gcry_cipher_encrypt (handle, &rbuf, buf_len, buf, buf_len)); + GNUNET_assert (0 == gcry_cipher_encrypt (handle, &rbuf, buf_len, buf, + buf_len)); gcry_cipher_close (handle); + GNUNET_break (ARGON2_OK == argon2d_hash_raw (2, /* iterations */ + 100000, /* memory */ + 1, /* threads */ + rbuf, + buf_len, + salt, + strlen (salt), + result, + sizeof (struct GNUNET_HashCode))); + #else struct GNUNET_CRYPTO_SymmetricInitializationVector iv; struct GNUNET_CRYPTO_SymmetricSessionKey skey; char rbuf[buf_len]; - GNUNET_break (0 == gcry_kdf_derive (buf, - buf_len, - GCRY_KDF_SCRYPT, - 1 /* subalgo */, - salt, - strlen (salt), - 2 /* iterations; keep cost of individual op small */, - sizeof(skey), - &skey)); + GNUNET_break (ARGON2_OK == argon2d_hash_raw (buf, + buf_len, + GCRY_KDF_SCRYPT, + 1 /* subalgo */, + salt, + strlen (salt), + 2 /* iterations; keep cost of individual op small */, + sizeof(skey), + &skey)); GNUNET_CRYPTO_symmetric_derive_iv (&iv, &skey, "gnunet-proof-of-work-iv", @@ -108,7 +121,6 @@ GNUNET_CRYPTO_pow_hash (const char *salt, &skey, &iv, &rbuf); -#endif GNUNET_break (0 == gcry_kdf_derive (rbuf, buf_len, GCRY_KDF_SCRYPT, @@ -118,6 +130,7 @@ GNUNET_CRYPTO_pow_hash (const char *salt, 2 /* iterations; keep cost of individual op small */, sizeof(struct GNUNET_HashCode), result)); +#endif } -- cgit v1.2.3 From 7055edb1ab58c1968d647db7e2bf7a19226066bb Mon Sep 17 00:00:00 2001 From: "Schanzenbach, Martin" Date: Fri, 17 Apr 2020 22:52:28 +0200 Subject: update params --- src/util/crypto_pow.c | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/src/util/crypto_pow.c b/src/util/crypto_pow.c index d3e4dbc43..5e225f244 100644 --- a/src/util/crypto_pow.c +++ b/src/util/crypto_pow.c @@ -25,9 +25,10 @@ */ #include "platform.h" #include "gnunet_crypto_lib.h" +#include #include -#define LSD001 +#define LSD0001 /** * Calculate the 'proof-of-work' hash (an expensive hash). @@ -45,15 +46,15 @@ GNUNET_CRYPTO_pow_hash (const char *salt, size_t buf_len, struct GNUNET_HashCode *result) { -#ifdef LSD001 +#ifdef LSD0001 char twofish_iv[128 / 8]; // 128 bit IV char twofish_key[256 / 8]; // 256 bit Key char rbuf[buf_len]; int rc; gcry_cipher_hd_t handle; - GNUNET_break (ARGON2_OK == argon2d_hash_raw (2, /* iterations */ - 100000, /* memory (kb) */ + GNUNET_break (ARGON2_OK == argon2d_hash_raw (3, /* iterations */ + 1024, /* memory (1 MiB) */ 1, /* threads */ buf, buf_len, @@ -85,30 +86,31 @@ GNUNET_CRYPTO_pow_hash (const char *salt, GNUNET_assert (0 == gcry_cipher_encrypt (handle, &rbuf, buf_len, buf, buf_len)); gcry_cipher_close (handle); - GNUNET_break (ARGON2_OK == argon2d_hash_raw (2, /* iterations */ - 100000, /* memory */ + GNUNET_break (ARGON2_OK == argon2d_hash_raw (3, /* iterations */ + 1024, /* memory (1 MiB) */ 1, /* threads */ rbuf, buf_len, salt, strlen (salt), result, - sizeof (struct GNUNET_HashCode))); + sizeof (struct + GNUNET_HashCode))); #else struct GNUNET_CRYPTO_SymmetricInitializationVector iv; struct GNUNET_CRYPTO_SymmetricSessionKey skey; char rbuf[buf_len]; - GNUNET_break (ARGON2_OK == argon2d_hash_raw (buf, - buf_len, - GCRY_KDF_SCRYPT, - 1 /* subalgo */, - salt, - strlen (salt), - 2 /* iterations; keep cost of individual op small */, - sizeof(skey), - &skey)); + GNUNET_break (0 == gcry_kdf_derive (buf, + buf_len, + GCRY_KDF_SCRYPT, + 1 /* subalgo */, + salt, + strlen (salt), + 2 /* iterations; keep cost of individual op small */, + sizeof(skey), + &skey)); GNUNET_CRYPTO_symmetric_derive_iv (&iv, &skey, "gnunet-proof-of-work-iv", -- cgit v1.2.3 From 91cccda131a12be139d50effe4657c6b24e36135 Mon Sep 17 00:00:00 2001 From: "Schanzenbach, Martin" Date: Fri, 17 Apr 2020 22:55:52 +0200 Subject: revert --- src/util/crypto_pow.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/util/crypto_pow.c b/src/util/crypto_pow.c index 435bf34d6..5e225f244 100644 --- a/src/util/crypto_pow.c +++ b/src/util/crypto_pow.c @@ -102,15 +102,15 @@ GNUNET_CRYPTO_pow_hash (const char *salt, struct GNUNET_CRYPTO_SymmetricSessionKey skey; char rbuf[buf_len]; - GNUNET_break (ARGON2_OK == argon2d_hash_raw (buf, - buf_len, - GCRY_KDF_SCRYPT, - 1 /* subalgo */, - salt, - strlen (salt), - 2 /* iterations; keep cost of individual op small */, - sizeof(skey), - &skey)); + GNUNET_break (0 == gcry_kdf_derive (buf, + buf_len, + GCRY_KDF_SCRYPT, + 1 /* subalgo */, + salt, + strlen (salt), + 2 /* iterations; keep cost of individual op small */, + sizeof(skey), + &skey)); GNUNET_CRYPTO_symmetric_derive_iv (&iv, &skey, "gnunet-proof-of-work-iv", -- cgit v1.2.3 From f00c18e631ce8bdaf80d20f236ef275c9cb99291 Mon Sep 17 00:00:00 2001 From: "Schanzenbach, Martin" Date: Sat, 18 Apr 2020 19:46:44 +0200 Subject: simplify pow even more; add timestamp to revocation pow --- src/include/gnunet_revocation_service.h | 4 +++ src/revocation/gnunet-revocation.c | 22 ++++++++++++++++- src/revocation/gnunet-service-revocation.c | 3 +++ src/revocation/plugin_block_revocation.c | 3 +++ src/revocation/revocation.h | 5 ++++ src/revocation/revocation_api.c | 17 +++++++++++-- src/util/crypto_pow.c | 39 ------------------------------ 7 files changed, 51 insertions(+), 42 deletions(-) diff --git a/src/include/gnunet_revocation_service.h b/src/include/gnunet_revocation_service.h index 7222cedc1..1e1abb787 100644 --- a/src/include/gnunet_revocation_service.h +++ b/src/include/gnunet_revocation_service.h @@ -105,6 +105,7 @@ struct GNUNET_REVOCATION_Handle; * @param key public key of the key to revoke * @param sig signature to use on the revocation (should have been * created using #GNUNET_REVOCATION_sign_revocation). + * @param ts revocation timestamp * @param pow proof of work to use (should have been created by * iteratively calling #GNUNET_REVOCATION_check_pow) * @param func funtion to call with the result of the check @@ -117,6 +118,7 @@ struct GNUNET_REVOCATION_Handle * GNUNET_REVOCATION_revoke (const struct GNUNET_CONFIGURATION_Handle *cfg, const struct GNUNET_CRYPTO_EcdsaPublicKey *key, const struct GNUNET_CRYPTO_EcdsaSignature *sig, + const struct GNUNET_TIME_Absolute *ts, uint64_t pow, GNUNET_REVOCATION_Callback func, void *func_cls); @@ -135,12 +137,14 @@ GNUNET_REVOCATION_revoke_cancel (struct GNUNET_REVOCATION_Handle *h); * would be acceptable for revoking the given key. * * @param key key to check for + * @param ts revocation timestamp * @param pow proof of work value * @param matching_bits how many bits must match (configuration) * @return #GNUNET_YES if the @a pow is acceptable, #GNUNET_NO if not */ int GNUNET_REVOCATION_check_pow (const struct GNUNET_CRYPTO_EcdsaPublicKey *key, + const struct GNUNET_TIME_Absolute *ts, uint64_t pow, unsigned int matching_bits); diff --git a/src/revocation/gnunet-revocation.c b/src/revocation/gnunet-revocation.c index f5aa2d17e..42ec71d16 100644 --- a/src/revocation/gnunet-revocation.c +++ b/src/revocation/gnunet-revocation.c @@ -202,6 +202,11 @@ struct RevocationData */ struct GNUNET_CRYPTO_EcdsaSignature sig; + /** + * Time of revocation + */ + struct GNUNET_TIME_AbsoluteNBO ts; + /** * Proof of work (in NBO). */ @@ -215,9 +220,13 @@ struct RevocationData static void perform_revocation (const struct RevocationData *rd) { + struct GNUNET_TIME_Absolute ts; + + ts = GNUNET_TIME_absolute_ntoh (rd->ts); h = GNUNET_REVOCATION_revoke (cfg, &rd->key, &rd->sig, + &ts, rd->pow, &print_revocation_result, NULL); @@ -273,6 +282,7 @@ static void calculate_pow (void *cls) { struct RevocationData *rd = cls; + struct GNUNET_TIME_Absolute ts = GNUNET_TIME_absolute_ntoh (rd->ts); /* store temporary results */ pow_task = NULL; @@ -290,6 +300,7 @@ calculate_pow (void *cls) /* actually do POW calculation */ rd->pow++; if (GNUNET_OK == GNUNET_REVOCATION_check_pow (&rd->key, + &ts, rd->pow, (unsigned int) matching_bits)) { @@ -331,6 +342,7 @@ ego_callback (void *cls, const struct GNUNET_IDENTITY_Ego *ego) { struct RevocationData *rd; struct GNUNET_CRYPTO_EcdsaPublicKey key; + struct GNUNET_TIME_Absolute ts; el = NULL; if (NULL == ego) @@ -361,9 +373,14 @@ ego_callback (void *cls, const struct GNUNET_IDENTITY_Ego *ego) ego), &rd->sig); rd->key = key; + rd->ts = GNUNET_TIME_absolute_hton (GNUNET_TIME_absolute_get ()); } + ts = GNUNET_TIME_absolute_ntoh (rd->ts); if (GNUNET_YES == - GNUNET_REVOCATION_check_pow (&key, rd->pow, (unsigned int) matching_bits)) + GNUNET_REVOCATION_check_pow (&key, + &ts, + rd->pow, + (unsigned int) matching_bits)) { fprintf (stderr, "%s", _ ("Revocation certificate ready\n")); if (perform) @@ -397,6 +414,7 @@ run (void *cls, { struct GNUNET_CRYPTO_EcdsaPublicKey pk; struct RevocationData rd; + struct GNUNET_TIME_Absolute ts; cfg = c; if (NULL != test_ego) @@ -453,8 +471,10 @@ run (void *cls, return; } GNUNET_SCHEDULER_add_shutdown (&do_shutdown, NULL); + ts = GNUNET_TIME_absolute_ntoh (rd.ts); if (GNUNET_YES != GNUNET_REVOCATION_check_pow (&rd.key, + &ts, rd.pow, (unsigned int) matching_bits)) { diff --git a/src/revocation/gnunet-service-revocation.c b/src/revocation/gnunet-service-revocation.c index 3e811cd9a..ff75faa2c 100644 --- a/src/revocation/gnunet-service-revocation.c +++ b/src/revocation/gnunet-service-revocation.c @@ -167,8 +167,11 @@ new_peer_entry (const struct GNUNET_PeerIdentity *peer) static int verify_revoke_message (const struct RevokeMessage *rm) { + struct GNUNET_TIME_Absolute ts; + ts = GNUNET_TIME_absolute_ntoh (rm->ts); if (GNUNET_YES != GNUNET_REVOCATION_check_pow (&rm->public_key, + &ts, rm->proof_of_work, (unsigned int) revocation_work_required)) { diff --git a/src/revocation/plugin_block_revocation.c b/src/revocation/plugin_block_revocation.c index 8d16b8781..57234fa36 100644 --- a/src/revocation/plugin_block_revocation.c +++ b/src/revocation/plugin_block_revocation.c @@ -134,6 +134,7 @@ block_plugin_revocation_evaluate (void *cls, struct InternalContext *ic = cls; struct GNUNET_HashCode chash; const struct RevokeMessage *rm = reply_block; + struct GNUNET_TIME_Absolute ts; if (NULL == reply_block) return GNUNET_BLOCK_EVALUATION_REQUEST_VALID; @@ -142,8 +143,10 @@ block_plugin_revocation_evaluate (void *cls, GNUNET_break_op (0); return GNUNET_BLOCK_EVALUATION_RESULT_INVALID; } + ts = GNUNET_TIME_absolute_ntoh (rm->ts); if (GNUNET_YES != GNUNET_REVOCATION_check_pow (&rm->public_key, + &ts, rm->proof_of_work, ic->matching_bits)) { diff --git a/src/revocation/revocation.h b/src/revocation/revocation.h index b6e7a07ec..184f58e0a 100644 --- a/src/revocation/revocation.h +++ b/src/revocation/revocation.h @@ -88,6 +88,11 @@ struct RevokeMessage */ uint32_t reserved GNUNET_PACKED; + /** + * Timestamp + */ + struct GNUNET_TIME_AbsoluteNBO ts; + /** * Number that causes a hash collision with the @e public_key. */ diff --git a/src/revocation/revocation_api.c b/src/revocation/revocation_api.c index 4755d4816..c2aafd254 100644 --- a/src/revocation/revocation_api.c +++ b/src/revocation/revocation_api.c @@ -235,6 +235,7 @@ handle_revocation_response (void *cls, * @param key public key of the key to revoke * @param sig signature to use on the revocation (should have been * created using #GNUNET_REVOCATION_sign_revocation). + * @param ts revocation timestamp * @param pow proof of work to use (should have been created by * iteratively calling #GNUNET_REVOCATION_check_pow) * @param func funtion to call with the result of the check @@ -247,6 +248,7 @@ struct GNUNET_REVOCATION_Handle * GNUNET_REVOCATION_revoke (const struct GNUNET_CONFIGURATION_Handle *cfg, const struct GNUNET_CRYPTO_EcdsaPublicKey *key, const struct GNUNET_CRYPTO_EcdsaSignature *sig, + const struct GNUNET_TIME_Absolute *ts, uint64_t pow, GNUNET_REVOCATION_Callback func, void *func_cls) @@ -271,6 +273,7 @@ GNUNET_REVOCATION_revoke (const struct GNUNET_CONFIGURATION_Handle *cfg, &matching_bits)) && (GNUNET_YES != GNUNET_REVOCATION_check_pow (key, + ts, pow, (unsigned int) matching_bits))) { @@ -346,22 +349,32 @@ count_leading_zeroes (const struct GNUNET_HashCode *hash) * would be acceptable for revoking the given key. * * @param key key to check for + * @param ts revocation timestamp * @param pow proof of work value * @param matching_bits how many bits must match (configuration) * @return #GNUNET_YES if the @a pow is acceptable, #GNUNET_NO if not */ int GNUNET_REVOCATION_check_pow (const struct GNUNET_CRYPTO_EcdsaPublicKey *key, + const struct GNUNET_TIME_Absolute *ts, uint64_t pow, unsigned int matching_bits) { char buf[sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey) - + sizeof(pow)] GNUNET_ALIGN; + + sizeof(pow) + + sizeof (struct GNUNET_TIME_AbsoluteNBO)] GNUNET_ALIGN; struct GNUNET_HashCode result; + struct GNUNET_TIME_AbsoluteNBO ts_nbo; - GNUNET_memcpy (buf, &pow, sizeof(pow)); + ts_nbo = GNUNET_TIME_absolute_hton (*ts); + + GNUNET_memcpy (buf, &pow, sizeof(pow)) ; GNUNET_memcpy (&buf[sizeof(pow)], key, sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey)); + GNUNET_memcpy (&buf[sizeof(pow) + sizeof (struct GNUNET_TIME_AbsoluteNBO)], + &ts_nbo, + sizeof (struct GNUNET_TIME_AbsoluteNBO)); + GNUNET_CRYPTO_pow_hash ("gnunet-revocation-proof-of-work", buf, sizeof(buf), diff --git a/src/util/crypto_pow.c b/src/util/crypto_pow.c index 5e225f244..1ab4443d1 100644 --- a/src/util/crypto_pow.c +++ b/src/util/crypto_pow.c @@ -47,12 +47,6 @@ GNUNET_CRYPTO_pow_hash (const char *salt, struct GNUNET_HashCode *result) { #ifdef LSD0001 - char twofish_iv[128 / 8]; // 128 bit IV - char twofish_key[256 / 8]; // 256 bit Key - char rbuf[buf_len]; - int rc; - gcry_cipher_hd_t handle; - GNUNET_break (ARGON2_OK == argon2d_hash_raw (3, /* iterations */ 1024, /* memory (1 MiB) */ 1, /* threads */ @@ -60,39 +54,6 @@ GNUNET_CRYPTO_pow_hash (const char *salt, buf_len, salt, strlen (salt), - &twofish_key, - sizeof (twofish_key))); - - GNUNET_CRYPTO_kdf (twofish_iv, - sizeof (twofish_iv), - "gnunet-proof-of-work-iv", - strlen ("gnunet-proof-of-work-iv"), - twofish_key, - sizeof(twofish_key), - salt, - strlen (salt), - NULL, 0); - GNUNET_assert (0 == - gcry_cipher_open (&handle, GCRY_CIPHER_TWOFISH, - GCRY_CIPHER_MODE_CFB, 0)); - rc = gcry_cipher_setkey (handle, - twofish_key, - sizeof(twofish_key)); - GNUNET_assert ((0 == rc) || ((char) rc == GPG_ERR_WEAK_KEY)); - rc = gcry_cipher_setiv (handle, - twofish_iv, - sizeof(twofish_iv)); - GNUNET_assert ((0 == rc) || ((char) rc == GPG_ERR_WEAK_KEY)); - GNUNET_assert (0 == gcry_cipher_encrypt (handle, &rbuf, buf_len, buf, - buf_len)); - gcry_cipher_close (handle); - GNUNET_break (ARGON2_OK == argon2d_hash_raw (3, /* iterations */ - 1024, /* memory (1 MiB) */ - 1, /* threads */ - rbuf, - buf_len, - salt, - strlen (salt), result, sizeof (struct GNUNET_HashCode))); -- cgit v1.2.3 From eb6b547e243144f27749811c15b6cce90e03aaa7 Mon Sep 17 00:00:00 2001 From: "Schanzenbach, Martin" Date: Sat, 18 Apr 2020 21:14:03 +0200 Subject: towards more expirations --- src/revocation/revocation.h | 8 ++++---- src/revocation/revocation_api.c | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/revocation/revocation.h b/src/revocation/revocation.h index 184f58e0a..d7b9cc139 100644 --- a/src/revocation/revocation.h +++ b/src/revocation/revocation.h @@ -89,14 +89,14 @@ struct RevokeMessage uint32_t reserved GNUNET_PACKED; /** - * Timestamp + * Number that causes a hash collision with the @e public_key. */ - struct GNUNET_TIME_AbsoluteNBO ts; + uint64_t proof_of_work GNUNET_PACKED; /** - * Number that causes a hash collision with the @e public_key. + * Timestamp */ - uint64_t proof_of_work GNUNET_PACKED; + struct GNUNET_TIME_AbsoluteNBO ts; /** * Signature confirming revocation. diff --git a/src/revocation/revocation_api.c b/src/revocation/revocation_api.c index c2aafd254..c9bb2543a 100644 --- a/src/revocation/revocation_api.c +++ b/src/revocation/revocation_api.c @@ -368,13 +368,13 @@ GNUNET_REVOCATION_check_pow (const struct GNUNET_CRYPTO_EcdsaPublicKey *key, ts_nbo = GNUNET_TIME_absolute_hton (*ts); - GNUNET_memcpy (buf, &pow, sizeof(pow)) ; - GNUNET_memcpy (&buf[sizeof(pow)], key, - sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey)); - GNUNET_memcpy (&buf[sizeof(pow) + sizeof (struct GNUNET_TIME_AbsoluteNBO)], + GNUNET_memcpy (buf, &pow, sizeof(pow)); + GNUNET_memcpy (&buf[sizeof(pow)], &ts_nbo, sizeof (struct GNUNET_TIME_AbsoluteNBO)); - + GNUNET_memcpy (&buf[sizeof(pow) + sizeof (struct GNUNET_TIME_AbsoluteNBO)], + key, + sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey)); GNUNET_CRYPTO_pow_hash ("gnunet-revocation-proof-of-work", buf, sizeof(buf), -- cgit v1.2.3 From 8f9a45e853d9759f04a5f4fe9aa0146ed3f3fb17 Mon Sep 17 00:00:00 2001 From: "Schanzenbach, Martin" Date: Sun, 19 Apr 2020 20:05:26 +0200 Subject: towards less variance --- src/include/gnunet_revocation_service.h | 89 +++++++++++-- src/revocation/gnunet-revocation.c | 137 +++++++++----------- src/revocation/gnunet-service-revocation.c | 16 +-- src/revocation/plugin_block_revocation.c | 16 +-- src/revocation/revocation.h | 24 +--- src/revocation/revocation_api.c | 198 +++++++++++++++++++++++------ 6 files changed, 310 insertions(+), 170 deletions(-) diff --git a/src/include/gnunet_revocation_service.h b/src/include/gnunet_revocation_service.h index 1e1abb787..775da01ac 100644 --- a/src/include/gnunet_revocation_service.h +++ b/src/include/gnunet_revocation_service.h @@ -50,6 +50,47 @@ extern "C" */ #define GNUNET_REVOCATION_VERSION 0x00000000 +/** + * The proof-of-work narrowing factor. + * The number of PoWs that are calculates as part of revocation. + */ +#define POW_COUNT 32 + +struct GNUNET_REVOCATION_Pow +{ + /** + * The timestamp of the revocation + */ + struct GNUNET_TIME_AbsoluteNBO timestamp; + + /** + * The TTL of this revocation (purely informational) + */ + uint64_t ttl; + + /** + * The PoWs + */ + uint64_t pow[POW_COUNT]; + + /** + * The signature + */ + struct GNUNET_CRYPTO_EcdsaSignature signature; + + /** + * The signature purpose + */ + struct GNUNET_CRYPTO_EccSignaturePurpose purpose; + + /** + * The revoked public key + */ + struct GNUNET_CRYPTO_EcdsaPublicKey key; +}; + +struct GNUNET_REVOCATION_PowCalculationHandle; + /** * Handle for the key revocation query. */ @@ -116,10 +157,7 @@ struct GNUNET_REVOCATION_Handle; */ struct GNUNET_REVOCATION_Handle * GNUNET_REVOCATION_revoke (const struct GNUNET_CONFIGURATION_Handle *cfg, - const struct GNUNET_CRYPTO_EcdsaPublicKey *key, - const struct GNUNET_CRYPTO_EcdsaSignature *sig, - const struct GNUNET_TIME_Absolute *ts, - uint64_t pow, + const struct GNUNET_REVOCATION_Pow *pow, GNUNET_REVOCATION_Callback func, void *func_cls); @@ -143,12 +181,42 @@ GNUNET_REVOCATION_revoke_cancel (struct GNUNET_REVOCATION_Handle *h); * @return #GNUNET_YES if the @a pow is acceptable, #GNUNET_NO if not */ int -GNUNET_REVOCATION_check_pow (const struct GNUNET_CRYPTO_EcdsaPublicKey *key, - const struct GNUNET_TIME_Absolute *ts, - uint64_t pow, +GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, unsigned int matching_bits); +struct GNUNET_REVOCATION_PowCalculationHandle* +GNUNET_REVOCATION_pow_init (const struct GNUNET_CRYPTO_EcdsaPublicKey *key, + int epochs, + unsigned int difficulty); + + +/** + * Calculate a key revocation valid for broadcasting for a number + * of epochs. + * + * @param pc handle to the PoW, initially called with NULL. + * @param epochs number of epochs for which the revocation must be valid. + * @param pow current pow value to try + * @param difficulty current base difficulty to achieve + * @return #GNUNET_YES if the @a pow is acceptable, #GNUNET_NO if not + */ +int +GNUNET_REVOCATION_pow_round (struct GNUNET_REVOCATION_PowCalculationHandle *pc); + + +const struct GNUNET_REVOCATION_Pow* +GNUNET_REVOCATION_pow_get (const struct + GNUNET_REVOCATION_PowCalculationHandle *pc); + + +void +GNUNET_REVOCATION_pow_cleanup (struct + GNUNET_REVOCATION_PowCalculationHandle *pc); + + + + /** * Create a revocation signature. * @@ -156,9 +224,10 @@ GNUNET_REVOCATION_check_pow (const struct GNUNET_CRYPTO_EcdsaPublicKey *key, * @param sig where to write the revocation signature */ void -GNUNET_REVOCATION_sign_revocation (const struct - GNUNET_CRYPTO_EcdsaPrivateKey *key, - struct GNUNET_CRYPTO_EcdsaSignature *sig); +GNUNET_REVOCATION_sign_revocation (struct + GNUNET_REVOCATION_Pow *pow, + const struct + GNUNET_CRYPTO_EcdsaPrivateKey *key); #if 0 /* keep Emacsens' auto-indent happy */ diff --git a/src/revocation/gnunet-revocation.c b/src/revocation/gnunet-revocation.c index 42ec71d16..2d83da8b6 100644 --- a/src/revocation/gnunet-revocation.c +++ b/src/revocation/gnunet-revocation.c @@ -218,16 +218,12 @@ struct RevocationData * Perform the revocation. */ static void -perform_revocation (const struct RevocationData *rd) +perform_revocation (const struct GNUNET_REVOCATION_Pow *pow) { struct GNUNET_TIME_Absolute ts; - ts = GNUNET_TIME_absolute_ntoh (rd->ts); h = GNUNET_REVOCATION_revoke (cfg, - &rd->key, - &rd->sig, - &ts, - rd->pow, + pow, &print_revocation_result, NULL); } @@ -240,13 +236,13 @@ perform_revocation (const struct RevocationData *rd) * @param rd data to sync */ static void -sync_rd (const struct RevocationData *rd) +sync_pow (const struct GNUNET_REVOCATION_Pow *pow) { if ((NULL != filename) && - (sizeof(struct RevocationData) == + (sizeof(struct GNUNET_REVOCATION_Pow) == GNUNET_DISK_fn_write (filename, - &rd, - sizeof(rd), + &pow, + sizeof(pow), GNUNET_DISK_PERM_USER_READ | GNUNET_DISK_PERM_USER_WRITE))) GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR, "write", filename); @@ -261,15 +257,14 @@ sync_rd (const struct RevocationData *rd) static void calculate_pow_shutdown (void *cls) { - struct RevocationData *rd = cls; + struct GNUNET_REVOCATION_PowCalculationHandle *ph = cls; if (NULL != pow_task) { GNUNET_SCHEDULER_cancel (pow_task); pow_task = NULL; } - sync_rd (rd); - GNUNET_free (rd); + GNUNET_REVOCATION_pow_cleanup (ph); } @@ -281,40 +276,27 @@ calculate_pow_shutdown (void *cls) static void calculate_pow (void *cls) { - struct RevocationData *rd = cls; - struct GNUNET_TIME_Absolute ts = GNUNET_TIME_absolute_ntoh (rd->ts); + struct GNUNET_REVOCATION_PowCalculationHandle *ph = cls; /* store temporary results */ pow_task = NULL; - if (0 == (rd->pow % 128)) - sync_rd (rd); - /* display progress estimate */ - if ((0 == ((1 << matching_bits) / 100 / 50)) || - (0 == (rd->pow % ((1 << matching_bits) / 100 / 50)))) - fprintf (stderr, "%s", "."); - if ((0 != rd->pow) && ((0 == ((1 << matching_bits) / 100)) || - (0 == (rd->pow % ((1 << matching_bits) / 100))))) - fprintf (stderr, - " - @ %3u%% (estimate)\n", - (unsigned int) (rd->pow * 100) / (1 << matching_bits)); + //if (0 == (rd->pow % 128)) + // sync_rd (rd); /* actually do POW calculation */ - rd->pow++; - if (GNUNET_OK == GNUNET_REVOCATION_check_pow (&rd->key, - &ts, - rd->pow, - (unsigned int) matching_bits)) + if (GNUNET_OK == GNUNET_REVOCATION_pow_round (ph)) { + const struct GNUNET_REVOCATION_Pow *pow = GNUNET_REVOCATION_pow_get (ph); if ((NULL != filename) && - (sizeof(struct RevocationData) != + (sizeof(struct GNUNET_REVOCATION_Pow) != GNUNET_DISK_fn_write (filename, - rd, - sizeof(struct RevocationData), + pow, + sizeof(struct GNUNET_REVOCATION_Pow), GNUNET_DISK_PERM_USER_READ | GNUNET_DISK_PERM_USER_WRITE))) GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR, "write", filename); if (perform) { - perform_revocation (rd); + perform_revocation (pow); } else { @@ -327,7 +309,7 @@ calculate_pow (void *cls) } return; } - pow_task = GNUNET_SCHEDULER_add_now (&calculate_pow, rd); + pow_task = GNUNET_SCHEDULER_add_now (&calculate_pow, ph); } @@ -340,9 +322,8 @@ calculate_pow (void *cls) static void ego_callback (void *cls, const struct GNUNET_IDENTITY_Ego *ego) { - struct RevocationData *rd; + struct GNUNET_REVOCATION_Pow *pow; struct GNUNET_CRYPTO_EcdsaPublicKey key; - struct GNUNET_TIME_Absolute ts; el = NULL; if (NULL == ego) @@ -352,49 +333,49 @@ ego_callback (void *cls, const struct GNUNET_IDENTITY_Ego *ego) return; } GNUNET_IDENTITY_ego_get_public_key (ego, &key); - rd = GNUNET_new (struct RevocationData); + pow = GNUNET_new (struct GNUNET_REVOCATION_Pow); if ((NULL != filename) && (GNUNET_YES == GNUNET_DISK_file_test (filename)) && - (sizeof(struct RevocationData) == - GNUNET_DISK_fn_read (filename, rd, sizeof(struct RevocationData)))) + (sizeof(struct GNUNET_REVOCATION_Pow) == + GNUNET_DISK_fn_read (filename, pow, sizeof(struct + GNUNET_REVOCATION_Pow)))) { - if (0 != GNUNET_memcmp (&rd->key, &key)) + if (0 != GNUNET_memcmp (&pow->key, &key)) { fprintf (stderr, _ ("Error: revocation certificate in `%s' is not for `%s'\n"), filename, revoke_ego); - GNUNET_free (rd); + GNUNET_free (pow); return; } - } - else - { - GNUNET_REVOCATION_sign_revocation (GNUNET_IDENTITY_ego_get_private_key ( - ego), - &rd->sig); - rd->key = key; - rd->ts = GNUNET_TIME_absolute_hton (GNUNET_TIME_absolute_get ()); - } - ts = GNUNET_TIME_absolute_ntoh (rd->ts); - if (GNUNET_YES == - GNUNET_REVOCATION_check_pow (&key, - &ts, - rd->pow, - (unsigned int) matching_bits)) - { - fprintf (stderr, "%s", _ ("Revocation certificate ready\n")); - if (perform) - perform_revocation (rd); - else - GNUNET_SCHEDULER_shutdown (); - GNUNET_free (rd); + if (GNUNET_YES == + GNUNET_REVOCATION_check_pow (pow, + (unsigned int) matching_bits)) + { + fprintf (stderr, "%s", _ ("Revocation certificate ready\n")); + if (perform) + perform_revocation (pow); + else + GNUNET_SCHEDULER_shutdown (); + GNUNET_free (pow); + return; + } + fprintf (stderr, + _ ("Error: revocation certificate in `%s' invalid\n"), + filename); + GNUNET_free (pow); return; } fprintf (stderr, "%s", _ ("Revocation certificate not ready, calculating proof of work\n")); - pow_task = GNUNET_SCHEDULER_add_now (&calculate_pow, rd); - GNUNET_SCHEDULER_add_shutdown (&calculate_pow_shutdown, rd); + GNUNET_free (pow); + struct GNUNET_REVOCATION_PowCalculationHandle *ph; + ph = GNUNET_REVOCATION_pow_init (&key, + 1, /* Epochs */ + matching_bits); + pow_task = GNUNET_SCHEDULER_add_now (&calculate_pow, ph); + GNUNET_SCHEDULER_add_shutdown (&calculate_pow_shutdown, ph); } @@ -413,8 +394,7 @@ run (void *cls, const struct GNUNET_CONFIGURATION_Handle *c) { struct GNUNET_CRYPTO_EcdsaPublicKey pk; - struct RevocationData rd; - struct GNUNET_TIME_Absolute ts; + struct GNUNET_REVOCATION_Pow pow; cfg = c; if (NULL != test_ego) @@ -463,7 +443,7 @@ run (void *cls, } if ((NULL != filename) && (perform)) { - if (sizeof(rd) != GNUNET_DISK_fn_read (filename, &rd, sizeof(rd))) + if (sizeof(pow) != GNUNET_DISK_fn_read (filename, &pow, sizeof(pow))) { fprintf (stderr, _ ("Failed to read revocation certificate from `%s'\n"), @@ -471,21 +451,20 @@ run (void *cls, return; } GNUNET_SCHEDULER_add_shutdown (&do_shutdown, NULL); - ts = GNUNET_TIME_absolute_ntoh (rd.ts); if (GNUNET_YES != - GNUNET_REVOCATION_check_pow (&rd.key, - &ts, - rd.pow, + GNUNET_REVOCATION_check_pow (&pow, (unsigned int) matching_bits)) { - struct RevocationData *cp = GNUNET_new (struct RevocationData); + struct GNUNET_REVOCATION_PowCalculationHandle *ph; + ph = GNUNET_REVOCATION_pow_init (&pk, + 1, /* Epochs */ + matching_bits); - *cp = rd; - pow_task = GNUNET_SCHEDULER_add_now (&calculate_pow, cp); - GNUNET_SCHEDULER_add_shutdown (&calculate_pow_shutdown, cp); + pow_task = GNUNET_SCHEDULER_add_now (&calculate_pow, ph); + GNUNET_SCHEDULER_add_shutdown (&calculate_pow_shutdown, ph); return; } - perform_revocation (&rd); + perform_revocation (&pow); return; } fprintf (stderr, "%s", _ ("No action specified. Nothing to do.\n")); diff --git a/src/revocation/gnunet-service-revocation.c b/src/revocation/gnunet-service-revocation.c index ff75faa2c..420cb392f 100644 --- a/src/revocation/gnunet-service-revocation.c +++ b/src/revocation/gnunet-service-revocation.c @@ -167,12 +167,8 @@ new_peer_entry (const struct GNUNET_PeerIdentity *peer) static int verify_revoke_message (const struct RevokeMessage *rm) { - struct GNUNET_TIME_Absolute ts; - ts = GNUNET_TIME_absolute_ntoh (rm->ts); if (GNUNET_YES != - GNUNET_REVOCATION_check_pow (&rm->public_key, - &ts, - rm->proof_of_work, + GNUNET_REVOCATION_check_pow (&rm->proof_of_work, (unsigned int) revocation_work_required)) { GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, @@ -182,9 +178,9 @@ verify_revoke_message (const struct RevokeMessage *rm) } if (GNUNET_OK != GNUNET_CRYPTO_ecdsa_verify_ (GNUNET_SIGNATURE_PURPOSE_REVOCATION, - &rm->purpose, - &rm->signature, - &rm->public_key)) + &rm->proof_of_work.purpose, + &rm->proof_of_work.signature, + &rm->proof_of_work.key)) { GNUNET_break_op (0); return GNUNET_NO; @@ -311,7 +307,7 @@ publicize_rm (const struct RevokeMessage *rm) struct GNUNET_HashCode hc; struct GNUNET_SET_Element e; - GNUNET_CRYPTO_hash (&rm->public_key, + GNUNET_CRYPTO_hash (&rm->proof_of_work.key, sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey), &hc); if (GNUNET_YES == @@ -896,7 +892,7 @@ run (void *cls, return; } GNUNET_break (0 == ntohl (rm->reserved)); - GNUNET_CRYPTO_hash (&rm->public_key, + GNUNET_CRYPTO_hash (&rm->proof_of_work.key, sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey), &hc); GNUNET_break (GNUNET_OK == diff --git a/src/revocation/plugin_block_revocation.c b/src/revocation/plugin_block_revocation.c index 57234fa36..a57a933c3 100644 --- a/src/revocation/plugin_block_revocation.c +++ b/src/revocation/plugin_block_revocation.c @@ -134,7 +134,6 @@ block_plugin_revocation_evaluate (void *cls, struct InternalContext *ic = cls; struct GNUNET_HashCode chash; const struct RevokeMessage *rm = reply_block; - struct GNUNET_TIME_Absolute ts; if (NULL == reply_block) return GNUNET_BLOCK_EVALUATION_REQUEST_VALID; @@ -143,11 +142,8 @@ block_plugin_revocation_evaluate (void *cls, GNUNET_break_op (0); return GNUNET_BLOCK_EVALUATION_RESULT_INVALID; } - ts = GNUNET_TIME_absolute_ntoh (rm->ts); if (GNUNET_YES != - GNUNET_REVOCATION_check_pow (&rm->public_key, - &ts, - rm->proof_of_work, + GNUNET_REVOCATION_check_pow (&rm->proof_of_work, ic->matching_bits)) { GNUNET_break_op (0); @@ -155,14 +151,14 @@ block_plugin_revocation_evaluate (void *cls, } if (GNUNET_OK != GNUNET_CRYPTO_ecdsa_verify_ (GNUNET_SIGNATURE_PURPOSE_REVOCATION, - &rm->purpose, - &rm->signature, - &rm->public_key)) + &rm->proof_of_work.purpose, + &rm->proof_of_work.signature, + &rm->proof_of_work.key)) { GNUNET_break_op (0); return GNUNET_BLOCK_EVALUATION_RESULT_INVALID; } - GNUNET_CRYPTO_hash (&rm->public_key, + GNUNET_CRYPTO_hash (&rm->proof_of_work.key, sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey), &chash); if (GNUNET_YES == @@ -198,7 +194,7 @@ block_plugin_revocation_get_key (void *cls, GNUNET_break_op (0); return GNUNET_SYSERR; } - GNUNET_CRYPTO_hash (&rm->public_key, + GNUNET_CRYPTO_hash (&rm->proof_of_work.key, sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey), key); return GNUNET_OK; diff --git a/src/revocation/revocation.h b/src/revocation/revocation.h index d7b9cc139..b2769da0e 100644 --- a/src/revocation/revocation.h +++ b/src/revocation/revocation.h @@ -27,6 +27,7 @@ #define REVOCATION_H #include "gnunet_util_lib.h" +#include "gnunet_revocation_service.h" GNUNET_NETWORK_STRUCT_BEGIN @@ -91,28 +92,7 @@ struct RevokeMessage /** * Number that causes a hash collision with the @e public_key. */ - uint64_t proof_of_work GNUNET_PACKED; - - /** - * Timestamp - */ - struct GNUNET_TIME_AbsoluteNBO ts; - - /** - * Signature confirming revocation. - */ - struct GNUNET_CRYPTO_EcdsaSignature signature; - - /** - * Must have purpose #GNUNET_SIGNATURE_PURPOSE_REVOCATION, - * size expands over the public key. (@deprecated) - */ - struct GNUNET_CRYPTO_EccSignaturePurpose purpose; - - /** - * Key to revoke. - */ - struct GNUNET_CRYPTO_EcdsaPublicKey public_key; + struct GNUNET_REVOCATION_Pow proof_of_work GNUNET_PACKED; }; diff --git a/src/revocation/revocation_api.c b/src/revocation/revocation_api.c index c9bb2543a..6510f9583 100644 --- a/src/revocation/revocation_api.c +++ b/src/revocation/revocation_api.c @@ -51,6 +51,21 @@ struct GNUNET_REVOCATION_Query void *func_cls; }; +struct BestPow +{ + uint64_t pow; + unsigned int bits; +}; + +struct GNUNET_REVOCATION_PowCalculationHandle +{ + struct BestPow best[POW_COUNT]; + struct GNUNET_REVOCATION_Pow pow; + uint64_t current_pow; + unsigned int epochs; + unsigned int difficulty; + int valid; +}; /** * Generic error handler, called with the appropriate @@ -246,10 +261,7 @@ handle_revocation_response (void *cls, */ struct GNUNET_REVOCATION_Handle * GNUNET_REVOCATION_revoke (const struct GNUNET_CONFIGURATION_Handle *cfg, - const struct GNUNET_CRYPTO_EcdsaPublicKey *key, - const struct GNUNET_CRYPTO_EcdsaSignature *sig, - const struct GNUNET_TIME_Absolute *ts, - uint64_t pow, + const struct GNUNET_REVOCATION_Pow *pow, GNUNET_REVOCATION_Callback func, void *func_cls) { @@ -272,9 +284,7 @@ GNUNET_REVOCATION_revoke (const struct GNUNET_CONFIGURATION_Handle *cfg, "WORKBITS", &matching_bits)) && (GNUNET_YES != - GNUNET_REVOCATION_check_pow (key, - ts, - pow, + GNUNET_REVOCATION_check_pow (pow, (unsigned int) matching_bits))) { GNUNET_break (0); @@ -297,12 +307,7 @@ GNUNET_REVOCATION_revoke (const struct GNUNET_CONFIGURATION_Handle *cfg, env = GNUNET_MQ_msg (rm, GNUNET_MESSAGE_TYPE_REVOCATION_REVOKE); rm->reserved = htonl (0); - rm->proof_of_work = pow; - rm->purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_REVOCATION); - rm->purpose.size = htonl (sizeof(struct GNUNET_CRYPTO_EccSignaturePurpose) - + sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey)); - rm->public_key = *key; - rm->signature = *sig; + rm->proof_of_work = *pow; GNUNET_MQ_send (h->mq, env); return h; @@ -344,6 +349,23 @@ count_leading_zeroes (const struct GNUNET_HashCode *hash) } +/** + * Calculate the average zeros in the pows. + * + * @param ph the PowHandle + * @return the average number of zeroes. + */ +static unsigned int +calculate_score (const struct GNUNET_REVOCATION_PowCalculationHandle *ph) +{ + double sum = 0.0; + for (unsigned int j = 0; jbest[j].bits; + double avg = sum / POW_COUNT; + return avg; +} + + /** * Check if the given proof-of-work value * would be acceptable for revoking the given key. @@ -355,32 +377,133 @@ count_leading_zeroes (const struct GNUNET_HashCode *hash) * @return #GNUNET_YES if the @a pow is acceptable, #GNUNET_NO if not */ int -GNUNET_REVOCATION_check_pow (const struct GNUNET_CRYPTO_EcdsaPublicKey *key, - const struct GNUNET_TIME_Absolute *ts, - uint64_t pow, - unsigned int matching_bits) +GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, + unsigned int difficulty) +{ + char buf[sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey) + + sizeof (uint64_t) + + sizeof (uint64_t)] GNUNET_ALIGN; + struct GNUNET_HashCode result; + unsigned int score = 0; + unsigned int tmp_score = 0; + unsigned int epochs; + uint64_t pow_val; + + GNUNET_memcpy (&buf[sizeof(uint64_t)], + &pow->timestamp, + sizeof (uint64_t)); + GNUNET_memcpy (&buf[sizeof(uint64_t) * 2], + &pow->key, + sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey)); + for (unsigned int i = 0; i < POW_COUNT; i++) + { + pow_val = GNUNET_ntohll (pow->pow[i]); + GNUNET_memcpy (buf, &pow_val, sizeof(uint64_t)); + GNUNET_CRYPTO_pow_hash ("gnunet-revocation-proof-of-work", + buf, + sizeof(buf), + &result); + tmp_score = count_leading_zeroes (&result); + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + "Score %u (#%u)\n", + tmp_score, i); + score += tmp_score; + + } + score = score / POW_COUNT; + if (score < difficulty) + return GNUNET_NO; + // TODO verfiy signature? + epochs = score - difficulty + 1; + // TODO verify expiration + return GNUNET_YES; +} + + +struct GNUNET_REVOCATION_PowCalculationHandle* +GNUNET_REVOCATION_pow_init (const struct GNUNET_CRYPTO_EcdsaPublicKey *key, + int epochs, + unsigned int difficulty) +{ + struct GNUNET_REVOCATION_PowCalculationHandle*pc; + struct GNUNET_TIME_Absolute ts = GNUNET_TIME_absolute_get(); + + pc = GNUNET_new (struct GNUNET_REVOCATION_PowCalculationHandle); + pc->pow.key = *key; + pc->pow.timestamp = GNUNET_TIME_absolute_hton(ts); + pc->current_pow = GNUNET_CRYPTO_random_u64 (GNUNET_CRYPTO_QUALITY_WEAK, + UINT64_MAX); + pc->difficulty = difficulty; + pc->epochs = epochs; + return pc; +} + + +/** + * Calculate a key revocation valid for broadcasting for a number + * of epochs. + * + * @param pc handle to the PoW, initially called with NULL. + * @param epochs number of epochs for which the revocation must be valid. + * @param pow current pow value to try + * @param difficulty current base difficulty to achieve + * @return #GNUNET_YES if the @a pow is acceptable, #GNUNET_NO if not + */ +int +GNUNET_REVOCATION_pow_round (struct GNUNET_REVOCATION_PowCalculationHandle *pc) { char buf[sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey) - + sizeof(pow) - + sizeof (struct GNUNET_TIME_AbsoluteNBO)] GNUNET_ALIGN; + + sizeof (uint64_t) + + sizeof (uint64_t)] GNUNET_ALIGN; struct GNUNET_HashCode result; - struct GNUNET_TIME_AbsoluteNBO ts_nbo; + unsigned int zeros; - ts_nbo = GNUNET_TIME_absolute_hton (*ts); + pc->current_pow++; - GNUNET_memcpy (buf, &pow, sizeof(pow)); - GNUNET_memcpy (&buf[sizeof(pow)], - &ts_nbo, - sizeof (struct GNUNET_TIME_AbsoluteNBO)); - GNUNET_memcpy (&buf[sizeof(pow) + sizeof (struct GNUNET_TIME_AbsoluteNBO)], - key, + GNUNET_memcpy (buf, &pc->current_pow, sizeof(uint64_t)); + GNUNET_memcpy (&buf[sizeof(uint64_t)], + &pc->pow.timestamp, + sizeof (uint64_t)); + GNUNET_memcpy (&buf[sizeof(uint64_t) * 2], + &pc->pow.key, sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey)); GNUNET_CRYPTO_pow_hash ("gnunet-revocation-proof-of-work", buf, sizeof(buf), &result); - return (count_leading_zeroes (&result) >= - matching_bits) ? GNUNET_YES : GNUNET_NO; + zeros = count_leading_zeroes (&result); + for (unsigned int i = 0; i < POW_COUNT; i++) + { + if (pc->best[i].bits < zeros) + { + pc->best[i].bits = zeros; + pc->best[i].pow = pc->current_pow; + pc->pow.pow[i] = GNUNET_htonll (pc->current_pow); + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + "New best score %u (#%u)\n", + zeros, i); + break; + } + } + return calculate_score (pc) >= pc->difficulty + pc->epochs ? GNUNET_YES : + GNUNET_NO; +} + + +const struct GNUNET_REVOCATION_Pow* +GNUNET_REVOCATION_pow_get (const struct + GNUNET_REVOCATION_PowCalculationHandle *pc) +{ + return calculate_score (pc) >= pc->difficulty + pc->epochs ? &pc->pow : + NULL; +} + + +void +GNUNET_REVOCATION_pow_cleanup (struct + GNUNET_REVOCATION_PowCalculationHandle *pc) +{ + GNUNET_free (pc); } @@ -391,20 +514,17 @@ GNUNET_REVOCATION_check_pow (const struct GNUNET_CRYPTO_EcdsaPublicKey *key, * @param sig where to write the revocation signature */ void -GNUNET_REVOCATION_sign_revocation (const struct - GNUNET_CRYPTO_EcdsaPrivateKey *key, - struct GNUNET_CRYPTO_EcdsaSignature *sig) +GNUNET_REVOCATION_sign_revocation (struct GNUNET_REVOCATION_Pow *pow, + const struct GNUNET_CRYPTO_EcdsaPrivateKey *key) { - struct RevokeMessage rm; - - rm.purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_REVOCATION); - rm.purpose.size = htonl (sizeof(struct GNUNET_CRYPTO_EccSignaturePurpose) + pow->purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_REVOCATION); + pow->purpose.size = htonl (sizeof(struct GNUNET_CRYPTO_EccSignaturePurpose) + sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey)); - GNUNET_CRYPTO_ecdsa_key_get_public (key, &rm.public_key); + GNUNET_CRYPTO_ecdsa_key_get_public (key, &pow->key); GNUNET_assert (GNUNET_OK == GNUNET_CRYPTO_ecdsa_sign_ (key, - &rm.purpose, - sig)); + &pow->purpose, + &pow->signature)); } -- cgit v1.2.3 From 814b19c0b7621e7fb32446fa2996f838f56e45f8 Mon Sep 17 00:00:00 2001 From: "Schanzenbach, Martin" Date: Sun, 19 Apr 2020 20:25:17 +0200 Subject: no diplicate nonces --- src/revocation/revocation_api.c | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/src/revocation/revocation_api.c b/src/revocation/revocation_api.c index 6510f9583..c817e612a 100644 --- a/src/revocation/revocation_api.c +++ b/src/revocation/revocation_api.c @@ -27,8 +27,7 @@ #include "gnunet_signatures.h" #include "gnunet_protocols.h" #include "revocation.h" -#include - +#include /** * Handle for the key revocation query. @@ -389,6 +388,16 @@ GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, unsigned int epochs; uint64_t pow_val; + /** + * First, check if any duplicates are in the PoW set + */ + for (unsigned int i = 0; i < POW_COUNT; i++) + { + for (unsigned int j = i+1; j < POW_COUNT; j++) { + if (pow->pow[i] == pow->pow[j]) + return GNUNET_NO; + } + } GNUNET_memcpy (&buf[sizeof(uint64_t)], &pow->timestamp, sizeof (uint64_t)); @@ -405,8 +414,8 @@ GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, &result); tmp_score = count_leading_zeroes (&result); GNUNET_log (GNUNET_ERROR_TYPE_ERROR, - "Score %u (#%u)\n", - tmp_score, i); + "Score %u with %"PRIu64" (#%u)\n", + tmp_score, pow_val, i); score += tmp_score; } @@ -460,6 +469,13 @@ GNUNET_REVOCATION_pow_round (struct GNUNET_REVOCATION_PowCalculationHandle *pc) pc->current_pow++; + /** + * Do not try duplicates + */ + for (unsigned int i = 0; i < POW_COUNT; i++) + if (pc->current_pow == pc->best[i].pow) + return GNUNET_NO; + GNUNET_memcpy (buf, &pc->current_pow, sizeof(uint64_t)); GNUNET_memcpy (&buf[sizeof(uint64_t)], &pc->pow.timestamp, @@ -480,8 +496,8 @@ GNUNET_REVOCATION_pow_round (struct GNUNET_REVOCATION_PowCalculationHandle *pc) pc->best[i].pow = pc->current_pow; pc->pow.pow[i] = GNUNET_htonll (pc->current_pow); GNUNET_log (GNUNET_ERROR_TYPE_ERROR, - "New best score %u (#%u)\n", - zeros, i); + "New best score %u with %"PRIu64" (#%u)\n", + zeros, pc->current_pow, i); break; } } -- cgit v1.2.3 From 37bb51d9fc99c8d5dd99343adf0feb7e351e6394 Mon Sep 17 00:00:00 2001 From: "Schanzenbach, Martin" Date: Sun, 19 Apr 2020 20:28:39 +0200 Subject: some comments --- src/revocation/revocation_api.c | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/src/revocation/revocation_api.c b/src/revocation/revocation_api.c index c817e612a..bd0202b67 100644 --- a/src/revocation/revocation_api.c +++ b/src/revocation/revocation_api.c @@ -50,20 +50,57 @@ struct GNUNET_REVOCATION_Query void *func_cls; }; + +/** + * Helper struct that holds a found pow nonce + * and the corresponding number of leading zeroes. + */ struct BestPow { + /** + * PoW nonce + */ uint64_t pow; + + /** + * Corresponding zero bits in hash + */ unsigned int bits; }; + +/** + * The handle to a PoW calculation. + * Used in iterative PoW rounds. + */ struct GNUNET_REVOCATION_PowCalculationHandle { + /** + * Current set of found PoWs + */ struct BestPow best[POW_COUNT]; + + /** + * The final PoW result data structure. + */ struct GNUNET_REVOCATION_Pow pow; + + /** + * The current nonce to try + */ uint64_t current_pow; + + /** + * Epochs how long the PoW should be valid. + * This is added on top of the difficulty in the PoW. + */ unsigned int epochs; + + /** + * The difficulty (leading zeros) to achieve. + */ unsigned int difficulty; - int valid; + }; /** -- cgit v1.2.3 From c2127bac669d91eb66bea91f5a9e0b27106a9152 Mon Sep 17 00:00:00 2001 From: "Schanzenbach, Martin" Date: Sun, 19 Apr 2020 20:30:07 +0200 Subject: uncrustify --- src/revocation/gnunet-revocation.c | 2 +- src/revocation/revocation_api.c | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/revocation/gnunet-revocation.c b/src/revocation/gnunet-revocation.c index 2d83da8b6..16f62de9d 100644 --- a/src/revocation/gnunet-revocation.c +++ b/src/revocation/gnunet-revocation.c @@ -280,7 +280,7 @@ calculate_pow (void *cls) /* store temporary results */ pow_task = NULL; - //if (0 == (rd->pow % 128)) + // if (0 == (rd->pow % 128)) // sync_rd (rd); /* actually do POW calculation */ if (GNUNET_OK == GNUNET_REVOCATION_pow_round (ph)) diff --git a/src/revocation/revocation_api.c b/src/revocation/revocation_api.c index bd0202b67..0361f239b 100644 --- a/src/revocation/revocation_api.c +++ b/src/revocation/revocation_api.c @@ -430,7 +430,8 @@ GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, */ for (unsigned int i = 0; i < POW_COUNT; i++) { - for (unsigned int j = i+1; j < POW_COUNT; j++) { + for (unsigned int j = i + 1; j < POW_COUNT; j++) + { if (pow->pow[i] == pow->pow[j]) return GNUNET_NO; } @@ -451,7 +452,7 @@ GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, &result); tmp_score = count_leading_zeroes (&result); GNUNET_log (GNUNET_ERROR_TYPE_ERROR, - "Score %u with %"PRIu64" (#%u)\n", + "Score %u with %" PRIu64 " (#%u)\n", tmp_score, pow_val, i); score += tmp_score; @@ -472,11 +473,11 @@ GNUNET_REVOCATION_pow_init (const struct GNUNET_CRYPTO_EcdsaPublicKey *key, unsigned int difficulty) { struct GNUNET_REVOCATION_PowCalculationHandle*pc; - struct GNUNET_TIME_Absolute ts = GNUNET_TIME_absolute_get(); + struct GNUNET_TIME_Absolute ts = GNUNET_TIME_absolute_get (); pc = GNUNET_new (struct GNUNET_REVOCATION_PowCalculationHandle); pc->pow.key = *key; - pc->pow.timestamp = GNUNET_TIME_absolute_hton(ts); + pc->pow.timestamp = GNUNET_TIME_absolute_hton (ts); pc->current_pow = GNUNET_CRYPTO_random_u64 (GNUNET_CRYPTO_QUALITY_WEAK, UINT64_MAX); pc->difficulty = difficulty; @@ -533,7 +534,7 @@ GNUNET_REVOCATION_pow_round (struct GNUNET_REVOCATION_PowCalculationHandle *pc) pc->best[i].pow = pc->current_pow; pc->pow.pow[i] = GNUNET_htonll (pc->current_pow); GNUNET_log (GNUNET_ERROR_TYPE_ERROR, - "New best score %u with %"PRIu64" (#%u)\n", + "New best score %u with %" PRIu64 " (#%u)\n", zeros, pc->current_pow, i); break; } @@ -568,11 +569,12 @@ GNUNET_REVOCATION_pow_cleanup (struct */ void GNUNET_REVOCATION_sign_revocation (struct GNUNET_REVOCATION_Pow *pow, - const struct GNUNET_CRYPTO_EcdsaPrivateKey *key) + const struct + GNUNET_CRYPTO_EcdsaPrivateKey *key) { pow->purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_REVOCATION); pow->purpose.size = htonl (sizeof(struct GNUNET_CRYPTO_EccSignaturePurpose) - + sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey)); + + sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey)); GNUNET_CRYPTO_ecdsa_key_get_public (key, &pow->key); GNUNET_assert (GNUNET_OK == GNUNET_CRYPTO_ecdsa_sign_ (key, -- cgit v1.2.3 From 2408dd18af486517a484544ebf468e5790e7ce05 Mon Sep 17 00:00:00 2001 From: "Schanzenbach, Martin" Date: Sun, 19 Apr 2020 20:30:54 +0200 Subject: those are actually debug messages --- src/revocation/revocation_api.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/revocation/revocation_api.c b/src/revocation/revocation_api.c index 0361f239b..667ed4ec1 100644 --- a/src/revocation/revocation_api.c +++ b/src/revocation/revocation_api.c @@ -451,7 +451,7 @@ GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, sizeof(buf), &result); tmp_score = count_leading_zeroes (&result); - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Score %u with %" PRIu64 " (#%u)\n", tmp_score, pow_val, i); score += tmp_score; @@ -533,7 +533,7 @@ GNUNET_REVOCATION_pow_round (struct GNUNET_REVOCATION_PowCalculationHandle *pc) pc->best[i].bits = zeros; pc->best[i].pow = pc->current_pow; pc->pow.pow[i] = GNUNET_htonll (pc->current_pow); - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "New best score %u with %" PRIu64 " (#%u)\n", zeros, pc->current_pow, i); break; -- cgit v1.2.3 From 196a465c2254c224055b71a5bdb3697e7a468801 Mon Sep 17 00:00:00 2001 From: "Schanzenbach, Martin" Date: Mon, 20 Apr 2020 07:48:19 +0200 Subject: more comments, allow to pick up pow later --- src/include/gnunet_revocation_service.h | 44 +++++++++++++++++++++++-- src/revocation/gnunet-revocation.c | 57 ++++++++++++++++++++++----------- src/revocation/revocation_api.c | 51 +++++++++++++++++++++++++++-- 3 files changed, 129 insertions(+), 23 deletions(-) diff --git a/src/include/gnunet_revocation_service.h b/src/include/gnunet_revocation_service.h index 775da01ac..a5a014708 100644 --- a/src/include/gnunet_revocation_service.h +++ b/src/include/gnunet_revocation_service.h @@ -56,6 +56,9 @@ extern "C" */ #define POW_COUNT 32 + +GNUNET_NETWORK_STRUCT_BEGIN + struct GNUNET_REVOCATION_Pow { /** @@ -66,12 +69,12 @@ struct GNUNET_REVOCATION_Pow /** * The TTL of this revocation (purely informational) */ - uint64_t ttl; + uint64_t ttl GNUNET_PACKED; /** * The PoWs */ - uint64_t pow[POW_COUNT]; + uint64_t pow[POW_COUNT] GNUNET_PACKED; /** * The signature @@ -89,6 +92,9 @@ struct GNUNET_REVOCATION_Pow struct GNUNET_CRYPTO_EcdsaPublicKey key; }; +GNUNET_NETWORK_STRUCT_END + + struct GNUNET_REVOCATION_PowCalculationHandle; /** @@ -185,12 +191,35 @@ GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, unsigned int matching_bits); + +/** + * Initializes a fresh PoW computation + * + * @param key the key to calculate the PoW for. + * @param epochs the number of epochs for which the PoW must be valid. + * @param difficulty the base difficulty of the PoW + * @return a handle for use in PoW rounds + */ struct GNUNET_REVOCATION_PowCalculationHandle* GNUNET_REVOCATION_pow_init (const struct GNUNET_CRYPTO_EcdsaPublicKey *key, int epochs, unsigned int difficulty); +/** + * Initializes PoW computation based on an existing PoW. + * + * @param pow the PoW to continue the calculations from. + * @param epochs the number of epochs for which the PoW must be valid. + * @param difficulty the base difficulty of the PoW + * @return a handle for use in PoW rounds + */ +struct GNUNET_REVOCATION_PowCalculationHandle* +GNUNET_REVOCATION_pow_init2 (const struct GNUNET_REVOCATION_Pow *pow, + int epochs, + unsigned int difficulty); + + /** * Calculate a key revocation valid for broadcasting for a number * of epochs. @@ -205,11 +234,22 @@ int GNUNET_REVOCATION_pow_round (struct GNUNET_REVOCATION_PowCalculationHandle *pc); +/** + * Return the curren PoW state from the calculation + * + * @param pc the calculation to get it from + * @return a pointer to the PoW + */ const struct GNUNET_REVOCATION_Pow* GNUNET_REVOCATION_pow_get (const struct GNUNET_REVOCATION_PowCalculationHandle *pc); +/** + * Cleanup a PoW calculation + * + * @param pc the calculation to clean up + */ void GNUNET_REVOCATION_pow_cleanup (struct GNUNET_REVOCATION_PowCalculationHandle *pc); diff --git a/src/revocation/gnunet-revocation.c b/src/revocation/gnunet-revocation.c index 16f62de9d..5566162f4 100644 --- a/src/revocation/gnunet-revocation.c +++ b/src/revocation/gnunet-revocation.c @@ -28,6 +28,10 @@ #include "gnunet_revocation_service.h" #include "gnunet_identity_service.h" +/** + * Pow passes + */ +static unsigned int pow_passes = 1; /** * Final status code. @@ -93,6 +97,7 @@ static struct GNUNET_SCHEDULER_Task *pow_task; static void do_shutdown (void *cls) { + fprintf (stderr, "%s", _ ("Shutting down...\n")); if (NULL != el) { GNUNET_IDENTITY_ego_lookup_cancel (el); @@ -220,8 +225,6 @@ struct RevocationData static void perform_revocation (const struct GNUNET_REVOCATION_Pow *pow) { - struct GNUNET_TIME_Absolute ts; - h = GNUNET_REVOCATION_revoke (cfg, pow, &print_revocation_result, @@ -239,10 +242,10 @@ static void sync_pow (const struct GNUNET_REVOCATION_Pow *pow) { if ((NULL != filename) && - (sizeof(struct GNUNET_REVOCATION_Pow) == + (sizeof(struct GNUNET_REVOCATION_Pow) != GNUNET_DISK_fn_write (filename, - &pow, - sizeof(pow), + pow, + sizeof(struct GNUNET_REVOCATION_Pow), GNUNET_DISK_PERM_USER_READ | GNUNET_DISK_PERM_USER_WRITE))) GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR, "write", filename); @@ -258,7 +261,8 @@ static void calculate_pow_shutdown (void *cls) { struct GNUNET_REVOCATION_PowCalculationHandle *ph = cls; - + fprintf (stderr, "%s", _ ("Cancelling calculation.\n")); + sync_pow (GNUNET_REVOCATION_pow_get (ph)); if (NULL != pow_task) { GNUNET_SCHEDULER_cancel (pow_task); @@ -280,8 +284,8 @@ calculate_pow (void *cls) /* store temporary results */ pow_task = NULL; - // if (0 == (rd->pow % 128)) - // sync_rd (rd); + if (0 == (pow_passes % 128)) + sync_pow (GNUNET_REVOCATION_pow_get(ph)); /* actually do POW calculation */ if (GNUNET_OK == GNUNET_REVOCATION_pow_round (ph)) { @@ -309,7 +313,19 @@ calculate_pow (void *cls) } return; } - pow_task = GNUNET_SCHEDULER_add_now (&calculate_pow, ph); + pow_passes++; + /** + * Otherwise CTRL-C does not work + */ + if (0 == pow_passes % 128) + pow_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_MILLISECONDS, + &calculate_pow, + ph); + else + pow_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_MILLISECONDS, + &calculate_pow, + ph); + } @@ -324,6 +340,7 @@ ego_callback (void *cls, const struct GNUNET_IDENTITY_Ego *ego) { struct GNUNET_REVOCATION_Pow *pow; struct GNUNET_CRYPTO_EcdsaPublicKey key; + struct GNUNET_REVOCATION_PowCalculationHandle *ph = NULL; el = NULL; if (NULL == ego) @@ -360,20 +377,24 @@ ego_callback (void *cls, const struct GNUNET_IDENTITY_Ego *ego) GNUNET_free (pow); return; } + /** + * Certificate not yet ready + */ fprintf (stderr, - _ ("Error: revocation certificate in `%s' invalid\n"), - filename); + "%s", + _("Continuing calculation where left off...\n")); + ph = GNUNET_REVOCATION_pow_init2 (pow, + 1, /* Epochs */ + matching_bits); GNUNET_free (pow); - return; } fprintf (stderr, "%s", _ ("Revocation certificate not ready, calculating proof of work\n")); - GNUNET_free (pow); - struct GNUNET_REVOCATION_PowCalculationHandle *ph; - ph = GNUNET_REVOCATION_pow_init (&key, - 1, /* Epochs */ - matching_bits); + if (NULL == ph) + ph = GNUNET_REVOCATION_pow_init (&key, + 1, /* Epochs */ + matching_bits); pow_task = GNUNET_SCHEDULER_add_now (&calculate_pow, ph); GNUNET_SCHEDULER_add_shutdown (&calculate_pow_shutdown, ph); } @@ -456,7 +477,7 @@ run (void *cls, (unsigned int) matching_bits)) { struct GNUNET_REVOCATION_PowCalculationHandle *ph; - ph = GNUNET_REVOCATION_pow_init (&pk, + ph = GNUNET_REVOCATION_pow_init2 (&pow, 1, /* Epochs */ matching_bits); diff --git a/src/revocation/revocation_api.c b/src/revocation/revocation_api.c index 667ed4ec1..565ce9d0d 100644 --- a/src/revocation/revocation_api.c +++ b/src/revocation/revocation_api.c @@ -467,12 +467,20 @@ GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, } +/** + * Initializes a fresh PoW computation + * + * @param key the key to calculate the PoW for. + * @param epochs the number of epochs for which the PoW must be valid. + * @param difficulty the base difficulty of the PoW + * @return a handle for use in PoW rounds + */ struct GNUNET_REVOCATION_PowCalculationHandle* GNUNET_REVOCATION_pow_init (const struct GNUNET_CRYPTO_EcdsaPublicKey *key, int epochs, unsigned int difficulty) { - struct GNUNET_REVOCATION_PowCalculationHandle*pc; + struct GNUNET_REVOCATION_PowCalculationHandle *pc; struct GNUNET_TIME_Absolute ts = GNUNET_TIME_absolute_get (); pc = GNUNET_new (struct GNUNET_REVOCATION_PowCalculationHandle); @@ -486,6 +494,33 @@ GNUNET_REVOCATION_pow_init (const struct GNUNET_CRYPTO_EcdsaPublicKey *key, } +/** + * Initializes PoW computation based on an existing PoW. + * + * @param pow the PoW to continue the calculations from. + * @param epochs the number of epochs for which the PoW must be valid. + * @param difficulty the base difficulty of the PoW + * @return a handle for use in PoW rounds + */ +struct GNUNET_REVOCATION_PowCalculationHandle* +GNUNET_REVOCATION_pow_init2 (const struct GNUNET_REVOCATION_Pow *pow, + int epochs, + unsigned int difficulty) +{ + struct GNUNET_REVOCATION_PowCalculationHandle *pc; + + pc = GNUNET_new (struct GNUNET_REVOCATION_PowCalculationHandle); + pc->pow.key = pow->key; + pc->pow.timestamp = pow->timestamp; + pc->current_pow = GNUNET_CRYPTO_random_u64 (GNUNET_CRYPTO_QUALITY_WEAK, + UINT64_MAX); + pc->difficulty = difficulty; + pc->epochs = epochs; + return pc; +} + + + /** * Calculate a key revocation valid for broadcasting for a number * of epochs. @@ -544,15 +579,25 @@ GNUNET_REVOCATION_pow_round (struct GNUNET_REVOCATION_PowCalculationHandle *pc) } +/** + * Return the curren PoW state from the calculation + * + * @param pc the calculation to get it from + * @return a pointer to the PoW + */ const struct GNUNET_REVOCATION_Pow* GNUNET_REVOCATION_pow_get (const struct GNUNET_REVOCATION_PowCalculationHandle *pc) { - return calculate_score (pc) >= pc->difficulty + pc->epochs ? &pc->pow : - NULL; + return &pc->pow; } +/** + * Cleanup a PoW calculation + * + * @param pc the calculation to clean up + */ void GNUNET_REVOCATION_pow_cleanup (struct GNUNET_REVOCATION_PowCalculationHandle *pc) -- cgit v1.2.3 From 6d61330e3ae457a27f10247cd9caf53987604143 Mon Sep 17 00:00:00 2001 From: "Schanzenbach, Martin" Date: Mon, 20 Apr 2020 08:24:06 +0200 Subject: evaluate epochs --- src/include/gnunet_revocation_service.h | 2 +- src/revocation/gnunet-revocation.c | 31 +++++++++++++++++++++++++++--- src/revocation/gnunet-service-revocation.c | 3 +-- src/revocation/plugin_block_revocation.c | 2 +- src/revocation/revocation_api.c | 14 +++++--------- 5 files changed, 36 insertions(+), 16 deletions(-) diff --git a/src/include/gnunet_revocation_service.h b/src/include/gnunet_revocation_service.h index a5a014708..226dce357 100644 --- a/src/include/gnunet_revocation_service.h +++ b/src/include/gnunet_revocation_service.h @@ -184,7 +184,7 @@ GNUNET_REVOCATION_revoke_cancel (struct GNUNET_REVOCATION_Handle *h); * @param ts revocation timestamp * @param pow proof of work value * @param matching_bits how many bits must match (configuration) - * @return #GNUNET_YES if the @a pow is acceptable, #GNUNET_NO if not + * @return number of epochs valid if the @a pow is acceptable, -1 if not */ int GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, diff --git a/src/revocation/gnunet-revocation.c b/src/revocation/gnunet-revocation.c index 5566162f4..c33f12c90 100644 --- a/src/revocation/gnunet-revocation.c +++ b/src/revocation/gnunet-revocation.c @@ -83,6 +83,11 @@ static const struct GNUNET_CONFIGURATION_Handle *cfg; */ static unsigned long long matching_bits; +/** + * Epoch length + */ +static struct GNUNET_TIME_Relative epoch_length; + /** * Task used for proof-of-work calculation. */ @@ -341,6 +346,7 @@ ego_callback (void *cls, const struct GNUNET_IDENTITY_Ego *ego) struct GNUNET_REVOCATION_Pow *pow; struct GNUNET_CRYPTO_EcdsaPublicKey key; struct GNUNET_REVOCATION_PowCalculationHandle *ph = NULL; + int epochs; el = NULL; if (NULL == ego) @@ -365,11 +371,19 @@ ego_callback (void *cls, const struct GNUNET_IDENTITY_Ego *ego) GNUNET_free (pow); return; } - if (GNUNET_YES == + if (0 < (epochs = GNUNET_REVOCATION_check_pow (pow, - (unsigned int) matching_bits)) + (unsigned int) matching_bits))) { + struct GNUNET_TIME_Absolute ts; + struct GNUNET_TIME_Relative ttl; + ts = GNUNET_TIME_absolute_ntoh (pow->timestamp); + ttl = GNUNET_TIME_relative_multiply (epoch_length, + epochs); fprintf (stderr, "%s", _ ("Revocation certificate ready\n")); + fprintf (stderr, "%s %s for %s\n", _ ("Valid from"), + GNUNET_STRINGS_absolute_time_to_string (ts), + GNUNET_STRINGS_relative_time_to_string (ttl, GNUNET_NO)); if (perform) perform_revocation (pow); else @@ -448,6 +462,17 @@ run (void *cls, "WORKBITS"); return; } + if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_time (cfg, + "REVOCATION", + "EPOCH_LENGTH", + &epoch_length)) + { + GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR, + "REVOCATION", + "EPOCH_LENGTH"); + return; + } + if (NULL != revoke_ego) { if (! perform && (NULL == filename)) @@ -472,7 +497,7 @@ run (void *cls, return; } GNUNET_SCHEDULER_add_shutdown (&do_shutdown, NULL); - if (GNUNET_YES != + if (0 >= GNUNET_REVOCATION_check_pow (&pow, (unsigned int) matching_bits)) { diff --git a/src/revocation/gnunet-service-revocation.c b/src/revocation/gnunet-service-revocation.c index 420cb392f..4746a7698 100644 --- a/src/revocation/gnunet-service-revocation.c +++ b/src/revocation/gnunet-service-revocation.c @@ -167,8 +167,7 @@ new_peer_entry (const struct GNUNET_PeerIdentity *peer) static int verify_revoke_message (const struct RevokeMessage *rm) { - if (GNUNET_YES != - GNUNET_REVOCATION_check_pow (&rm->proof_of_work, + if (0 >= GNUNET_REVOCATION_check_pow (&rm->proof_of_work, (unsigned int) revocation_work_required)) { GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, diff --git a/src/revocation/plugin_block_revocation.c b/src/revocation/plugin_block_revocation.c index a57a933c3..934c8d8c9 100644 --- a/src/revocation/plugin_block_revocation.c +++ b/src/revocation/plugin_block_revocation.c @@ -142,7 +142,7 @@ block_plugin_revocation_evaluate (void *cls, GNUNET_break_op (0); return GNUNET_BLOCK_EVALUATION_RESULT_INVALID; } - if (GNUNET_YES != + if (0 >= GNUNET_REVOCATION_check_pow (&rm->proof_of_work, ic->matching_bits)) { diff --git a/src/revocation/revocation_api.c b/src/revocation/revocation_api.c index 565ce9d0d..f2261ff4f 100644 --- a/src/revocation/revocation_api.c +++ b/src/revocation/revocation_api.c @@ -319,9 +319,7 @@ GNUNET_REVOCATION_revoke (const struct GNUNET_CONFIGURATION_Handle *cfg, "REVOCATION", "WORKBITS", &matching_bits)) && - (GNUNET_YES != - GNUNET_REVOCATION_check_pow (pow, - (unsigned int) matching_bits))) + (0 >= GNUNET_REVOCATION_check_pow (pow, (unsigned int) matching_bits))) { GNUNET_break (0); GNUNET_free (h); @@ -410,7 +408,7 @@ calculate_score (const struct GNUNET_REVOCATION_PowCalculationHandle *ph) * @param ts revocation timestamp * @param pow proof of work value * @param matching_bits how many bits must match (configuration) - * @return #GNUNET_YES if the @a pow is acceptable, #GNUNET_NO if not + * @return number of epochs valid if the @a pow is acceptable, -1 if not */ int GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, @@ -433,7 +431,7 @@ GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, for (unsigned int j = i + 1; j < POW_COUNT; j++) { if (pow->pow[i] == pow->pow[j]) - return GNUNET_NO; + return -1; } } GNUNET_memcpy (&buf[sizeof(uint64_t)], @@ -460,10 +458,8 @@ GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, score = score / POW_COUNT; if (score < difficulty) return GNUNET_NO; - // TODO verfiy signature? - epochs = score - difficulty + 1; - // TODO verify expiration - return GNUNET_YES; + epochs = score - difficulty; + return epochs; } -- cgit v1.2.3 From ee5cfec8640886ea3fa3f582cb04347762feebbd Mon Sep 17 00:00:00 2001 From: Martin Schanzenbach Date: Mon, 20 Apr 2020 16:56:16 +0200 Subject: fix tests --- po/POTFILES.in | 96 +-- po/de.po | 1066 +++++++++++++++--------------- po/it.po | 998 ++++++++++++++-------------- po/sv.po | 1066 +++++++++++++++--------------- po/vi.po | 1078 ++++++++++++++++--------------- po/zh_CN.po | 1066 +++++++++++++++--------------- src/include/gnunet_revocation_service.h | 2 +- src/revocation/gnunet-revocation.c | 4 +- src/revocation/revocation.h | 2 +- src/revocation/revocation_api.c | 11 +- src/revocation/test_revocation.c | 22 +- src/revocation/test_revocation.conf | 1 + 12 files changed, 2732 insertions(+), 2680 deletions(-) diff --git a/po/POTFILES.in b/po/POTFILES.in index ed9991796..813ebc222 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -10,21 +10,13 @@ src/arm/arm_monitor_api.c src/arm/gnunet-arm.c src/arm/gnunet-service-arm.c src/arm/mockup-service.c -src/ats-tests/ats-testing-experiment.c -src/ats-tests/ats-testing-log.c -src/ats-tests/ats-testing-preferences.c -src/ats-tests/ats-testing-traffic.c -src/ats-tests/ats-testing.c -src/ats-tests/gnunet-ats-sim.c -src/ats-tests/gnunet-solver-eval.c -src/ats-tool/gnunet-ats.c src/ats/ats_api_connectivity.c src/ats/ats_api_performance.c src/ats/ats_api_scanner.c src/ats/ats_api_scheduling.c src/ats/gnunet-ats-solver-eval.c -src/ats/gnunet-service-ats.c src/ats/gnunet-service-ats_addresses.c +src/ats/gnunet-service-ats.c src/ats/gnunet-service-ats_connectivity.c src/ats/gnunet-service-ats_normalization.c src/ats/gnunet-service-ats_performance.c @@ -33,6 +25,14 @@ src/ats/gnunet-service-ats_preferences.c src/ats/gnunet-service-ats_reservations.c src/ats/gnunet-service-ats_scheduling.c src/ats/plugin_ats_proportional.c +src/ats-tests/ats-testing.c +src/ats-tests/ats-testing-experiment.c +src/ats-tests/ats-testing-log.c +src/ats-tests/ats-testing-preferences.c +src/ats-tests/ats-testing-traffic.c +src/ats-tests/gnunet-ats-sim.c +src/ats-tests/gnunet-solver-eval.c +src/ats-tool/gnunet-ats.c src/auction/gnunet-auction-create.c src/auction/gnunet-auction-info.c src/auction/gnunet-auction-join.c @@ -49,8 +49,8 @@ src/cadet/cadet_api_list_peers.c src/cadet/cadet_api_list_tunnels.c src/cadet/cadet_test_lib.c src/cadet/desirability_table.c -src/cadet/gnunet-cadet-profiler.c src/cadet/gnunet-cadet.c +src/cadet/gnunet-cadet-profiler.c src/cadet/gnunet-service-cadet.c src/cadet/gnunet-service-cadet_channel.c src/cadet/gnunet-service-cadet_connection.c @@ -66,15 +66,15 @@ src/consensus/gnunet-service-consensus.c src/consensus/plugin_block_consensus.c src/conversation/conversation_api.c src/conversation/conversation_api_call.c -src/conversation/gnunet-conversation-test.c src/conversation/gnunet-conversation.c -src/conversation/gnunet-helper-audio-playback-gst.c +src/conversation/gnunet-conversation-test.c +src/conversation/gnunet_gst.c +src/conversation/gnunet_gst_test.c src/conversation/gnunet-helper-audio-playback.c -src/conversation/gnunet-helper-audio-record-gst.c +src/conversation/gnunet-helper-audio-playback-gst.c src/conversation/gnunet-helper-audio-record.c +src/conversation/gnunet-helper-audio-record-gst.c src/conversation/gnunet-service-conversation.c -src/conversation/gnunet_gst.c -src/conversation/gnunet_gst_test.c src/conversation/microphone.c src/conversation/plugin_gnsrecord_conversation.c src/conversation/speaker.c @@ -104,6 +104,7 @@ src/dht/dht_api.c src/dht/dht_test_lib.c src/dht/gnunet-dht-get.c src/dht/gnunet-dht-monitor.c +src/dht/gnunet_dht_profiler.c src/dht/gnunet-dht-put.c src/dht/gnunet-service-dht.c src/dht/gnunet-service-dht_clients.c @@ -112,7 +113,6 @@ src/dht/gnunet-service-dht_hello.c src/dht/gnunet-service-dht_neighbours.c src/dht/gnunet-service-dht_nse.c src/dht/gnunet-service-dht_routing.c -src/dht/gnunet_dht_profiler.c src/dht/plugin_block_dht.c src/dns/dns_api.c src/dns/gnunet-dns-monitor.c @@ -147,8 +147,8 @@ src/fs/gnunet-auto-share.c src/fs/gnunet-daemon-fsprofiler.c src/fs/gnunet-directory.c src/fs/gnunet-download.c -src/fs/gnunet-fs-profiler.c src/fs/gnunet-fs.c +src/fs/gnunet-fs-profiler.c src/fs/gnunet-helper-fs-publish.c src/fs/gnunet-publish.c src/fs/gnunet-search.c @@ -168,9 +168,9 @@ src/gns/gns_tld_api.c src/gns/gnunet-bcd.c src/gns/gnunet-dns2gns.c src/gns/gnunet-gns-benchmark.c +src/gns/gnunet-gns.c src/gns/gnunet-gns-import.c src/gns/gnunet-gns-proxy.c -src/gns/gnunet-gns.c src/gns/gnunet-service-gns.c src/gns/gnunet-service-gns_interceptor.c src/gns/gnunet-service-gns_resolver.c @@ -186,8 +186,8 @@ src/gnsrecord/gnsrecord_serialization.c src/gnsrecord/plugin_gnsrecord_dns.c src/hello/address.c src/hello/gnunet-hello.c -src/hello/hello-ng.c src/hello/hello.c +src/hello/hello-ng.c src/hostlist/gnunet-daemon-hostlist.c src/hostlist/gnunet-daemon-hostlist_client.c src/hostlist/gnunet-daemon-hostlist_server.c @@ -212,8 +212,8 @@ src/namecache/namecache_api.c src/namecache/plugin_namecache_flat.c src/namecache/plugin_namecache_postgres.c src/namecache/plugin_namecache_sqlite.c -src/namestore/gnunet-namestore-fcfsd.c src/namestore/gnunet-namestore.c +src/namestore/gnunet-namestore-fcfsd.c src/namestore/gnunet-service-namestore.c src/namestore/gnunet-zoneimport.c src/namestore/namestore_api.c @@ -239,17 +239,17 @@ src/nat/gnunet-service-nat_mini.c src/nat/gnunet-service-nat_stun.c src/nat/nat_api.c src/nat/nat_api_stun.c -src/nse/gnunet-nse-profiler.c src/nse/gnunet-nse.c +src/nse/gnunet-nse-profiler.c src/nse/gnunet-service-nse.c src/nse/nse_api.c src/nt/nt.c -src/peerinfo-tool/gnunet-peerinfo.c -src/peerinfo-tool/gnunet-peerinfo_plugins.c -src/peerinfo-tool/plugin_rest_peerinfo.c src/peerinfo/gnunet-service-peerinfo.c src/peerinfo/peerinfo_api.c src/peerinfo/peerinfo_api_notify.c +src/peerinfo-tool/gnunet-peerinfo.c +src/peerinfo-tool/gnunet-peerinfo_plugins.c +src/peerinfo-tool/plugin_rest_peerinfo.c src/peerstore/gnunet-peerstore.c src/peerstore/gnunet-service-peerstore.c src/peerstore/peerstore_api.c @@ -299,22 +299,22 @@ src/revocation/gnunet-revocation.c src/revocation/gnunet-service-revocation.c src/revocation/plugin_block_revocation.c src/revocation/revocation_api.c -src/rps/gnunet-rps-profiler.c src/rps/gnunet-rps.c +src/rps/gnunet-rps-profiler.c src/rps/gnunet-service-rps.c src/rps/gnunet-service-rps_custommap.c src/rps/gnunet-service-rps_sampler.c src/rps/gnunet-service-rps_sampler_elem.c src/rps/gnunet-service-rps_view.c +src/rps/rps_api.c src/rps/rps-sampler_client.c src/rps/rps-sampler_common.c src/rps/rps-test_util.c -src/rps/rps_api.c src/scalarproduct/gnunet-scalarproduct.c -src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c -src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c src/scalarproduct/gnunet-service-scalarproduct_alice.c src/scalarproduct/gnunet-service-scalarproduct_bob.c +src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c +src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c src/scalarproduct/scalarproduct_api.c src/secretsharing/gnunet-secretsharing-profiler.c src/secretsharing/gnunet-service-secretsharing.c @@ -340,16 +340,15 @@ src/statistics/gnunet-statistics.c src/statistics/statistics_api.c src/template/gnunet-service-template.c src/template/gnunet-template.c -src/testbed-logger/gnunet-service-testbed-logger.c -src/testbed-logger/testbed_logger_api.c src/testbed/generate-underlay-topology.c src/testbed/gnunet-daemon-latency-logger.c src/testbed/gnunet-daemon-testbed-blacklist.c src/testbed/gnunet-daemon-testbed-underlay.c src/testbed/gnunet-helper-testbed.c +src/testbed/gnunet_mpi_test.c src/testbed/gnunet-service-test-barriers.c -src/testbed/gnunet-service-testbed.c src/testbed/gnunet-service-testbed_barriers.c +src/testbed/gnunet-service-testbed.c src/testbed/gnunet-service-testbed_cache.c src/testbed/gnunet-service-testbed_connectionpool.c src/testbed/gnunet-service-testbed_cpustatus.c @@ -357,19 +356,20 @@ src/testbed/gnunet-service-testbed_links.c src/testbed/gnunet-service-testbed_meminfo.c src/testbed/gnunet-service-testbed_oc.c src/testbed/gnunet-service-testbed_peers.c -src/testbed/gnunet-testbed-profiler.c -src/testbed/gnunet_mpi_test.c src/testbed/gnunet_testbed_mpi_spawn.c -src/testbed/testbed_api.c +src/testbed/gnunet-testbed-profiler.c +src/testbed-logger/gnunet-service-testbed-logger.c +src/testbed-logger/testbed_logger_api.c src/testbed/testbed_api_barriers.c +src/testbed/testbed_api.c src/testbed/testbed_api_hosts.c src/testbed/testbed_api_operations.c src/testbed/testbed_api_peers.c src/testbed/testbed_api_sd.c src/testbed/testbed_api_services.c src/testbed/testbed_api_statistics.c -src/testbed/testbed_api_test.c src/testbed/testbed_api_testbed.c +src/testbed/testbed_api_test.c src/testbed/testbed_api_topology.c src/testbed/testbed_api_underlay.c src/testing/gnunet-testing.c @@ -381,40 +381,34 @@ src/transport/gnunet-communicator-tcp.c src/transport/gnunet-communicator-udp.c src/transport/gnunet-communicator-unix.c src/transport/gnunet-helper-transport-bluetooth.c -src/transport/gnunet-helper-transport-wlan-dummy.c src/transport/gnunet-helper-transport-wlan.c +src/transport/gnunet-helper-transport-wlan-dummy.c src/transport/gnunet-service-tng.c -src/transport/gnunet-service-transport.c src/transport/gnunet-service-transport_ats.c +src/transport/gnunet-service-transport.c src/transport/gnunet-service-transport_hello.c src/transport/gnunet-service-transport_manipulation.c src/transport/gnunet-service-transport_neighbours.c src/transport/gnunet-service-transport_plugins.c src/transport/gnunet-service-transport_validation.c +src/transport/gnunet-transport.c src/transport/gnunet-transport-profiler.c src/transport/gnunet-transport-wlan-receiver.c src/transport/gnunet-transport-wlan-sender.c -src/transport/gnunet-transport.c src/transport/plugin_transport_http_client.c src/transport/plugin_transport_http_common.c src/transport/plugin_transport_http_server.c src/transport/plugin_transport_smtp.c src/transport/plugin_transport_tcp.c src/transport/plugin_transport_template.c -src/transport/plugin_transport_udp.c src/transport/plugin_transport_udp_broadcasting.c +src/transport/plugin_transport_udp.c src/transport/plugin_transport_unix.c src/transport/plugin_transport_wlan.c src/transport/tcp_connection_legacy.c src/transport/tcp_server_legacy.c src/transport/tcp_server_mst_legacy.c src/transport/tcp_service_legacy.c -src/transport/transport-testing-filenames.c -src/transport/transport-testing-loggers.c -src/transport/transport-testing-main.c -src/transport/transport-testing-send.c -src/transport/transport-testing.c -src/transport/transport-testing2.c src/transport/transport_api2_application.c src/transport/transport_api2_communication.c src/transport/transport_api2_core.c @@ -427,6 +421,12 @@ src/transport/transport_api_manipulation.c src/transport/transport_api_monitor_peers.c src/transport/transport_api_monitor_plugins.c src/transport/transport_api_offer_hello.c +src/transport/transport-testing2.c +src/transport/transport-testing.c +src/transport/transport-testing-filenames.c +src/transport/transport-testing-loggers.c +src/transport/transport-testing-main.c +src/transport/transport-testing-send.c src/util/bandwidth.c src/util/benchmark.c src/util/bio.c @@ -441,8 +441,8 @@ src/util/consttime_memcmp.c src/util/container_bloomfilter.c src/util/container_heap.c src/util/container_meta_data.c -src/util/container_multihashmap.c src/util/container_multihashmap32.c +src/util/container_multihashmap.c src/util/container_multipeermap.c src/util/container_multishortmap.c src/util/container_multiuuidmap.c @@ -466,8 +466,8 @@ src/util/dnsparser.c src/util/dnsstub.c src/util/getopt.c src/util/getopt_helpers.c -src/util/gnunet-config-diff.c src/util/gnunet-config.c +src/util/gnunet-config-diff.c src/util/gnunet-crypto-tvg.c src/util/gnunet-ecc.c src/util/gnunet-qr.c @@ -505,8 +505,8 @@ src/vpn/gnunet-helper-vpn.c src/vpn/gnunet-service-vpn.c src/vpn/gnunet-vpn.c src/vpn/vpn_api.c -src/zonemaster/gnunet-service-zonemaster-monitor.c src/zonemaster/gnunet-service-zonemaster.c +src/zonemaster/gnunet-service-zonemaster-monitor.c src/fs/fs_api.h src/testbed/testbed_api.h src/testbed/testbed_api_operations.h diff --git a/po/de.po b/po/de.po index 216f67f68..0257436d6 100644 --- a/po/de.po +++ b/po/de.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: gnunet 0.10.1\n" "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n" -"POT-Creation-Date: 2020-01-13 14:01+0000\n" +"POT-Creation-Date: 2020-02-13 20:41+0100\n" "PO-Revision-Date: 2015-03-08 16:16+0100\n" "Last-Translator: Mario Blättermann \n" "Language-Team: German \n" @@ -32,8 +32,8 @@ msgid "Issuer public key `%s' is not well-formed\n" msgstr "" #: src/abd/gnunet-abd.c:558 src/abd/gnunet-service-abd.c:1747 -#: src/namestore/gnunet-namestore-fcfsd.c:1153 #: src/namestore/gnunet-namestore.c:1001 +#: src/namestore/gnunet-namestore-fcfsd.c:1153 #, fuzzy, c-format msgid "Failed to connect to namestore\n" msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n" @@ -143,7 +143,7 @@ msgstr "" msgid "GNUnet abd resolver tool" msgstr "GNUnet Netzwerk Topologie tracen." -#: src/abd/gnunet-service-abd.c:1742 src/gns/gnunet-gns.c:288 +#: src/abd/gnunet-service-abd.c:1742 src/gns/gnunet-gns.c:292 #, fuzzy, c-format msgid "Failed to connect to GNS\n" msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n" @@ -383,28 +383,28 @@ msgstr "" #: src/transport/plugin_transport_tcp.c:1129 #: src/transport/plugin_transport_tcp.c:3706 #: src/transport/tcp_service_legacy.c:594 -#: src/transport/tcp_service_legacy.c:600 src/util/service.c:1094 -#: src/util/service.c:1100 +#: src/transport/tcp_service_legacy.c:600 src/util/service.c:1091 +#: src/util/service.c:1097 #, c-format msgid "Require valid port number for service `%s' in configuration!\n" msgstr "" #: src/arm/gnunet-service-arm.c:452 src/transport/plugin_transport_tcp.c:1163 -#: src/transport/tcp_service_legacy.c:634 src/util/client.c:519 -#: src/util/service.c:1133 +#: src/transport/tcp_service_legacy.c:634 src/util/client.c:527 +#: src/util/service.c:1130 #, c-format msgid "UNIXPATH `%s' too long, maximum length is %llu\n" msgstr "" #: src/arm/gnunet-service-arm.c:456 src/transport/plugin_transport_tcp.c:1167 -#: src/transport/tcp_service_legacy.c:638 src/util/client.c:524 -#: src/util/service.c:1137 +#: src/transport/tcp_service_legacy.c:638 src/util/client.c:532 +#: src/util/service.c:1134 #, c-format msgid "Using `%s' instead\n" msgstr "" #: src/arm/gnunet-service-arm.c:484 src/transport/plugin_transport_tcp.c:1195 -#: src/transport/tcp_service_legacy.c:666 src/util/service.c:1157 +#: src/transport/tcp_service_legacy.c:666 src/util/service.c:1154 #, c-format msgid "" "Disabling UNIX domain socket support for service `%s', failed to create UNIX " @@ -412,7 +412,7 @@ msgid "" msgstr "" #: src/arm/gnunet-service-arm.c:505 src/transport/plugin_transport_tcp.c:1213 -#: src/transport/tcp_service_legacy.c:684 src/util/service.c:1175 +#: src/transport/tcp_service_legacy.c:684 src/util/service.c:1172 #, c-format msgid "Have neither PORT nor UNIXPATH for service `%s', but one is required\n" msgstr "" @@ -420,7 +420,7 @@ msgstr "" #: src/arm/gnunet-service-arm.c:536 #: src/transport/plugin_transport_http_server.c:2718 #: src/transport/plugin_transport_tcp.c:1244 -#: src/transport/tcp_service_legacy.c:715 src/util/service.c:1206 +#: src/transport/tcp_service_legacy.c:715 src/util/service.c:1203 #, c-format msgid "Failed to resolve `%s': %s\n" msgstr "»%s« konnte nicht aufgelöst werden: %s\n" @@ -428,7 +428,7 @@ msgstr "»%s« konnte nicht aufgelöst werden: %s\n" #: src/arm/gnunet-service-arm.c:555 #: src/transport/plugin_transport_http_server.c:2736 #: src/transport/plugin_transport_tcp.c:1263 -#: src/transport/tcp_service_legacy.c:734 src/util/service.c:1225 +#: src/transport/tcp_service_legacy.c:734 src/util/service.c:1222 #, fuzzy, c-format msgid "Failed to find %saddress for `%s'.\n" msgstr "Fehler beim Lesen der Freunde-Liste von `%s'\n" @@ -499,14 +499,81 @@ msgstr "" msgid "Initiating shutdown as requested by client.\n" msgstr "" -#: src/ats-tests/ats-testing-log.c:896 -msgid "Stop logging\n" -msgstr "Protokollierung stoppen\n" +#: src/ats/gnunet-ats-solver-eval.c:2992 src/ats/gnunet-ats-solver-eval.c:3044 +#, c-format +msgid "" +"Could not load quota for network `%s': `%s', assigning default bandwidth " +"%llu\n" +msgstr "" -#: src/ats-tests/ats-testing-log.c:952 +#: src/ats/gnunet-ats-solver-eval.c:3011 +#, c-format +msgid "" +"No outbound quota configured for network `%s', assigning default bandwidth " +"%llu\n" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3063 +#, c-format +msgid "" +"No outbound quota configure for network `%s', assigning default bandwidth " +"%llu\n" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3552 src/ats-tests/gnunet-solver-eval.c:997 +msgid "solver to use" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3557 +#: src/ats-tests/gnunet-solver-eval.c:1003 +#: src/ats-tests/gnunet-solver-eval.c:1008 +msgid "experiment to use" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3564 +msgid "print logging" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3569 +msgid "save logging to disk" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3574 +msgid "disable normalization" +msgstr "" + +#: src/ats/gnunet-service-ats_plugins.c:326 +#, c-format +msgid "" +"Could not load %s quota for network `%s': `%s', assigning default bandwidth " +"%llu\n" +msgstr "" + +#: src/ats/gnunet-service-ats_plugins.c:336 +#, c-format +msgid "%s quota configured for network `%s' is %llu\n" +msgstr "" + +#: src/ats/gnunet-service-ats_plugins.c:382 +#, c-format +msgid "" +"No %s-quota configured for network `%s', assigning default bandwidth %llu\n" +msgstr "" + +#: src/ats/gnunet-service-ats_plugins.c:474 #, fuzzy, c-format -msgid "Start logging `%s'\n" -msgstr "Collection `%s' begonnen.\n" +msgid "Failed to initialize solver `%s'!\n" +msgstr "SQLite Datenbank konnte nicht initialisiert werden.\n" + +#: src/ats/plugin_ats_proportional.c:1140 +#, fuzzy, c-format +msgid "Invalid %s configuration %f \n" +msgstr "Konfiguration konnte nicht aus %s geladen werden\n" + +#: src/ats/plugin_ats_proportional.c:1163 +#, fuzzy, c-format +msgid "Invalid %s configuration %f\n" +msgstr " gconfig\tGTK Konfiguration\n" #: src/ats-tests/ats-testing.c:420 #, c-format @@ -518,6 +585,15 @@ msgstr "" msgid "Failed to connect master peer [%u] with slave [%u]\n" msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n" +#: src/ats-tests/ats-testing-log.c:896 +msgid "Stop logging\n" +msgstr "Protokollierung stoppen\n" + +#: src/ats-tests/ats-testing-log.c:952 +#, fuzzy, c-format +msgid "Start logging `%s'\n" +msgstr "Collection `%s' begonnen.\n" + #: src/ats-tests/gnunet-ats-sim.c:92 #, c-format msgid "" @@ -525,16 +601,6 @@ msgid "" "= %u KiB/s\n" msgstr "" -#: src/ats-tests/gnunet-solver-eval.c:997 src/ats/gnunet-ats-solver-eval.c:3552 -msgid "solver to use" -msgstr "" - -#: src/ats-tests/gnunet-solver-eval.c:1003 -#: src/ats-tests/gnunet-solver-eval.c:1008 -#: src/ats/gnunet-ats-solver-eval.c:3557 -msgid "experiment to use" -msgstr "" - #: src/ats-tool/gnunet-ats.c:299 #, c-format msgid "%u address resolutions had a timeout\n" @@ -652,72 +718,6 @@ msgstr "" msgid "Print information about ATS state" msgstr "Informationen über andere GNUnet Knoten ausgeben." -#: src/ats/gnunet-ats-solver-eval.c:2992 src/ats/gnunet-ats-solver-eval.c:3044 -#, c-format -msgid "" -"Could not load quota for network `%s': `%s', assigning default bandwidth " -"%llu\n" -msgstr "" - -#: src/ats/gnunet-ats-solver-eval.c:3011 -#, c-format -msgid "" -"No outbound quota configured for network `%s', assigning default bandwidth " -"%llu\n" -msgstr "" - -#: src/ats/gnunet-ats-solver-eval.c:3063 -#, c-format -msgid "" -"No outbound quota configure for network `%s', assigning default bandwidth " -"%llu\n" -msgstr "" - -#: src/ats/gnunet-ats-solver-eval.c:3564 -msgid "print logging" -msgstr "" - -#: src/ats/gnunet-ats-solver-eval.c:3569 -msgid "save logging to disk" -msgstr "" - -#: src/ats/gnunet-ats-solver-eval.c:3574 -msgid "disable normalization" -msgstr "" - -#: src/ats/gnunet-service-ats_plugins.c:326 -#, c-format -msgid "" -"Could not load %s quota for network `%s': `%s', assigning default bandwidth " -"%llu\n" -msgstr "" - -#: src/ats/gnunet-service-ats_plugins.c:336 -#, c-format -msgid "%s quota configured for network `%s' is %llu\n" -msgstr "" - -#: src/ats/gnunet-service-ats_plugins.c:382 -#, c-format -msgid "" -"No %s-quota configured for network `%s', assigning default bandwidth %llu\n" -msgstr "" - -#: src/ats/gnunet-service-ats_plugins.c:474 -#, fuzzy, c-format -msgid "Failed to initialize solver `%s'!\n" -msgstr "SQLite Datenbank konnte nicht initialisiert werden.\n" - -#: src/ats/plugin_ats_proportional.c:1140 -#, fuzzy, c-format -msgid "Invalid %s configuration %f \n" -msgstr "Konfiguration konnte nicht aus %s geladen werden\n" - -#: src/ats/plugin_ats_proportional.c:1163 -#, fuzzy, c-format -msgid "Invalid %s configuration %f\n" -msgstr " gconfig\tGTK Konfiguration\n" - #: src/auction/gnunet-auction-create.c:163 msgid "description of the item to be sold" msgstr "" @@ -850,28 +850,6 @@ msgstr "Ausführlicherer Modus (empfangene Werte ausgeben)" msgid "Connection to conversation service lost, trying to reconnect\n" msgstr "" -#: src/conversation/gnunet-conversation-test.c:120 -#, c-format -msgid "" -"\n" -"End of transmission. Have a GNU day.\n" -msgstr "" - -#: src/conversation/gnunet-conversation-test.c:146 -#, c-format -msgid "" -"\n" -"We are now playing your recording back. If you can hear it, your audio " -"settings are working..." -msgstr "" - -#: src/conversation/gnunet-conversation-test.c:218 -#, c-format -msgid "" -"We will now be recording you for %s. After that time, the recording will be " -"played back to you..." -msgstr "" - #: src/conversation/gnunet-conversation.c:264 #, c-format msgid "Incoming call from `%s'. Please /accept %u or /cancel %u the call.\n" @@ -1131,8 +1109,30 @@ msgstr "" msgid "Enables having a conversation with other GNUnet users." msgstr "" -#: src/conversation/gnunet-helper-audio-playback-gst.c:363 +#: src/conversation/gnunet-conversation-test.c:120 +#, c-format +msgid "" +"\n" +"End of transmission. Have a GNU day.\n" +msgstr "" + +#: src/conversation/gnunet-conversation-test.c:146 +#, c-format +msgid "" +"\n" +"We are now playing your recording back. If you can hear it, your audio " +"settings are working..." +msgstr "" + +#: src/conversation/gnunet-conversation-test.c:218 +#, c-format +msgid "" +"We will now be recording you for %s. After that time, the recording will be " +"played back to you..." +msgstr "" + #: src/conversation/gnunet_gst.c:664 +#: src/conversation/gnunet-helper-audio-playback-gst.c:363 #, c-format msgid "Read error from STDIN: %d %s\n" msgstr "Fehler beim Lesen aus STDIN: %d %s\n" @@ -1938,17 +1938,17 @@ msgstr "`%s' an `%s' schlug fehl bei %s:%d mit dem Fehler: %s\n" msgid "Mysql database running\n" msgstr "MySQL-Datenbank läuft\n" -#: src/datastore/plugin_datastore_postgres.c:277 -#: src/datastore/plugin_datastore_postgres.c:890 +#: src/datastore/plugin_datastore_postgres.c:278 +#: src/datastore/plugin_datastore_postgres.c:891 msgid "Postgress exec failure" msgstr "" -#: src/datastore/plugin_datastore_postgres.c:851 +#: src/datastore/plugin_datastore_postgres.c:852 #, fuzzy msgid "Failed to drop table from database.\n" msgstr "Fehler beim Binden an UDP Port %d.\n" -#: src/datastore/plugin_datastore_postgres.c:949 +#: src/datastore/plugin_datastore_postgres.c:950 msgid "Postgres database running\n" msgstr "PostgreSQL-Datenbank läuft\n" @@ -2055,47 +2055,94 @@ msgstr "" msgid "Prints all packets that go through the DHT." msgstr "" -#: src/dht/gnunet-dht-put.c:133 -msgid "Must provide KEY and DATA for DHT put!\n" +#: src/dht/gnunet_dht_profiler.c:922 src/testbed/gnunet-testbed-profiler.c:255 +#, c-format +msgid "Exiting as the number of peers is %u\n" msgstr "" -#: src/dht/gnunet-dht-put.c:140 -#, fuzzy, c-format -msgid "Could not connect to DHT service!\n" -msgstr "Verbindung zum %s-Dienst ist fehlgeschlagen!\n" +#: src/dht/gnunet_dht_profiler.c:955 src/rps/gnunet-rps-profiler.c:3194 +#, fuzzy +msgid "number of peers to start" +msgstr "Anzahl an Durchläufen" -#: src/dht/gnunet-dht-put.c:151 -#, c-format -msgid "Issuing put request for `%s' with data `%s'!\n" +#: src/dht/gnunet_dht_profiler.c:961 +msgid "number of PUTs to perform per peer" msgstr "" -#: src/dht/gnunet-dht-put.c:187 -msgid "the data to insert under the key" +#: src/dht/gnunet_dht_profiler.c:967 src/nse/gnunet-nse-profiler.c:872 +#: src/testbed/gnunet-testbed-profiler.c:305 +msgid "name of the file with the login information for the testbed" msgstr "" -#: src/dht/gnunet-dht-put.c:193 -msgid "how long to store this entry in the dht (in seconds)" +#: src/dht/gnunet_dht_profiler.c:973 +msgid "delay between rounds for collecting statistics (default: 30 sec)" msgstr "" -#: src/dht/gnunet-dht-put.c:208 -msgid "how many replicas to create" +#: src/dht/gnunet_dht_profiler.c:979 +msgid "delay to start doing PUTs (default: 1 sec)" msgstr "" -#: src/dht/gnunet-dht-put.c:212 -msgid "use DHT's record route option" +#: src/dht/gnunet_dht_profiler.c:985 +msgid "delay to start doing GETs (default: 5 min)" msgstr "" -#: src/dht/gnunet-dht-put.c:217 -msgid "the type to insert data as" +#: src/dht/gnunet_dht_profiler.c:990 +msgid "replication degree for DHT PUTs" msgstr "" -#: src/dht/gnunet-dht-put.c:232 -msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY." +#: src/dht/gnunet_dht_profiler.c:996 +msgid "chance that a peer is selected at random for PUTs" msgstr "" -#: src/dht/gnunet-service-dht_clients.c:367 -#, fuzzy -msgid "# GET requests from clients injected" +#: src/dht/gnunet_dht_profiler.c:1002 +msgid "timeout for DHT PUT and GET requests (default: 1 min)" +msgstr "" + +#: src/dht/gnunet_dht_profiler.c:1023 +msgid "Measure quality and performance of the DHT service." +msgstr "" + +#: src/dht/gnunet-dht-put.c:133 +msgid "Must provide KEY and DATA for DHT put!\n" +msgstr "" + +#: src/dht/gnunet-dht-put.c:140 +#, fuzzy, c-format +msgid "Could not connect to DHT service!\n" +msgstr "Verbindung zum %s-Dienst ist fehlgeschlagen!\n" + +#: src/dht/gnunet-dht-put.c:151 +#, c-format +msgid "Issuing put request for `%s' with data `%s'!\n" +msgstr "" + +#: src/dht/gnunet-dht-put.c:187 +msgid "the data to insert under the key" +msgstr "" + +#: src/dht/gnunet-dht-put.c:193 +msgid "how long to store this entry in the dht (in seconds)" +msgstr "" + +#: src/dht/gnunet-dht-put.c:208 +msgid "how many replicas to create" +msgstr "" + +#: src/dht/gnunet-dht-put.c:212 +msgid "use DHT's record route option" +msgstr "" + +#: src/dht/gnunet-dht-put.c:217 +msgid "the type to insert data as" +msgstr "" + +#: src/dht/gnunet-dht-put.c:232 +msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY." +msgstr "" + +#: src/dht/gnunet-service-dht_clients.c:367 +#, fuzzy +msgid "# GET requests from clients injected" msgstr "# gap Anfragen mit taktischer Entscheidung: nicht Antworten" #: src/dht/gnunet-service-dht_clients.c:483 @@ -2319,53 +2366,6 @@ msgstr "" msgid "# DHT requests combined" msgstr "# dht Anfragen weitergeleitet" -#: src/dht/gnunet_dht_profiler.c:922 src/testbed/gnunet-testbed-profiler.c:255 -#, c-format -msgid "Exiting as the number of peers is %u\n" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:955 src/rps/gnunet-rps-profiler.c:3194 -#, fuzzy -msgid "number of peers to start" -msgstr "Anzahl an Durchläufen" - -#: src/dht/gnunet_dht_profiler.c:961 -msgid "number of PUTs to perform per peer" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:967 src/nse/gnunet-nse-profiler.c:872 -#: src/testbed/gnunet-testbed-profiler.c:305 -msgid "name of the file with the login information for the testbed" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:973 -msgid "delay between rounds for collecting statistics (default: 30 sec)" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:979 -msgid "delay to start doing PUTs (default: 1 sec)" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:985 -msgid "delay to start doing GETs (default: 5 min)" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:990 -msgid "replication degree for DHT PUTs" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:996 -msgid "chance that a peer is selected at random for PUTs" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:1002 -msgid "timeout for DHT PUT and GET requests (default: 1 min)" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:1023 -msgid "Measure quality and performance of the DHT service." -msgstr "" - #: src/dht/plugin_block_dht.c:189 #, fuzzy, c-format msgid "Block not of type %u\n" @@ -3315,6 +3315,15 @@ msgid "" "chk/...)" msgstr "" +#: src/fs/gnunet-fs.c:128 +msgid "print a list of all indexed files" +msgstr "" + +#: src/fs/gnunet-fs.c:141 +#, fuzzy +msgid "Special file-sharing operations" +msgstr "Alle Optionen anzeigen" + #: src/fs/gnunet-fs-profiler.c:211 msgid "run the experiment with COUNT peers" msgstr "" @@ -3331,15 +3340,6 @@ msgstr "" msgid "run a testbed to measure file-sharing performance" msgstr "" -#: src/fs/gnunet-fs.c:128 -msgid "print a list of all indexed files" -msgstr "" - -#: src/fs/gnunet-fs.c:141 -#, fuzzy -msgid "Special file-sharing operations" -msgstr "Alle Optionen anzeigen" - #: src/fs/gnunet-publish.c:219 src/fs/gnunet-publish.c:234 #, c-format msgid "Publishing `%s' at %llu/%llu (%s remaining)\n" @@ -4038,6 +4038,52 @@ msgstr "" msgid "look for GNS2DNS records instead of ANY" msgstr "" +#: src/gns/gnunet-gns.c:257 +#, fuzzy, c-format +msgid "`%s' is not a valid DNS domain name\n" +msgstr "»%s« ist keine gültige IP-Adresse.\n" + +#: src/gns/gnunet-gns.c:267 src/util/dnsparser.c:254 +#, c-format +msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n" +msgstr "" + +#: src/gns/gnunet-gns.c:281 +msgid "Cannot resolve using GNS: GNUnet peer not running\n" +msgstr "" + +#: src/gns/gnunet-gns.c:305 +#, c-format +msgid "Invalid typename specified, assuming `ANY'\n" +msgstr "" + +#: src/gns/gnunet-gns.c:340 +msgid "Lookup a record for the given name" +msgstr "" + +#: src/gns/gnunet-gns.c:346 +#, fuzzy +msgid "Specify the type of the record to lookup" +msgstr "Die Priorität des Inhalts angeben" + +#: src/gns/gnunet-gns.c:352 +#, fuzzy +msgid "Specify a timeout for the lookup" +msgstr "Die Priorität des Inhalts angeben" + +#: src/gns/gnunet-gns.c:356 +msgid "No unneeded output" +msgstr "" + +#: src/gns/gnunet-gns.c:361 +msgid "DNS Compatibility: Name is passed in IDNA instead of UTF-8" +msgstr "" + +#: src/gns/gnunet-gns.c:375 +#, fuzzy +msgid "GNUnet GNS resolver tool" +msgstr "GNUnet Netzwerk Topologie tracen." + #: src/gns/gnunet-gns-import.c:486 msgid "This program will import some GNS authorities into your GNS namestore." msgstr "" @@ -4158,52 +4204,6 @@ msgstr "" msgid "GNUnet GNS proxy" msgstr "" -#: src/gns/gnunet-gns.c:253 -#, fuzzy, c-format -msgid "`%s' is not a valid DNS domain name\n" -msgstr "»%s« ist keine gültige IP-Adresse.\n" - -#: src/gns/gnunet-gns.c:263 src/util/dnsparser.c:254 -#, c-format -msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n" -msgstr "" - -#: src/gns/gnunet-gns.c:277 -msgid "Cannot resolve using GNS: GNUnet peer not running\n" -msgstr "" - -#: src/gns/gnunet-gns.c:301 -#, c-format -msgid "Invalid typename specified, assuming `ANY'\n" -msgstr "" - -#: src/gns/gnunet-gns.c:336 -msgid "Lookup a record for the given name" -msgstr "" - -#: src/gns/gnunet-gns.c:342 -#, fuzzy -msgid "Specify the type of the record to lookup" -msgstr "Die Priorität des Inhalts angeben" - -#: src/gns/gnunet-gns.c:348 -#, fuzzy -msgid "Specify a timeout for the lookup" -msgstr "Die Priorität des Inhalts angeben" - -#: src/gns/gnunet-gns.c:352 -msgid "No unneeded output" -msgstr "" - -#: src/gns/gnunet-gns.c:357 -msgid "DNS Compatibility: Name is passed in IDNA instead of UTF-8" -msgstr "" - -#: src/gns/gnunet-gns.c:371 -#, fuzzy -msgid "GNUnet GNS resolver tool" -msgstr "GNUnet Netzwerk Topologie tracen." - #: src/gns/gnunet-service-gns.c:505 #, fuzzy msgid "Properly base32-encoded public key required" @@ -4215,8 +4215,8 @@ msgid "Failed to connect to the namecache!\n" msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n" #: src/gns/gnunet-service-gns.c:560 -#: src/zonemaster/gnunet-service-zonemaster-monitor.c:444 #: src/zonemaster/gnunet-service-zonemaster.c:887 +#: src/zonemaster/gnunet-service-zonemaster-monitor.c:444 #, fuzzy msgid "Could not connect to DHT!\n" msgstr "Verbindung zu gnunetd konnte nicht hergestellt werden.\n" @@ -4276,21 +4276,21 @@ msgstr "" msgid "GNS lookup failed (zero records found for `%s')\n" msgstr "Dienst `%s' konnte nicht ordentlich entladen werden!\n" -#: src/gns/gnunet-service-gns_resolver.c:2376 +#: src/gns/gnunet-service-gns_resolver.c:2372 msgid "GNS lookup recursion failed (no delegation record found)\n" msgstr "" -#: src/gns/gnunet-service-gns_resolver.c:2399 +#: src/gns/gnunet-service-gns_resolver.c:2395 #, fuzzy, c-format msgid "Failed to cache GNS resolution: %s\n" msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n" -#: src/gns/gnunet-service-gns_resolver.c:2567 +#: src/gns/gnunet-service-gns_resolver.c:2563 #, c-format msgid "GNS namecache returned empty result for `%s'\n" msgstr "" -#: src/gns/gnunet-service-gns_resolver.c:2707 +#: src/gns/gnunet-service-gns_resolver.c:2703 #, c-format msgid "Zone %s was revoked, resolution fails\n" msgstr "" @@ -4966,70 +4966,6 @@ msgstr "Sqlite-Datenbank läuft\n" msgid "Failed to setup database at `%s'\n" msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n" -#: src/namestore/gnunet-namestore-fcfsd.c:551 -#, fuzzy, c-format -msgid "Unsupported form value `%s'\n" -msgstr "Kommando `%s' wird nicht unterstützt. Vorgang wird abgebrochen.\n" - -#: src/namestore/gnunet-namestore-fcfsd.c:578 -#, fuzzy, c-format -msgid "Failed to create record for domain `%s': %s\n" -msgstr "Fehler beim Lesen der Freunde-Liste von `%s'\n" - -#: src/namestore/gnunet-namestore-fcfsd.c:599 -msgid "Error when mapping zone to name\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:631 -#, c-format -msgid "Found existing name `%s' for the given key\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:693 -#, c-format -msgid "Found %u existing records for domain `%s'\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:783 -#, fuzzy, c-format -msgid "Failed to create page for `%s'\n" -msgstr "Fehler beim Aktualisieren der Daten des Moduls `%s'\n" - -#: src/namestore/gnunet-namestore-fcfsd.c:802 -#, fuzzy, c-format -msgid "Failed to setup post processor for `%s'\n" -msgstr "Fehler beim Aktualisieren der Daten des Moduls `%s'\n" - -#: src/namestore/gnunet-namestore-fcfsd.c:839 -msgid "Domain name must not contain `.'\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:848 -msgid "Domain name must not contain `+'\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:1083 -msgid "No ego configured for `fcfsd` subsystem\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:1114 -#, fuzzy -msgid "Failed to start HTTP server\n" -msgstr "Fehler beim Senden einer `%s' Anfrage an den SMTP Server.\n" - -#: src/namestore/gnunet-namestore-fcfsd.c:1162 -#, fuzzy -msgid "Failed to connect to identity\n" -msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n" - -#: src/namestore/gnunet-namestore-fcfsd.c:1189 -msgid "name of the zone that is to be managed by FCFSD" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:1209 -msgid "GNU Name System First Come First Serve name registration service" -msgstr "" - #: src/namestore/gnunet-namestore.c:334 #, c-format msgid "Adding record failed: %s\n" @@ -5249,7 +5185,71 @@ msgstr "" msgid "name of the ego controlling the zone" msgstr "" -#: src/namestore/gnunet-service-namestore.c:864 +#: src/namestore/gnunet-namestore-fcfsd.c:551 +#, fuzzy, c-format +msgid "Unsupported form value `%s'\n" +msgstr "Kommando `%s' wird nicht unterstützt. Vorgang wird abgebrochen.\n" + +#: src/namestore/gnunet-namestore-fcfsd.c:578 +#, fuzzy, c-format +msgid "Failed to create record for domain `%s': %s\n" +msgstr "Fehler beim Lesen der Freunde-Liste von `%s'\n" + +#: src/namestore/gnunet-namestore-fcfsd.c:599 +msgid "Error when mapping zone to name\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:631 +#, c-format +msgid "Found existing name `%s' for the given key\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:693 +#, c-format +msgid "Found %u existing records for domain `%s'\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:783 +#, fuzzy, c-format +msgid "Failed to create page for `%s'\n" +msgstr "Fehler beim Aktualisieren der Daten des Moduls `%s'\n" + +#: src/namestore/gnunet-namestore-fcfsd.c:802 +#, fuzzy, c-format +msgid "Failed to setup post processor for `%s'\n" +msgstr "Fehler beim Aktualisieren der Daten des Moduls `%s'\n" + +#: src/namestore/gnunet-namestore-fcfsd.c:839 +msgid "Domain name must not contain `.'\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:848 +msgid "Domain name must not contain `+'\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:1083 +msgid "No ego configured for `fcfsd` subsystem\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:1114 +#, fuzzy +msgid "Failed to start HTTP server\n" +msgstr "Fehler beim Senden einer `%s' Anfrage an den SMTP Server.\n" + +#: src/namestore/gnunet-namestore-fcfsd.c:1162 +#, fuzzy +msgid "Failed to connect to identity\n" +msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n" + +#: src/namestore/gnunet-namestore-fcfsd.c:1189 +msgid "name of the zone that is to be managed by FCFSD" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:1209 +msgid "GNU Name System First Come First Serve name registration service" +msgstr "" + +#: src/namestore/gnunet-service-namestore.c:866 #, c-format msgid "Failed to replicate block in namecache: %s\n" msgstr "" @@ -5571,6 +5571,10 @@ msgstr "Kommando `%s' wurde nicht gefunden!\n" msgid "`upnpc' command not found\n" msgstr "Kommando `%s' wurde nicht gefunden!\n" +#: src/nse/gnunet-nse.c:124 +msgid "Show network size estimates from NSE service." +msgstr "" + #: src/nse/gnunet-nse-profiler.c:857 msgid "limit to the number of connections to NSE services, 0 for none" msgstr "" @@ -5583,26 +5587,79 @@ msgstr "" msgid "name of the file for writing the main results" msgstr "" -#: src/nse/gnunet-nse-profiler.c:888 -msgid "Number of peers to run in each round, separated by commas" -msgstr "" +#: src/nse/gnunet-nse-profiler.c:888 +msgid "Number of peers to run in each round, separated by commas" +msgstr "" + +#: src/nse/gnunet-nse-profiler.c:900 +msgid "delay between rounds" +msgstr "" + +#: src/nse/gnunet-nse-profiler.c:912 +msgid "Measure quality and performance of the NSE service." +msgstr "" + +#: src/nse/gnunet-service-nse.c:1437 +#: src/revocation/gnunet-service-revocation.c:846 src/util/gnunet-scrypt.c:247 +msgid "Value is too large.\n" +msgstr "" + +#: src/peerinfo/gnunet-service-peerinfo.c:175 +#, fuzzy, c-format +msgid "Removing expired address of transport `%s'\n" +msgstr "Verfügbare(r) Transport(e): %s\n" + +#: src/peerinfo/gnunet-service-peerinfo.c:306 +#, fuzzy, c-format +msgid "Failed to parse HELLO in file `%s': %s\n" +msgstr "Datei wurde als `%s' gespeichert.\n" + +#: src/peerinfo/gnunet-service-peerinfo.c:323 +#: src/peerinfo/gnunet-service-peerinfo.c:348 +#, fuzzy, c-format +msgid "Failed to parse HELLO in file `%s'\n" +msgstr "Datei wurde als `%s' gespeichert.\n" + +#: src/peerinfo/gnunet-service-peerinfo.c:426 +msgid "# peers known" +msgstr "" + +#: src/peerinfo/gnunet-service-peerinfo.c:468 +#, c-format +msgid "" +"File `%s' in directory `%s' does not match naming convention. Removed.\n" +msgstr "" +"Die Datei »%s« im Verzeichnis »%s« entspricht nicht der Namenskonvention. " +"Die Datei wurde entfernt.\n" + +#: src/peerinfo/gnunet-service-peerinfo.c:624 +#, fuzzy, c-format +msgid "Scanning directory `%s'\n" +msgstr "==> Verzeichnis `%s':\n" + +#: src/peerinfo/gnunet-service-peerinfo.c:631 +#, fuzzy, c-format +msgid "Still no peers found in `%s'!\n" +msgstr "Dienst `%s' konnte nicht ordentlich entladen werden!\n" -#: src/nse/gnunet-nse-profiler.c:900 -msgid "delay between rounds" -msgstr "" +#: src/peerinfo/gnunet-service-peerinfo.c:1024 +#, fuzzy, c-format +msgid "Cleaning up directory `%s'\n" +msgstr "==> Verzeichnis `%s':\n" -#: src/nse/gnunet-nse-profiler.c:912 -msgid "Measure quality and performance of the NSE service." +#: src/peerinfo/gnunet-service-peerinfo.c:1319 +#, c-format +msgid "Importing HELLOs from `%s'\n" msgstr "" -#: src/nse/gnunet-nse.c:124 -msgid "Show network size estimates from NSE service." +#: src/peerinfo/gnunet-service-peerinfo.c:1332 +msgid "Skipping import of included HELLOs\n" msgstr "" -#: src/nse/gnunet-service-nse.c:1437 -#: src/revocation/gnunet-service-revocation.c:846 src/util/gnunet-scrypt.c:247 -msgid "Value is too large.\n" -msgstr "" +#: src/peerinfo/peerinfo_api.c:217 +#, fuzzy +msgid "Failed to receive response from `PEERINFO' service." +msgstr "Fehler beim Empfangen der Antwort von gnunetd auf die `%s' Nachricht\n" #: src/peerinfo-tool/gnunet-peerinfo.c:237 #, fuzzy, c-format @@ -5700,63 +5757,6 @@ msgstr "Anwendung `%s' konnte nicht initialisiert werden.\n" msgid "Peerinfo REST API initialized\n" msgstr " Verbindung fehlgeschlagen\n" -#: src/peerinfo/gnunet-service-peerinfo.c:175 -#, fuzzy, c-format -msgid "Removing expired address of transport `%s'\n" -msgstr "Verfügbare(r) Transport(e): %s\n" - -#: src/peerinfo/gnunet-service-peerinfo.c:306 -#, fuzzy, c-format -msgid "Failed to parse HELLO in file `%s': %s\n" -msgstr "Datei wurde als `%s' gespeichert.\n" - -#: src/peerinfo/gnunet-service-peerinfo.c:323 -#: src/peerinfo/gnunet-service-peerinfo.c:348 -#, fuzzy, c-format -msgid "Failed to parse HELLO in file `%s'\n" -msgstr "Datei wurde als `%s' gespeichert.\n" - -#: src/peerinfo/gnunet-service-peerinfo.c:426 -msgid "# peers known" -msgstr "" - -#: src/peerinfo/gnunet-service-peerinfo.c:468 -#, c-format -msgid "" -"File `%s' in directory `%s' does not match naming convention. Removed.\n" -msgstr "" -"Die Datei »%s« im Verzeichnis »%s« entspricht nicht der Namenskonvention. " -"Die Datei wurde entfernt.\n" - -#: src/peerinfo/gnunet-service-peerinfo.c:624 -#, fuzzy, c-format -msgid "Scanning directory `%s'\n" -msgstr "==> Verzeichnis `%s':\n" - -#: src/peerinfo/gnunet-service-peerinfo.c:631 -#, fuzzy, c-format -msgid "Still no peers found in `%s'!\n" -msgstr "Dienst `%s' konnte nicht ordentlich entladen werden!\n" - -#: src/peerinfo/gnunet-service-peerinfo.c:1024 -#, fuzzy, c-format -msgid "Cleaning up directory `%s'\n" -msgstr "==> Verzeichnis `%s':\n" - -#: src/peerinfo/gnunet-service-peerinfo.c:1319 -#, c-format -msgid "Importing HELLOs from `%s'\n" -msgstr "" - -#: src/peerinfo/gnunet-service-peerinfo.c:1332 -msgid "Skipping import of included HELLOs\n" -msgstr "" - -#: src/peerinfo/peerinfo_api.c:217 -#, fuzzy -msgid "Failed to receive response from `PEERINFO' service." -msgstr "Fehler beim Empfangen der Antwort von gnunetd auf die `%s' Nachricht\n" - #: src/peerstore/gnunet-peerstore.c:92 msgid "peerstore" msgstr "" @@ -6181,6 +6181,18 @@ msgstr "" msgid "Could not open revocation database file!" msgstr "Knoten `%s' konnte nicht in der Routing Tabelle gefunden werden!\n" +#: src/rps/gnunet-rps.c:270 +msgid "Seed a PeerID" +msgstr "" + +#: src/rps/gnunet-rps.c:275 +msgid "Get updates of view (0 for infinite updates)" +msgstr "" + +#: src/rps/gnunet-rps.c:279 +msgid "Get peers from biased stream" +msgstr "" + #: src/rps/gnunet-rps-profiler.c:3200 msgid "duration of the profiling" msgstr "" @@ -6198,18 +6210,6 @@ msgstr "Anzahl an Durchläufen" msgid "Measure quality and performance of the RPS service." msgstr "" -#: src/rps/gnunet-rps.c:270 -msgid "Seed a PeerID" -msgstr "" - -#: src/rps/gnunet-rps.c:275 -msgid "Get updates of view (0 for infinite updates)" -msgstr "" - -#: src/rps/gnunet-rps.c:279 -msgid "Get peers from biased stream" -msgstr "" - #: src/scalarproduct/gnunet-scalarproduct.c:229 #, fuzzy msgid "You must specify at least one message ID to check!\n" @@ -6265,10 +6265,10 @@ msgstr "" msgid "Calculate the Vectorproduct with a GNUnet peer." msgstr "" -#: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1127 -#: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1073 #: src/scalarproduct/gnunet-service-scalarproduct_alice.c:1363 #: src/scalarproduct/gnunet-service-scalarproduct_bob.c:1366 +#: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1127 +#: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1073 #, fuzzy msgid "Connect to CADET failed\n" msgstr " Verbindung fehlgeschlagen\n" @@ -6612,17 +6612,6 @@ msgstr "" msgid "%.s Unknown result code." msgstr "" -#: src/testbed/gnunet-testbed-profiler.c:290 -msgid "tolerate COUNT number of continious timeout failures" -msgstr "" - -#: src/testbed/gnunet-testbed-profiler.c:295 -msgid "" -"run profiler in non-interactive mode where upon testbed setup the profiler " -"does not wait for a keystroke but continues to run until a termination " -"signal is received" -msgstr "" - #: src/testbed/gnunet_testbed_mpi_spawn.c:119 #, fuzzy msgid "Waiting for child to exit.\n" @@ -6635,6 +6624,17 @@ msgstr "" msgid "Spawning process `%s'\n" msgstr "Ungültige Antwort auf `%s'.\n" +#: src/testbed/gnunet-testbed-profiler.c:290 +msgid "tolerate COUNT number of continious timeout failures" +msgstr "" + +#: src/testbed/gnunet-testbed-profiler.c:295 +msgid "" +"run profiler in non-interactive mode where upon testbed setup the profiler " +"does not wait for a keystroke but continues to run until a termination " +"signal is received" +msgstr "" + #: src/testbed/testbed_api.c:399 #, fuzzy, c-format msgid "Adding host %u failed with error: %s\n" @@ -6963,6 +6963,10 @@ msgstr "Pfad zu »%s« kann nicht erstellt werden\n" msgid "GNUnet UNIX domain socket communicator" msgstr "" +#: src/transport/gnunet-service-transport_ats.c:137 +msgid "# Addresses given to ATS" +msgstr "" + #: src/transport/gnunet-service-transport.c:445 msgid "# messages dropped due to slow client" msgstr "" @@ -7003,10 +7007,6 @@ msgstr "" msgid "Adding blacklisting entry for peer `%s':`%s'\n" msgstr "" -#: src/transport/gnunet-service-transport_ats.c:137 -msgid "# Addresses given to ATS" -msgstr "" - #: src/transport/gnunet-service-transport_hello.c:195 msgid "# refreshed my HELLO" msgstr "" @@ -7332,43 +7332,6 @@ msgstr "" msgid "# HELLOs given to peerinfo" msgstr "" -#: src/transport/gnunet-transport-profiler.c:220 -#, c-format -msgid "%llu B in %llu ms == %.2f KB/s!\n" -msgstr "" - -#: src/transport/gnunet-transport-profiler.c:577 -msgid "send data to peer" -msgstr "" - -#: src/transport/gnunet-transport-profiler.c:581 -#, fuzzy -msgid "receive data from peer" -msgstr "# Bytes des Typs %d empfangen" - -#: src/transport/gnunet-transport-profiler.c:586 -msgid "iterations" -msgstr "" - -#: src/transport/gnunet-transport-profiler.c:591 -#, fuzzy -msgid "number of messages to send" -msgstr "Anzahl an Durchläufen" - -#: src/transport/gnunet-transport-profiler.c:596 -msgid "message size to use" -msgstr "" - -#: src/transport/gnunet-transport-profiler.c:601 -#: src/transport/gnunet-transport.c:1404 -msgid "peer identity" -msgstr "" - -#: src/transport/gnunet-transport-profiler.c:614 -#: src/transport/gnunet-transport.c:1426 -msgid "Direct access to transport service." -msgstr "Direkter Zugriff auf den Transportdienst" - #: src/transport/gnunet-transport.c:406 #, c-format msgid "Transmitted %llu bytes/s (%llu bytes in %s)\n" @@ -7501,6 +7464,11 @@ msgstr "" msgid "do not resolve hostnames" msgstr "Keine Rechnernamen auflösen" +#: src/transport/gnunet-transport.c:1404 +#: src/transport/gnunet-transport-profiler.c:601 +msgid "peer identity" +msgstr "" + #: src/transport/gnunet-transport.c:1408 msgid "monitor plugin sessions" msgstr "" @@ -7509,6 +7477,38 @@ msgstr "" msgid "send data for benchmarking to the other peer (until CTRL-C)" msgstr "" +#: src/transport/gnunet-transport.c:1426 +#: src/transport/gnunet-transport-profiler.c:614 +msgid "Direct access to transport service." +msgstr "Direkter Zugriff auf den Transportdienst" + +#: src/transport/gnunet-transport-profiler.c:220 +#, c-format +msgid "%llu B in %llu ms == %.2f KB/s!\n" +msgstr "" + +#: src/transport/gnunet-transport-profiler.c:577 +msgid "send data to peer" +msgstr "" + +#: src/transport/gnunet-transport-profiler.c:581 +#, fuzzy +msgid "receive data from peer" +msgstr "# Bytes des Typs %d empfangen" + +#: src/transport/gnunet-transport-profiler.c:586 +msgid "iterations" +msgstr "" + +#: src/transport/gnunet-transport-profiler.c:591 +#, fuzzy +msgid "number of messages to send" +msgstr "Anzahl an Durchläufen" + +#: src/transport/gnunet-transport-profiler.c:596 +msgid "message size to use" +msgstr "" + #: src/transport/plugin_transport_http_client.c:1489 #: src/transport/plugin_transport_http_server.c:2331 #: src/transport/plugin_transport_http_server.c:3562 @@ -7781,6 +7781,21 @@ msgstr "" msgid "TCP transport advertises itself as being on port %llu\n" msgstr "" +#: src/transport/plugin_transport_udp_broadcasting.c:169 +#, fuzzy +msgid "# Multicast HELLO beacons received via UDP" +msgstr "# Bytes empfangen über TCP" + +#: src/transport/plugin_transport_udp_broadcasting.c:553 +msgid "" +"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n" +msgstr "" + +#: src/transport/plugin_transport_udp_broadcasting.c:571 +#, fuzzy, c-format +msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n" +msgstr "Der Transportdienst auf Port %d konnte nicht gestartet werden.\n" + #: src/transport/plugin_transport_udp.c:3169 #, c-format msgid "" @@ -7828,21 +7843,6 @@ msgstr "»%s« ist keine gültige IP-Adresse.\n" msgid "Failed to create UDP network sockets\n" msgstr "UDP-Sockets können nicht geöffnet werden\n" -#: src/transport/plugin_transport_udp_broadcasting.c:169 -#, fuzzy -msgid "# Multicast HELLO beacons received via UDP" -msgstr "# Bytes empfangen über TCP" - -#: src/transport/plugin_transport_udp_broadcasting.c:553 -msgid "" -"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n" -msgstr "" - -#: src/transport/plugin_transport_udp_broadcasting.c:571 -#, fuzzy, c-format -msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n" -msgstr "Der Transportdienst auf Port %d konnte nicht gestartet werden.\n" - #: src/transport/plugin_transport_unix.c:1396 #, fuzzy, c-format msgid "Cannot bind to `%s'\n" @@ -7929,17 +7929,17 @@ msgstr "Zugriff verweigert auf »%s«\n" msgid "Accepting connection from `%s': %p\n" msgstr "" -#: src/transport/tcp_server_legacy.c:478 src/util/service.c:1400 +#: src/transport/tcp_server_legacy.c:478 src/util/service.c:1397 #, fuzzy, c-format msgid "`%s' failed for port %d (%s).\n" msgstr "`%s' fehlgeschlagen für Laufwerk %s: %u\n" -#: src/transport/tcp_server_legacy.c:488 src/util/service.c:1412 +#: src/transport/tcp_server_legacy.c:488 src/util/service.c:1409 #, fuzzy, c-format msgid "`%s' failed for port %d (%s): address already in use\n" msgstr "`%s' schlug fehl für Port %d: %s. Läuft gnunetd bereits?\n" -#: src/transport/tcp_server_legacy.c:494 src/util/service.c:1419 +#: src/transport/tcp_server_legacy.c:494 src/util/service.c:1416 #, fuzzy, c-format msgid "`%s' failed for `%s': address already in use\n" msgstr "%s schlug fehl, Nachrichten Typ %d ist bereits in Verwendung.\n" @@ -7951,7 +7951,7 @@ msgid "" "`GNUNET_SERVER_receive_done' after %s\n" msgstr "" -#: src/transport/tcp_service_legacy.c:345 src/util/service.c:837 +#: src/transport/tcp_service_legacy.c:345 src/util/service.c:834 #, c-format msgid "Unknown address family %d\n" msgstr "" @@ -7961,23 +7961,23 @@ msgstr "" msgid "Access from `%s' denied to service `%s'\n" msgstr "" -#: src/transport/tcp_service_legacy.c:410 src/util/service.c:950 +#: src/transport/tcp_service_legacy.c:410 src/util/service.c:947 #, c-format msgid "Could not parse IPv4 network specification `%s' for `%s:%s'\n" msgstr "" -#: src/transport/tcp_service_legacy.c:451 src/util/service.c:991 +#: src/transport/tcp_service_legacy.c:451 src/util/service.c:988 #, c-format msgid "Could not parse IPv6 network specification `%s' for `%s:%s'\n" msgstr "" #: src/transport/tcp_service_legacy.c:890 -#: src/transport/tcp_service_legacy.c:910 src/util/service.c:1480 +#: src/transport/tcp_service_legacy.c:910 src/util/service.c:1477 #, c-format msgid "Specified value for `%s' of service `%s' is invalid\n" msgstr "" -#: src/transport/tcp_service_legacy.c:935 src/util/service.c:1504 +#: src/transport/tcp_service_legacy.c:935 src/util/service.c:1501 #, c-format msgid "Could not access pre-bound socket %u, will try to bind myself\n" msgstr "" @@ -7992,45 +7992,45 @@ msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n" msgid "Service `%s' runs at %s\n" msgstr "Dienst »%s« läuft auf %s\n" -#: src/transport/tcp_service_legacy.c:1193 src/util/service.c:1750 +#: src/transport/tcp_service_legacy.c:1193 src/util/service.c:1747 msgid "Service process failed to initialize\n" msgstr "" -#: src/transport/tcp_service_legacy.c:1198 src/util/service.c:1755 +#: src/transport/tcp_service_legacy.c:1198 src/util/service.c:1752 msgid "Service process could not initialize server function\n" msgstr "" -#: src/transport/tcp_service_legacy.c:1203 src/util/service.c:1760 +#: src/transport/tcp_service_legacy.c:1203 src/util/service.c:1757 msgid "Service process failed to report status\n" msgstr "" #: src/transport/tcp_service_legacy.c:1253 src/util/disk.c:1177 -#: src/util/service.c:1641 +#: src/util/service.c:1638 #, fuzzy, c-format msgid "Cannot obtain information about user `%s': %s\n" msgstr "Fehler beim Speichern der Konfigurationsdatei: `%s': %s.\n" -#: src/transport/tcp_service_legacy.c:1255 src/util/service.c:1643 +#: src/transport/tcp_service_legacy.c:1255 src/util/service.c:1640 msgid "No such user" msgstr "" -#: src/transport/tcp_service_legacy.c:1269 src/util/service.c:1657 +#: src/transport/tcp_service_legacy.c:1269 src/util/service.c:1654 #, c-format msgid "Cannot change user/group to `%s': %s\n" msgstr "Benutzer/Gruppe kann nicht zu »%s« geändert werden: %s\n" -#: src/transport/tcp_service_legacy.c:1348 src/util/service.c:1999 +#: src/transport/tcp_service_legacy.c:1348 src/util/service.c:1996 msgid "do daemonize (detach from terminal)" msgstr "" #: src/transport/tcp_service_legacy.c:1397 -#: src/transport/transport-testing2.c:906 src/util/service.c:2073 -#: src/util/service.c:2085 +#: src/transport/transport-testing2.c:906 src/util/service.c:2070 +#: src/util/service.c:2082 #, fuzzy, c-format msgid "Malformed configuration file `%s', exit ...\n" msgstr "Konfigurationsdatei `%s' wurde erzeugt.\n" -#: src/transport/tcp_service_legacy.c:1407 src/util/service.c:2095 +#: src/transport/tcp_service_legacy.c:1407 src/util/service.c:2092 #, fuzzy msgid "Malformed configuration, exit ...\n" msgstr "GNUnet Konfiguration" @@ -8073,69 +8073,69 @@ msgstr "" msgid "Metadata `%s' failed to deserialize" msgstr "" -#: src/util/client.c:739 src/util/client.c:931 +#: src/util/client.c:747 src/util/client.c:937 msgid "not a valid filename" msgstr "" -#: src/util/client.c:1097 +#: src/util/client.c:1103 #, c-format msgid "Need a non-empty hostname for service `%s'.\n" msgstr "" -#: src/util/common_logging.c:259 src/util/common_logging.c:1116 +#: src/util/common_logging.c:259 src/util/common_logging.c:1112 msgid "DEBUG" msgstr "DEBUG" -#: src/util/common_logging.c:261 src/util/common_logging.c:1114 +#: src/util/common_logging.c:261 src/util/common_logging.c:1110 msgid "INFO" msgstr "INFO" -#: src/util/common_logging.c:263 src/util/common_logging.c:1112 +#: src/util/common_logging.c:263 src/util/common_logging.c:1108 msgid "MESSAGE" msgstr "" -#: src/util/common_logging.c:265 src/util/common_logging.c:1110 +#: src/util/common_logging.c:265 src/util/common_logging.c:1106 msgid "WARNING" msgstr "WARNUNG" -#: src/util/common_logging.c:267 src/util/common_logging.c:1108 +#: src/util/common_logging.c:267 src/util/common_logging.c:1104 msgid "ERROR" msgstr "FEHLER" -#: src/util/common_logging.c:269 src/util/common_logging.c:1118 +#: src/util/common_logging.c:269 src/util/common_logging.c:1114 msgid "NONE" msgstr "" -#: src/util/common_logging.c:630 src/util/common_logging.c:669 +#: src/util/common_logging.c:626 src/util/common_logging.c:665 #, c-format msgid "ERROR: Unable to parse log definition: Syntax error at `%s'.\n" msgstr "" -#: src/util/common_logging.c:906 +#: src/util/common_logging.c:902 #, c-format msgid "Message `%.*s' repeated %u times in the last %s\n" msgstr "" -#: src/util/common_logging.c:1119 +#: src/util/common_logging.c:1115 msgid "INVALID" msgstr "" -#: src/util/common_logging.c:1400 +#: src/util/common_logging.c:1396 msgid "unknown address" msgstr "Unbekannte Adresse" -#: src/util/common_logging.c:1445 +#: src/util/common_logging.c:1441 msgid "invalid address" msgstr "Ungültige Adresse" -#: src/util/common_logging.c:1464 +#: src/util/common_logging.c:1460 #, fuzzy, c-format msgid "Configuration fails to specify option `%s' in section `%s'!\n" msgstr "" "Die Konfigurationsdatei muss in der Sektion `%s' unter `%s' ein Verzeichnis " "angeben, in dem FS Daten gespeichert werden.\n" -#: src/util/common_logging.c:1487 +#: src/util/common_logging.c:1483 #, fuzzy, c-format msgid "" "Configuration specifies invalid value for option `%s' in section `%s': %s\n" @@ -8143,38 +8143,38 @@ msgstr "" "Die Konfigurationsdatei muss in der Sektion `%s' unter `%s' ein Verzeichnis " "angeben, in dem FS Daten gespeichert werden.\n" -#: src/util/configuration.c:325 +#: src/util/configuration.c:402 #, fuzzy, c-format msgid "Syntax error while deserializing in line %u\n" msgstr "Syntaxfehler in Konfigurationsdatei `%s' in Zeile %d.\n" -#: src/util/configuration.c:383 +#: src/util/configuration.c:460 #, fuzzy, c-format msgid "Error while reading file `%s'\n" msgstr "Konfigurationsdatei `%s' konnte nicht geöffnet werden.\n" -#: src/util/configuration.c:986 +#: src/util/configuration.c:1063 msgid "Not a valid relative time specification" msgstr "" -#: src/util/configuration.c:1077 +#: src/util/configuration.c:1154 #, c-format msgid "" "Configuration value '%s' for '%s' in section '%s' is not in set of legal " "choices\n" msgstr "" -#: src/util/configuration.c:1192 +#: src/util/configuration.c:1269 #, c-format msgid "Recursive expansion suspected, aborting $-expansion for term `%s'\n" msgstr "" -#: src/util/configuration.c:1224 +#: src/util/configuration.c:1301 #, c-format msgid "Missing closing `%s' in option `%s'\n" msgstr "" -#: src/util/configuration.c:1290 +#: src/util/configuration.c:1367 #, c-format msgid "" "Failed to expand `%s' in `%s' as it is neither found in [PATHS] nor defined " @@ -8239,7 +8239,7 @@ msgstr "" msgid "RSA signing failed at %s:%d: %s\n" msgstr "`%s' schlug fehl bei %s:%d mit dem Fehler: `%s'.\n" -#: src/util/crypto_rsa.c:1313 +#: src/util/crypto_rsa.c:1314 #, fuzzy, c-format msgid "RSA signature verification failed at %s:%d: %s\n" msgstr "RSA Signaturüberprüfung fehlgeschlagen bei %s:%d: %s\n" @@ -8344,11 +8344,11 @@ msgstr "Die Option »%s« ergibt keinen Sinn ohne die Option »%s«.\n" msgid "Missing mandatory option `%s'.\n" msgstr "Unbekannte Operation `%s'\n" -#: src/util/getopt_helpers.c:68 +#: src/util/getopt_helpers.c:69 msgid "print the version number" msgstr "" -#: src/util/getopt_helpers.c:114 +#: src/util/getopt_helpers.c:116 #, c-format msgid "" "Arguments mandatory for long options are also mandatory for short options.\n" @@ -8356,55 +8356,63 @@ msgstr "" "Argumente, die für lange Optionen zwingend sind, sind auch für kurze " "Optionen zwingend.\n" -#: src/util/getopt_helpers.c:205 +#: src/util/getopt_helpers.c:208 msgid "print this help" msgstr "" -#: src/util/getopt_helpers.c:281 +#: src/util/getopt_helpers.c:288 msgid "be verbose" msgstr "" -#: src/util/getopt_helpers.c:417 +#: src/util/getopt_helpers.c:429 msgid "configure logging to use LOGLEVEL" msgstr "" -#: src/util/getopt_helpers.c:495 +#: src/util/getopt_helpers.c:510 msgid "configure logging to write logs to FILENAME" msgstr "" -#: src/util/getopt_helpers.c:516 +#: src/util/getopt_helpers.c:532 #, fuzzy msgid "use configuration file FILENAME" msgstr "" "Einen Wert aus der Konfigurationsdatei auf der Standardausgabe ausgeben" -#: src/util/getopt_helpers.c:551 src/util/getopt_helpers.c:747 -#: src/util/getopt_helpers.c:810 +#: src/util/getopt_helpers.c:568 src/util/getopt_helpers.c:634 +#: src/util/getopt_helpers.c:835 src/util/getopt_helpers.c:900 #, c-format msgid "You must pass a number to the `%s' option.\n" msgstr "Sie müssen für die Option »%s« zusätzlich eine Zahl angeben.\n" -#: src/util/getopt_helpers.c:612 +#: src/util/getopt_helpers.c:659 +msgid "[+/-]MICROSECONDS" +msgstr "" + +#: src/util/getopt_helpers.c:661 +msgid "modify system time by given offset (for debugging/testing only)" +msgstr "" + +#: src/util/getopt_helpers.c:696 #, c-format msgid "You must pass relative time to the `%s' option.\n" msgstr "Sie müssen eine relative Zeit zu der Option »%s« übergeben.\n" -#: src/util/getopt_helpers.c:675 +#: src/util/getopt_helpers.c:761 #, fuzzy, c-format msgid "You must pass absolute time to the `%s' option.\n" msgstr "Sie müssen eine relative Zeit zu der Option »%s« übergeben.\n" -#: src/util/getopt_helpers.c:740 +#: src/util/getopt_helpers.c:828 #, c-format -msgid "Your input for the '%s' option has to be a non negative number \n" +msgid "Your input for the '%s' option has to be a non negative number\n" msgstr "" -#: src/util/getopt_helpers.c:817 +#: src/util/getopt_helpers.c:907 #, fuzzy, c-format msgid "You must pass a number below %u to the `%s' option.\n" msgstr "Sie müssen für die Option »%s« zusätzlich eine Zahl angeben.\n" -#: src/util/getopt_helpers.c:902 +#: src/util/getopt_helpers.c:994 #, c-format msgid "Argument `%s' malformed. Expected base32 (Crockford) encoded value.\n" msgstr "" @@ -8746,14 +8754,14 @@ msgstr "Standarddienst »%s« ist nicht korrekt eingerichtet!\n" msgid "Could not resolve our FQDN: %s\n" msgstr "`%s' konnte nicht aufgelöst werden: %s\n" -#: src/util/service.c:657 +#: src/util/service.c:654 #, c-format msgid "" "Processing code for message of type %u did not call " "`GNUNET_SERVICE_client_continue' after %s\n" msgstr "" -#: src/util/service.c:1572 +#: src/util/service.c:1569 msgid "" "Could not bind to any of the ports I was supposed to, refusing to run!\n" msgstr "" @@ -9067,8 +9075,8 @@ msgstr "Dienst wird über UDP angeboten" msgid "Setup tunnels via VPN." msgstr "Tunnel über VPN einrichten." -#: src/zonemaster/gnunet-service-zonemaster-monitor.c:420 #: src/zonemaster/gnunet-service-zonemaster.c:849 +#: src/zonemaster/gnunet-service-zonemaster-monitor.c:420 #, fuzzy msgid "Failed to connect to the namestore!\n" msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n" diff --git a/po/it.po b/po/it.po index 58c8b81ac..986bc8b64 100644 --- a/po/it.po +++ b/po/it.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gnunet 0.10.1\n" "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n" -"POT-Creation-Date: 2020-01-13 14:01+0000\n" +"POT-Creation-Date: 2020-02-13 20:41+0100\n" "PO-Revision-Date: 2019-10-16 11:00+0200\n" "Last-Translator: Sebastiano Pistore \n" "Language-Team: Italian \n" @@ -31,8 +31,8 @@ msgid "Issuer public key `%s' is not well-formed\n" msgstr "" #: src/abd/gnunet-abd.c:558 src/abd/gnunet-service-abd.c:1747 -#: src/namestore/gnunet-namestore-fcfsd.c:1153 #: src/namestore/gnunet-namestore.c:1001 +#: src/namestore/gnunet-namestore-fcfsd.c:1153 #, c-format msgid "Failed to connect to namestore\n" msgstr "" @@ -140,7 +140,7 @@ msgstr "" msgid "GNUnet abd resolver tool" msgstr "" -#: src/abd/gnunet-service-abd.c:1742 src/gns/gnunet-gns.c:288 +#: src/abd/gnunet-service-abd.c:1742 src/gns/gnunet-gns.c:292 #, c-format msgid "Failed to connect to GNS\n" msgstr "" @@ -376,28 +376,28 @@ msgstr "" #: src/transport/plugin_transport_tcp.c:1129 #: src/transport/plugin_transport_tcp.c:3706 #: src/transport/tcp_service_legacy.c:594 -#: src/transport/tcp_service_legacy.c:600 src/util/service.c:1094 -#: src/util/service.c:1100 +#: src/transport/tcp_service_legacy.c:600 src/util/service.c:1091 +#: src/util/service.c:1097 #, c-format msgid "Require valid port number for service `%s' in configuration!\n" msgstr "" #: src/arm/gnunet-service-arm.c:452 src/transport/plugin_transport_tcp.c:1163 -#: src/transport/tcp_service_legacy.c:634 src/util/client.c:519 -#: src/util/service.c:1133 +#: src/transport/tcp_service_legacy.c:634 src/util/client.c:527 +#: src/util/service.c:1130 #, c-format msgid "UNIXPATH `%s' too long, maximum length is %llu\n" msgstr "" #: src/arm/gnunet-service-arm.c:456 src/transport/plugin_transport_tcp.c:1167 -#: src/transport/tcp_service_legacy.c:638 src/util/client.c:524 -#: src/util/service.c:1137 +#: src/transport/tcp_service_legacy.c:638 src/util/client.c:532 +#: src/util/service.c:1134 #, c-format msgid "Using `%s' instead\n" msgstr "" #: src/arm/gnunet-service-arm.c:484 src/transport/plugin_transport_tcp.c:1195 -#: src/transport/tcp_service_legacy.c:666 src/util/service.c:1157 +#: src/transport/tcp_service_legacy.c:666 src/util/service.c:1154 #, c-format msgid "" "Disabling UNIX domain socket support for service `%s', failed to create UNIX " @@ -405,7 +405,7 @@ msgid "" msgstr "" #: src/arm/gnunet-service-arm.c:505 src/transport/plugin_transport_tcp.c:1213 -#: src/transport/tcp_service_legacy.c:684 src/util/service.c:1175 +#: src/transport/tcp_service_legacy.c:684 src/util/service.c:1172 #, c-format msgid "Have neither PORT nor UNIXPATH for service `%s', but one is required\n" msgstr "" @@ -413,7 +413,7 @@ msgstr "" #: src/arm/gnunet-service-arm.c:536 #: src/transport/plugin_transport_http_server.c:2718 #: src/transport/plugin_transport_tcp.c:1244 -#: src/transport/tcp_service_legacy.c:715 src/util/service.c:1206 +#: src/transport/tcp_service_legacy.c:715 src/util/service.c:1203 #, c-format msgid "Failed to resolve `%s': %s\n" msgstr "" @@ -421,7 +421,7 @@ msgstr "" #: src/arm/gnunet-service-arm.c:555 #: src/transport/plugin_transport_http_server.c:2736 #: src/transport/plugin_transport_tcp.c:1263 -#: src/transport/tcp_service_legacy.c:734 src/util/service.c:1225 +#: src/transport/tcp_service_legacy.c:734 src/util/service.c:1222 #, c-format msgid "Failed to find %saddress for `%s'.\n" msgstr "" @@ -492,13 +492,80 @@ msgstr "" msgid "Initiating shutdown as requested by client.\n" msgstr "" -#: src/ats-tests/ats-testing-log.c:896 -msgid "Stop logging\n" +#: src/ats/gnunet-ats-solver-eval.c:2992 src/ats/gnunet-ats-solver-eval.c:3044 +#, c-format +msgid "" +"Could not load quota for network `%s': `%s', assigning default bandwidth " +"%llu\n" msgstr "" -#: src/ats-tests/ats-testing-log.c:952 +#: src/ats/gnunet-ats-solver-eval.c:3011 #, c-format -msgid "Start logging `%s'\n" +msgid "" +"No outbound quota configured for network `%s', assigning default bandwidth " +"%llu\n" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3063 +#, c-format +msgid "" +"No outbound quota configure for network `%s', assigning default bandwidth " +"%llu\n" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3552 src/ats-tests/gnunet-solver-eval.c:997 +msgid "solver to use" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3557 +#: src/ats-tests/gnunet-solver-eval.c:1003 +#: src/ats-tests/gnunet-solver-eval.c:1008 +msgid "experiment to use" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3564 +msgid "print logging" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3569 +msgid "save logging to disk" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3574 +msgid "disable normalization" +msgstr "" + +#: src/ats/gnunet-service-ats_plugins.c:326 +#, c-format +msgid "" +"Could not load %s quota for network `%s': `%s', assigning default bandwidth " +"%llu\n" +msgstr "" + +#: src/ats/gnunet-service-ats_plugins.c:336 +#, c-format +msgid "%s quota configured for network `%s' is %llu\n" +msgstr "" + +#: src/ats/gnunet-service-ats_plugins.c:382 +#, c-format +msgid "" +"No %s-quota configured for network `%s', assigning default bandwidth %llu\n" +msgstr "" + +#: src/ats/gnunet-service-ats_plugins.c:474 +#, c-format +msgid "Failed to initialize solver `%s'!\n" +msgstr "" + +#: src/ats/plugin_ats_proportional.c:1140 +#, c-format +msgid "Invalid %s configuration %f \n" +msgstr "" + +#: src/ats/plugin_ats_proportional.c:1163 +#, c-format +msgid "Invalid %s configuration %f\n" msgstr "" #: src/ats-tests/ats-testing.c:420 @@ -511,6 +578,15 @@ msgstr "" msgid "Failed to connect master peer [%u] with slave [%u]\n" msgstr "" +#: src/ats-tests/ats-testing-log.c:896 +msgid "Stop logging\n" +msgstr "" + +#: src/ats-tests/ats-testing-log.c:952 +#, c-format +msgid "Start logging `%s'\n" +msgstr "" + #: src/ats-tests/gnunet-ats-sim.c:92 #, c-format msgid "" @@ -518,16 +594,6 @@ msgid "" "= %u KiB/s\n" msgstr "" -#: src/ats-tests/gnunet-solver-eval.c:997 src/ats/gnunet-ats-solver-eval.c:3552 -msgid "solver to use" -msgstr "" - -#: src/ats-tests/gnunet-solver-eval.c:1003 -#: src/ats-tests/gnunet-solver-eval.c:1008 -#: src/ats/gnunet-ats-solver-eval.c:3557 -msgid "experiment to use" -msgstr "" - #: src/ats-tool/gnunet-ats.c:299 #, c-format msgid "%u address resolutions had a timeout\n" @@ -644,72 +710,6 @@ msgstr "" msgid "Print information about ATS state" msgstr "" -#: src/ats/gnunet-ats-solver-eval.c:2992 src/ats/gnunet-ats-solver-eval.c:3044 -#, c-format -msgid "" -"Could not load quota for network `%s': `%s', assigning default bandwidth " -"%llu\n" -msgstr "" - -#: src/ats/gnunet-ats-solver-eval.c:3011 -#, c-format -msgid "" -"No outbound quota configured for network `%s', assigning default bandwidth " -"%llu\n" -msgstr "" - -#: src/ats/gnunet-ats-solver-eval.c:3063 -#, c-format -msgid "" -"No outbound quota configure for network `%s', assigning default bandwidth " -"%llu\n" -msgstr "" - -#: src/ats/gnunet-ats-solver-eval.c:3564 -msgid "print logging" -msgstr "" - -#: src/ats/gnunet-ats-solver-eval.c:3569 -msgid "save logging to disk" -msgstr "" - -#: src/ats/gnunet-ats-solver-eval.c:3574 -msgid "disable normalization" -msgstr "" - -#: src/ats/gnunet-service-ats_plugins.c:326 -#, c-format -msgid "" -"Could not load %s quota for network `%s': `%s', assigning default bandwidth " -"%llu\n" -msgstr "" - -#: src/ats/gnunet-service-ats_plugins.c:336 -#, c-format -msgid "%s quota configured for network `%s' is %llu\n" -msgstr "" - -#: src/ats/gnunet-service-ats_plugins.c:382 -#, c-format -msgid "" -"No %s-quota configured for network `%s', assigning default bandwidth %llu\n" -msgstr "" - -#: src/ats/gnunet-service-ats_plugins.c:474 -#, c-format -msgid "Failed to initialize solver `%s'!\n" -msgstr "" - -#: src/ats/plugin_ats_proportional.c:1140 -#, c-format -msgid "Invalid %s configuration %f \n" -msgstr "" - -#: src/ats/plugin_ats_proportional.c:1163 -#, c-format -msgid "Invalid %s configuration %f\n" -msgstr "" - #: src/auction/gnunet-auction-create.c:163 msgid "description of the item to be sold" msgstr "" @@ -836,28 +836,6 @@ msgstr "" msgid "Connection to conversation service lost, trying to reconnect\n" msgstr "" -#: src/conversation/gnunet-conversation-test.c:120 -#, c-format -msgid "" -"\n" -"End of transmission. Have a GNU day.\n" -msgstr "" - -#: src/conversation/gnunet-conversation-test.c:146 -#, c-format -msgid "" -"\n" -"We are now playing your recording back. If you can hear it, your audio " -"settings are working..." -msgstr "" - -#: src/conversation/gnunet-conversation-test.c:218 -#, c-format -msgid "" -"We will now be recording you for %s. After that time, the recording will be " -"played back to you..." -msgstr "" - #: src/conversation/gnunet-conversation.c:264 #, c-format msgid "Incoming call from `%s'. Please /accept %u or /cancel %u the call.\n" @@ -1114,8 +1092,30 @@ msgstr "" msgid "Enables having a conversation with other GNUnet users." msgstr "" -#: src/conversation/gnunet-helper-audio-playback-gst.c:363 +#: src/conversation/gnunet-conversation-test.c:120 +#, c-format +msgid "" +"\n" +"End of transmission. Have a GNU day.\n" +msgstr "" + +#: src/conversation/gnunet-conversation-test.c:146 +#, c-format +msgid "" +"\n" +"We are now playing your recording back. If you can hear it, your audio " +"settings are working..." +msgstr "" + +#: src/conversation/gnunet-conversation-test.c:218 +#, c-format +msgid "" +"We will now be recording you for %s. After that time, the recording will be " +"played back to you..." +msgstr "" + #: src/conversation/gnunet_gst.c:664 +#: src/conversation/gnunet-helper-audio-playback-gst.c:363 #, c-format msgid "Read error from STDIN: %d %s\n" msgstr "" @@ -1887,16 +1887,16 @@ msgstr "" msgid "Mysql database running\n" msgstr "" -#: src/datastore/plugin_datastore_postgres.c:277 -#: src/datastore/plugin_datastore_postgres.c:890 +#: src/datastore/plugin_datastore_postgres.c:278 +#: src/datastore/plugin_datastore_postgres.c:891 msgid "Postgress exec failure" msgstr "" -#: src/datastore/plugin_datastore_postgres.c:851 +#: src/datastore/plugin_datastore_postgres.c:852 msgid "Failed to drop table from database.\n" msgstr "" -#: src/datastore/plugin_datastore_postgres.c:949 +#: src/datastore/plugin_datastore_postgres.c:950 msgid "Postgres database running\n" msgstr "" @@ -2003,6 +2003,52 @@ msgstr "" msgid "Prints all packets that go through the DHT." msgstr "" +#: src/dht/gnunet_dht_profiler.c:922 src/testbed/gnunet-testbed-profiler.c:255 +#, c-format +msgid "Exiting as the number of peers is %u\n" +msgstr "" + +#: src/dht/gnunet_dht_profiler.c:955 src/rps/gnunet-rps-profiler.c:3194 +msgid "number of peers to start" +msgstr "" + +#: src/dht/gnunet_dht_profiler.c:961 +msgid "number of PUTs to perform per peer" +msgstr "" + +#: src/dht/gnunet_dht_profiler.c:967 src/nse/gnunet-nse-profiler.c:872 +#: src/testbed/gnunet-testbed-profiler.c:305 +msgid "name of the file with the login information for the testbed" +msgstr "" + +#: src/dht/gnunet_dht_profiler.c:973 +msgid "delay between rounds for collecting statistics (default: 30 sec)" +msgstr "" + +#: src/dht/gnunet_dht_profiler.c:979 +msgid "delay to start doing PUTs (default: 1 sec)" +msgstr "" + +#: src/dht/gnunet_dht_profiler.c:985 +msgid "delay to start doing GETs (default: 5 min)" +msgstr "" + +#: src/dht/gnunet_dht_profiler.c:990 +msgid "replication degree for DHT PUTs" +msgstr "" + +#: src/dht/gnunet_dht_profiler.c:996 +msgid "chance that a peer is selected at random for PUTs" +msgstr "" + +#: src/dht/gnunet_dht_profiler.c:1002 +msgid "timeout for DHT PUT and GET requests (default: 1 min)" +msgstr "" + +#: src/dht/gnunet_dht_profiler.c:1023 +msgid "Measure quality and performance of the DHT service." +msgstr "" + #: src/dht/gnunet-dht-put.c:133 msgid "Must provide KEY and DATA for DHT put!\n" msgstr "" @@ -2248,55 +2294,9 @@ msgstr "" msgid "# DHT requests combined" msgstr "" -#: src/dht/gnunet_dht_profiler.c:922 src/testbed/gnunet-testbed-profiler.c:255 +#: src/dht/plugin_block_dht.c:189 #, c-format -msgid "Exiting as the number of peers is %u\n" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:955 src/rps/gnunet-rps-profiler.c:3194 -msgid "number of peers to start" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:961 -msgid "number of PUTs to perform per peer" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:967 src/nse/gnunet-nse-profiler.c:872 -#: src/testbed/gnunet-testbed-profiler.c:305 -msgid "name of the file with the login information for the testbed" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:973 -msgid "delay between rounds for collecting statistics (default: 30 sec)" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:979 -msgid "delay to start doing PUTs (default: 1 sec)" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:985 -msgid "delay to start doing GETs (default: 5 min)" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:990 -msgid "replication degree for DHT PUTs" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:996 -msgid "chance that a peer is selected at random for PUTs" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:1002 -msgid "timeout for DHT PUT and GET requests (default: 1 min)" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:1023 -msgid "Measure quality and performance of the DHT service." -msgstr "" - -#: src/dht/plugin_block_dht.c:189 -#, c-format -msgid "Block not of type %u\n" +msgid "Block not of type %u\n" msgstr "" #: src/dht/plugin_block_dht.c:198 @@ -3203,6 +3203,14 @@ msgid "" "chk/...)" msgstr "" +#: src/fs/gnunet-fs.c:128 +msgid "print a list of all indexed files" +msgstr "" + +#: src/fs/gnunet-fs.c:141 +msgid "Special file-sharing operations" +msgstr "" + #: src/fs/gnunet-fs-profiler.c:211 msgid "run the experiment with COUNT peers" msgstr "" @@ -3219,14 +3227,6 @@ msgstr "" msgid "run a testbed to measure file-sharing performance" msgstr "" -#: src/fs/gnunet-fs.c:128 -msgid "print a list of all indexed files" -msgstr "" - -#: src/fs/gnunet-fs.c:141 -msgid "Special file-sharing operations" -msgstr "" - #: src/fs/gnunet-publish.c:219 src/fs/gnunet-publish.c:234 #, c-format msgid "Publishing `%s' at %llu/%llu (%s remaining)\n" @@ -3881,6 +3881,49 @@ msgstr "" msgid "look for GNS2DNS records instead of ANY" msgstr "" +#: src/gns/gnunet-gns.c:257 +#, fuzzy, c-format +msgid "`%s' is not a valid DNS domain name\n" +msgstr "`%s' non è un indirizzo IP valido.\n" + +#: src/gns/gnunet-gns.c:267 src/util/dnsparser.c:254 +#, c-format +msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n" +msgstr "" + +#: src/gns/gnunet-gns.c:281 +msgid "Cannot resolve using GNS: GNUnet peer not running\n" +msgstr "" + +#: src/gns/gnunet-gns.c:305 +#, c-format +msgid "Invalid typename specified, assuming `ANY'\n" +msgstr "" + +#: src/gns/gnunet-gns.c:340 +msgid "Lookup a record for the given name" +msgstr "" + +#: src/gns/gnunet-gns.c:346 +msgid "Specify the type of the record to lookup" +msgstr "" + +#: src/gns/gnunet-gns.c:352 +msgid "Specify a timeout for the lookup" +msgstr "" + +#: src/gns/gnunet-gns.c:356 +msgid "No unneeded output" +msgstr "" + +#: src/gns/gnunet-gns.c:361 +msgid "DNS Compatibility: Name is passed in IDNA instead of UTF-8" +msgstr "" + +#: src/gns/gnunet-gns.c:375 +msgid "GNUnet GNS resolver tool" +msgstr "" + #: src/gns/gnunet-gns-import.c:486 msgid "This program will import some GNS authorities into your GNS namestore." msgstr "" @@ -4000,49 +4043,6 @@ msgstr "" msgid "GNUnet GNS proxy" msgstr "" -#: src/gns/gnunet-gns.c:253 -#, fuzzy, c-format -msgid "`%s' is not a valid DNS domain name\n" -msgstr "`%s' non è un indirizzo IP valido.\n" - -#: src/gns/gnunet-gns.c:263 src/util/dnsparser.c:254 -#, c-format -msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n" -msgstr "" - -#: src/gns/gnunet-gns.c:277 -msgid "Cannot resolve using GNS: GNUnet peer not running\n" -msgstr "" - -#: src/gns/gnunet-gns.c:301 -#, c-format -msgid "Invalid typename specified, assuming `ANY'\n" -msgstr "" - -#: src/gns/gnunet-gns.c:336 -msgid "Lookup a record for the given name" -msgstr "" - -#: src/gns/gnunet-gns.c:342 -msgid "Specify the type of the record to lookup" -msgstr "" - -#: src/gns/gnunet-gns.c:348 -msgid "Specify a timeout for the lookup" -msgstr "" - -#: src/gns/gnunet-gns.c:352 -msgid "No unneeded output" -msgstr "" - -#: src/gns/gnunet-gns.c:357 -msgid "DNS Compatibility: Name is passed in IDNA instead of UTF-8" -msgstr "" - -#: src/gns/gnunet-gns.c:371 -msgid "GNUnet GNS resolver tool" -msgstr "" - #: src/gns/gnunet-service-gns.c:505 #, fuzzy msgid "Properly base32-encoded public key required" @@ -4053,8 +4053,8 @@ msgid "Failed to connect to the namecache!\n" msgstr "" #: src/gns/gnunet-service-gns.c:560 -#: src/zonemaster/gnunet-service-zonemaster-monitor.c:444 #: src/zonemaster/gnunet-service-zonemaster.c:887 +#: src/zonemaster/gnunet-service-zonemaster-monitor.c:444 msgid "Could not connect to DHT!\n" msgstr "" @@ -4110,21 +4110,21 @@ msgstr "" msgid "GNS lookup failed (zero records found for `%s')\n" msgstr "" -#: src/gns/gnunet-service-gns_resolver.c:2376 +#: src/gns/gnunet-service-gns_resolver.c:2372 msgid "GNS lookup recursion failed (no delegation record found)\n" msgstr "" -#: src/gns/gnunet-service-gns_resolver.c:2399 +#: src/gns/gnunet-service-gns_resolver.c:2395 #, c-format msgid "Failed to cache GNS resolution: %s\n" msgstr "" -#: src/gns/gnunet-service-gns_resolver.c:2567 +#: src/gns/gnunet-service-gns_resolver.c:2563 #, c-format msgid "GNS namecache returned empty result for `%s'\n" msgstr "" -#: src/gns/gnunet-service-gns_resolver.c:2707 +#: src/gns/gnunet-service-gns_resolver.c:2703 #, c-format msgid "Zone %s was revoked, resolution fails\n" msgstr "" @@ -4784,68 +4784,6 @@ msgstr "" msgid "Failed to setup database at `%s'\n" msgstr "Impossibile avviare il servizio ' %s'\n" -#: src/namestore/gnunet-namestore-fcfsd.c:551 -#, c-format -msgid "Unsupported form value `%s'\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:578 -#, c-format -msgid "Failed to create record for domain `%s': %s\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:599 -msgid "Error when mapping zone to name\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:631 -#, c-format -msgid "Found existing name `%s' for the given key\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:693 -#, c-format -msgid "Found %u existing records for domain `%s'\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:783 -#, c-format -msgid "Failed to create page for `%s'\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:802 -#, c-format -msgid "Failed to setup post processor for `%s'\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:839 -msgid "Domain name must not contain `.'\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:848 -msgid "Domain name must not contain `+'\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:1083 -msgid "No ego configured for `fcfsd` subsystem\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:1114 -msgid "Failed to start HTTP server\n" -msgstr "Impossibile avviare il server HTTP\n" - -#: src/namestore/gnunet-namestore-fcfsd.c:1162 -msgid "Failed to connect to identity\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:1189 -msgid "name of the zone that is to be managed by FCFSD" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:1209 -msgid "GNU Name System First Come First Serve name registration service" -msgstr "" - #: src/namestore/gnunet-namestore.c:334 #, c-format msgid "Adding record failed: %s\n" @@ -5065,7 +5003,69 @@ msgstr "" msgid "name of the ego controlling the zone" msgstr "" -#: src/namestore/gnunet-service-namestore.c:864 +#: src/namestore/gnunet-namestore-fcfsd.c:551 +#, c-format +msgid "Unsupported form value `%s'\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:578 +#, c-format +msgid "Failed to create record for domain `%s': %s\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:599 +msgid "Error when mapping zone to name\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:631 +#, c-format +msgid "Found existing name `%s' for the given key\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:693 +#, c-format +msgid "Found %u existing records for domain `%s'\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:783 +#, c-format +msgid "Failed to create page for `%s'\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:802 +#, c-format +msgid "Failed to setup post processor for `%s'\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:839 +msgid "Domain name must not contain `.'\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:848 +msgid "Domain name must not contain `+'\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:1083 +msgid "No ego configured for `fcfsd` subsystem\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:1114 +msgid "Failed to start HTTP server\n" +msgstr "Impossibile avviare il server HTTP\n" + +#: src/namestore/gnunet-namestore-fcfsd.c:1162 +msgid "Failed to connect to identity\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:1189 +msgid "name of the zone that is to be managed by FCFSD" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:1209 +msgid "GNU Name System First Come First Serve name registration service" +msgstr "" + +#: src/namestore/gnunet-service-namestore.c:866 #, c-format msgid "Failed to replicate block in namecache: %s\n" msgstr "" @@ -5371,37 +5371,91 @@ msgstr "" msgid "`upnpc' command not found\n" msgstr "" -#: src/nse/gnunet-nse-profiler.c:857 -msgid "limit to the number of connections to NSE services, 0 for none" -msgstr "" +#: src/nse/gnunet-nse.c:124 +msgid "Show network size estimates from NSE service." +msgstr "" + +#: src/nse/gnunet-nse-profiler.c:857 +msgid "limit to the number of connections to NSE services, 0 for none" +msgstr "" + +#: src/nse/gnunet-nse-profiler.c:864 +msgid "name of the file for writing connection information and statistics" +msgstr "" + +#: src/nse/gnunet-nse-profiler.c:879 +msgid "name of the file for writing the main results" +msgstr "" + +#: src/nse/gnunet-nse-profiler.c:888 +msgid "Number of peers to run in each round, separated by commas" +msgstr "" + +#: src/nse/gnunet-nse-profiler.c:900 +msgid "delay between rounds" +msgstr "" + +#: src/nse/gnunet-nse-profiler.c:912 +msgid "Measure quality and performance of the NSE service." +msgstr "" + +#: src/nse/gnunet-service-nse.c:1437 +#: src/revocation/gnunet-service-revocation.c:846 src/util/gnunet-scrypt.c:247 +msgid "Value is too large.\n" +msgstr "" + +#: src/peerinfo/gnunet-service-peerinfo.c:175 +#, c-format +msgid "Removing expired address of transport `%s'\n" +msgstr "" + +#: src/peerinfo/gnunet-service-peerinfo.c:306 +#, c-format +msgid "Failed to parse HELLO in file `%s': %s\n" +msgstr "" + +#: src/peerinfo/gnunet-service-peerinfo.c:323 +#: src/peerinfo/gnunet-service-peerinfo.c:348 +#, c-format +msgid "Failed to parse HELLO in file `%s'\n" +msgstr "" + +#: src/peerinfo/gnunet-service-peerinfo.c:426 +msgid "# peers known" +msgstr "# peer conosciuti" -#: src/nse/gnunet-nse-profiler.c:864 -msgid "name of the file for writing connection information and statistics" +#: src/peerinfo/gnunet-service-peerinfo.c:468 +#, c-format +msgid "" +"File `%s' in directory `%s' does not match naming convention. Removed.\n" msgstr "" -#: src/nse/gnunet-nse-profiler.c:879 -msgid "name of the file for writing the main results" +#: src/peerinfo/gnunet-service-peerinfo.c:624 +#, c-format +msgid "Scanning directory `%s'\n" msgstr "" -#: src/nse/gnunet-nse-profiler.c:888 -msgid "Number of peers to run in each round, separated by commas" +#: src/peerinfo/gnunet-service-peerinfo.c:631 +#, c-format +msgid "Still no peers found in `%s'!\n" msgstr "" -#: src/nse/gnunet-nse-profiler.c:900 -msgid "delay between rounds" +#: src/peerinfo/gnunet-service-peerinfo.c:1024 +#, c-format +msgid "Cleaning up directory `%s'\n" msgstr "" -#: src/nse/gnunet-nse-profiler.c:912 -msgid "Measure quality and performance of the NSE service." +#: src/peerinfo/gnunet-service-peerinfo.c:1319 +#, c-format +msgid "Importing HELLOs from `%s'\n" msgstr "" -#: src/nse/gnunet-nse.c:124 -msgid "Show network size estimates from NSE service." +#: src/peerinfo/gnunet-service-peerinfo.c:1332 +msgid "Skipping import of included HELLOs\n" msgstr "" -#: src/nse/gnunet-service-nse.c:1437 -#: src/revocation/gnunet-service-revocation.c:846 src/util/gnunet-scrypt.c:247 -msgid "Value is too large.\n" +#: src/peerinfo/peerinfo_api.c:217 +msgid "Failed to receive response from `PEERINFO' service." msgstr "" #: src/peerinfo-tool/gnunet-peerinfo.c:237 @@ -5498,60 +5552,6 @@ msgstr "" msgid "Peerinfo REST API initialized\n" msgstr "" -#: src/peerinfo/gnunet-service-peerinfo.c:175 -#, c-format -msgid "Removing expired address of transport `%s'\n" -msgstr "" - -#: src/peerinfo/gnunet-service-peerinfo.c:306 -#, c-format -msgid "Failed to parse HELLO in file `%s': %s\n" -msgstr "" - -#: src/peerinfo/gnunet-service-peerinfo.c:323 -#: src/peerinfo/gnunet-service-peerinfo.c:348 -#, c-format -msgid "Failed to parse HELLO in file `%s'\n" -msgstr "" - -#: src/peerinfo/gnunet-service-peerinfo.c:426 -msgid "# peers known" -msgstr "# peer conosciuti" - -#: src/peerinfo/gnunet-service-peerinfo.c:468 -#, c-format -msgid "" -"File `%s' in directory `%s' does not match naming convention. Removed.\n" -msgstr "" - -#: src/peerinfo/gnunet-service-peerinfo.c:624 -#, c-format -msgid "Scanning directory `%s'\n" -msgstr "" - -#: src/peerinfo/gnunet-service-peerinfo.c:631 -#, c-format -msgid "Still no peers found in `%s'!\n" -msgstr "" - -#: src/peerinfo/gnunet-service-peerinfo.c:1024 -#, c-format -msgid "Cleaning up directory `%s'\n" -msgstr "" - -#: src/peerinfo/gnunet-service-peerinfo.c:1319 -#, c-format -msgid "Importing HELLOs from `%s'\n" -msgstr "" - -#: src/peerinfo/gnunet-service-peerinfo.c:1332 -msgid "Skipping import of included HELLOs\n" -msgstr "" - -#: src/peerinfo/peerinfo_api.c:217 -msgid "Failed to receive response from `PEERINFO' service." -msgstr "" - #: src/peerstore/gnunet-peerstore.c:92 msgid "peerstore" msgstr "" @@ -5958,6 +5958,18 @@ msgstr "" msgid "Could not open revocation database file!" msgstr "" +#: src/rps/gnunet-rps.c:270 +msgid "Seed a PeerID" +msgstr "" + +#: src/rps/gnunet-rps.c:275 +msgid "Get updates of view (0 for infinite updates)" +msgstr "" + +#: src/rps/gnunet-rps.c:279 +msgid "Get peers from biased stream" +msgstr "" + #: src/rps/gnunet-rps-profiler.c:3200 msgid "duration of the profiling" msgstr "" @@ -5974,18 +5986,6 @@ msgstr "" msgid "Measure quality and performance of the RPS service." msgstr "" -#: src/rps/gnunet-rps.c:270 -msgid "Seed a PeerID" -msgstr "" - -#: src/rps/gnunet-rps.c:275 -msgid "Get updates of view (0 for infinite updates)" -msgstr "" - -#: src/rps/gnunet-rps.c:279 -msgid "Get peers from biased stream" -msgstr "" - #: src/scalarproduct/gnunet-scalarproduct.c:229 msgid "You must specify at least one message ID to check!\n" msgstr "" @@ -6040,10 +6040,10 @@ msgstr "" msgid "Calculate the Vectorproduct with a GNUnet peer." msgstr "" -#: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1127 -#: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1073 #: src/scalarproduct/gnunet-service-scalarproduct_alice.c:1363 #: src/scalarproduct/gnunet-service-scalarproduct_bob.c:1366 +#: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1127 +#: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1073 msgid "Connect to CADET failed\n" msgstr "" @@ -6382,6 +6382,15 @@ msgstr "" msgid "%.s Unknown result code." msgstr "" +#: src/testbed/gnunet_testbed_mpi_spawn.c:119 +msgid "Waiting for child to exit.\n" +msgstr "" + +#: src/testbed/gnunet_testbed_mpi_spawn.c:242 +#, c-format +msgid "Spawning process `%s'\n" +msgstr "" + #: src/testbed/gnunet-testbed-profiler.c:290 msgid "tolerate COUNT number of continious timeout failures" msgstr "" @@ -6393,15 +6402,6 @@ msgid "" "signal is received" msgstr "" -#: src/testbed/gnunet_testbed_mpi_spawn.c:119 -msgid "Waiting for child to exit.\n" -msgstr "" - -#: src/testbed/gnunet_testbed_mpi_spawn.c:242 -#, c-format -msgid "Spawning process `%s'\n" -msgstr "" - #: src/testbed/testbed_api.c:399 #, c-format msgid "Adding host %u failed with error: %s\n" @@ -6723,6 +6723,10 @@ msgstr "" msgid "GNUnet UNIX domain socket communicator" msgstr "" +#: src/transport/gnunet-service-transport_ats.c:137 +msgid "# Addresses given to ATS" +msgstr "" + #: src/transport/gnunet-service-transport.c:445 msgid "# messages dropped due to slow client" msgstr "" @@ -6763,10 +6767,6 @@ msgstr "" msgid "Adding blacklisting entry for peer `%s':`%s'\n" msgstr "" -#: src/transport/gnunet-service-transport_ats.c:137 -msgid "# Addresses given to ATS" -msgstr "" - #: src/transport/gnunet-service-transport_hello.c:195 msgid "# refreshed my HELLO" msgstr "" @@ -7084,41 +7084,6 @@ msgstr "" msgid "# HELLOs given to peerinfo" msgstr "" -#: src/transport/gnunet-transport-profiler.c:220 -#, c-format -msgid "%llu B in %llu ms == %.2f KB/s!\n" -msgstr "" - -#: src/transport/gnunet-transport-profiler.c:577 -msgid "send data to peer" -msgstr "" - -#: src/transport/gnunet-transport-profiler.c:581 -msgid "receive data from peer" -msgstr "" - -#: src/transport/gnunet-transport-profiler.c:586 -msgid "iterations" -msgstr "" - -#: src/transport/gnunet-transport-profiler.c:591 -msgid "number of messages to send" -msgstr "" - -#: src/transport/gnunet-transport-profiler.c:596 -msgid "message size to use" -msgstr "" - -#: src/transport/gnunet-transport-profiler.c:601 -#: src/transport/gnunet-transport.c:1404 -msgid "peer identity" -msgstr "" - -#: src/transport/gnunet-transport-profiler.c:614 -#: src/transport/gnunet-transport.c:1426 -msgid "Direct access to transport service." -msgstr "" - #: src/transport/gnunet-transport.c:406 #, c-format msgid "Transmitted %llu bytes/s (%llu bytes in %s)\n" @@ -7251,6 +7216,11 @@ msgstr "" msgid "do not resolve hostnames" msgstr "" +#: src/transport/gnunet-transport.c:1404 +#: src/transport/gnunet-transport-profiler.c:601 +msgid "peer identity" +msgstr "" + #: src/transport/gnunet-transport.c:1408 msgid "monitor plugin sessions" msgstr "" @@ -7259,6 +7229,36 @@ msgstr "" msgid "send data for benchmarking to the other peer (until CTRL-C)" msgstr "" +#: src/transport/gnunet-transport.c:1426 +#: src/transport/gnunet-transport-profiler.c:614 +msgid "Direct access to transport service." +msgstr "" + +#: src/transport/gnunet-transport-profiler.c:220 +#, c-format +msgid "%llu B in %llu ms == %.2f KB/s!\n" +msgstr "" + +#: src/transport/gnunet-transport-profiler.c:577 +msgid "send data to peer" +msgstr "" + +#: src/transport/gnunet-transport-profiler.c:581 +msgid "receive data from peer" +msgstr "" + +#: src/transport/gnunet-transport-profiler.c:586 +msgid "iterations" +msgstr "" + +#: src/transport/gnunet-transport-profiler.c:591 +msgid "number of messages to send" +msgstr "" + +#: src/transport/gnunet-transport-profiler.c:596 +msgid "message size to use" +msgstr "" + #: src/transport/plugin_transport_http_client.c:1489 #: src/transport/plugin_transport_http_server.c:2331 #: src/transport/plugin_transport_http_server.c:3562 @@ -7525,6 +7525,21 @@ msgstr "" msgid "TCP transport advertises itself as being on port %llu\n" msgstr "" +#: src/transport/plugin_transport_udp_broadcasting.c:169 +#, fuzzy +msgid "# Multicast HELLO beacons received via UDP" +msgstr "# messaggi PONG ricevuti" + +#: src/transport/plugin_transport_udp_broadcasting.c:553 +msgid "" +"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n" +msgstr "" + +#: src/transport/plugin_transport_udp_broadcasting.c:571 +#, c-format +msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n" +msgstr "" + #: src/transport/plugin_transport_udp.c:3169 #, c-format msgid "" @@ -7571,21 +7586,6 @@ msgstr "deve essere un indirizzo IPv4 valido" msgid "Failed to create UDP network sockets\n" msgstr "Generazione statistiche fallita\n" -#: src/transport/plugin_transport_udp_broadcasting.c:169 -#, fuzzy -msgid "# Multicast HELLO beacons received via UDP" -msgstr "# messaggi PONG ricevuti" - -#: src/transport/plugin_transport_udp_broadcasting.c:553 -msgid "" -"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n" -msgstr "" - -#: src/transport/plugin_transport_udp_broadcasting.c:571 -#, c-format -msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n" -msgstr "" - #: src/transport/plugin_transport_unix.c:1396 #, fuzzy, c-format msgid "Cannot bind to `%s'\n" @@ -7669,17 +7669,17 @@ msgstr "" msgid "Accepting connection from `%s': %p\n" msgstr "" -#: src/transport/tcp_server_legacy.c:478 src/util/service.c:1400 +#: src/transport/tcp_server_legacy.c:478 src/util/service.c:1397 #, c-format msgid "`%s' failed for port %d (%s).\n" msgstr "" -#: src/transport/tcp_server_legacy.c:488 src/util/service.c:1412 +#: src/transport/tcp_server_legacy.c:488 src/util/service.c:1409 #, c-format msgid "`%s' failed for port %d (%s): address already in use\n" msgstr "" -#: src/transport/tcp_server_legacy.c:494 src/util/service.c:1419 +#: src/transport/tcp_server_legacy.c:494 src/util/service.c:1416 #, c-format msgid "`%s' failed for `%s': address already in use\n" msgstr "" @@ -7691,7 +7691,7 @@ msgid "" "`GNUNET_SERVER_receive_done' after %s\n" msgstr "" -#: src/transport/tcp_service_legacy.c:345 src/util/service.c:837 +#: src/transport/tcp_service_legacy.c:345 src/util/service.c:834 #, c-format msgid "Unknown address family %d\n" msgstr "" @@ -7701,23 +7701,23 @@ msgstr "" msgid "Access from `%s' denied to service `%s'\n" msgstr "" -#: src/transport/tcp_service_legacy.c:410 src/util/service.c:950 +#: src/transport/tcp_service_legacy.c:410 src/util/service.c:947 #, c-format msgid "Could not parse IPv4 network specification `%s' for `%s:%s'\n" msgstr "" -#: src/transport/tcp_service_legacy.c:451 src/util/service.c:991 +#: src/transport/tcp_service_legacy.c:451 src/util/service.c:988 #, c-format msgid "Could not parse IPv6 network specification `%s' for `%s:%s'\n" msgstr "" #: src/transport/tcp_service_legacy.c:890 -#: src/transport/tcp_service_legacy.c:910 src/util/service.c:1480 +#: src/transport/tcp_service_legacy.c:910 src/util/service.c:1477 #, c-format msgid "Specified value for `%s' of service `%s' is invalid\n" msgstr "" -#: src/transport/tcp_service_legacy.c:935 src/util/service.c:1504 +#: src/transport/tcp_service_legacy.c:935 src/util/service.c:1501 #, c-format msgid "Could not access pre-bound socket %u, will try to bind myself\n" msgstr "" @@ -7732,45 +7732,45 @@ msgstr "" msgid "Service `%s' runs at %s\n" msgstr "" -#: src/transport/tcp_service_legacy.c:1193 src/util/service.c:1750 +#: src/transport/tcp_service_legacy.c:1193 src/util/service.c:1747 msgid "Service process failed to initialize\n" msgstr "" -#: src/transport/tcp_service_legacy.c:1198 src/util/service.c:1755 +#: src/transport/tcp_service_legacy.c:1198 src/util/service.c:1752 msgid "Service process could not initialize server function\n" msgstr "" -#: src/transport/tcp_service_legacy.c:1203 src/util/service.c:1760 +#: src/transport/tcp_service_legacy.c:1203 src/util/service.c:1757 msgid "Service process failed to report status\n" msgstr "" #: src/transport/tcp_service_legacy.c:1253 src/util/disk.c:1177 -#: src/util/service.c:1641 +#: src/util/service.c:1638 #, c-format msgid "Cannot obtain information about user `%s': %s\n" msgstr "" -#: src/transport/tcp_service_legacy.c:1255 src/util/service.c:1643 +#: src/transport/tcp_service_legacy.c:1255 src/util/service.c:1640 msgid "No such user" msgstr "" -#: src/transport/tcp_service_legacy.c:1269 src/util/service.c:1657 +#: src/transport/tcp_service_legacy.c:1269 src/util/service.c:1654 #, c-format msgid "Cannot change user/group to `%s': %s\n" msgstr "" -#: src/transport/tcp_service_legacy.c:1348 src/util/service.c:1999 +#: src/transport/tcp_service_legacy.c:1348 src/util/service.c:1996 msgid "do daemonize (detach from terminal)" msgstr "" #: src/transport/tcp_service_legacy.c:1397 -#: src/transport/transport-testing2.c:906 src/util/service.c:2073 -#: src/util/service.c:2085 +#: src/transport/transport-testing2.c:906 src/util/service.c:2070 +#: src/util/service.c:2082 #, c-format msgid "Malformed configuration file `%s', exit ...\n" msgstr "" -#: src/transport/tcp_service_legacy.c:1407 src/util/service.c:2095 +#: src/transport/tcp_service_legacy.c:1407 src/util/service.c:2092 msgid "Malformed configuration, exit ...\n" msgstr "" @@ -7812,104 +7812,104 @@ msgstr "" msgid "Metadata `%s' failed to deserialize" msgstr "" -#: src/util/client.c:739 src/util/client.c:931 +#: src/util/client.c:747 src/util/client.c:937 msgid "not a valid filename" msgstr "" -#: src/util/client.c:1097 +#: src/util/client.c:1103 #, c-format msgid "Need a non-empty hostname for service `%s'.\n" msgstr "" -#: src/util/common_logging.c:259 src/util/common_logging.c:1116 +#: src/util/common_logging.c:259 src/util/common_logging.c:1112 msgid "DEBUG" msgstr "DEBUG" -#: src/util/common_logging.c:261 src/util/common_logging.c:1114 +#: src/util/common_logging.c:261 src/util/common_logging.c:1110 msgid "INFO" msgstr "INFO" -#: src/util/common_logging.c:263 src/util/common_logging.c:1112 +#: src/util/common_logging.c:263 src/util/common_logging.c:1108 msgid "MESSAGE" msgstr "" -#: src/util/common_logging.c:265 src/util/common_logging.c:1110 +#: src/util/common_logging.c:265 src/util/common_logging.c:1106 msgid "WARNING" msgstr "ATTENZIONE" -#: src/util/common_logging.c:267 src/util/common_logging.c:1108 +#: src/util/common_logging.c:267 src/util/common_logging.c:1104 msgid "ERROR" msgstr "ERRORE" -#: src/util/common_logging.c:269 src/util/common_logging.c:1118 +#: src/util/common_logging.c:269 src/util/common_logging.c:1114 msgid "NONE" msgstr "NESSUNA" -#: src/util/common_logging.c:630 src/util/common_logging.c:669 +#: src/util/common_logging.c:626 src/util/common_logging.c:665 #, c-format msgid "ERROR: Unable to parse log definition: Syntax error at `%s'.\n" msgstr "" -#: src/util/common_logging.c:906 +#: src/util/common_logging.c:902 #, c-format msgid "Message `%.*s' repeated %u times in the last %s\n" msgstr "" -#: src/util/common_logging.c:1119 +#: src/util/common_logging.c:1115 msgid "INVALID" msgstr "NON VALIDO" -#: src/util/common_logging.c:1400 +#: src/util/common_logging.c:1396 msgid "unknown address" msgstr "indirizzo sconosciuto" -#: src/util/common_logging.c:1445 +#: src/util/common_logging.c:1441 msgid "invalid address" msgstr "indirizzo non valido" -#: src/util/common_logging.c:1464 +#: src/util/common_logging.c:1460 #, c-format msgid "Configuration fails to specify option `%s' in section `%s'!\n" msgstr "" -#: src/util/common_logging.c:1487 +#: src/util/common_logging.c:1483 #, c-format msgid "" "Configuration specifies invalid value for option `%s' in section `%s': %s\n" msgstr "" -#: src/util/configuration.c:325 +#: src/util/configuration.c:402 #, c-format msgid "Syntax error while deserializing in line %u\n" msgstr "" -#: src/util/configuration.c:383 +#: src/util/configuration.c:460 #, c-format msgid "Error while reading file `%s'\n" msgstr "Errore di lettura del file `%s'\n" -#: src/util/configuration.c:986 +#: src/util/configuration.c:1063 msgid "Not a valid relative time specification" msgstr "" -#: src/util/configuration.c:1077 +#: src/util/configuration.c:1154 #, c-format msgid "" "Configuration value '%s' for '%s' in section '%s' is not in set of legal " "choices\n" msgstr "" -#: src/util/configuration.c:1192 +#: src/util/configuration.c:1269 #, c-format msgid "Recursive expansion suspected, aborting $-expansion for term `%s'\n" msgstr "" -#: src/util/configuration.c:1224 +#: src/util/configuration.c:1301 #, c-format msgid "Missing closing `%s' in option `%s'\n" msgstr "" -#: src/util/configuration.c:1290 +#: src/util/configuration.c:1367 #, c-format msgid "" "Failed to expand `%s' in `%s' as it is neither found in [PATHS] nor defined " @@ -7971,7 +7971,7 @@ msgstr "" msgid "RSA signing failed at %s:%d: %s\n" msgstr "" -#: src/util/crypto_rsa.c:1313 +#: src/util/crypto_rsa.c:1314 #, c-format msgid "RSA signature verification failed at %s:%d: %s\n" msgstr "" @@ -8076,63 +8076,71 @@ msgstr "" msgid "Missing mandatory option `%s'.\n" msgstr "" -#: src/util/getopt_helpers.c:68 +#: src/util/getopt_helpers.c:69 msgid "print the version number" msgstr "" -#: src/util/getopt_helpers.c:114 +#: src/util/getopt_helpers.c:116 #, c-format msgid "" "Arguments mandatory for long options are also mandatory for short options.\n" msgstr "" -#: src/util/getopt_helpers.c:205 +#: src/util/getopt_helpers.c:208 msgid "print this help" msgstr "" -#: src/util/getopt_helpers.c:281 +#: src/util/getopt_helpers.c:288 msgid "be verbose" msgstr "" -#: src/util/getopt_helpers.c:417 +#: src/util/getopt_helpers.c:429 msgid "configure logging to use LOGLEVEL" msgstr "" -#: src/util/getopt_helpers.c:495 +#: src/util/getopt_helpers.c:510 msgid "configure logging to write logs to FILENAME" msgstr "" -#: src/util/getopt_helpers.c:516 +#: src/util/getopt_helpers.c:532 msgid "use configuration file FILENAME" msgstr "" -#: src/util/getopt_helpers.c:551 src/util/getopt_helpers.c:747 -#: src/util/getopt_helpers.c:810 +#: src/util/getopt_helpers.c:568 src/util/getopt_helpers.c:634 +#: src/util/getopt_helpers.c:835 src/util/getopt_helpers.c:900 #, c-format msgid "You must pass a number to the `%s' option.\n" msgstr "" -#: src/util/getopt_helpers.c:612 +#: src/util/getopt_helpers.c:659 +msgid "[+/-]MICROSECONDS" +msgstr "" + +#: src/util/getopt_helpers.c:661 +msgid "modify system time by given offset (for debugging/testing only)" +msgstr "" + +#: src/util/getopt_helpers.c:696 #, c-format msgid "You must pass relative time to the `%s' option.\n" msgstr "" -#: src/util/getopt_helpers.c:675 +#: src/util/getopt_helpers.c:761 #, c-format msgid "You must pass absolute time to the `%s' option.\n" msgstr "" -#: src/util/getopt_helpers.c:740 +#: src/util/getopt_helpers.c:828 #, c-format -msgid "Your input for the '%s' option has to be a non negative number \n" +msgid "Your input for the '%s' option has to be a non negative number\n" msgstr "" -#: src/util/getopt_helpers.c:817 +#: src/util/getopt_helpers.c:907 #, c-format msgid "You must pass a number below %u to the `%s' option.\n" msgstr "" -#: src/util/getopt_helpers.c:902 +#: src/util/getopt_helpers.c:994 #, c-format msgid "Argument `%s' malformed. Expected base32 (Crockford) encoded value.\n" msgstr "" @@ -8465,14 +8473,14 @@ msgstr "" msgid "Could not resolve our FQDN: %s\n" msgstr "" -#: src/util/service.c:657 +#: src/util/service.c:654 #, c-format msgid "" "Processing code for message of type %u did not call " "`GNUNET_SERVICE_client_continue' after %s\n" msgstr "" -#: src/util/service.c:1572 +#: src/util/service.c:1569 msgid "" "Could not bind to any of the ports I was supposed to, refusing to run!\n" msgstr "" @@ -8780,8 +8788,8 @@ msgstr "" msgid "Setup tunnels via VPN." msgstr "" -#: src/zonemaster/gnunet-service-zonemaster-monitor.c:420 #: src/zonemaster/gnunet-service-zonemaster.c:849 +#: src/zonemaster/gnunet-service-zonemaster-monitor.c:420 msgid "Failed to connect to the namestore!\n" msgstr "" diff --git a/po/sv.po b/po/sv.po index 8631b6f13..804d41284 100644 --- a/po/sv.po +++ b/po/sv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: GNUnet 0.7.0b\n" "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n" -"POT-Creation-Date: 2020-01-13 14:01+0000\n" +"POT-Creation-Date: 2020-02-13 20:41+0100\n" "PO-Revision-Date: 2006-01-21 17:16+0100\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" @@ -27,8 +27,8 @@ msgid "Issuer public key `%s' is not well-formed\n" msgstr "Ogiltigt argument: \"%s\"\n" #: src/abd/gnunet-abd.c:558 src/abd/gnunet-service-abd.c:1747 -#: src/namestore/gnunet-namestore-fcfsd.c:1153 #: src/namestore/gnunet-namestore.c:1001 +#: src/namestore/gnunet-namestore-fcfsd.c:1153 #, fuzzy, c-format msgid "Failed to connect to namestore\n" msgstr "Misslyckades att ansluta till gnunetd.\n" @@ -140,7 +140,7 @@ msgstr "" msgid "GNUnet abd resolver tool" msgstr "Spåra GNUnets nätverkstopologi." -#: src/abd/gnunet-service-abd.c:1742 src/gns/gnunet-gns.c:288 +#: src/abd/gnunet-service-abd.c:1742 src/gns/gnunet-gns.c:292 #, fuzzy, c-format msgid "Failed to connect to GNS\n" msgstr "Misslyckades att ansluta till gnunetd.\n" @@ -385,28 +385,28 @@ msgstr "" #: src/transport/plugin_transport_tcp.c:1129 #: src/transport/plugin_transport_tcp.c:3706 #: src/transport/tcp_service_legacy.c:594 -#: src/transport/tcp_service_legacy.c:600 src/util/service.c:1094 -#: src/util/service.c:1100 +#: src/transport/tcp_service_legacy.c:600 src/util/service.c:1091 +#: src/util/service.c:1097 #, c-format msgid "Require valid port number for service `%s' in configuration!\n" msgstr "" #: src/arm/gnunet-service-arm.c:452 src/transport/plugin_transport_tcp.c:1163 -#: src/transport/tcp_service_legacy.c:634 src/util/client.c:519 -#: src/util/service.c:1133 +#: src/transport/tcp_service_legacy.c:634 src/util/client.c:527 +#: src/util/service.c:1130 #, c-format msgid "UNIXPATH `%s' too long, maximum length is %llu\n" msgstr "" #: src/arm/gnunet-service-arm.c:456 src/transport/plugin_transport_tcp.c:1167 -#: src/transport/tcp_service_legacy.c:638 src/util/client.c:524 -#: src/util/service.c:1137 +#: src/transport/tcp_service_legacy.c:638 src/util/client.c:532 +#: src/util/service.c:1134 #, fuzzy, c-format msgid "Using `%s' instead\n" msgstr "%s: flagga \"%s\" är tvetydig\n" #: src/arm/gnunet-service-arm.c:484 src/transport/plugin_transport_tcp.c:1195 -#: src/transport/tcp_service_legacy.c:666 src/util/service.c:1157 +#: src/transport/tcp_service_legacy.c:666 src/util/service.c:1154 #, c-format msgid "" "Disabling UNIX domain socket support for service `%s', failed to create UNIX " @@ -414,7 +414,7 @@ msgid "" msgstr "" #: src/arm/gnunet-service-arm.c:505 src/transport/plugin_transport_tcp.c:1213 -#: src/transport/tcp_service_legacy.c:684 src/util/service.c:1175 +#: src/transport/tcp_service_legacy.c:684 src/util/service.c:1172 #, c-format msgid "Have neither PORT nor UNIXPATH for service `%s', but one is required\n" msgstr "" @@ -422,7 +422,7 @@ msgstr "" #: src/arm/gnunet-service-arm.c:536 #: src/transport/plugin_transport_http_server.c:2718 #: src/transport/plugin_transport_tcp.c:1244 -#: src/transport/tcp_service_legacy.c:715 src/util/service.c:1206 +#: src/transport/tcp_service_legacy.c:715 src/util/service.c:1203 #, fuzzy, c-format msgid "Failed to resolve `%s': %s\n" msgstr "Misslyckades att leverera \"%s\" meddelande.\n" @@ -430,7 +430,7 @@ msgstr "Misslyckades att leverera \"%s\" meddelande.\n" #: src/arm/gnunet-service-arm.c:555 #: src/transport/plugin_transport_http_server.c:2736 #: src/transport/plugin_transport_tcp.c:1263 -#: src/transport/tcp_service_legacy.c:734 src/util/service.c:1225 +#: src/transport/tcp_service_legacy.c:734 src/util/service.c:1222 #, fuzzy, c-format msgid "Failed to find %saddress for `%s'.\n" msgstr "Misslyckades att binda till UDP-port %d.\n" @@ -502,15 +502,83 @@ msgstr "" msgid "Initiating shutdown as requested by client.\n" msgstr "" -#: src/ats-tests/ats-testing-log.c:896 -msgid "Stop logging\n" +#: src/ats/gnunet-ats-solver-eval.c:2992 src/ats/gnunet-ats-solver-eval.c:3044 +#, c-format +msgid "" +"Could not load quota for network `%s': `%s', assigning default bandwidth " +"%llu\n" msgstr "" -#: src/ats-tests/ats-testing-log.c:952 -#, fuzzy, c-format -msgid "Start logging `%s'\n" +#: src/ats/gnunet-ats-solver-eval.c:3011 +#, c-format +msgid "" +"No outbound quota configured for network `%s', assigning default bandwidth " +"%llu\n" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3063 +#, c-format +msgid "" +"No outbound quota configure for network `%s', assigning default bandwidth " +"%llu\n" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3552 src/ats-tests/gnunet-solver-eval.c:997 +msgid "solver to use" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3557 +#: src/ats-tests/gnunet-solver-eval.c:1003 +#: src/ats-tests/gnunet-solver-eval.c:1008 +msgid "experiment to use" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3564 +#, fuzzy +msgid "print logging" msgstr "Startade samling \"%s\".\n" +#: src/ats/gnunet-ats-solver-eval.c:3569 +msgid "save logging to disk" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3574 +msgid "disable normalization" +msgstr "" + +#: src/ats/gnunet-service-ats_plugins.c:326 +#, c-format +msgid "" +"Could not load %s quota for network `%s': `%s', assigning default bandwidth " +"%llu\n" +msgstr "" + +#: src/ats/gnunet-service-ats_plugins.c:336 +#, c-format +msgid "%s quota configured for network `%s' is %llu\n" +msgstr "" + +#: src/ats/gnunet-service-ats_plugins.c:382 +#, c-format +msgid "" +"No %s-quota configured for network `%s', assigning default bandwidth %llu\n" +msgstr "" + +#: src/ats/gnunet-service-ats_plugins.c:474 +#, fuzzy, c-format +msgid "Failed to initialize solver `%s'!\n" +msgstr "Kunde inte initiera SQLite.\n" + +#: src/ats/plugin_ats_proportional.c:1140 +#, fuzzy, c-format +msgid "Invalid %s configuration %f \n" +msgstr "Kunde inte spara konfigurationsfil \"%s\":" + +#: src/ats/plugin_ats_proportional.c:1163 +#, fuzzy, c-format +msgid "Invalid %s configuration %f\n" +msgstr "Kunde inte spara konfigurationsfil \"%s\":" + #: src/ats-tests/ats-testing.c:420 #, c-format msgid "Connected master [%u] with slave [%u]\n" @@ -521,6 +589,15 @@ msgstr "" msgid "Failed to connect master peer [%u] with slave [%u]\n" msgstr "Misslyckades att ansluta till gnunetd.\n" +#: src/ats-tests/ats-testing-log.c:896 +msgid "Stop logging\n" +msgstr "" + +#: src/ats-tests/ats-testing-log.c:952 +#, fuzzy, c-format +msgid "Start logging `%s'\n" +msgstr "Startade samling \"%s\".\n" + #: src/ats-tests/gnunet-ats-sim.c:92 #, c-format msgid "" @@ -528,16 +605,6 @@ msgid "" "= %u KiB/s\n" msgstr "" -#: src/ats-tests/gnunet-solver-eval.c:997 src/ats/gnunet-ats-solver-eval.c:3552 -msgid "solver to use" -msgstr "" - -#: src/ats-tests/gnunet-solver-eval.c:1003 -#: src/ats-tests/gnunet-solver-eval.c:1008 -#: src/ats/gnunet-ats-solver-eval.c:3557 -msgid "experiment to use" -msgstr "" - #: src/ats-tool/gnunet-ats.c:299 #, c-format msgid "%u address resolutions had a timeout\n" @@ -659,73 +726,6 @@ msgstr "" msgid "Print information about ATS state" msgstr "Skriv ut information om GNUnets motparter." -#: src/ats/gnunet-ats-solver-eval.c:2992 src/ats/gnunet-ats-solver-eval.c:3044 -#, c-format -msgid "" -"Could not load quota for network `%s': `%s', assigning default bandwidth " -"%llu\n" -msgstr "" - -#: src/ats/gnunet-ats-solver-eval.c:3011 -#, c-format -msgid "" -"No outbound quota configured for network `%s', assigning default bandwidth " -"%llu\n" -msgstr "" - -#: src/ats/gnunet-ats-solver-eval.c:3063 -#, c-format -msgid "" -"No outbound quota configure for network `%s', assigning default bandwidth " -"%llu\n" -msgstr "" - -#: src/ats/gnunet-ats-solver-eval.c:3564 -#, fuzzy -msgid "print logging" -msgstr "Startade samling \"%s\".\n" - -#: src/ats/gnunet-ats-solver-eval.c:3569 -msgid "save logging to disk" -msgstr "" - -#: src/ats/gnunet-ats-solver-eval.c:3574 -msgid "disable normalization" -msgstr "" - -#: src/ats/gnunet-service-ats_plugins.c:326 -#, c-format -msgid "" -"Could not load %s quota for network `%s': `%s', assigning default bandwidth " -"%llu\n" -msgstr "" - -#: src/ats/gnunet-service-ats_plugins.c:336 -#, c-format -msgid "%s quota configured for network `%s' is %llu\n" -msgstr "" - -#: src/ats/gnunet-service-ats_plugins.c:382 -#, c-format -msgid "" -"No %s-quota configured for network `%s', assigning default bandwidth %llu\n" -msgstr "" - -#: src/ats/gnunet-service-ats_plugins.c:474 -#, fuzzy, c-format -msgid "Failed to initialize solver `%s'!\n" -msgstr "Kunde inte initiera SQLite.\n" - -#: src/ats/plugin_ats_proportional.c:1140 -#, fuzzy, c-format -msgid "Invalid %s configuration %f \n" -msgstr "Kunde inte spara konfigurationsfil \"%s\":" - -#: src/ats/plugin_ats_proportional.c:1163 -#, fuzzy, c-format -msgid "Invalid %s configuration %f\n" -msgstr "Kunde inte spara konfigurationsfil \"%s\":" - #: src/auction/gnunet-auction-create.c:163 msgid "description of the item to be sold" msgstr "" @@ -861,28 +861,6 @@ msgstr "" msgid "Connection to conversation service lost, trying to reconnect\n" msgstr "" -#: src/conversation/gnunet-conversation-test.c:120 -#, c-format -msgid "" -"\n" -"End of transmission. Have a GNU day.\n" -msgstr "" - -#: src/conversation/gnunet-conversation-test.c:146 -#, c-format -msgid "" -"\n" -"We are now playing your recording back. If you can hear it, your audio " -"settings are working..." -msgstr "" - -#: src/conversation/gnunet-conversation-test.c:218 -#, c-format -msgid "" -"We will now be recording you for %s. After that time, the recording will be " -"played back to you..." -msgstr "" - #: src/conversation/gnunet-conversation.c:264 #, c-format msgid "Incoming call from `%s'. Please /accept %u or /cancel %u the call.\n" @@ -1142,8 +1120,30 @@ msgstr "" msgid "Enables having a conversation with other GNUnet users." msgstr "" -#: src/conversation/gnunet-helper-audio-playback-gst.c:363 +#: src/conversation/gnunet-conversation-test.c:120 +#, c-format +msgid "" +"\n" +"End of transmission. Have a GNU day.\n" +msgstr "" + +#: src/conversation/gnunet-conversation-test.c:146 +#, c-format +msgid "" +"\n" +"We are now playing your recording back. If you can hear it, your audio " +"settings are working..." +msgstr "" + +#: src/conversation/gnunet-conversation-test.c:218 +#, c-format +msgid "" +"We will now be recording you for %s. After that time, the recording will be " +"played back to you..." +msgstr "" + #: src/conversation/gnunet_gst.c:664 +#: src/conversation/gnunet-helper-audio-playback-gst.c:363 #, c-format msgid "Read error from STDIN: %d %s\n" msgstr "" @@ -1971,17 +1971,17 @@ msgstr "\"%s\" till \"%s\" misslyckades vid %s:%d med fel: %s\n" msgid "Mysql database running\n" msgstr "" -#: src/datastore/plugin_datastore_postgres.c:277 -#: src/datastore/plugin_datastore_postgres.c:890 +#: src/datastore/plugin_datastore_postgres.c:278 +#: src/datastore/plugin_datastore_postgres.c:891 msgid "Postgress exec failure" msgstr "" -#: src/datastore/plugin_datastore_postgres.c:851 +#: src/datastore/plugin_datastore_postgres.c:852 #, fuzzy msgid "Failed to drop table from database.\n" msgstr "Misslyckades att ta emot svar till \"%s\" meddelande från gnunetd\n" -#: src/datastore/plugin_datastore_postgres.c:949 +#: src/datastore/plugin_datastore_postgres.c:950 msgid "Postgres database running\n" msgstr "" @@ -2089,45 +2089,93 @@ msgstr "" msgid "Prints all packets that go through the DHT." msgstr "" -#: src/dht/gnunet-dht-put.c:133 -msgid "Must provide KEY and DATA for DHT put!\n" -msgstr "" - -#: src/dht/gnunet-dht-put.c:140 +#: src/dht/gnunet_dht_profiler.c:922 src/testbed/gnunet-testbed-profiler.c:255 #, fuzzy, c-format -msgid "Could not connect to DHT service!\n" -msgstr "Kunde inte ansluta till gnunetd.\n" +msgid "Exiting as the number of peers is %u\n" +msgstr "Maximalt antal chattklienter uppnått.\n" -#: src/dht/gnunet-dht-put.c:151 -#, c-format -msgid "Issuing put request for `%s' with data `%s'!\n" +#: src/dht/gnunet_dht_profiler.c:955 src/rps/gnunet-rps-profiler.c:3194 +#, fuzzy +msgid "number of peers to start" +msgstr "antal iterationer" + +#: src/dht/gnunet_dht_profiler.c:961 +msgid "number of PUTs to perform per peer" msgstr "" -#: src/dht/gnunet-dht-put.c:187 -msgid "the data to insert under the key" +#: src/dht/gnunet_dht_profiler.c:967 src/nse/gnunet-nse-profiler.c:872 +#: src/testbed/gnunet-testbed-profiler.c:305 +msgid "name of the file with the login information for the testbed" msgstr "" -#: src/dht/gnunet-dht-put.c:193 -msgid "how long to store this entry in the dht (in seconds)" +#: src/dht/gnunet_dht_profiler.c:973 +msgid "delay between rounds for collecting statistics (default: 30 sec)" msgstr "" -#: src/dht/gnunet-dht-put.c:208 -msgid "how many replicas to create" +#: src/dht/gnunet_dht_profiler.c:979 +msgid "delay to start doing PUTs (default: 1 sec)" msgstr "" -#: src/dht/gnunet-dht-put.c:212 -msgid "use DHT's record route option" +#: src/dht/gnunet_dht_profiler.c:985 +msgid "delay to start doing GETs (default: 5 min)" msgstr "" -#: src/dht/gnunet-dht-put.c:217 -msgid "the type to insert data as" +#: src/dht/gnunet_dht_profiler.c:990 +msgid "replication degree for DHT PUTs" msgstr "" -#: src/dht/gnunet-dht-put.c:232 -msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY." +#: src/dht/gnunet_dht_profiler.c:996 +msgid "chance that a peer is selected at random for PUTs" msgstr "" -#: src/dht/gnunet-service-dht_clients.c:367 +#: src/dht/gnunet_dht_profiler.c:1002 +msgid "timeout for DHT PUT and GET requests (default: 1 min)" +msgstr "" + +#: src/dht/gnunet_dht_profiler.c:1023 +#, fuzzy +msgid "Measure quality and performance of the DHT service." +msgstr "Kan inte tillgå tjänsten" + +#: src/dht/gnunet-dht-put.c:133 +msgid "Must provide KEY and DATA for DHT put!\n" +msgstr "" + +#: src/dht/gnunet-dht-put.c:140 +#, fuzzy, c-format +msgid "Could not connect to DHT service!\n" +msgstr "Kunde inte ansluta till gnunetd.\n" + +#: src/dht/gnunet-dht-put.c:151 +#, c-format +msgid "Issuing put request for `%s' with data `%s'!\n" +msgstr "" + +#: src/dht/gnunet-dht-put.c:187 +msgid "the data to insert under the key" +msgstr "" + +#: src/dht/gnunet-dht-put.c:193 +msgid "how long to store this entry in the dht (in seconds)" +msgstr "" + +#: src/dht/gnunet-dht-put.c:208 +msgid "how many replicas to create" +msgstr "" + +#: src/dht/gnunet-dht-put.c:212 +msgid "use DHT's record route option" +msgstr "" + +#: src/dht/gnunet-dht-put.c:217 +msgid "the type to insert data as" +msgstr "" + +#: src/dht/gnunet-dht-put.c:232 +msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY." +msgstr "" + +#: src/dht/gnunet-service-dht_clients.c:367 #, fuzzy msgid "# GET requests from clients injected" msgstr "# byte mottogs via TCP" @@ -2359,54 +2407,6 @@ msgstr "" msgid "# DHT requests combined" msgstr "# byte mottogs via TCP" -#: src/dht/gnunet_dht_profiler.c:922 src/testbed/gnunet-testbed-profiler.c:255 -#, fuzzy, c-format -msgid "Exiting as the number of peers is %u\n" -msgstr "Maximalt antal chattklienter uppnått.\n" - -#: src/dht/gnunet_dht_profiler.c:955 src/rps/gnunet-rps-profiler.c:3194 -#, fuzzy -msgid "number of peers to start" -msgstr "antal iterationer" - -#: src/dht/gnunet_dht_profiler.c:961 -msgid "number of PUTs to perform per peer" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:967 src/nse/gnunet-nse-profiler.c:872 -#: src/testbed/gnunet-testbed-profiler.c:305 -msgid "name of the file with the login information for the testbed" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:973 -msgid "delay between rounds for collecting statistics (default: 30 sec)" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:979 -msgid "delay to start doing PUTs (default: 1 sec)" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:985 -msgid "delay to start doing GETs (default: 5 min)" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:990 -msgid "replication degree for DHT PUTs" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:996 -msgid "chance that a peer is selected at random for PUTs" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:1002 -msgid "timeout for DHT PUT and GET requests (default: 1 min)" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:1023 -#, fuzzy -msgid "Measure quality and performance of the DHT service." -msgstr "Kan inte tillgå tjänsten" - #: src/dht/plugin_block_dht.c:189 #, fuzzy, c-format msgid "Block not of type %u\n" @@ -3358,6 +3358,15 @@ msgid "" "chk/...)" msgstr "" +#: src/fs/gnunet-fs.c:128 +msgid "print a list of all indexed files" +msgstr "" + +#: src/fs/gnunet-fs.c:141 +#, fuzzy +msgid "Special file-sharing operations" +msgstr "Visa alla alternativ" + #: src/fs/gnunet-fs-profiler.c:211 msgid "run the experiment with COUNT peers" msgstr "" @@ -3374,15 +3383,6 @@ msgstr "" msgid "run a testbed to measure file-sharing performance" msgstr "" -#: src/fs/gnunet-fs.c:128 -msgid "print a list of all indexed files" -msgstr "" - -#: src/fs/gnunet-fs.c:141 -#, fuzzy -msgid "Special file-sharing operations" -msgstr "Visa alla alternativ" - #: src/fs/gnunet-publish.c:219 src/fs/gnunet-publish.c:234 #, c-format msgid "Publishing `%s' at %llu/%llu (%s remaining)\n" @@ -4069,6 +4069,52 @@ msgstr "" msgid "look for GNS2DNS records instead of ANY" msgstr "" +#: src/gns/gnunet-gns.c:257 +#, fuzzy, c-format +msgid "`%s' is not a valid DNS domain name\n" +msgstr "\"%s\" är inte tillgänglig." + +#: src/gns/gnunet-gns.c:267 src/util/dnsparser.c:254 +#, fuzzy, c-format +msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n" +msgstr "Misslyckades att leverera \"%s\" meddelande.\n" + +#: src/gns/gnunet-gns.c:281 +msgid "Cannot resolve using GNS: GNUnet peer not running\n" +msgstr "" + +#: src/gns/gnunet-gns.c:305 +#, c-format +msgid "Invalid typename specified, assuming `ANY'\n" +msgstr "" + +#: src/gns/gnunet-gns.c:340 +msgid "Lookup a record for the given name" +msgstr "" + +#: src/gns/gnunet-gns.c:346 +#, fuzzy +msgid "Specify the type of the record to lookup" +msgstr "ange prioritet för innehållet" + +#: src/gns/gnunet-gns.c:352 +#, fuzzy +msgid "Specify a timeout for the lookup" +msgstr "ange prioritet för innehållet" + +#: src/gns/gnunet-gns.c:356 +msgid "No unneeded output" +msgstr "" + +#: src/gns/gnunet-gns.c:361 +msgid "DNS Compatibility: Name is passed in IDNA instead of UTF-8" +msgstr "" + +#: src/gns/gnunet-gns.c:375 +#, fuzzy +msgid "GNUnet GNS resolver tool" +msgstr "Spåra GNUnets nätverkstopologi." + #: src/gns/gnunet-gns-import.c:486 msgid "This program will import some GNS authorities into your GNS namestore." msgstr "" @@ -4189,52 +4235,6 @@ msgstr "" msgid "GNUnet GNS proxy" msgstr "" -#: src/gns/gnunet-gns.c:253 -#, fuzzy, c-format -msgid "`%s' is not a valid DNS domain name\n" -msgstr "\"%s\" är inte tillgänglig." - -#: src/gns/gnunet-gns.c:263 src/util/dnsparser.c:254 -#, fuzzy, c-format -msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n" -msgstr "Misslyckades att leverera \"%s\" meddelande.\n" - -#: src/gns/gnunet-gns.c:277 -msgid "Cannot resolve using GNS: GNUnet peer not running\n" -msgstr "" - -#: src/gns/gnunet-gns.c:301 -#, c-format -msgid "Invalid typename specified, assuming `ANY'\n" -msgstr "" - -#: src/gns/gnunet-gns.c:336 -msgid "Lookup a record for the given name" -msgstr "" - -#: src/gns/gnunet-gns.c:342 -#, fuzzy -msgid "Specify the type of the record to lookup" -msgstr "ange prioritet för innehållet" - -#: src/gns/gnunet-gns.c:348 -#, fuzzy -msgid "Specify a timeout for the lookup" -msgstr "ange prioritet för innehållet" - -#: src/gns/gnunet-gns.c:352 -msgid "No unneeded output" -msgstr "" - -#: src/gns/gnunet-gns.c:357 -msgid "DNS Compatibility: Name is passed in IDNA instead of UTF-8" -msgstr "" - -#: src/gns/gnunet-gns.c:371 -#, fuzzy -msgid "GNUnet GNS resolver tool" -msgstr "Spåra GNUnets nätverkstopologi." - #: src/gns/gnunet-service-gns.c:505 #, fuzzy msgid "Properly base32-encoded public key required" @@ -4246,8 +4246,8 @@ msgid "Failed to connect to the namecache!\n" msgstr "Misslyckades att ansluta till gnunetd.\n" #: src/gns/gnunet-service-gns.c:560 -#: src/zonemaster/gnunet-service-zonemaster-monitor.c:444 #: src/zonemaster/gnunet-service-zonemaster.c:887 +#: src/zonemaster/gnunet-service-zonemaster-monitor.c:444 #, fuzzy msgid "Could not connect to DHT!\n" msgstr "Kunde inte ansluta till gnunetd.\n" @@ -4306,21 +4306,21 @@ msgstr "" msgid "GNS lookup failed (zero records found for `%s')\n" msgstr "%d filer hittades i katalog.\n" -#: src/gns/gnunet-service-gns_resolver.c:2376 +#: src/gns/gnunet-service-gns_resolver.c:2372 msgid "GNS lookup recursion failed (no delegation record found)\n" msgstr "" -#: src/gns/gnunet-service-gns_resolver.c:2399 +#: src/gns/gnunet-service-gns_resolver.c:2395 #, fuzzy, c-format msgid "Failed to cache GNS resolution: %s\n" msgstr "Misslyckades att skicka HTTP-begäran till värd \"%s\": %s\n" -#: src/gns/gnunet-service-gns_resolver.c:2567 +#: src/gns/gnunet-service-gns_resolver.c:2563 #, c-format msgid "GNS namecache returned empty result for `%s'\n" msgstr "" -#: src/gns/gnunet-service-gns_resolver.c:2707 +#: src/gns/gnunet-service-gns_resolver.c:2703 #, c-format msgid "Zone %s was revoked, resolution fails\n" msgstr "" @@ -4994,70 +4994,6 @@ msgstr "" msgid "Failed to setup database at `%s'\n" msgstr "Fel vid %s:%d.\n" -#: src/namestore/gnunet-namestore-fcfsd.c:551 -#, fuzzy, c-format -msgid "Unsupported form value `%s'\n" -msgstr "Kommando \"%s\" stöds ej. Avbryter.\n" - -#: src/namestore/gnunet-namestore-fcfsd.c:578 -#, fuzzy, c-format -msgid "Failed to create record for domain `%s': %s\n" -msgstr "Kunde inte tolka konfigurationsfil \"%s\".\n" - -#: src/namestore/gnunet-namestore-fcfsd.c:599 -msgid "Error when mapping zone to name\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:631 -#, c-format -msgid "Found existing name `%s' for the given key\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:693 -#, c-format -msgid "Found %u existing records for domain `%s'\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:783 -#, fuzzy, c-format -msgid "Failed to create page for `%s'\n" -msgstr "Kunde inte skapa namnrymd \"%s\" (existerar?).\n" - -#: src/namestore/gnunet-namestore-fcfsd.c:802 -#, fuzzy, c-format -msgid "Failed to setup post processor for `%s'\n" -msgstr "Misslyckades att läsa kompislista från \"%s\"\n" - -#: src/namestore/gnunet-namestore-fcfsd.c:839 -msgid "Domain name must not contain `.'\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:848 -msgid "Domain name must not contain `+'\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:1083 -msgid "No ego configured for `fcfsd` subsystem\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:1114 -#, fuzzy -msgid "Failed to start HTTP server\n" -msgstr "Misslyckades att starta samling.\n" - -#: src/namestore/gnunet-namestore-fcfsd.c:1162 -#, fuzzy -msgid "Failed to connect to identity\n" -msgstr "Misslyckades att ansluta till gnunetd.\n" - -#: src/namestore/gnunet-namestore-fcfsd.c:1189 -msgid "name of the zone that is to be managed by FCFSD" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:1209 -msgid "GNU Name System First Come First Serve name registration service" -msgstr "" - #: src/namestore/gnunet-namestore.c:334 #, fuzzy, c-format msgid "Adding record failed: %s\n" @@ -5287,7 +5223,71 @@ msgstr "" msgid "name of the ego controlling the zone" msgstr "Visa värde av alternativet" -#: src/namestore/gnunet-service-namestore.c:864 +#: src/namestore/gnunet-namestore-fcfsd.c:551 +#, fuzzy, c-format +msgid "Unsupported form value `%s'\n" +msgstr "Kommando \"%s\" stöds ej. Avbryter.\n" + +#: src/namestore/gnunet-namestore-fcfsd.c:578 +#, fuzzy, c-format +msgid "Failed to create record for domain `%s': %s\n" +msgstr "Kunde inte tolka konfigurationsfil \"%s\".\n" + +#: src/namestore/gnunet-namestore-fcfsd.c:599 +msgid "Error when mapping zone to name\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:631 +#, c-format +msgid "Found existing name `%s' for the given key\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:693 +#, c-format +msgid "Found %u existing records for domain `%s'\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:783 +#, fuzzy, c-format +msgid "Failed to create page for `%s'\n" +msgstr "Kunde inte skapa namnrymd \"%s\" (existerar?).\n" + +#: src/namestore/gnunet-namestore-fcfsd.c:802 +#, fuzzy, c-format +msgid "Failed to setup post processor for `%s'\n" +msgstr "Misslyckades att läsa kompislista från \"%s\"\n" + +#: src/namestore/gnunet-namestore-fcfsd.c:839 +msgid "Domain name must not contain `.'\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:848 +msgid "Domain name must not contain `+'\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:1083 +msgid "No ego configured for `fcfsd` subsystem\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:1114 +#, fuzzy +msgid "Failed to start HTTP server\n" +msgstr "Misslyckades att starta samling.\n" + +#: src/namestore/gnunet-namestore-fcfsd.c:1162 +#, fuzzy +msgid "Failed to connect to identity\n" +msgstr "Misslyckades att ansluta till gnunetd.\n" + +#: src/namestore/gnunet-namestore-fcfsd.c:1189 +msgid "name of the zone that is to be managed by FCFSD" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:1209 +msgid "GNU Name System First Come First Serve name registration service" +msgstr "" + +#: src/namestore/gnunet-service-namestore.c:866 #, fuzzy, c-format msgid "Failed to replicate block in namecache: %s\n" msgstr "Misslyckades att läsa kompislista från \"%s\"\n" @@ -5609,6 +5609,11 @@ msgstr "" msgid "`upnpc' command not found\n" msgstr "" +#: src/nse/gnunet-nse.c:124 +#, fuzzy +msgid "Show network size estimates from NSE service." +msgstr "# byte mottogs via TCP" + #: src/nse/gnunet-nse-profiler.c:857 #, fuzzy msgid "limit to the number of connections to NSE services, 0 for none" @@ -5626,24 +5631,74 @@ msgstr "" msgid "Number of peers to run in each round, separated by commas" msgstr "" -#: src/nse/gnunet-nse-profiler.c:900 -msgid "delay between rounds" +#: src/nse/gnunet-nse-profiler.c:900 +msgid "delay between rounds" +msgstr "" + +#: src/nse/gnunet-nse-profiler.c:912 +#, fuzzy +msgid "Measure quality and performance of the NSE service." +msgstr "Kan inte tillgå tjänsten" + +#: src/nse/gnunet-service-nse.c:1437 +#: src/revocation/gnunet-service-revocation.c:846 src/util/gnunet-scrypt.c:247 +msgid "Value is too large.\n" +msgstr "" + +#: src/peerinfo/gnunet-service-peerinfo.c:175 +#, fuzzy, c-format +msgid "Removing expired address of transport `%s'\n" +msgstr "Tillgängliga transport(er): %s\n" + +#: src/peerinfo/gnunet-service-peerinfo.c:306 +#, fuzzy, c-format +msgid "Failed to parse HELLO in file `%s': %s\n" +msgstr "Misslyckades att läsa kompislista från \"%s\"\n" + +#: src/peerinfo/gnunet-service-peerinfo.c:323 +#: src/peerinfo/gnunet-service-peerinfo.c:348 +#, fuzzy, c-format +msgid "Failed to parse HELLO in file `%s'\n" +msgstr "Misslyckades att läsa kompislista från \"%s\"\n" + +#: src/peerinfo/gnunet-service-peerinfo.c:426 +msgid "# peers known" +msgstr "" + +#: src/peerinfo/gnunet-service-peerinfo.c:468 +#, c-format +msgid "" +"File `%s' in directory `%s' does not match naming convention. Removed.\n" +msgstr "" + +#: src/peerinfo/gnunet-service-peerinfo.c:624 +#, fuzzy, c-format +msgid "Scanning directory `%s'\n" +msgstr "Misslyckades att läsa kompislista från \"%s\"\n" + +#: src/peerinfo/gnunet-service-peerinfo.c:631 +#, c-format +msgid "Still no peers found in `%s'!\n" +msgstr "" + +#: src/peerinfo/gnunet-service-peerinfo.c:1024 +#, fuzzy, c-format +msgid "Cleaning up directory `%s'\n" +msgstr "Misslyckades att läsa kompislista från \"%s\"\n" + +#: src/peerinfo/gnunet-service-peerinfo.c:1319 +#, c-format +msgid "Importing HELLOs from `%s'\n" msgstr "" -#: src/nse/gnunet-nse-profiler.c:912 -#, fuzzy -msgid "Measure quality and performance of the NSE service." -msgstr "Kan inte tillgå tjänsten" +#: src/peerinfo/gnunet-service-peerinfo.c:1332 +msgid "Skipping import of included HELLOs\n" +msgstr "" -#: src/nse/gnunet-nse.c:124 +#: src/peerinfo/peerinfo_api.c:217 #, fuzzy -msgid "Show network size estimates from NSE service." -msgstr "# byte mottogs via TCP" - -#: src/nse/gnunet-service-nse.c:1437 -#: src/revocation/gnunet-service-revocation.c:846 src/util/gnunet-scrypt.c:247 -msgid "Value is too large.\n" -msgstr "" +msgid "Failed to receive response from `PEERINFO' service." +msgstr "Misslyckades att ta emot svar till \"%s\" meddelande från gnunetd\n" #: src/peerinfo-tool/gnunet-peerinfo.c:237 #, fuzzy, c-format @@ -5741,61 +5796,6 @@ msgstr "Kunde inte slå upp \"%s\": %s\n" msgid "Peerinfo REST API initialized\n" msgstr " Anslutning misslyckades\n" -#: src/peerinfo/gnunet-service-peerinfo.c:175 -#, fuzzy, c-format -msgid "Removing expired address of transport `%s'\n" -msgstr "Tillgängliga transport(er): %s\n" - -#: src/peerinfo/gnunet-service-peerinfo.c:306 -#, fuzzy, c-format -msgid "Failed to parse HELLO in file `%s': %s\n" -msgstr "Misslyckades att läsa kompislista från \"%s\"\n" - -#: src/peerinfo/gnunet-service-peerinfo.c:323 -#: src/peerinfo/gnunet-service-peerinfo.c:348 -#, fuzzy, c-format -msgid "Failed to parse HELLO in file `%s'\n" -msgstr "Misslyckades att läsa kompislista från \"%s\"\n" - -#: src/peerinfo/gnunet-service-peerinfo.c:426 -msgid "# peers known" -msgstr "" - -#: src/peerinfo/gnunet-service-peerinfo.c:468 -#, c-format -msgid "" -"File `%s' in directory `%s' does not match naming convention. Removed.\n" -msgstr "" - -#: src/peerinfo/gnunet-service-peerinfo.c:624 -#, fuzzy, c-format -msgid "Scanning directory `%s'\n" -msgstr "Misslyckades att läsa kompislista från \"%s\"\n" - -#: src/peerinfo/gnunet-service-peerinfo.c:631 -#, c-format -msgid "Still no peers found in `%s'!\n" -msgstr "" - -#: src/peerinfo/gnunet-service-peerinfo.c:1024 -#, fuzzy, c-format -msgid "Cleaning up directory `%s'\n" -msgstr "Misslyckades att läsa kompislista från \"%s\"\n" - -#: src/peerinfo/gnunet-service-peerinfo.c:1319 -#, c-format -msgid "Importing HELLOs from `%s'\n" -msgstr "" - -#: src/peerinfo/gnunet-service-peerinfo.c:1332 -msgid "Skipping import of included HELLOs\n" -msgstr "" - -#: src/peerinfo/peerinfo_api.c:217 -#, fuzzy -msgid "Failed to receive response from `PEERINFO' service." -msgstr "Misslyckades att ta emot svar till \"%s\" meddelande från gnunetd\n" - #: src/peerstore/gnunet-peerstore.c:92 msgid "peerstore" msgstr "" @@ -6233,6 +6233,18 @@ msgstr "" msgid "Could not open revocation database file!" msgstr "Kunde inte ansluta till gnunetd.\n" +#: src/rps/gnunet-rps.c:270 +msgid "Seed a PeerID" +msgstr "" + +#: src/rps/gnunet-rps.c:275 +msgid "Get updates of view (0 for infinite updates)" +msgstr "" + +#: src/rps/gnunet-rps.c:279 +msgid "Get peers from biased stream" +msgstr "" + #: src/rps/gnunet-rps-profiler.c:3200 msgid "duration of the profiling" msgstr "" @@ -6252,18 +6264,6 @@ msgstr "antal iterationer" msgid "Measure quality and performance of the RPS service." msgstr "Kan inte tillgå tjänsten" -#: src/rps/gnunet-rps.c:270 -msgid "Seed a PeerID" -msgstr "" - -#: src/rps/gnunet-rps.c:275 -msgid "Get updates of view (0 for infinite updates)" -msgstr "" - -#: src/rps/gnunet-rps.c:279 -msgid "Get peers from biased stream" -msgstr "" - #: src/scalarproduct/gnunet-scalarproduct.c:229 #, fuzzy msgid "You must specify at least one message ID to check!\n" @@ -6319,10 +6319,10 @@ msgstr "" msgid "Calculate the Vectorproduct with a GNUnet peer." msgstr "" -#: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1127 -#: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1073 #: src/scalarproduct/gnunet-service-scalarproduct_alice.c:1363 #: src/scalarproduct/gnunet-service-scalarproduct_bob.c:1366 +#: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1127 +#: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1073 #, fuzzy msgid "Connect to CADET failed\n" msgstr " Anslutning misslyckades (fel?)\n" @@ -6666,6 +6666,16 @@ msgstr "" msgid "%.s Unknown result code." msgstr "" +#: src/testbed/gnunet_testbed_mpi_spawn.c:119 +#, fuzzy +msgid "Waiting for child to exit.\n" +msgstr "Väntar på att motparter ska ansluta (%u iterationer kvar)...\n" + +#: src/testbed/gnunet_testbed_mpi_spawn.c:242 +#, fuzzy, c-format +msgid "Spawning process `%s'\n" +msgstr "Startade samling \"%s\".\n" + #: src/testbed/gnunet-testbed-profiler.c:290 msgid "tolerate COUNT number of continious timeout failures" msgstr "" @@ -6677,16 +6687,6 @@ msgid "" "signal is received" msgstr "" -#: src/testbed/gnunet_testbed_mpi_spawn.c:119 -#, fuzzy -msgid "Waiting for child to exit.\n" -msgstr "Väntar på att motparter ska ansluta (%u iterationer kvar)...\n" - -#: src/testbed/gnunet_testbed_mpi_spawn.c:242 -#, fuzzy, c-format -msgid "Spawning process `%s'\n" -msgstr "Startade samling \"%s\".\n" - #: src/testbed/testbed_api.c:399 #, fuzzy, c-format msgid "Adding host %u failed with error: %s\n" @@ -7020,6 +7020,10 @@ msgstr "Kunde inte skapa namnrymd \"%s\" (existerar?).\n" msgid "GNUnet UNIX domain socket communicator" msgstr "" +#: src/transport/gnunet-service-transport_ats.c:137 +msgid "# Addresses given to ATS" +msgstr "" + #: src/transport/gnunet-service-transport.c:445 msgid "# messages dropped due to slow client" msgstr "" @@ -7063,10 +7067,6 @@ msgstr "Motpart \"%s\" med pålitlighet %8u och adress \"%s\"\n" msgid "Adding blacklisting entry for peer `%s':`%s'\n" msgstr "" -#: src/transport/gnunet-service-transport_ats.c:137 -msgid "# Addresses given to ATS" -msgstr "" - #: src/transport/gnunet-service-transport_hello.c:195 msgid "# refreshed my HELLO" msgstr "" @@ -7403,46 +7403,6 @@ msgstr "" msgid "# HELLOs given to peerinfo" msgstr "Meddelande mottaget från klient är ogiltig.\n" -#: src/transport/gnunet-transport-profiler.c:220 -#, c-format -msgid "%llu B in %llu ms == %.2f KB/s!\n" -msgstr "" - -#: src/transport/gnunet-transport-profiler.c:577 -msgid "send data to peer" -msgstr "" - -#: src/transport/gnunet-transport-profiler.c:581 -#, fuzzy -msgid "receive data from peer" -msgstr "# byte mottagna av typen %d" - -#: src/transport/gnunet-transport-profiler.c:586 -#, fuzzy -msgid "iterations" -msgstr "Visa alla alternativ" - -#: src/transport/gnunet-transport-profiler.c:591 -#, fuzzy -msgid "number of messages to send" -msgstr "antal meddelanden att använda per iteration" - -#: src/transport/gnunet-transport-profiler.c:596 -#, fuzzy -msgid "message size to use" -msgstr "meddelandestorlek" - -#: src/transport/gnunet-transport-profiler.c:601 -#: src/transport/gnunet-transport.c:1404 -msgid "peer identity" -msgstr "" - -#: src/transport/gnunet-transport-profiler.c:614 -#: src/transport/gnunet-transport.c:1426 -#, fuzzy -msgid "Direct access to transport service." -msgstr "Misslyckades att ansluta till gnunetd.\n" - #: src/transport/gnunet-transport.c:406 #, fuzzy, c-format msgid "Transmitted %llu bytes/s (%llu bytes in %s)\n" @@ -7582,6 +7542,11 @@ msgstr "Skriv ut information om GNUnets motparter." msgid "do not resolve hostnames" msgstr "Misslyckades att läsa kompislista från \"%s\"\n" +#: src/transport/gnunet-transport.c:1404 +#: src/transport/gnunet-transport-profiler.c:601 +msgid "peer identity" +msgstr "" + #: src/transport/gnunet-transport.c:1408 msgid "monitor plugin sessions" msgstr "" @@ -7590,6 +7555,41 @@ msgstr "" msgid "send data for benchmarking to the other peer (until CTRL-C)" msgstr "" +#: src/transport/gnunet-transport.c:1426 +#: src/transport/gnunet-transport-profiler.c:614 +#, fuzzy +msgid "Direct access to transport service." +msgstr "Misslyckades att ansluta till gnunetd.\n" + +#: src/transport/gnunet-transport-profiler.c:220 +#, c-format +msgid "%llu B in %llu ms == %.2f KB/s!\n" +msgstr "" + +#: src/transport/gnunet-transport-profiler.c:577 +msgid "send data to peer" +msgstr "" + +#: src/transport/gnunet-transport-profiler.c:581 +#, fuzzy +msgid "receive data from peer" +msgstr "# byte mottagna av typen %d" + +#: src/transport/gnunet-transport-profiler.c:586 +#, fuzzy +msgid "iterations" +msgstr "Visa alla alternativ" + +#: src/transport/gnunet-transport-profiler.c:591 +#, fuzzy +msgid "number of messages to send" +msgstr "antal meddelanden att använda per iteration" + +#: src/transport/gnunet-transport-profiler.c:596 +#, fuzzy +msgid "message size to use" +msgstr "meddelandestorlek" + #: src/transport/plugin_transport_http_client.c:1489 #: src/transport/plugin_transport_http_server.c:2331 #: src/transport/plugin_transport_http_server.c:3562 @@ -7877,6 +7877,21 @@ msgstr "" msgid "TCP transport advertises itself as being on port %llu\n" msgstr "" +#: src/transport/plugin_transport_udp_broadcasting.c:169 +#, fuzzy +msgid "# Multicast HELLO beacons received via UDP" +msgstr "# krypterade PONG-meddelanden mottagna" + +#: src/transport/plugin_transport_udp_broadcasting.c:553 +msgid "" +"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n" +msgstr "" + +#: src/transport/plugin_transport_udp_broadcasting.c:571 +#, c-format +msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n" +msgstr "" + #: src/transport/plugin_transport_udp.c:3169 #, c-format msgid "" @@ -7925,21 +7940,6 @@ msgstr "\"%s\" är inte tillgänglig." msgid "Failed to create UDP network sockets\n" msgstr "Kunde inte skapa namnrymd \"%s\" (existerar?).\n" -#: src/transport/plugin_transport_udp_broadcasting.c:169 -#, fuzzy -msgid "# Multicast HELLO beacons received via UDP" -msgstr "# krypterade PONG-meddelanden mottagna" - -#: src/transport/plugin_transport_udp_broadcasting.c:553 -msgid "" -"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n" -msgstr "" - -#: src/transport/plugin_transport_udp_broadcasting.c:571 -#, c-format -msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n" -msgstr "" - #: src/transport/plugin_transport_unix.c:1396 #, fuzzy, c-format msgid "Cannot bind to `%s'\n" @@ -8028,17 +8028,17 @@ msgid "Accepting connection from `%s': %p\n" msgstr "" # drive = hard drive ? -#: src/transport/tcp_server_legacy.c:478 src/util/service.c:1400 +#: src/transport/tcp_server_legacy.c:478 src/util/service.c:1397 #, fuzzy, c-format msgid "`%s' failed for port %d (%s).\n" msgstr "\"%s\" misslyckades för enhet %s: %u\n" -#: src/transport/tcp_server_legacy.c:488 src/util/service.c:1412 +#: src/transport/tcp_server_legacy.c:488 src/util/service.c:1409 #, fuzzy, c-format msgid "`%s' failed for port %d (%s): address already in use\n" msgstr "\"%s\" misslyckades för port %d: %s. Körs verkligen gnunetd?\n" -#: src/transport/tcp_server_legacy.c:494 src/util/service.c:1419 +#: src/transport/tcp_server_legacy.c:494 src/util/service.c:1416 #, fuzzy, c-format msgid "`%s' failed for `%s': address already in use\n" msgstr "\"%s\" misslyckades för port %d: %s. Körs verkligen gnunetd?\n" @@ -8050,7 +8050,7 @@ msgid "" "`GNUNET_SERVER_receive_done' after %s\n" msgstr "" -#: src/transport/tcp_service_legacy.c:345 src/util/service.c:837 +#: src/transport/tcp_service_legacy.c:345 src/util/service.c:834 #, fuzzy, c-format msgid "Unknown address family %d\n" msgstr "Okänd operation \"%s\"\n" @@ -8060,23 +8060,23 @@ msgstr "Okänd operation \"%s\"\n" msgid "Access from `%s' denied to service `%s'\n" msgstr "" -#: src/transport/tcp_service_legacy.c:410 src/util/service.c:950 +#: src/transport/tcp_service_legacy.c:410 src/util/service.c:947 #, c-format msgid "Could not parse IPv4 network specification `%s' for `%s:%s'\n" msgstr "" -#: src/transport/tcp_service_legacy.c:451 src/util/service.c:991 +#: src/transport/tcp_service_legacy.c:451 src/util/service.c:988 #, c-format msgid "Could not parse IPv6 network specification `%s' for `%s:%s'\n" msgstr "" #: src/transport/tcp_service_legacy.c:890 -#: src/transport/tcp_service_legacy.c:910 src/util/service.c:1480 +#: src/transport/tcp_service_legacy.c:910 src/util/service.c:1477 #, c-format msgid "Specified value for `%s' of service `%s' is invalid\n" msgstr "" -#: src/transport/tcp_service_legacy.c:935 src/util/service.c:1504 +#: src/transport/tcp_service_legacy.c:935 src/util/service.c:1501 #, c-format msgid "Could not access pre-bound socket %u, will try to bind myself\n" msgstr "" @@ -8091,45 +8091,45 @@ msgstr "Fel vid %s:%d.\n" msgid "Service `%s' runs at %s\n" msgstr "Motpart \"%s\" med pålitlighet %8u och adress \"%s\"\n" -#: src/transport/tcp_service_legacy.c:1193 src/util/service.c:1750 +#: src/transport/tcp_service_legacy.c:1193 src/util/service.c:1747 msgid "Service process failed to initialize\n" msgstr "" -#: src/transport/tcp_service_legacy.c:1198 src/util/service.c:1755 +#: src/transport/tcp_service_legacy.c:1198 src/util/service.c:1752 msgid "Service process could not initialize server function\n" msgstr "" -#: src/transport/tcp_service_legacy.c:1203 src/util/service.c:1760 +#: src/transport/tcp_service_legacy.c:1203 src/util/service.c:1757 msgid "Service process failed to report status\n" msgstr "" #: src/transport/tcp_service_legacy.c:1253 src/util/disk.c:1177 -#: src/util/service.c:1641 +#: src/util/service.c:1638 #, fuzzy, c-format msgid "Cannot obtain information about user `%s': %s\n" msgstr "Kan inte öppna konfigurationsfil \"%s\".\n" -#: src/transport/tcp_service_legacy.c:1255 src/util/service.c:1643 +#: src/transport/tcp_service_legacy.c:1255 src/util/service.c:1640 msgid "No such user" msgstr "" -#: src/transport/tcp_service_legacy.c:1269 src/util/service.c:1657 +#: src/transport/tcp_service_legacy.c:1269 src/util/service.c:1654 #, c-format msgid "Cannot change user/group to `%s': %s\n" msgstr "Kan inte ändra användare/grupp till \"%s\": %s\n" -#: src/transport/tcp_service_legacy.c:1348 src/util/service.c:1999 +#: src/transport/tcp_service_legacy.c:1348 src/util/service.c:1996 msgid "do daemonize (detach from terminal)" msgstr "" #: src/transport/tcp_service_legacy.c:1397 -#: src/transport/transport-testing2.c:906 src/util/service.c:2073 -#: src/util/service.c:2085 +#: src/transport/transport-testing2.c:906 src/util/service.c:2070 +#: src/util/service.c:2082 #, fuzzy, c-format msgid "Malformed configuration file `%s', exit ...\n" msgstr "Kunde inte spara konfigurationsfil \"%s\":" -#: src/transport/tcp_service_legacy.c:1407 src/util/service.c:2095 +#: src/transport/tcp_service_legacy.c:1407 src/util/service.c:2092 #, fuzzy msgid "Malformed configuration, exit ...\n" msgstr "Kunde inte spara konfigurationsfil \"%s\":" @@ -8173,105 +8173,105 @@ msgstr "" msgid "Metadata `%s' failed to deserialize" msgstr "" -#: src/util/client.c:739 src/util/client.c:931 +#: src/util/client.c:747 src/util/client.c:937 msgid "not a valid filename" msgstr "" -#: src/util/client.c:1097 +#: src/util/client.c:1103 #, c-format msgid "Need a non-empty hostname for service `%s'.\n" msgstr "" -#: src/util/common_logging.c:259 src/util/common_logging.c:1116 +#: src/util/common_logging.c:259 src/util/common_logging.c:1112 msgid "DEBUG" msgstr "FELSÖKNING" -#: src/util/common_logging.c:261 src/util/common_logging.c:1114 +#: src/util/common_logging.c:261 src/util/common_logging.c:1110 msgid "INFO" msgstr "INFO" -#: src/util/common_logging.c:263 src/util/common_logging.c:1112 +#: src/util/common_logging.c:263 src/util/common_logging.c:1108 msgid "MESSAGE" msgstr "MEDDELANDE" -#: src/util/common_logging.c:265 src/util/common_logging.c:1110 +#: src/util/common_logging.c:265 src/util/common_logging.c:1106 msgid "WARNING" msgstr "VARNING" -#: src/util/common_logging.c:267 src/util/common_logging.c:1108 +#: src/util/common_logging.c:267 src/util/common_logging.c:1104 msgid "ERROR" msgstr "FEL" -#: src/util/common_logging.c:269 src/util/common_logging.c:1118 +#: src/util/common_logging.c:269 src/util/common_logging.c:1114 msgid "NONE" msgstr "" -#: src/util/common_logging.c:630 src/util/common_logging.c:669 +#: src/util/common_logging.c:626 src/util/common_logging.c:665 #, c-format msgid "ERROR: Unable to parse log definition: Syntax error at `%s'.\n" msgstr "" -#: src/util/common_logging.c:906 +#: src/util/common_logging.c:902 #, c-format msgid "Message `%.*s' repeated %u times in the last %s\n" msgstr "" -#: src/util/common_logging.c:1119 +#: src/util/common_logging.c:1115 msgid "INVALID" msgstr "" -#: src/util/common_logging.c:1400 +#: src/util/common_logging.c:1396 msgid "unknown address" msgstr "" -#: src/util/common_logging.c:1445 +#: src/util/common_logging.c:1441 msgid "invalid address" msgstr "" -#: src/util/common_logging.c:1464 +#: src/util/common_logging.c:1460 #, fuzzy, c-format msgid "Configuration fails to specify option `%s' in section `%s'!\n" msgstr "Konfigurationsfil \"%s\" skapad.\n" -#: src/util/common_logging.c:1487 +#: src/util/common_logging.c:1483 #, fuzzy, c-format msgid "" "Configuration specifies invalid value for option `%s' in section `%s': %s\n" msgstr "Konfigurationsfil \"%s\" hittades inte. Kör \"gnunet-setup -d\"!\n" -#: src/util/configuration.c:325 +#: src/util/configuration.c:402 #, fuzzy, c-format msgid "Syntax error while deserializing in line %u\n" msgstr "Syntaxfel i konfigurationsfil \"%s\" på rad %d.\n" -#: src/util/configuration.c:383 +#: src/util/configuration.c:460 #, fuzzy, c-format msgid "Error while reading file `%s'\n" msgstr "Fel vid nedladdning: %s\n" -#: src/util/configuration.c:986 +#: src/util/configuration.c:1063 #, fuzzy msgid "Not a valid relative time specification" msgstr "Konfigurationsfil \"%s\" skapad.\n" -#: src/util/configuration.c:1077 +#: src/util/configuration.c:1154 #, c-format msgid "" "Configuration value '%s' for '%s' in section '%s' is not in set of legal " "choices\n" msgstr "" -#: src/util/configuration.c:1192 +#: src/util/configuration.c:1269 #, c-format msgid "Recursive expansion suspected, aborting $-expansion for term `%s'\n" msgstr "" -#: src/util/configuration.c:1224 +#: src/util/configuration.c:1301 #, fuzzy, c-format msgid "Missing closing `%s' in option `%s'\n" msgstr "Konfigurationsfil \"%s\" skapad.\n" -#: src/util/configuration.c:1290 +#: src/util/configuration.c:1367 #, c-format msgid "" "Failed to expand `%s' in `%s' as it is neither found in [PATHS] nor defined " @@ -8335,7 +8335,7 @@ msgstr "libgcrypt har inte den förväntande versionen (version %s krävs).\n" msgid "RSA signing failed at %s:%d: %s\n" msgstr "\"%s\" misslyckades vid %s:%d med fel: \"%s\".\n" -#: src/util/crypto_rsa.c:1313 +#: src/util/crypto_rsa.c:1314 #, fuzzy, c-format msgid "RSA signature verification failed at %s:%d: %s\n" msgstr "\"%s\" misslyckades vid %s:%d med fel: \"%s\".\n" @@ -8440,11 +8440,11 @@ msgstr "Kommando \"%s\" kräver ett argument (\"%s\").\n" msgid "Missing mandatory option `%s'.\n" msgstr "Konfigurationsfil \"%s\" skapad.\n" -#: src/util/getopt_helpers.c:68 +#: src/util/getopt_helpers.c:69 msgid "print the version number" msgstr "skriv ut versionsnummer" -#: src/util/getopt_helpers.c:114 +#: src/util/getopt_helpers.c:116 #, c-format msgid "" "Arguments mandatory for long options are also mandatory for short options.\n" @@ -8452,54 +8452,62 @@ msgstr "" "Argument som är obligatoriska för långa flaggor är också obligatoriska för " "korta flaggor.\n" -#: src/util/getopt_helpers.c:205 +#: src/util/getopt_helpers.c:208 msgid "print this help" msgstr "skriv ut denna hjälp" -#: src/util/getopt_helpers.c:281 +#: src/util/getopt_helpers.c:288 msgid "be verbose" msgstr "var informativ" -#: src/util/getopt_helpers.c:417 +#: src/util/getopt_helpers.c:429 msgid "configure logging to use LOGLEVEL" msgstr "" -#: src/util/getopt_helpers.c:495 +#: src/util/getopt_helpers.c:510 msgid "configure logging to write logs to FILENAME" msgstr "" -#: src/util/getopt_helpers.c:516 +#: src/util/getopt_helpers.c:532 #, fuzzy msgid "use configuration file FILENAME" msgstr "skriv ut ett värde från konfigurationsfilen till standard ut" -#: src/util/getopt_helpers.c:551 src/util/getopt_helpers.c:747 -#: src/util/getopt_helpers.c:810 +#: src/util/getopt_helpers.c:568 src/util/getopt_helpers.c:634 +#: src/util/getopt_helpers.c:835 src/util/getopt_helpers.c:900 #, c-format msgid "You must pass a number to the `%s' option.\n" msgstr "Du måste skicka med ett nummer till flaggan \"%s\".\n" -#: src/util/getopt_helpers.c:612 +#: src/util/getopt_helpers.c:659 +msgid "[+/-]MICROSECONDS" +msgstr "" + +#: src/util/getopt_helpers.c:661 +msgid "modify system time by given offset (for debugging/testing only)" +msgstr "" + +#: src/util/getopt_helpers.c:696 #, fuzzy, c-format msgid "You must pass relative time to the `%s' option.\n" msgstr "Du måste skicka med ett nummer till flaggan \"%s\".\n" -#: src/util/getopt_helpers.c:675 +#: src/util/getopt_helpers.c:761 #, fuzzy, c-format msgid "You must pass absolute time to the `%s' option.\n" msgstr "Du måste skicka med ett nummer till flaggan \"%s\".\n" -#: src/util/getopt_helpers.c:740 +#: src/util/getopt_helpers.c:828 #, c-format -msgid "Your input for the '%s' option has to be a non negative number \n" +msgid "Your input for the '%s' option has to be a non negative number\n" msgstr "" -#: src/util/getopt_helpers.c:817 +#: src/util/getopt_helpers.c:907 #, fuzzy, c-format msgid "You must pass a number below %u to the `%s' option.\n" msgstr "Du måste skicka med ett nummer till flaggan \"%s\".\n" -#: src/util/getopt_helpers.c:902 +#: src/util/getopt_helpers.c:994 #, c-format msgid "Argument `%s' malformed. Expected base32 (Crockford) encoded value.\n" msgstr "" @@ -8839,14 +8847,14 @@ msgstr "" msgid "Could not resolve our FQDN: %s\n" msgstr "Kunde inte slå upp \"%s\": %s\n" -#: src/util/service.c:657 +#: src/util/service.c:654 #, c-format msgid "" "Processing code for message of type %u did not call " "`GNUNET_SERVICE_client_continue' after %s\n" msgstr "" -#: src/util/service.c:1572 +#: src/util/service.c:1569 msgid "" "Could not bind to any of the ports I was supposed to, refusing to run!\n" msgstr "" @@ -9166,8 +9174,8 @@ msgstr "# byte mottagna via UDP" msgid "Setup tunnels via VPN." msgstr "" -#: src/zonemaster/gnunet-service-zonemaster-monitor.c:420 #: src/zonemaster/gnunet-service-zonemaster.c:849 +#: src/zonemaster/gnunet-service-zonemaster-monitor.c:420 #, fuzzy msgid "Failed to connect to the namestore!\n" msgstr "Misslyckades att ansluta till gnunetd.\n" diff --git a/po/vi.po b/po/vi.po index 4f14469f8..49888c476 100644 --- a/po/vi.po +++ b/po/vi.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gnunet 0.8.0a\n" "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n" -"POT-Creation-Date: 2020-01-13 14:01+0000\n" +"POT-Creation-Date: 2020-02-13 20:41+0100\n" "PO-Revision-Date: 2008-09-10 22:05+0930\n" "Last-Translator: Clytie Siddall \n" "Language-Team: Vietnamese \n" @@ -30,8 +30,8 @@ msgid "Issuer public key `%s' is not well-formed\n" msgstr "Đối số không hợp lệ cho « %s ».\n" #: src/abd/gnunet-abd.c:558 src/abd/gnunet-service-abd.c:1747 -#: src/namestore/gnunet-namestore-fcfsd.c:1153 #: src/namestore/gnunet-namestore.c:1001 +#: src/namestore/gnunet-namestore-fcfsd.c:1153 #, fuzzy, c-format msgid "Failed to connect to namestore\n" msgstr "Không kết nối được đến trình nền gnunetd." @@ -143,7 +143,7 @@ msgstr "" msgid "GNUnet abd resolver tool" msgstr "Bản ghi lỗi GNUnet" -#: src/abd/gnunet-service-abd.c:1742 src/gns/gnunet-gns.c:288 +#: src/abd/gnunet-service-abd.c:1742 src/gns/gnunet-gns.c:292 #, fuzzy, c-format msgid "Failed to connect to GNS\n" msgstr "Lỗi kết nối đến gnunetd.\n" @@ -392,28 +392,28 @@ msgstr "" #: src/transport/plugin_transport_tcp.c:1129 #: src/transport/plugin_transport_tcp.c:3706 #: src/transport/tcp_service_legacy.c:594 -#: src/transport/tcp_service_legacy.c:600 src/util/service.c:1094 -#: src/util/service.c:1100 +#: src/transport/tcp_service_legacy.c:600 src/util/service.c:1091 +#: src/util/service.c:1097 #, c-format msgid "Require valid port number for service `%s' in configuration!\n" msgstr "" #: src/arm/gnunet-service-arm.c:452 src/transport/plugin_transport_tcp.c:1163 -#: src/transport/tcp_service_legacy.c:634 src/util/client.c:519 -#: src/util/service.c:1133 +#: src/transport/tcp_service_legacy.c:634 src/util/client.c:527 +#: src/util/service.c:1130 #, c-format msgid "UNIXPATH `%s' too long, maximum length is %llu\n" msgstr "" #: src/arm/gnunet-service-arm.c:456 src/transport/plugin_transport_tcp.c:1167 -#: src/transport/tcp_service_legacy.c:638 src/util/client.c:524 -#: src/util/service.c:1137 +#: src/transport/tcp_service_legacy.c:638 src/util/client.c:532 +#: src/util/service.c:1134 #, fuzzy, c-format msgid "Using `%s' instead\n" msgstr "%s: tùy chọn « %s » là mơ hồ\n" #: src/arm/gnunet-service-arm.c:484 src/transport/plugin_transport_tcp.c:1195 -#: src/transport/tcp_service_legacy.c:666 src/util/service.c:1157 +#: src/transport/tcp_service_legacy.c:666 src/util/service.c:1154 #, c-format msgid "" "Disabling UNIX domain socket support for service `%s', failed to create UNIX " @@ -421,7 +421,7 @@ msgid "" msgstr "" #: src/arm/gnunet-service-arm.c:505 src/transport/plugin_transport_tcp.c:1213 -#: src/transport/tcp_service_legacy.c:684 src/util/service.c:1175 +#: src/transport/tcp_service_legacy.c:684 src/util/service.c:1172 #, c-format msgid "Have neither PORT nor UNIXPATH for service `%s', but one is required\n" msgstr "" @@ -429,7 +429,7 @@ msgstr "" #: src/arm/gnunet-service-arm.c:536 #: src/transport/plugin_transport_http_server.c:2718 #: src/transport/plugin_transport_tcp.c:1244 -#: src/transport/tcp_service_legacy.c:715 src/util/service.c:1206 +#: src/transport/tcp_service_legacy.c:715 src/util/service.c:1203 #, fuzzy, c-format msgid "Failed to resolve `%s': %s\n" msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n" @@ -437,7 +437,7 @@ msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n" #: src/arm/gnunet-service-arm.c:555 #: src/transport/plugin_transport_http_server.c:2736 #: src/transport/plugin_transport_tcp.c:1263 -#: src/transport/tcp_service_legacy.c:734 src/util/service.c:1225 +#: src/transport/tcp_service_legacy.c:734 src/util/service.c:1222 #, fuzzy, c-format msgid "Failed to find %saddress for `%s'.\n" msgstr "Lỗi đóng kết đến cổng %s %d.\n" @@ -509,15 +509,82 @@ msgstr "" msgid "Initiating shutdown as requested by client.\n" msgstr "" -#: src/ats-tests/ats-testing-log.c:896 +#: src/ats/gnunet-ats-solver-eval.c:2992 src/ats/gnunet-ats-solver-eval.c:3044 +#, c-format +msgid "" +"Could not load quota for network `%s': `%s', assigning default bandwidth " +"%llu\n" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3011 +#, c-format +msgid "" +"No outbound quota configured for network `%s', assigning default bandwidth " +"%llu\n" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3063 +#, c-format +msgid "" +"No outbound quota configure for network `%s', assigning default bandwidth " +"%llu\n" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3552 src/ats-tests/gnunet-solver-eval.c:997 +msgid "solver to use" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3557 +#: src/ats-tests/gnunet-solver-eval.c:1003 +#: src/ats-tests/gnunet-solver-eval.c:1008 +msgid "experiment to use" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3564 #, fuzzy -msgid "Stop logging\n" +msgid "print logging" msgstr "Theo dõi" -#: src/ats-tests/ats-testing-log.c:952 +#: src/ats/gnunet-ats-solver-eval.c:3569 +msgid "save logging to disk" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3574 +msgid "disable normalization" +msgstr "" + +#: src/ats/gnunet-service-ats_plugins.c:326 +#, c-format +msgid "" +"Could not load %s quota for network `%s': `%s', assigning default bandwidth " +"%llu\n" +msgstr "" + +#: src/ats/gnunet-service-ats_plugins.c:336 +#, c-format +msgid "%s quota configured for network `%s' is %llu\n" +msgstr "" + +#: src/ats/gnunet-service-ats_plugins.c:382 +#, c-format +msgid "" +"No %s-quota configured for network `%s', assigning default bandwidth %llu\n" +msgstr "" + +#: src/ats/gnunet-service-ats_plugins.c:474 #, fuzzy, c-format -msgid "Start logging `%s'\n" -msgstr "Đang bắt đầu tài về « %s »\n" +msgid "Failed to initialize solver `%s'!\n" +msgstr "Không thể sơ khởi SQLite: %s.\n" + +#: src/ats/plugin_ats_proportional.c:1140 +#, fuzzy, c-format +msgid "Invalid %s configuration %f \n" +msgstr "Không thể lưu tập tin cấu hình « %s »:" + +#: src/ats/plugin_ats_proportional.c:1163 +#, fuzzy, c-format +msgid "Invalid %s configuration %f\n" +msgstr "Không thể lưu tập tin cấu hình « %s »:" #: src/ats-tests/ats-testing.c:420 #, c-format @@ -529,6 +596,16 @@ msgstr "" msgid "Failed to connect master peer [%u] with slave [%u]\n" msgstr "Lỗi kết nối đến gnunetd.\n" +#: src/ats-tests/ats-testing-log.c:896 +#, fuzzy +msgid "Stop logging\n" +msgstr "Theo dõi" + +#: src/ats-tests/ats-testing-log.c:952 +#, fuzzy, c-format +msgid "Start logging `%s'\n" +msgstr "Đang bắt đầu tài về « %s »\n" + #: src/ats-tests/gnunet-ats-sim.c:92 #, c-format msgid "" @@ -536,16 +613,6 @@ msgid "" "= %u KiB/s\n" msgstr "" -#: src/ats-tests/gnunet-solver-eval.c:997 src/ats/gnunet-ats-solver-eval.c:3552 -msgid "solver to use" -msgstr "" - -#: src/ats-tests/gnunet-solver-eval.c:1003 -#: src/ats-tests/gnunet-solver-eval.c:1008 -#: src/ats/gnunet-ats-solver-eval.c:3557 -msgid "experiment to use" -msgstr "" - #: src/ats-tool/gnunet-ats.c:299 #, c-format msgid "%u address resolutions had a timeout\n" @@ -668,73 +735,6 @@ msgstr "" msgid "Print information about ATS state" msgstr "In ra thông tin về các đồng đẳng GNUnet." -#: src/ats/gnunet-ats-solver-eval.c:2992 src/ats/gnunet-ats-solver-eval.c:3044 -#, c-format -msgid "" -"Could not load quota for network `%s': `%s', assigning default bandwidth " -"%llu\n" -msgstr "" - -#: src/ats/gnunet-ats-solver-eval.c:3011 -#, c-format -msgid "" -"No outbound quota configured for network `%s', assigning default bandwidth " -"%llu\n" -msgstr "" - -#: src/ats/gnunet-ats-solver-eval.c:3063 -#, c-format -msgid "" -"No outbound quota configure for network `%s', assigning default bandwidth " -"%llu\n" -msgstr "" - -#: src/ats/gnunet-ats-solver-eval.c:3564 -#, fuzzy -msgid "print logging" -msgstr "Theo dõi" - -#: src/ats/gnunet-ats-solver-eval.c:3569 -msgid "save logging to disk" -msgstr "" - -#: src/ats/gnunet-ats-solver-eval.c:3574 -msgid "disable normalization" -msgstr "" - -#: src/ats/gnunet-service-ats_plugins.c:326 -#, c-format -msgid "" -"Could not load %s quota for network `%s': `%s', assigning default bandwidth " -"%llu\n" -msgstr "" - -#: src/ats/gnunet-service-ats_plugins.c:336 -#, c-format -msgid "%s quota configured for network `%s' is %llu\n" -msgstr "" - -#: src/ats/gnunet-service-ats_plugins.c:382 -#, c-format -msgid "" -"No %s-quota configured for network `%s', assigning default bandwidth %llu\n" -msgstr "" - -#: src/ats/gnunet-service-ats_plugins.c:474 -#, fuzzy, c-format -msgid "Failed to initialize solver `%s'!\n" -msgstr "Không thể sơ khởi SQLite: %s.\n" - -#: src/ats/plugin_ats_proportional.c:1140 -#, fuzzy, c-format -msgid "Invalid %s configuration %f \n" -msgstr "Không thể lưu tập tin cấu hình « %s »:" - -#: src/ats/plugin_ats_proportional.c:1163 -#, fuzzy, c-format -msgid "Invalid %s configuration %f\n" -msgstr "Không thể lưu tập tin cấu hình « %s »:" - #: src/auction/gnunet-auction-create.c:163 msgid "description of the item to be sold" msgstr "" @@ -870,28 +870,6 @@ msgstr "" msgid "Connection to conversation service lost, trying to reconnect\n" msgstr "" -#: src/conversation/gnunet-conversation-test.c:120 -#, c-format -msgid "" -"\n" -"End of transmission. Have a GNU day.\n" -msgstr "" - -#: src/conversation/gnunet-conversation-test.c:146 -#, c-format -msgid "" -"\n" -"We are now playing your recording back. If you can hear it, your audio " -"settings are working..." -msgstr "" - -#: src/conversation/gnunet-conversation-test.c:218 -#, c-format -msgid "" -"We will now be recording you for %s. After that time, the recording will be " -"played back to you..." -msgstr "" - #: src/conversation/gnunet-conversation.c:264 #, c-format msgid "Incoming call from `%s'. Please /accept %u or /cancel %u the call.\n" @@ -1151,8 +1129,30 @@ msgstr "" msgid "Enables having a conversation with other GNUnet users." msgstr "" -#: src/conversation/gnunet-helper-audio-playback-gst.c:363 +#: src/conversation/gnunet-conversation-test.c:120 +#, c-format +msgid "" +"\n" +"End of transmission. Have a GNU day.\n" +msgstr "" + +#: src/conversation/gnunet-conversation-test.c:146 +#, c-format +msgid "" +"\n" +"We are now playing your recording back. If you can hear it, your audio " +"settings are working..." +msgstr "" + +#: src/conversation/gnunet-conversation-test.c:218 +#, c-format +msgid "" +"We will now be recording you for %s. After that time, the recording will be " +"played back to you..." +msgstr "" + #: src/conversation/gnunet_gst.c:664 +#: src/conversation/gnunet-helper-audio-playback-gst.c:363 #, c-format msgid "Read error from STDIN: %d %s\n" msgstr "" @@ -1990,19 +1990,19 @@ msgstr "« %s » bị lỗi tại %s:%d với lỗi: %s\n" msgid "Mysql database running\n" msgstr "" -#: src/datastore/plugin_datastore_postgres.c:277 -#: src/datastore/plugin_datastore_postgres.c:890 +#: src/datastore/plugin_datastore_postgres.c:278 +#: src/datastore/plugin_datastore_postgres.c:891 msgid "Postgress exec failure" msgstr "" -#: src/datastore/plugin_datastore_postgres.c:851 +#: src/datastore/plugin_datastore_postgres.c:852 #, fuzzy msgid "Failed to drop table from database.\n" msgstr "" "\n" "Không nhận được đáp ứng từ gnunetd.\n" -#: src/datastore/plugin_datastore_postgres.c:949 +#: src/datastore/plugin_datastore_postgres.c:950 msgid "Postgres database running\n" msgstr "" @@ -2111,45 +2111,93 @@ msgstr "" msgid "Prints all packets that go through the DHT." msgstr "" -#: src/dht/gnunet-dht-put.c:133 -msgid "Must provide KEY and DATA for DHT put!\n" -msgstr "" - -#: src/dht/gnunet-dht-put.c:140 +#: src/dht/gnunet_dht_profiler.c:922 src/testbed/gnunet-testbed-profiler.c:255 #, fuzzy, c-format -msgid "Could not connect to DHT service!\n" -msgstr "Không thể kết nối tới %s:%u: %s\n" +msgid "Exiting as the number of peers is %u\n" +msgstr "tăng sổ tối đa các kết nối TCP/IP" -#: src/dht/gnunet-dht-put.c:151 -#, c-format -msgid "Issuing put request for `%s' with data `%s'!\n" +#: src/dht/gnunet_dht_profiler.c:955 src/rps/gnunet-rps-profiler.c:3194 +#, fuzzy +msgid "number of peers to start" +msgstr "số lần lặp lại" + +#: src/dht/gnunet_dht_profiler.c:961 +msgid "number of PUTs to perform per peer" msgstr "" -#: src/dht/gnunet-dht-put.c:187 -msgid "the data to insert under the key" +#: src/dht/gnunet_dht_profiler.c:967 src/nse/gnunet-nse-profiler.c:872 +#: src/testbed/gnunet-testbed-profiler.c:305 +msgid "name of the file with the login information for the testbed" msgstr "" -#: src/dht/gnunet-dht-put.c:193 -msgid "how long to store this entry in the dht (in seconds)" +#: src/dht/gnunet_dht_profiler.c:973 +msgid "delay between rounds for collecting statistics (default: 30 sec)" msgstr "" -#: src/dht/gnunet-dht-put.c:208 -msgid "how many replicas to create" +#: src/dht/gnunet_dht_profiler.c:979 +msgid "delay to start doing PUTs (default: 1 sec)" msgstr "" -#: src/dht/gnunet-dht-put.c:212 -msgid "use DHT's record route option" +#: src/dht/gnunet_dht_profiler.c:985 +msgid "delay to start doing GETs (default: 5 min)" msgstr "" -#: src/dht/gnunet-dht-put.c:217 -msgid "the type to insert data as" +#: src/dht/gnunet_dht_profiler.c:990 +msgid "replication degree for DHT PUTs" msgstr "" -#: src/dht/gnunet-dht-put.c:232 -msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY." +#: src/dht/gnunet_dht_profiler.c:996 +msgid "chance that a peer is selected at random for PUTs" msgstr "" -#: src/dht/gnunet-service-dht_clients.c:367 +#: src/dht/gnunet_dht_profiler.c:1002 +msgid "timeout for DHT PUT and GET requests (default: 1 min)" +msgstr "" + +#: src/dht/gnunet_dht_profiler.c:1023 +#, fuzzy +msgid "Measure quality and performance of the DHT service." +msgstr "Không thể truy cập đến dịch vụ" + +#: src/dht/gnunet-dht-put.c:133 +msgid "Must provide KEY and DATA for DHT put!\n" +msgstr "" + +#: src/dht/gnunet-dht-put.c:140 +#, fuzzy, c-format +msgid "Could not connect to DHT service!\n" +msgstr "Không thể kết nối tới %s:%u: %s\n" + +#: src/dht/gnunet-dht-put.c:151 +#, c-format +msgid "Issuing put request for `%s' with data `%s'!\n" +msgstr "" + +#: src/dht/gnunet-dht-put.c:187 +msgid "the data to insert under the key" +msgstr "" + +#: src/dht/gnunet-dht-put.c:193 +msgid "how long to store this entry in the dht (in seconds)" +msgstr "" + +#: src/dht/gnunet-dht-put.c:208 +msgid "how many replicas to create" +msgstr "" + +#: src/dht/gnunet-dht-put.c:212 +msgid "use DHT's record route option" +msgstr "" + +#: src/dht/gnunet-dht-put.c:217 +msgid "the type to insert data as" +msgstr "" + +#: src/dht/gnunet-dht-put.c:232 +msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY." +msgstr "" + +#: src/dht/gnunet-service-dht_clients.c:367 #, fuzzy msgid "# GET requests from clients injected" msgstr "# các yêu cầu get (lấy) dht được nhận" @@ -2382,54 +2430,6 @@ msgstr "" msgid "# DHT requests combined" msgstr "# các yêu cầu get (lấy) dht được nhận" -#: src/dht/gnunet_dht_profiler.c:922 src/testbed/gnunet-testbed-profiler.c:255 -#, fuzzy, c-format -msgid "Exiting as the number of peers is %u\n" -msgstr "tăng sổ tối đa các kết nối TCP/IP" - -#: src/dht/gnunet_dht_profiler.c:955 src/rps/gnunet-rps-profiler.c:3194 -#, fuzzy -msgid "number of peers to start" -msgstr "số lần lặp lại" - -#: src/dht/gnunet_dht_profiler.c:961 -msgid "number of PUTs to perform per peer" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:967 src/nse/gnunet-nse-profiler.c:872 -#: src/testbed/gnunet-testbed-profiler.c:305 -msgid "name of the file with the login information for the testbed" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:973 -msgid "delay between rounds for collecting statistics (default: 30 sec)" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:979 -msgid "delay to start doing PUTs (default: 1 sec)" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:985 -msgid "delay to start doing GETs (default: 5 min)" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:990 -msgid "replication degree for DHT PUTs" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:996 -msgid "chance that a peer is selected at random for PUTs" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:1002 -msgid "timeout for DHT PUT and GET requests (default: 1 min)" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:1023 -#, fuzzy -msgid "Measure quality and performance of the DHT service." -msgstr "Không thể truy cập đến dịch vụ" - #: src/dht/plugin_block_dht.c:189 #, fuzzy, c-format msgid "Block not of type %u\n" @@ -3381,6 +3381,15 @@ msgid "" "chk/...)" msgstr "" +#: src/fs/gnunet-fs.c:128 +msgid "print a list of all indexed files" +msgstr "" + +#: src/fs/gnunet-fs.c:141 +#, fuzzy +msgid "Special file-sharing operations" +msgstr "Tùy chọn chia sẻ tập tin" + #: src/fs/gnunet-fs-profiler.c:211 msgid "run the experiment with COUNT peers" msgstr "" @@ -3397,15 +3406,6 @@ msgstr "" msgid "run a testbed to measure file-sharing performance" msgstr "" -#: src/fs/gnunet-fs.c:128 -msgid "print a list of all indexed files" -msgstr "" - -#: src/fs/gnunet-fs.c:141 -#, fuzzy -msgid "Special file-sharing operations" -msgstr "Tùy chọn chia sẻ tập tin" - #: src/fs/gnunet-publish.c:219 src/fs/gnunet-publish.c:234 #, c-format msgid "Publishing `%s' at %llu/%llu (%s remaining)\n" @@ -4116,6 +4116,52 @@ msgstr "" msgid "look for GNS2DNS records instead of ANY" msgstr "" +#: src/gns/gnunet-gns.c:257 +#, fuzzy, c-format +msgid "`%s' is not a valid DNS domain name\n" +msgstr "« %s » không sẵn sàng.\n" + +#: src/gns/gnunet-gns.c:267 src/util/dnsparser.c:254 +#, fuzzy, c-format +msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n" +msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n" + +#: src/gns/gnunet-gns.c:281 +msgid "Cannot resolve using GNS: GNUnet peer not running\n" +msgstr "" + +#: src/gns/gnunet-gns.c:305 +#, c-format +msgid "Invalid typename specified, assuming `ANY'\n" +msgstr "" + +#: src/gns/gnunet-gns.c:340 +msgid "Lookup a record for the given name" +msgstr "" + +#: src/gns/gnunet-gns.c:346 +#, fuzzy +msgid "Specify the type of the record to lookup" +msgstr "xác định mức ưu tiên của nội dung" + +#: src/gns/gnunet-gns.c:352 +#, fuzzy +msgid "Specify a timeout for the lookup" +msgstr "xác định mức ưu tiên của nội dung" + +#: src/gns/gnunet-gns.c:356 +msgid "No unneeded output" +msgstr "" + +#: src/gns/gnunet-gns.c:361 +msgid "DNS Compatibility: Name is passed in IDNA instead of UTF-8" +msgstr "" + +#: src/gns/gnunet-gns.c:375 +#, fuzzy +msgid "GNUnet GNS resolver tool" +msgstr "Bản ghi lỗi GNUnet" + #: src/gns/gnunet-gns-import.c:486 msgid "This program will import some GNS authorities into your GNS namestore." msgstr "" @@ -4236,52 +4282,6 @@ msgstr "" msgid "GNUnet GNS proxy" msgstr "" -#: src/gns/gnunet-gns.c:253 -#, fuzzy, c-format -msgid "`%s' is not a valid DNS domain name\n" -msgstr "« %s » không sẵn sàng.\n" - -#: src/gns/gnunet-gns.c:263 src/util/dnsparser.c:254 -#, fuzzy, c-format -msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n" -msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n" - -#: src/gns/gnunet-gns.c:277 -msgid "Cannot resolve using GNS: GNUnet peer not running\n" -msgstr "" - -#: src/gns/gnunet-gns.c:301 -#, c-format -msgid "Invalid typename specified, assuming `ANY'\n" -msgstr "" - -#: src/gns/gnunet-gns.c:336 -msgid "Lookup a record for the given name" -msgstr "" - -#: src/gns/gnunet-gns.c:342 -#, fuzzy -msgid "Specify the type of the record to lookup" -msgstr "xác định mức ưu tiên của nội dung" - -#: src/gns/gnunet-gns.c:348 -#, fuzzy -msgid "Specify a timeout for the lookup" -msgstr "xác định mức ưu tiên của nội dung" - -#: src/gns/gnunet-gns.c:352 -msgid "No unneeded output" -msgstr "" - -#: src/gns/gnunet-gns.c:357 -msgid "DNS Compatibility: Name is passed in IDNA instead of UTF-8" -msgstr "" - -#: src/gns/gnunet-gns.c:371 -#, fuzzy -msgid "GNUnet GNS resolver tool" -msgstr "Bản ghi lỗi GNUnet" - #: src/gns/gnunet-service-gns.c:505 #, fuzzy msgid "Properly base32-encoded public key required" @@ -4293,8 +4293,8 @@ msgid "Failed to connect to the namecache!\n" msgstr "Không kết nối được đến trình nền gnunetd." #: src/gns/gnunet-service-gns.c:560 -#: src/zonemaster/gnunet-service-zonemaster-monitor.c:444 #: src/zonemaster/gnunet-service-zonemaster.c:887 +#: src/zonemaster/gnunet-service-zonemaster-monitor.c:444 #, fuzzy msgid "Could not connect to DHT!\n" msgstr "Không thể kết nối tới %s:%u: %s\n" @@ -4354,21 +4354,21 @@ msgstr "" msgid "GNS lookup failed (zero records found for `%s')\n" msgstr "Vẫn còn không tìm thấy đồng đẳng trong « %s ».\n" -#: src/gns/gnunet-service-gns_resolver.c:2376 +#: src/gns/gnunet-service-gns_resolver.c:2372 msgid "GNS lookup recursion failed (no delegation record found)\n" msgstr "" -#: src/gns/gnunet-service-gns_resolver.c:2399 +#: src/gns/gnunet-service-gns_resolver.c:2395 #, fuzzy, c-format msgid "Failed to cache GNS resolution: %s\n" msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n" -#: src/gns/gnunet-service-gns_resolver.c:2567 +#: src/gns/gnunet-service-gns_resolver.c:2563 #, c-format msgid "GNS namecache returned empty result for `%s'\n" msgstr "" -#: src/gns/gnunet-service-gns_resolver.c:2707 +#: src/gns/gnunet-service-gns_resolver.c:2703 #, c-format msgid "Zone %s was revoked, resolution fails\n" msgstr "" @@ -5056,70 +5056,6 @@ msgstr "kho dữ liệu sqlite" msgid "Failed to setup database at `%s'\n" msgstr "Lỗi chạy %s: %s %d\n" -#: src/namestore/gnunet-namestore-fcfsd.c:551 -#, fuzzy, c-format -msgid "Unsupported form value `%s'\n" -msgstr "Lệnh không được hỗ trợ « %s ». Đang hủy bỏ.\n" - -#: src/namestore/gnunet-namestore-fcfsd.c:578 -#, fuzzy, c-format -msgid "Failed to create record for domain `%s': %s\n" -msgstr "Không thể truy cập đến tập tin gnunet-directory « %s »\n" - -#: src/namestore/gnunet-namestore-fcfsd.c:599 -msgid "Error when mapping zone to name\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:631 -#, c-format -msgid "Found existing name `%s' for the given key\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:693 -#, c-format -msgid "Found %u existing records for domain `%s'\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:783 -#, fuzzy, c-format -msgid "Failed to create page for `%s'\n" -msgstr "Không thể tạo miền tên.\n" - -#: src/namestore/gnunet-namestore-fcfsd.c:802 -#, fuzzy, c-format -msgid "Failed to setup post processor for `%s'\n" -msgstr "Lỗi cập nhật dữ liệu cho mô-đun « %s »\n" - -#: src/namestore/gnunet-namestore-fcfsd.c:839 -msgid "Domain name must not contain `.'\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:848 -msgid "Domain name must not contain `+'\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:1083 -msgid "No ego configured for `fcfsd` subsystem\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:1114 -#, fuzzy -msgid "Failed to start HTTP server\n" -msgstr "Lỗi bắt đầu thu thập.\n" - -#: src/namestore/gnunet-namestore-fcfsd.c:1162 -#, fuzzy -msgid "Failed to connect to identity\n" -msgstr "Lỗi kết nối đến gnunetd.\n" - -#: src/namestore/gnunet-namestore-fcfsd.c:1189 -msgid "name of the zone that is to be managed by FCFSD" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:1209 -msgid "GNU Name System First Come First Serve name registration service" -msgstr "" - #: src/namestore/gnunet-namestore.c:334 #, fuzzy, c-format msgid "Adding record failed: %s\n" @@ -5342,7 +5278,71 @@ msgstr "" msgid "name of the ego controlling the zone" msgstr "" -#: src/namestore/gnunet-service-namestore.c:864 +#: src/namestore/gnunet-namestore-fcfsd.c:551 +#, fuzzy, c-format +msgid "Unsupported form value `%s'\n" +msgstr "Lệnh không được hỗ trợ « %s ». Đang hủy bỏ.\n" + +#: src/namestore/gnunet-namestore-fcfsd.c:578 +#, fuzzy, c-format +msgid "Failed to create record for domain `%s': %s\n" +msgstr "Không thể truy cập đến tập tin gnunet-directory « %s »\n" + +#: src/namestore/gnunet-namestore-fcfsd.c:599 +msgid "Error when mapping zone to name\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:631 +#, c-format +msgid "Found existing name `%s' for the given key\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:693 +#, c-format +msgid "Found %u existing records for domain `%s'\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:783 +#, fuzzy, c-format +msgid "Failed to create page for `%s'\n" +msgstr "Không thể tạo miền tên.\n" + +#: src/namestore/gnunet-namestore-fcfsd.c:802 +#, fuzzy, c-format +msgid "Failed to setup post processor for `%s'\n" +msgstr "Lỗi cập nhật dữ liệu cho mô-đun « %s »\n" + +#: src/namestore/gnunet-namestore-fcfsd.c:839 +msgid "Domain name must not contain `.'\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:848 +msgid "Domain name must not contain `+'\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:1083 +msgid "No ego configured for `fcfsd` subsystem\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:1114 +#, fuzzy +msgid "Failed to start HTTP server\n" +msgstr "Lỗi bắt đầu thu thập.\n" + +#: src/namestore/gnunet-namestore-fcfsd.c:1162 +#, fuzzy +msgid "Failed to connect to identity\n" +msgstr "Lỗi kết nối đến gnunetd.\n" + +#: src/namestore/gnunet-namestore-fcfsd.c:1189 +msgid "name of the zone that is to be managed by FCFSD" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:1209 +msgid "GNU Name System First Come First Serve name registration service" +msgstr "" + +#: src/namestore/gnunet-service-namestore.c:866 #, fuzzy, c-format msgid "Failed to replicate block in namecache: %s\n" msgstr "Lỗi cập nhật dữ liệu cho mô-đun « %s »\n" @@ -5661,6 +5661,11 @@ msgstr "" msgid "`upnpc' command not found\n" msgstr "" +#: src/nse/gnunet-nse.c:124 +#, fuzzy +msgid "Show network size estimates from NSE service." +msgstr "# các yêu cầu get (lấy) dht được nhận" + #: src/nse/gnunet-nse-profiler.c:857 #, fuzzy msgid "limit to the number of connections to NSE services, 0 for none" @@ -5678,25 +5683,79 @@ msgstr "" msgid "Number of peers to run in each round, separated by commas" msgstr "" -#: src/nse/gnunet-nse-profiler.c:900 -msgid "delay between rounds" +#: src/nse/gnunet-nse-profiler.c:900 +msgid "delay between rounds" +msgstr "" + +#: src/nse/gnunet-nse-profiler.c:912 +#, fuzzy +msgid "Measure quality and performance of the NSE service." +msgstr "Không thể truy cập đến dịch vụ" + +#: src/nse/gnunet-service-nse.c:1437 +#: src/revocation/gnunet-service-revocation.c:846 src/util/gnunet-scrypt.c:247 +#, fuzzy +msgid "Value is too large.\n" +msgstr "Giá trị không nằm trong phạm vi được phép." + +#: src/peerinfo/gnunet-service-peerinfo.c:175 +#, fuzzy, c-format +msgid "Removing expired address of transport `%s'\n" +msgstr "Đã nạp truyền tải « %s »\n" + +#: src/peerinfo/gnunet-service-peerinfo.c:306 +#, fuzzy, c-format +msgid "Failed to parse HELLO in file `%s': %s\n" +msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n" + +#: src/peerinfo/gnunet-service-peerinfo.c:323 +#: src/peerinfo/gnunet-service-peerinfo.c:348 +#, fuzzy, c-format +msgid "Failed to parse HELLO in file `%s'\n" +msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n" + +#: src/peerinfo/gnunet-service-peerinfo.c:426 +msgid "# peers known" +msgstr "" + +#: src/peerinfo/gnunet-service-peerinfo.c:468 +#, c-format +msgid "" +"File `%s' in directory `%s' does not match naming convention. Removed.\n" +msgstr "" +"Tập tin « %s » trong thư mục « %s » không tùy theo quy ước đặt tên. Bị gỡ " +"bỏ.\n" + +#: src/peerinfo/gnunet-service-peerinfo.c:624 +#, fuzzy, c-format +msgid "Scanning directory `%s'\n" +msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n" + +#: src/peerinfo/gnunet-service-peerinfo.c:631 +#, c-format +msgid "Still no peers found in `%s'!\n" +msgstr "Vẫn còn không tìm thấy đồng đẳng trong « %s ».\n" + +#: src/peerinfo/gnunet-service-peerinfo.c:1024 +#, fuzzy, c-format +msgid "Cleaning up directory `%s'\n" +msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n" + +#: src/peerinfo/gnunet-service-peerinfo.c:1319 +#, c-format +msgid "Importing HELLOs from `%s'\n" +msgstr "" + +#: src/peerinfo/gnunet-service-peerinfo.c:1332 +msgid "Skipping import of included HELLOs\n" msgstr "" -#: src/nse/gnunet-nse-profiler.c:912 -#, fuzzy -msgid "Measure quality and performance of the NSE service." -msgstr "Không thể truy cập đến dịch vụ" - -#: src/nse/gnunet-nse.c:124 -#, fuzzy -msgid "Show network size estimates from NSE service." -msgstr "# các yêu cầu get (lấy) dht được nhận" - -#: src/nse/gnunet-service-nse.c:1437 -#: src/revocation/gnunet-service-revocation.c:846 src/util/gnunet-scrypt.c:247 +#: src/peerinfo/peerinfo_api.c:217 #, fuzzy -msgid "Value is too large.\n" -msgstr "Giá trị không nằm trong phạm vi được phép." +msgid "Failed to receive response from `PEERINFO' service." +msgstr "" +"\n" +"Không nhận được đáp ứng từ gnunetd.\n" #: src/peerinfo-tool/gnunet-peerinfo.c:237 #, fuzzy, c-format @@ -5795,65 +5854,6 @@ msgstr "Không thể nạp phần bổ sung truyền tải « %s »\n" msgid "Peerinfo REST API initialized\n" msgstr "Lỗi sơ khởi lõi.\n" -#: src/peerinfo/gnunet-service-peerinfo.c:175 -#, fuzzy, c-format -msgid "Removing expired address of transport `%s'\n" -msgstr "Đã nạp truyền tải « %s »\n" - -#: src/peerinfo/gnunet-service-peerinfo.c:306 -#, fuzzy, c-format -msgid "Failed to parse HELLO in file `%s': %s\n" -msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n" - -#: src/peerinfo/gnunet-service-peerinfo.c:323 -#: src/peerinfo/gnunet-service-peerinfo.c:348 -#, fuzzy, c-format -msgid "Failed to parse HELLO in file `%s'\n" -msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n" - -#: src/peerinfo/gnunet-service-peerinfo.c:426 -msgid "# peers known" -msgstr "" - -#: src/peerinfo/gnunet-service-peerinfo.c:468 -#, c-format -msgid "" -"File `%s' in directory `%s' does not match naming convention. Removed.\n" -msgstr "" -"Tập tin « %s » trong thư mục « %s » không tùy theo quy ước đặt tên. Bị gỡ " -"bỏ.\n" - -#: src/peerinfo/gnunet-service-peerinfo.c:624 -#, fuzzy, c-format -msgid "Scanning directory `%s'\n" -msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n" - -#: src/peerinfo/gnunet-service-peerinfo.c:631 -#, c-format -msgid "Still no peers found in `%s'!\n" -msgstr "Vẫn còn không tìm thấy đồng đẳng trong « %s ».\n" - -#: src/peerinfo/gnunet-service-peerinfo.c:1024 -#, fuzzy, c-format -msgid "Cleaning up directory `%s'\n" -msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n" - -#: src/peerinfo/gnunet-service-peerinfo.c:1319 -#, c-format -msgid "Importing HELLOs from `%s'\n" -msgstr "" - -#: src/peerinfo/gnunet-service-peerinfo.c:1332 -msgid "Skipping import of included HELLOs\n" -msgstr "" - -#: src/peerinfo/peerinfo_api.c:217 -#, fuzzy -msgid "Failed to receive response from `PEERINFO' service." -msgstr "" -"\n" -"Không nhận được đáp ứng từ gnunetd.\n" - #: src/peerstore/gnunet-peerstore.c:92 msgid "peerstore" msgstr "" @@ -6289,6 +6289,18 @@ msgstr "" msgid "Could not open revocation database file!" msgstr "« %s »: Không thể kết nối.\n" +#: src/rps/gnunet-rps.c:270 +msgid "Seed a PeerID" +msgstr "" + +#: src/rps/gnunet-rps.c:275 +msgid "Get updates of view (0 for infinite updates)" +msgstr "" + +#: src/rps/gnunet-rps.c:279 +msgid "Get peers from biased stream" +msgstr "" + #: src/rps/gnunet-rps-profiler.c:3200 msgid "duration of the profiling" msgstr "" @@ -6308,18 +6320,6 @@ msgstr "số lần lặp lại" msgid "Measure quality and performance of the RPS service." msgstr "Không thể truy cập đến dịch vụ" -#: src/rps/gnunet-rps.c:270 -msgid "Seed a PeerID" -msgstr "" - -#: src/rps/gnunet-rps.c:275 -msgid "Get updates of view (0 for infinite updates)" -msgstr "" - -#: src/rps/gnunet-rps.c:279 -msgid "Get peers from biased stream" -msgstr "" - #: src/scalarproduct/gnunet-scalarproduct.c:229 #, fuzzy msgid "You must specify at least one message ID to check!\n" @@ -6375,10 +6375,10 @@ msgstr "" msgid "Calculate the Vectorproduct with a GNUnet peer." msgstr "" -#: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1127 -#: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1073 #: src/scalarproduct/gnunet-service-scalarproduct_alice.c:1363 #: src/scalarproduct/gnunet-service-scalarproduct_bob.c:1366 +#: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1127 +#: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1073 #, fuzzy msgid "Connect to CADET failed\n" msgstr " Không kết nối được (lỗi ?)\n" @@ -6722,6 +6722,16 @@ msgstr "« %s » đang tắt.\n" msgid "%.s Unknown result code." msgstr "" +#: src/testbed/gnunet_testbed_mpi_spawn.c:119 +#, fuzzy +msgid "Waiting for child to exit.\n" +msgstr "Đang đợi các đồng đẳng kết nối" + +#: src/testbed/gnunet_testbed_mpi_spawn.c:242 +#, fuzzy, c-format +msgid "Spawning process `%s'\n" +msgstr "Đang bắt đầu tài về « %s »\n" + #: src/testbed/gnunet-testbed-profiler.c:290 msgid "tolerate COUNT number of continious timeout failures" msgstr "" @@ -6733,16 +6743,6 @@ msgid "" "signal is received" msgstr "" -#: src/testbed/gnunet_testbed_mpi_spawn.c:119 -#, fuzzy -msgid "Waiting for child to exit.\n" -msgstr "Đang đợi các đồng đẳng kết nối" - -#: src/testbed/gnunet_testbed_mpi_spawn.c:242 -#, fuzzy, c-format -msgid "Spawning process `%s'\n" -msgstr "Đang bắt đầu tài về « %s »\n" - #: src/testbed/testbed_api.c:399 #, fuzzy, c-format msgid "Adding host %u failed with error: %s\n" @@ -7082,6 +7082,10 @@ msgstr "Không thể tạo miền tên.\n" msgid "GNUnet UNIX domain socket communicator" msgstr "" +#: src/transport/gnunet-service-transport_ats.c:137 +msgid "# Addresses given to ATS" +msgstr "" + #: src/transport/gnunet-service-transport.c:445 #, fuzzy msgid "# messages dropped due to slow client" @@ -7126,10 +7130,6 @@ msgstr "Không thể lấy địa chỉ của đồng đẳng « %s ».\n" msgid "Adding blacklisting entry for peer `%s':`%s'\n" msgstr "" -#: src/transport/gnunet-service-transport_ats.c:137 -msgid "# Addresses given to ATS" -msgstr "" - #: src/transport/gnunet-service-transport_hello.c:195 msgid "# refreshed my HELLO" msgstr "" @@ -7469,46 +7469,6 @@ msgstr "" msgid "# HELLOs given to peerinfo" msgstr "Nhận được thông báo « %s » sai từ đồng đẳng « %s ».\n" -#: src/transport/gnunet-transport-profiler.c:220 -#, c-format -msgid "%llu B in %llu ms == %.2f KB/s!\n" -msgstr "" - -#: src/transport/gnunet-transport-profiler.c:577 -msgid "send data to peer" -msgstr "" - -#: src/transport/gnunet-transport-profiler.c:581 -#, fuzzy -msgid "receive data from peer" -msgstr "Yêu cầu cấp %d từ đồng đẳng %d\n" - -#: src/transport/gnunet-transport-profiler.c:586 -#, fuzzy -msgid "iterations" -msgstr "Tùy chọn chung" - -#: src/transport/gnunet-transport-profiler.c:591 -#, fuzzy -msgid "number of messages to send" -msgstr "số tin nhắn cần dùng mỗi lần lặp" - -#: src/transport/gnunet-transport-profiler.c:596 -#, fuzzy -msgid "message size to use" -msgstr "kích cỡ tin nhắn" - -#: src/transport/gnunet-transport-profiler.c:601 -#: src/transport/gnunet-transport.c:1404 -msgid "peer identity" -msgstr "" - -#: src/transport/gnunet-transport-profiler.c:614 -#: src/transport/gnunet-transport.c:1426 -#, fuzzy -msgid "Direct access to transport service." -msgstr "Lỗi kết nối đến gnunetd.\n" - #: src/transport/gnunet-transport.c:406 #, fuzzy, c-format msgid "Transmitted %llu bytes/s (%llu bytes in %s)\n" @@ -7648,6 +7608,11 @@ msgstr "In ra thông tin về các đồng đẳng GNUnet." msgid "do not resolve hostnames" msgstr "không quyết định các tên máy" +#: src/transport/gnunet-transport.c:1404 +#: src/transport/gnunet-transport-profiler.c:601 +msgid "peer identity" +msgstr "" + #: src/transport/gnunet-transport.c:1408 msgid "monitor plugin sessions" msgstr "" @@ -7656,6 +7621,41 @@ msgstr "" msgid "send data for benchmarking to the other peer (until CTRL-C)" msgstr "" +#: src/transport/gnunet-transport.c:1426 +#: src/transport/gnunet-transport-profiler.c:614 +#, fuzzy +msgid "Direct access to transport service." +msgstr "Lỗi kết nối đến gnunetd.\n" + +#: src/transport/gnunet-transport-profiler.c:220 +#, c-format +msgid "%llu B in %llu ms == %.2f KB/s!\n" +msgstr "" + +#: src/transport/gnunet-transport-profiler.c:577 +msgid "send data to peer" +msgstr "" + +#: src/transport/gnunet-transport-profiler.c:581 +#, fuzzy +msgid "receive data from peer" +msgstr "Yêu cầu cấp %d từ đồng đẳng %d\n" + +#: src/transport/gnunet-transport-profiler.c:586 +#, fuzzy +msgid "iterations" +msgstr "Tùy chọn chung" + +#: src/transport/gnunet-transport-profiler.c:591 +#, fuzzy +msgid "number of messages to send" +msgstr "số tin nhắn cần dùng mỗi lần lặp" + +#: src/transport/gnunet-transport-profiler.c:596 +#, fuzzy +msgid "message size to use" +msgstr "kích cỡ tin nhắn" + #: src/transport/plugin_transport_http_client.c:1489 #: src/transport/plugin_transport_http_server.c:2331 #: src/transport/plugin_transport_http_server.c:3562 @@ -7934,6 +7934,21 @@ msgstr "" msgid "TCP transport advertises itself as being on port %llu\n" msgstr "" +#: src/transport/plugin_transport_udp_broadcasting.c:169 +#, fuzzy +msgid "# Multicast HELLO beacons received via UDP" +msgstr "# các thông báo PONG đã mật mã được nhận" + +#: src/transport/plugin_transport_udp_broadcasting.c:553 +msgid "" +"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n" +msgstr "" + +#: src/transport/plugin_transport_udp_broadcasting.c:571 +#, c-format +msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n" +msgstr "" + #: src/transport/plugin_transport_udp.c:3169 #, c-format msgid "" @@ -7982,21 +7997,6 @@ msgstr "« %s » không sẵn sàng.\n" msgid "Failed to create UDP network sockets\n" msgstr "Không thể tạo miền tên.\n" -#: src/transport/plugin_transport_udp_broadcasting.c:169 -#, fuzzy -msgid "# Multicast HELLO beacons received via UDP" -msgstr "# các thông báo PONG đã mật mã được nhận" - -#: src/transport/plugin_transport_udp_broadcasting.c:553 -msgid "" -"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n" -msgstr "" - -#: src/transport/plugin_transport_udp_broadcasting.c:571 -#, c-format -msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n" -msgstr "" - #: src/transport/plugin_transport_unix.c:1396 #, fuzzy, c-format msgid "Cannot bind to `%s'\n" @@ -8084,17 +8084,17 @@ msgstr "Không đủ quyền cho « %s ».\n" msgid "Accepting connection from `%s': %p\n" msgstr "" -#: src/transport/tcp_server_legacy.c:478 src/util/service.c:1400 +#: src/transport/tcp_server_legacy.c:478 src/util/service.c:1397 #, fuzzy, c-format msgid "`%s' failed for port %d (%s).\n" msgstr "« %s » thất bại cho ổ đĩa « %s »: %u\n" -#: src/transport/tcp_server_legacy.c:488 src/util/service.c:1412 +#: src/transport/tcp_server_legacy.c:488 src/util/service.c:1409 #, fuzzy, c-format msgid "`%s' failed for port %d (%s): address already in use\n" msgstr "« %s » bị lỗi cho cổng %d. Trình gnunetd có chạy chưa?\n" -#: src/transport/tcp_server_legacy.c:494 src/util/service.c:1419 +#: src/transport/tcp_server_legacy.c:494 src/util/service.c:1416 #, fuzzy, c-format msgid "`%s' failed for `%s': address already in use\n" msgstr "« %s » bị lỗi cho cổng %d. Trình gnunetd có chạy chưa?\n" @@ -8106,7 +8106,7 @@ msgid "" "`GNUNET_SERVER_receive_done' after %s\n" msgstr "" -#: src/transport/tcp_service_legacy.c:345 src/util/service.c:837 +#: src/transport/tcp_service_legacy.c:345 src/util/service.c:834 #, fuzzy, c-format msgid "Unknown address family %d\n" msgstr "\tKhông rõ miền tên « %s »\n" @@ -8116,23 +8116,23 @@ msgstr "\tKhông rõ miền tên « %s »\n" msgid "Access from `%s' denied to service `%s'\n" msgstr "" -#: src/transport/tcp_service_legacy.c:410 src/util/service.c:950 +#: src/transport/tcp_service_legacy.c:410 src/util/service.c:947 #, c-format msgid "Could not parse IPv4 network specification `%s' for `%s:%s'\n" msgstr "" -#: src/transport/tcp_service_legacy.c:451 src/util/service.c:991 +#: src/transport/tcp_service_legacy.c:451 src/util/service.c:988 #, c-format msgid "Could not parse IPv6 network specification `%s' for `%s:%s'\n" msgstr "" #: src/transport/tcp_service_legacy.c:890 -#: src/transport/tcp_service_legacy.c:910 src/util/service.c:1480 +#: src/transport/tcp_service_legacy.c:910 src/util/service.c:1477 #, c-format msgid "Specified value for `%s' of service `%s' is invalid\n" msgstr "" -#: src/transport/tcp_service_legacy.c:935 src/util/service.c:1504 +#: src/transport/tcp_service_legacy.c:935 src/util/service.c:1501 #, c-format msgid "Could not access pre-bound socket %u, will try to bind myself\n" msgstr "" @@ -8147,45 +8147,45 @@ msgstr "Lỗi chạy %s: %s %d\n" msgid "Service `%s' runs at %s\n" msgstr "Đồng đẳng « %s » có mức tin cậy %8u\n" -#: src/transport/tcp_service_legacy.c:1193 src/util/service.c:1750 +#: src/transport/tcp_service_legacy.c:1193 src/util/service.c:1747 msgid "Service process failed to initialize\n" msgstr "" -#: src/transport/tcp_service_legacy.c:1198 src/util/service.c:1755 +#: src/transport/tcp_service_legacy.c:1198 src/util/service.c:1752 msgid "Service process could not initialize server function\n" msgstr "" -#: src/transport/tcp_service_legacy.c:1203 src/util/service.c:1760 +#: src/transport/tcp_service_legacy.c:1203 src/util/service.c:1757 msgid "Service process failed to report status\n" msgstr "" #: src/transport/tcp_service_legacy.c:1253 src/util/disk.c:1177 -#: src/util/service.c:1641 +#: src/util/service.c:1638 #, c-format msgid "Cannot obtain information about user `%s': %s\n" msgstr "Không thể lấy thông tin về người dùng « %s »: %s\n" -#: src/transport/tcp_service_legacy.c:1255 src/util/service.c:1643 +#: src/transport/tcp_service_legacy.c:1255 src/util/service.c:1640 msgid "No such user" msgstr "Không có người dùng như vậy" -#: src/transport/tcp_service_legacy.c:1269 src/util/service.c:1657 +#: src/transport/tcp_service_legacy.c:1269 src/util/service.c:1654 #, c-format msgid "Cannot change user/group to `%s': %s\n" msgstr "Không thể thay đổi người dùng/nhóm thành « %s »: %s\n" -#: src/transport/tcp_service_legacy.c:1348 src/util/service.c:1999 +#: src/transport/tcp_service_legacy.c:1348 src/util/service.c:1996 msgid "do daemonize (detach from terminal)" msgstr "" #: src/transport/tcp_service_legacy.c:1397 -#: src/transport/transport-testing2.c:906 src/util/service.c:2073 -#: src/util/service.c:2085 +#: src/transport/transport-testing2.c:906 src/util/service.c:2070 +#: src/util/service.c:2082 #, fuzzy, c-format msgid "Malformed configuration file `%s', exit ...\n" msgstr "Không thể lưu tập tin cấu hình « %s »:" -#: src/transport/tcp_service_legacy.c:1407 src/util/service.c:2095 +#: src/transport/tcp_service_legacy.c:1407 src/util/service.c:2092 #, fuzzy msgid "Malformed configuration, exit ...\n" msgstr "Không thể lưu tập tin cấu hình « %s »:" @@ -8228,90 +8228,90 @@ msgstr "" msgid "Metadata `%s' failed to deserialize" msgstr "" -#: src/util/client.c:739 src/util/client.c:931 +#: src/util/client.c:747 src/util/client.c:937 msgid "not a valid filename" msgstr "" -#: src/util/client.c:1097 +#: src/util/client.c:1103 #, c-format msgid "Need a non-empty hostname for service `%s'.\n" msgstr "" -#: src/util/common_logging.c:259 src/util/common_logging.c:1116 +#: src/util/common_logging.c:259 src/util/common_logging.c:1112 msgid "DEBUG" msgstr "GỠ LỖI" -#: src/util/common_logging.c:261 src/util/common_logging.c:1114 +#: src/util/common_logging.c:261 src/util/common_logging.c:1110 msgid "INFO" msgstr "TIN" -#: src/util/common_logging.c:263 src/util/common_logging.c:1112 +#: src/util/common_logging.c:263 src/util/common_logging.c:1108 msgid "MESSAGE" msgstr "" -#: src/util/common_logging.c:265 src/util/common_logging.c:1110 +#: src/util/common_logging.c:265 src/util/common_logging.c:1106 msgid "WARNING" msgstr "CẢNH BÁO" -#: src/util/common_logging.c:267 src/util/common_logging.c:1108 +#: src/util/common_logging.c:267 src/util/common_logging.c:1104 msgid "ERROR" msgstr "LỖI" -#: src/util/common_logging.c:269 src/util/common_logging.c:1118 +#: src/util/common_logging.c:269 src/util/common_logging.c:1114 msgid "NONE" msgstr "" -#: src/util/common_logging.c:630 src/util/common_logging.c:669 +#: src/util/common_logging.c:626 src/util/common_logging.c:665 #, c-format msgid "ERROR: Unable to parse log definition: Syntax error at `%s'.\n" msgstr "" -#: src/util/common_logging.c:906 +#: src/util/common_logging.c:902 #, fuzzy, c-format msgid "Message `%.*s' repeated %u times in the last %s\n" msgstr "Thông điệp « %.*s » đã lặp lại %u lần trong %llu giây trước\n" -#: src/util/common_logging.c:1119 +#: src/util/common_logging.c:1115 msgid "INVALID" msgstr "" -#: src/util/common_logging.c:1400 +#: src/util/common_logging.c:1396 msgid "unknown address" msgstr "" -#: src/util/common_logging.c:1445 +#: src/util/common_logging.c:1441 msgid "invalid address" msgstr "" -#: src/util/common_logging.c:1464 +#: src/util/common_logging.c:1460 #, fuzzy, c-format msgid "Configuration fails to specify option `%s' in section `%s'!\n" msgstr "" "Cấu hình không thỏa mãn các ràng buộc của tập tin đặc tả cấu hình « %s ».\n" -#: src/util/common_logging.c:1487 +#: src/util/common_logging.c:1483 #, fuzzy, c-format msgid "" "Configuration specifies invalid value for option `%s' in section `%s': %s\n" msgstr "" "Cấu hình không thỏa mãn các ràng buộc của tập tin đặc tả cấu hình « %s ».\n" -#: src/util/configuration.c:325 +#: src/util/configuration.c:402 #, fuzzy, c-format msgid "Syntax error while deserializing in line %u\n" msgstr "Gặp lỗi cú pháp trong tập tin cấu hình « %s » tại dòng %d.\n" -#: src/util/configuration.c:383 +#: src/util/configuration.c:460 #, fuzzy, c-format msgid "Error while reading file `%s'\n" msgstr "Gặp lỗi khi tải xuống: %s\n" -#: src/util/configuration.c:986 +#: src/util/configuration.c:1063 #, fuzzy msgid "Not a valid relative time specification" msgstr "Giá trị cấu hình « %s » cho « %s » trong phần « %s » nên là con số\n" -#: src/util/configuration.c:1077 +#: src/util/configuration.c:1154 #, c-format msgid "" "Configuration value '%s' for '%s' in section '%s' is not in set of legal " @@ -8320,17 +8320,17 @@ msgstr "" "Giá trị cấu hình « %s » cho « %s » trong phần « %s » không phải nằm trong " "tập hợp các sự chọn được phép\n" -#: src/util/configuration.c:1192 +#: src/util/configuration.c:1269 #, c-format msgid "Recursive expansion suspected, aborting $-expansion for term `%s'\n" msgstr "" -#: src/util/configuration.c:1224 +#: src/util/configuration.c:1301 #, fuzzy, c-format msgid "Missing closing `%s' in option `%s'\n" msgstr "Giá trị cấu hình « %s » cho « %s » trong phần « %s » nên là con số\n" -#: src/util/configuration.c:1290 +#: src/util/configuration.c:1367 #, c-format msgid "" "Failed to expand `%s' in `%s' as it is neither found in [PATHS] nor defined " @@ -8394,7 +8394,7 @@ msgstr "libgcrypt không có phiên bản mong đợi (yêu cầu phiên bản % msgid "RSA signing failed at %s:%d: %s\n" msgstr "%s bị lỗi tại %s:%d: « %s »\n" -#: src/util/crypto_rsa.c:1313 +#: src/util/crypto_rsa.c:1314 #, c-format msgid "RSA signature verification failed at %s:%d: %s\n" msgstr "Lỗi thẩm tra chữ ký RSA tại %s:%d: %s\n" @@ -8500,11 +8500,11 @@ msgstr "Tùy chọn « %s » không có nghĩa khi không có tùy chọn « %s msgid "Missing mandatory option `%s'.\n" msgstr "Giá trị cấu hình « %s » cho « %s » trong phần « %s » nên là con số\n" -#: src/util/getopt_helpers.c:68 +#: src/util/getopt_helpers.c:69 msgid "print the version number" msgstr "hiển thị số thứ tự phiên bản" -#: src/util/getopt_helpers.c:114 +#: src/util/getopt_helpers.c:116 #, c-format msgid "" "Arguments mandatory for long options are also mandatory for short options.\n" @@ -8512,55 +8512,63 @@ msgstr "" "Mọi đối số bắt buộc phải sử dụng với tùy chọn dài cũng bắt buộc với tùy chọn " "ngắn.\n" -#: src/util/getopt_helpers.c:205 +#: src/util/getopt_helpers.c:208 msgid "print this help" msgstr "hiển thị trợ giúp này" -#: src/util/getopt_helpers.c:281 +#: src/util/getopt_helpers.c:288 msgid "be verbose" msgstr "xuất chi tiết" -#: src/util/getopt_helpers.c:417 +#: src/util/getopt_helpers.c:429 msgid "configure logging to use LOGLEVEL" msgstr "cấu hình chức năng ghi sự kiện để dùng CẤP_GHI_LƯU" -#: src/util/getopt_helpers.c:495 +#: src/util/getopt_helpers.c:510 #, fuzzy msgid "configure logging to write logs to FILENAME" msgstr "cấu hình chức năng ghi sự kiện để dùng CẤP_GHI_LƯU" -#: src/util/getopt_helpers.c:516 +#: src/util/getopt_helpers.c:532 #, fuzzy msgid "use configuration file FILENAME" msgstr "cập nhật một giá trị trong tập tin cấu hình" -#: src/util/getopt_helpers.c:551 src/util/getopt_helpers.c:747 -#: src/util/getopt_helpers.c:810 +#: src/util/getopt_helpers.c:568 src/util/getopt_helpers.c:634 +#: src/util/getopt_helpers.c:835 src/util/getopt_helpers.c:900 #, c-format msgid "You must pass a number to the `%s' option.\n" msgstr "Phải gửi một con số cho tùy chọn « %s ».\n" -#: src/util/getopt_helpers.c:612 +#: src/util/getopt_helpers.c:659 +msgid "[+/-]MICROSECONDS" +msgstr "" + +#: src/util/getopt_helpers.c:661 +msgid "modify system time by given offset (for debugging/testing only)" +msgstr "" + +#: src/util/getopt_helpers.c:696 #, fuzzy, c-format msgid "You must pass relative time to the `%s' option.\n" msgstr "Phải gửi một con số cho tùy chọn « %s ».\n" -#: src/util/getopt_helpers.c:675 +#: src/util/getopt_helpers.c:761 #, fuzzy, c-format msgid "You must pass absolute time to the `%s' option.\n" msgstr "Phải gửi một con số cho tùy chọn « %s ».\n" -#: src/util/getopt_helpers.c:740 +#: src/util/getopt_helpers.c:828 #, c-format -msgid "Your input for the '%s' option has to be a non negative number \n" +msgid "Your input for the '%s' option has to be a non negative number\n" msgstr "" -#: src/util/getopt_helpers.c:817 +#: src/util/getopt_helpers.c:907 #, fuzzy, c-format msgid "You must pass a number below %u to the `%s' option.\n" msgstr "Phải gửi một con số cho tùy chọn « %s ».\n" -#: src/util/getopt_helpers.c:902 +#: src/util/getopt_helpers.c:994 #, c-format msgid "Argument `%s' malformed. Expected base32 (Crockford) encoded value.\n" msgstr "" @@ -8897,14 +8905,14 @@ msgstr "" msgid "Could not resolve our FQDN: %s\n" msgstr "Không thể giải quyết « %s » (%s): %s\n" -#: src/util/service.c:657 +#: src/util/service.c:654 #, c-format msgid "" "Processing code for message of type %u did not call " "`GNUNET_SERVICE_client_continue' after %s\n" msgstr "" -#: src/util/service.c:1572 +#: src/util/service.c:1569 msgid "" "Could not bind to any of the ports I was supposed to, refusing to run!\n" msgstr "" @@ -9225,8 +9233,8 @@ msgstr "# các byte đã nhận qua UDP" msgid "Setup tunnels via VPN." msgstr "" -#: src/zonemaster/gnunet-service-zonemaster-monitor.c:420 #: src/zonemaster/gnunet-service-zonemaster.c:849 +#: src/zonemaster/gnunet-service-zonemaster-monitor.c:420 #, fuzzy msgid "Failed to connect to the namestore!\n" msgstr "Không kết nối được đến trình nền gnunetd." diff --git a/po/zh_CN.po b/po/zh_CN.po index f2889d502..66c21260f 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gnunet-0.8.1\n" "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n" -"POT-Creation-Date: 2020-01-13 14:01+0000\n" +"POT-Creation-Date: 2020-02-13 20:41+0100\n" "PO-Revision-Date: 2011-07-09 12:12+0800\n" "Last-Translator: Wylmer Wang \n" "Language-Team: Chinese (simplified) \n" @@ -27,8 +27,8 @@ msgid "Issuer public key `%s' is not well-formed\n" msgstr "“%s”的参数无效。\n" #: src/abd/gnunet-abd.c:558 src/abd/gnunet-service-abd.c:1747 -#: src/namestore/gnunet-namestore-fcfsd.c:1153 #: src/namestore/gnunet-namestore.c:1001 +#: src/namestore/gnunet-namestore-fcfsd.c:1153 #, fuzzy, c-format msgid "Failed to connect to namestore\n" msgstr "初始化“%s”服务失败。\n" @@ -138,7 +138,7 @@ msgstr "" msgid "GNUnet abd resolver tool" msgstr "GNUnet 错误日志" -#: src/abd/gnunet-service-abd.c:1742 src/gns/gnunet-gns.c:288 +#: src/abd/gnunet-service-abd.c:1742 src/gns/gnunet-gns.c:292 #, fuzzy, c-format msgid "Failed to connect to GNS\n" msgstr "初始化“%s”服务失败。\n" @@ -377,28 +377,28 @@ msgstr "" #: src/transport/plugin_transport_tcp.c:1129 #: src/transport/plugin_transport_tcp.c:3706 #: src/transport/tcp_service_legacy.c:594 -#: src/transport/tcp_service_legacy.c:600 src/util/service.c:1094 -#: src/util/service.c:1100 +#: src/transport/tcp_service_legacy.c:600 src/util/service.c:1091 +#: src/util/service.c:1097 #, c-format msgid "Require valid port number for service `%s' in configuration!\n" msgstr "" #: src/arm/gnunet-service-arm.c:452 src/transport/plugin_transport_tcp.c:1163 -#: src/transport/tcp_service_legacy.c:634 src/util/client.c:519 -#: src/util/service.c:1133 +#: src/transport/tcp_service_legacy.c:634 src/util/client.c:527 +#: src/util/service.c:1130 #, c-format msgid "UNIXPATH `%s' too long, maximum length is %llu\n" msgstr "" #: src/arm/gnunet-service-arm.c:456 src/transport/plugin_transport_tcp.c:1167 -#: src/transport/tcp_service_legacy.c:638 src/util/client.c:524 -#: src/util/service.c:1137 +#: src/transport/tcp_service_legacy.c:638 src/util/client.c:532 +#: src/util/service.c:1134 #, fuzzy, c-format msgid "Using `%s' instead\n" msgstr "%s:选项“%s”有歧义\n" #: src/arm/gnunet-service-arm.c:484 src/transport/plugin_transport_tcp.c:1195 -#: src/transport/tcp_service_legacy.c:666 src/util/service.c:1157 +#: src/transport/tcp_service_legacy.c:666 src/util/service.c:1154 #, c-format msgid "" "Disabling UNIX domain socket support for service `%s', failed to create UNIX " @@ -406,7 +406,7 @@ msgid "" msgstr "" #: src/arm/gnunet-service-arm.c:505 src/transport/plugin_transport_tcp.c:1213 -#: src/transport/tcp_service_legacy.c:684 src/util/service.c:1175 +#: src/transport/tcp_service_legacy.c:684 src/util/service.c:1172 #, c-format msgid "Have neither PORT nor UNIXPATH for service `%s', but one is required\n" msgstr "" @@ -414,7 +414,7 @@ msgstr "" #: src/arm/gnunet-service-arm.c:536 #: src/transport/plugin_transport_http_server.c:2718 #: src/transport/plugin_transport_tcp.c:1244 -#: src/transport/tcp_service_legacy.c:715 src/util/service.c:1206 +#: src/transport/tcp_service_legacy.c:715 src/util/service.c:1203 #, fuzzy, c-format msgid "Failed to resolve `%s': %s\n" msgstr "打开日志文件“%s”失败:%s\n" @@ -422,7 +422,7 @@ msgstr "打开日志文件“%s”失败:%s\n" #: src/arm/gnunet-service-arm.c:555 #: src/transport/plugin_transport_http_server.c:2736 #: src/transport/plugin_transport_tcp.c:1263 -#: src/transport/tcp_service_legacy.c:734 src/util/service.c:1225 +#: src/transport/tcp_service_legacy.c:734 src/util/service.c:1222 #, fuzzy, c-format msgid "Failed to find %saddress for `%s'.\n" msgstr "找不到接口“%s”的一个 IP 地址。\n" @@ -494,15 +494,83 @@ msgstr "" msgid "Initiating shutdown as requested by client.\n" msgstr "" -#: src/ats-tests/ats-testing-log.c:896 -msgid "Stop logging\n" +#: src/ats/gnunet-ats-solver-eval.c:2992 src/ats/gnunet-ats-solver-eval.c:3044 +#, c-format +msgid "" +"Could not load quota for network `%s': `%s', assigning default bandwidth " +"%llu\n" msgstr "" -#: src/ats-tests/ats-testing-log.c:952 -#, fuzzy, c-format -msgid "Start logging `%s'\n" +#: src/ats/gnunet-ats-solver-eval.c:3011 +#, c-format +msgid "" +"No outbound quota configured for network `%s', assigning default bandwidth " +"%llu\n" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3063 +#, c-format +msgid "" +"No outbound quota configure for network `%s', assigning default bandwidth " +"%llu\n" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3552 src/ats-tests/gnunet-solver-eval.c:997 +msgid "solver to use" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3557 +#: src/ats-tests/gnunet-solver-eval.c:1003 +#: src/ats-tests/gnunet-solver-eval.c:1008 +msgid "experiment to use" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3564 +#, fuzzy +msgid "print logging" msgstr "未知的命令“%s”。\n" +#: src/ats/gnunet-ats-solver-eval.c:3569 +msgid "save logging to disk" +msgstr "" + +#: src/ats/gnunet-ats-solver-eval.c:3574 +msgid "disable normalization" +msgstr "" + +#: src/ats/gnunet-service-ats_plugins.c:326 +#, c-format +msgid "" +"Could not load %s quota for network `%s': `%s', assigning default bandwidth " +"%llu\n" +msgstr "" + +#: src/ats/gnunet-service-ats_plugins.c:336 +#, c-format +msgid "%s quota configured for network `%s' is %llu\n" +msgstr "" + +#: src/ats/gnunet-service-ats_plugins.c:382 +#, c-format +msgid "" +"No %s-quota configured for network `%s', assigning default bandwidth %llu\n" +msgstr "" + +#: src/ats/gnunet-service-ats_plugins.c:474 +#, fuzzy, c-format +msgid "Failed to initialize solver `%s'!\n" +msgstr "无法初始化 SQLite:%s。\n" + +#: src/ats/plugin_ats_proportional.c:1140 +#, fuzzy, c-format +msgid "Invalid %s configuration %f \n" +msgstr "解析配置文件“%s”失败\n" + +#: src/ats/plugin_ats_proportional.c:1163 +#, fuzzy, c-format +msgid "Invalid %s configuration %f\n" +msgstr "解析配置文件“%s”失败\n" + #: src/ats-tests/ats-testing.c:420 #, c-format msgid "Connected master [%u] with slave [%u]\n" @@ -513,6 +581,15 @@ msgstr "" msgid "Failed to connect master peer [%u] with slave [%u]\n" msgstr "初始化“%s”服务失败。\n" +#: src/ats-tests/ats-testing-log.c:896 +msgid "Stop logging\n" +msgstr "" + +#: src/ats-tests/ats-testing-log.c:952 +#, fuzzy, c-format +msgid "Start logging `%s'\n" +msgstr "未知的命令“%s”。\n" + #: src/ats-tests/gnunet-ats-sim.c:92 #, c-format msgid "" @@ -520,16 +597,6 @@ msgid "" "= %u KiB/s\n" msgstr "" -#: src/ats-tests/gnunet-solver-eval.c:997 src/ats/gnunet-ats-solver-eval.c:3552 -msgid "solver to use" -msgstr "" - -#: src/ats-tests/gnunet-solver-eval.c:1003 -#: src/ats-tests/gnunet-solver-eval.c:1008 -#: src/ats/gnunet-ats-solver-eval.c:3557 -msgid "experiment to use" -msgstr "" - #: src/ats-tool/gnunet-ats.c:299 #, c-format msgid "%u address resolutions had a timeout\n" @@ -651,73 +718,6 @@ msgstr "" msgid "Print information about ATS state" msgstr "无法获取有关用户“%s”的信息:%s\n" -#: src/ats/gnunet-ats-solver-eval.c:2992 src/ats/gnunet-ats-solver-eval.c:3044 -#, c-format -msgid "" -"Could not load quota for network `%s': `%s', assigning default bandwidth " -"%llu\n" -msgstr "" - -#: src/ats/gnunet-ats-solver-eval.c:3011 -#, c-format -msgid "" -"No outbound quota configured for network `%s', assigning default bandwidth " -"%llu\n" -msgstr "" - -#: src/ats/gnunet-ats-solver-eval.c:3063 -#, c-format -msgid "" -"No outbound quota configure for network `%s', assigning default bandwidth " -"%llu\n" -msgstr "" - -#: src/ats/gnunet-ats-solver-eval.c:3564 -#, fuzzy -msgid "print logging" -msgstr "未知的命令“%s”。\n" - -#: src/ats/gnunet-ats-solver-eval.c:3569 -msgid "save logging to disk" -msgstr "" - -#: src/ats/gnunet-ats-solver-eval.c:3574 -msgid "disable normalization" -msgstr "" - -#: src/ats/gnunet-service-ats_plugins.c:326 -#, c-format -msgid "" -"Could not load %s quota for network `%s': `%s', assigning default bandwidth " -"%llu\n" -msgstr "" - -#: src/ats/gnunet-service-ats_plugins.c:336 -#, c-format -msgid "%s quota configured for network `%s' is %llu\n" -msgstr "" - -#: src/ats/gnunet-service-ats_plugins.c:382 -#, c-format -msgid "" -"No %s-quota configured for network `%s', assigning default bandwidth %llu\n" -msgstr "" - -#: src/ats/gnunet-service-ats_plugins.c:474 -#, fuzzy, c-format -msgid "Failed to initialize solver `%s'!\n" -msgstr "无法初始化 SQLite:%s。\n" - -#: src/ats/plugin_ats_proportional.c:1140 -#, fuzzy, c-format -msgid "Invalid %s configuration %f \n" -msgstr "解析配置文件“%s”失败\n" - -#: src/ats/plugin_ats_proportional.c:1163 -#, fuzzy, c-format -msgid "Invalid %s configuration %f\n" -msgstr "解析配置文件“%s”失败\n" - #: src/auction/gnunet-auction-create.c:163 msgid "description of the item to be sold" msgstr "" @@ -850,28 +850,6 @@ msgstr "" msgid "Connection to conversation service lost, trying to reconnect\n" msgstr "" -#: src/conversation/gnunet-conversation-test.c:120 -#, c-format -msgid "" -"\n" -"End of transmission. Have a GNU day.\n" -msgstr "" - -#: src/conversation/gnunet-conversation-test.c:146 -#, c-format -msgid "" -"\n" -"We are now playing your recording back. If you can hear it, your audio " -"settings are working..." -msgstr "" - -#: src/conversation/gnunet-conversation-test.c:218 -#, c-format -msgid "" -"We will now be recording you for %s. After that time, the recording will be " -"played back to you..." -msgstr "" - #: src/conversation/gnunet-conversation.c:264 #, c-format msgid "Incoming call from `%s'. Please /accept %u or /cancel %u the call.\n" @@ -1130,8 +1108,30 @@ msgstr "" msgid "Enables having a conversation with other GNUnet users." msgstr "" -#: src/conversation/gnunet-helper-audio-playback-gst.c:363 +#: src/conversation/gnunet-conversation-test.c:120 +#, c-format +msgid "" +"\n" +"End of transmission. Have a GNU day.\n" +msgstr "" + +#: src/conversation/gnunet-conversation-test.c:146 +#, c-format +msgid "" +"\n" +"We are now playing your recording back. If you can hear it, your audio " +"settings are working..." +msgstr "" + +#: src/conversation/gnunet-conversation-test.c:218 +#, c-format +msgid "" +"We will now be recording you for %s. After that time, the recording will be " +"played back to you..." +msgstr "" + #: src/conversation/gnunet_gst.c:664 +#: src/conversation/gnunet-helper-audio-playback-gst.c:363 #, c-format msgid "Read error from STDIN: %d %s\n" msgstr "" @@ -1913,17 +1913,17 @@ msgstr "“%s”于 %s:%d 处失败,错误为:%s\n" msgid "Mysql database running\n" msgstr "" -#: src/datastore/plugin_datastore_postgres.c:277 -#: src/datastore/plugin_datastore_postgres.c:890 +#: src/datastore/plugin_datastore_postgres.c:278 +#: src/datastore/plugin_datastore_postgres.c:891 msgid "Postgress exec failure" msgstr "" -#: src/datastore/plugin_datastore_postgres.c:851 +#: src/datastore/plugin_datastore_postgres.c:852 #, fuzzy msgid "Failed to drop table from database.\n" msgstr "发送消息失败。\n" -#: src/datastore/plugin_datastore_postgres.c:949 +#: src/datastore/plugin_datastore_postgres.c:950 msgid "Postgres database running\n" msgstr "" @@ -2032,45 +2032,93 @@ msgstr "" msgid "Prints all packets that go through the DHT." msgstr "" -#: src/dht/gnunet-dht-put.c:133 -msgid "Must provide KEY and DATA for DHT put!\n" -msgstr "" - -#: src/dht/gnunet-dht-put.c:140 +#: src/dht/gnunet_dht_profiler.c:922 src/testbed/gnunet-testbed-profiler.c:255 #, fuzzy, c-format -msgid "Could not connect to DHT service!\n" -msgstr "无法连接到 %s:%u:%s\n" +msgid "Exiting as the number of peers is %u\n" +msgstr "增加 TCP/IP 的最大连接数" -#: src/dht/gnunet-dht-put.c:151 -#, c-format -msgid "Issuing put request for `%s' with data `%s'!\n" +#: src/dht/gnunet_dht_profiler.c:955 src/rps/gnunet-rps-profiler.c:3194 +#, fuzzy +msgid "number of peers to start" +msgstr "迭代次数" + +#: src/dht/gnunet_dht_profiler.c:961 +msgid "number of PUTs to perform per peer" msgstr "" -#: src/dht/gnunet-dht-put.c:187 -msgid "the data to insert under the key" +#: src/dht/gnunet_dht_profiler.c:967 src/nse/gnunet-nse-profiler.c:872 +#: src/testbed/gnunet-testbed-profiler.c:305 +msgid "name of the file with the login information for the testbed" msgstr "" -#: src/dht/gnunet-dht-put.c:193 -msgid "how long to store this entry in the dht (in seconds)" +#: src/dht/gnunet_dht_profiler.c:973 +msgid "delay between rounds for collecting statistics (default: 30 sec)" msgstr "" -#: src/dht/gnunet-dht-put.c:208 -msgid "how many replicas to create" +#: src/dht/gnunet_dht_profiler.c:979 +msgid "delay to start doing PUTs (default: 1 sec)" msgstr "" -#: src/dht/gnunet-dht-put.c:212 -msgid "use DHT's record route option" +#: src/dht/gnunet_dht_profiler.c:985 +msgid "delay to start doing GETs (default: 5 min)" msgstr "" -#: src/dht/gnunet-dht-put.c:217 -msgid "the type to insert data as" +#: src/dht/gnunet_dht_profiler.c:990 +msgid "replication degree for DHT PUTs" msgstr "" -#: src/dht/gnunet-dht-put.c:232 -msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY." +#: src/dht/gnunet_dht_profiler.c:996 +msgid "chance that a peer is selected at random for PUTs" msgstr "" -#: src/dht/gnunet-service-dht_clients.c:367 +#: src/dht/gnunet_dht_profiler.c:1002 +msgid "timeout for DHT PUT and GET requests (default: 1 min)" +msgstr "" + +#: src/dht/gnunet_dht_profiler.c:1023 +#, fuzzy +msgid "Measure quality and performance of the DHT service." +msgstr "无法访问该服务" + +#: src/dht/gnunet-dht-put.c:133 +msgid "Must provide KEY and DATA for DHT put!\n" +msgstr "" + +#: src/dht/gnunet-dht-put.c:140 +#, fuzzy, c-format +msgid "Could not connect to DHT service!\n" +msgstr "无法连接到 %s:%u:%s\n" + +#: src/dht/gnunet-dht-put.c:151 +#, c-format +msgid "Issuing put request for `%s' with data `%s'!\n" +msgstr "" + +#: src/dht/gnunet-dht-put.c:187 +msgid "the data to insert under the key" +msgstr "" + +#: src/dht/gnunet-dht-put.c:193 +msgid "how long to store this entry in the dht (in seconds)" +msgstr "" + +#: src/dht/gnunet-dht-put.c:208 +msgid "how many replicas to create" +msgstr "" + +#: src/dht/gnunet-dht-put.c:212 +msgid "use DHT's record route option" +msgstr "" + +#: src/dht/gnunet-dht-put.c:217 +msgid "the type to insert data as" +msgstr "" + +#: src/dht/gnunet-dht-put.c:232 +msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY." +msgstr "" + +#: src/dht/gnunet-service-dht_clients.c:367 msgid "# GET requests from clients injected" msgstr "" @@ -2277,54 +2325,6 @@ msgstr "" msgid "# DHT requests combined" msgstr "" -#: src/dht/gnunet_dht_profiler.c:922 src/testbed/gnunet-testbed-profiler.c:255 -#, fuzzy, c-format -msgid "Exiting as the number of peers is %u\n" -msgstr "增加 TCP/IP 的最大连接数" - -#: src/dht/gnunet_dht_profiler.c:955 src/rps/gnunet-rps-profiler.c:3194 -#, fuzzy -msgid "number of peers to start" -msgstr "迭代次数" - -#: src/dht/gnunet_dht_profiler.c:961 -msgid "number of PUTs to perform per peer" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:967 src/nse/gnunet-nse-profiler.c:872 -#: src/testbed/gnunet-testbed-profiler.c:305 -msgid "name of the file with the login information for the testbed" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:973 -msgid "delay between rounds for collecting statistics (default: 30 sec)" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:979 -msgid "delay to start doing PUTs (default: 1 sec)" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:985 -msgid "delay to start doing GETs (default: 5 min)" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:990 -msgid "replication degree for DHT PUTs" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:996 -msgid "chance that a peer is selected at random for PUTs" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:1002 -msgid "timeout for DHT PUT and GET requests (default: 1 min)" -msgstr "" - -#: src/dht/gnunet_dht_profiler.c:1023 -#, fuzzy -msgid "Measure quality and performance of the DHT service." -msgstr "无法访问该服务" - #: src/dht/plugin_block_dht.c:189 #, c-format msgid "Block not of type %u\n" @@ -3244,6 +3244,14 @@ msgid "" "chk/...)" msgstr "" +#: src/fs/gnunet-fs.c:128 +msgid "print a list of all indexed files" +msgstr "" + +#: src/fs/gnunet-fs.c:141 +msgid "Special file-sharing operations" +msgstr "" + #: src/fs/gnunet-fs-profiler.c:211 msgid "run the experiment with COUNT peers" msgstr "" @@ -3260,14 +3268,6 @@ msgstr "" msgid "run a testbed to measure file-sharing performance" msgstr "" -#: src/fs/gnunet-fs.c:128 -msgid "print a list of all indexed files" -msgstr "" - -#: src/fs/gnunet-fs.c:141 -msgid "Special file-sharing operations" -msgstr "" - #: src/fs/gnunet-publish.c:219 src/fs/gnunet-publish.c:234 #, c-format msgid "Publishing `%s' at %llu/%llu (%s remaining)\n" @@ -3922,6 +3922,50 @@ msgstr "" msgid "look for GNS2DNS records instead of ANY" msgstr "" +#: src/gns/gnunet-gns.c:257 +#, fuzzy, c-format +msgid "`%s' is not a valid DNS domain name\n" +msgstr "“%s”不可用。\n" + +#: src/gns/gnunet-gns.c:267 src/util/dnsparser.c:254 +#, fuzzy, c-format +msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n" +msgstr "打开日志文件“%s”失败:%s\n" + +#: src/gns/gnunet-gns.c:281 +msgid "Cannot resolve using GNS: GNUnet peer not running\n" +msgstr "" + +#: src/gns/gnunet-gns.c:305 +#, c-format +msgid "Invalid typename specified, assuming `ANY'\n" +msgstr "" + +#: src/gns/gnunet-gns.c:340 +msgid "Lookup a record for the given name" +msgstr "" + +#: src/gns/gnunet-gns.c:346 +msgid "Specify the type of the record to lookup" +msgstr "" + +#: src/gns/gnunet-gns.c:352 +msgid "Specify a timeout for the lookup" +msgstr "" + +#: src/gns/gnunet-gns.c:356 +msgid "No unneeded output" +msgstr "" + +#: src/gns/gnunet-gns.c:361 +msgid "DNS Compatibility: Name is passed in IDNA instead of UTF-8" +msgstr "" + +#: src/gns/gnunet-gns.c:375 +#, fuzzy +msgid "GNUnet GNS resolver tool" +msgstr "GNUnet 错误日志" + #: src/gns/gnunet-gns-import.c:486 msgid "This program will import some GNS authorities into your GNS namestore." msgstr "" @@ -4042,50 +4086,6 @@ msgstr "" msgid "GNUnet GNS proxy" msgstr "" -#: src/gns/gnunet-gns.c:253 -#, fuzzy, c-format -msgid "`%s' is not a valid DNS domain name\n" -msgstr "“%s”不可用。\n" - -#: src/gns/gnunet-gns.c:263 src/util/dnsparser.c:254 -#, fuzzy, c-format -msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n" -msgstr "打开日志文件“%s”失败:%s\n" - -#: src/gns/gnunet-gns.c:277 -msgid "Cannot resolve using GNS: GNUnet peer not running\n" -msgstr "" - -#: src/gns/gnunet-gns.c:301 -#, c-format -msgid "Invalid typename specified, assuming `ANY'\n" -msgstr "" - -#: src/gns/gnunet-gns.c:336 -msgid "Lookup a record for the given name" -msgstr "" - -#: src/gns/gnunet-gns.c:342 -msgid "Specify the type of the record to lookup" -msgstr "" - -#: src/gns/gnunet-gns.c:348 -msgid "Specify a timeout for the lookup" -msgstr "" - -#: src/gns/gnunet-gns.c:352 -msgid "No unneeded output" -msgstr "" - -#: src/gns/gnunet-gns.c:357 -msgid "DNS Compatibility: Name is passed in IDNA instead of UTF-8" -msgstr "" - -#: src/gns/gnunet-gns.c:371 -#, fuzzy -msgid "GNUnet GNS resolver tool" -msgstr "GNUnet 错误日志" - #: src/gns/gnunet-service-gns.c:505 #, fuzzy msgid "Properly base32-encoded public key required" @@ -4097,8 +4097,8 @@ msgid "Failed to connect to the namecache!\n" msgstr "初始化“%s”服务失败。\n" #: src/gns/gnunet-service-gns.c:560 -#: src/zonemaster/gnunet-service-zonemaster-monitor.c:444 #: src/zonemaster/gnunet-service-zonemaster.c:887 +#: src/zonemaster/gnunet-service-zonemaster-monitor.c:444 #, fuzzy msgid "Could not connect to DHT!\n" msgstr "无法连接到 %s:%u:%s\n" @@ -4157,21 +4157,21 @@ msgstr "" msgid "GNS lookup failed (zero records found for `%s')\n" msgstr "运行 %s失败:%s %d\n" -#: src/gns/gnunet-service-gns_resolver.c:2376 +#: src/gns/gnunet-service-gns_resolver.c:2372 msgid "GNS lookup recursion failed (no delegation record found)\n" msgstr "" -#: src/gns/gnunet-service-gns_resolver.c:2399 +#: src/gns/gnunet-service-gns_resolver.c:2395 #, fuzzy, c-format msgid "Failed to cache GNS resolution: %s\n" msgstr "打开日志文件“%s”失败:%s\n" -#: src/gns/gnunet-service-gns_resolver.c:2567 +#: src/gns/gnunet-service-gns_resolver.c:2563 #, c-format msgid "GNS namecache returned empty result for `%s'\n" msgstr "" -#: src/gns/gnunet-service-gns_resolver.c:2707 +#: src/gns/gnunet-service-gns_resolver.c:2703 #, c-format msgid "Zone %s was revoked, resolution fails\n" msgstr "" @@ -4838,70 +4838,6 @@ msgstr "sqlite 数据仓库" msgid "Failed to setup database at `%s'\n" msgstr "运行 %s失败:%s %d\n" -#: src/namestore/gnunet-namestore-fcfsd.c:551 -#, fuzzy, c-format -msgid "Unsupported form value `%s'\n" -msgstr "未知的命令“%s”。\n" - -#: src/namestore/gnunet-namestore-fcfsd.c:578 -#, fuzzy, c-format -msgid "Failed to create record for domain `%s': %s\n" -msgstr "解析配置文件“%s”失败\n" - -#: src/namestore/gnunet-namestore-fcfsd.c:599 -msgid "Error when mapping zone to name\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:631 -#, c-format -msgid "Found existing name `%s' for the given key\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:693 -#, c-format -msgid "Found %u existing records for domain `%s'\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:783 -#, fuzzy, c-format -msgid "Failed to create page for `%s'\n" -msgstr "发送消息失败。\n" - -#: src/namestore/gnunet-namestore-fcfsd.c:802 -#, fuzzy, c-format -msgid "Failed to setup post processor for `%s'\n" -msgstr "解析配置文件“%s”失败\n" - -#: src/namestore/gnunet-namestore-fcfsd.c:839 -msgid "Domain name must not contain `.'\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:848 -msgid "Domain name must not contain `+'\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:1083 -msgid "No ego configured for `fcfsd` subsystem\n" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:1114 -#, fuzzy -msgid "Failed to start HTTP server\n" -msgstr "初始化“%s”服务失败。\n" - -#: src/namestore/gnunet-namestore-fcfsd.c:1162 -#, fuzzy -msgid "Failed to connect to identity\n" -msgstr "初始化“%s”服务失败。\n" - -#: src/namestore/gnunet-namestore-fcfsd.c:1189 -msgid "name of the zone that is to be managed by FCFSD" -msgstr "" - -#: src/namestore/gnunet-namestore-fcfsd.c:1209 -msgid "GNU Name System First Come First Serve name registration service" -msgstr "" - #: src/namestore/gnunet-namestore.c:334 #, c-format msgid "Adding record failed: %s\n" @@ -5124,7 +5060,71 @@ msgstr "" msgid "name of the ego controlling the zone" msgstr "" -#: src/namestore/gnunet-service-namestore.c:864 +#: src/namestore/gnunet-namestore-fcfsd.c:551 +#, fuzzy, c-format +msgid "Unsupported form value `%s'\n" +msgstr "未知的命令“%s”。\n" + +#: src/namestore/gnunet-namestore-fcfsd.c:578 +#, fuzzy, c-format +msgid "Failed to create record for domain `%s': %s\n" +msgstr "解析配置文件“%s”失败\n" + +#: src/namestore/gnunet-namestore-fcfsd.c:599 +msgid "Error when mapping zone to name\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:631 +#, c-format +msgid "Found existing name `%s' for the given key\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:693 +#, c-format +msgid "Found %u existing records for domain `%s'\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:783 +#, fuzzy, c-format +msgid "Failed to create page for `%s'\n" +msgstr "发送消息失败。\n" + +#: src/namestore/gnunet-namestore-fcfsd.c:802 +#, fuzzy, c-format +msgid "Failed to setup post processor for `%s'\n" +msgstr "解析配置文件“%s”失败\n" + +#: src/namestore/gnunet-namestore-fcfsd.c:839 +msgid "Domain name must not contain `.'\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:848 +msgid "Domain name must not contain `+'\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:1083 +msgid "No ego configured for `fcfsd` subsystem\n" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:1114 +#, fuzzy +msgid "Failed to start HTTP server\n" +msgstr "初始化“%s”服务失败。\n" + +#: src/namestore/gnunet-namestore-fcfsd.c:1162 +#, fuzzy +msgid "Failed to connect to identity\n" +msgstr "初始化“%s”服务失败。\n" + +#: src/namestore/gnunet-namestore-fcfsd.c:1189 +msgid "name of the zone that is to be managed by FCFSD" +msgstr "" + +#: src/namestore/gnunet-namestore-fcfsd.c:1209 +msgid "GNU Name System First Come First Serve name registration service" +msgstr "" + +#: src/namestore/gnunet-service-namestore.c:866 #, fuzzy, c-format msgid "Failed to replicate block in namecache: %s\n" msgstr "发送消息失败。\n" @@ -5439,41 +5439,95 @@ msgstr "" msgid "`upnpc' command not found\n" msgstr "" +#: src/nse/gnunet-nse.c:124 +msgid "Show network size estimates from NSE service." +msgstr "" + #: src/nse/gnunet-nse-profiler.c:857 msgid "limit to the number of connections to NSE services, 0 for none" msgstr "" -#: src/nse/gnunet-nse-profiler.c:864 -msgid "name of the file for writing connection information and statistics" +#: src/nse/gnunet-nse-profiler.c:864 +msgid "name of the file for writing connection information and statistics" +msgstr "" + +#: src/nse/gnunet-nse-profiler.c:879 +msgid "name of the file for writing the main results" +msgstr "" + +#: src/nse/gnunet-nse-profiler.c:888 +msgid "Number of peers to run in each round, separated by commas" +msgstr "" + +#: src/nse/gnunet-nse-profiler.c:900 +msgid "delay between rounds" +msgstr "" + +#: src/nse/gnunet-nse-profiler.c:912 +#, fuzzy +msgid "Measure quality and performance of the NSE service." +msgstr "无法访问该服务" + +#: src/nse/gnunet-service-nse.c:1437 +#: src/revocation/gnunet-service-revocation.c:846 src/util/gnunet-scrypt.c:247 +#, fuzzy +msgid "Value is too large.\n" +msgstr "值不在合法范围内。" + +#: src/peerinfo/gnunet-service-peerinfo.c:175 +#, c-format +msgid "Removing expired address of transport `%s'\n" +msgstr "" + +#: src/peerinfo/gnunet-service-peerinfo.c:306 +#, fuzzy, c-format +msgid "Failed to parse HELLO in file `%s': %s\n" +msgstr "解析配置文件“%s”失败\n" + +#: src/peerinfo/gnunet-service-peerinfo.c:323 +#: src/peerinfo/gnunet-service-peerinfo.c:348 +#, fuzzy, c-format +msgid "Failed to parse HELLO in file `%s'\n" +msgstr "解析配置文件“%s”失败\n" + +#: src/peerinfo/gnunet-service-peerinfo.c:426 +msgid "# peers known" +msgstr "" + +#: src/peerinfo/gnunet-service-peerinfo.c:468 +#, c-format +msgid "" +"File `%s' in directory `%s' does not match naming convention. Removed.\n" +msgstr "" + +#: src/peerinfo/gnunet-service-peerinfo.c:624 +#, fuzzy, c-format +msgid "Scanning directory `%s'\n" +msgstr "解析配置文件“%s”失败\n" + +#: src/peerinfo/gnunet-service-peerinfo.c:631 +#, c-format +msgid "Still no peers found in `%s'!\n" msgstr "" -#: src/nse/gnunet-nse-profiler.c:879 -msgid "name of the file for writing the main results" -msgstr "" +#: src/peerinfo/gnunet-service-peerinfo.c:1024 +#, fuzzy, c-format +msgid "Cleaning up directory `%s'\n" +msgstr "解析配置文件“%s”失败\n" -#: src/nse/gnunet-nse-profiler.c:888 -msgid "Number of peers to run in each round, separated by commas" +#: src/peerinfo/gnunet-service-peerinfo.c:1319 +#, c-format +msgid "Importing HELLOs from `%s'\n" msgstr "" -#: src/nse/gnunet-nse-profiler.c:900 -msgid "delay between rounds" +#: src/peerinfo/gnunet-service-peerinfo.c:1332 +msgid "Skipping import of included HELLOs\n" msgstr "" -#: src/nse/gnunet-nse-profiler.c:912 -#, fuzzy -msgid "Measure quality and performance of the NSE service." -msgstr "无法访问该服务" - -#: src/nse/gnunet-nse.c:124 -msgid "Show network size estimates from NSE service." +#: src/peerinfo/peerinfo_api.c:217 +msgid "Failed to receive response from `PEERINFO' service." msgstr "" -#: src/nse/gnunet-service-nse.c:1437 -#: src/revocation/gnunet-service-revocation.c:846 src/util/gnunet-scrypt.c:247 -#, fuzzy -msgid "Value is too large.\n" -msgstr "值不在合法范围内。" - #: src/peerinfo-tool/gnunet-peerinfo.c:237 #, fuzzy, c-format msgid "%sPeer `%s'\n" @@ -5570,60 +5624,6 @@ msgstr "解析配置文件“%s”失败\n" msgid "Peerinfo REST API initialized\n" msgstr "" -#: src/peerinfo/gnunet-service-peerinfo.c:175 -#, c-format -msgid "Removing expired address of transport `%s'\n" -msgstr "" - -#: src/peerinfo/gnunet-service-peerinfo.c:306 -#, fuzzy, c-format -msgid "Failed to parse HELLO in file `%s': %s\n" -msgstr "解析配置文件“%s”失败\n" - -#: src/peerinfo/gnunet-service-peerinfo.c:323 -#: src/peerinfo/gnunet-service-peerinfo.c:348 -#, fuzzy, c-format -msgid "Failed to parse HELLO in file `%s'\n" -msgstr "解析配置文件“%s”失败\n" - -#: src/peerinfo/gnunet-service-peerinfo.c:426 -msgid "# peers known" -msgstr "" - -#: src/peerinfo/gnunet-service-peerinfo.c:468 -#, c-format -msgid "" -"File `%s' in directory `%s' does not match naming convention. Removed.\n" -msgstr "" - -#: src/peerinfo/gnunet-service-peerinfo.c:624 -#, fuzzy, c-format -msgid "Scanning directory `%s'\n" -msgstr "解析配置文件“%s”失败\n" - -#: src/peerinfo/gnunet-service-peerinfo.c:631 -#, c-format -msgid "Still no peers found in `%s'!\n" -msgstr "" - -#: src/peerinfo/gnunet-service-peerinfo.c:1024 -#, fuzzy, c-format -msgid "Cleaning up directory `%s'\n" -msgstr "解析配置文件“%s”失败\n" - -#: src/peerinfo/gnunet-service-peerinfo.c:1319 -#, c-format -msgid "Importing HELLOs from `%s'\n" -msgstr "" - -#: src/peerinfo/gnunet-service-peerinfo.c:1332 -msgid "Skipping import of included HELLOs\n" -msgstr "" - -#: src/peerinfo/peerinfo_api.c:217 -msgid "Failed to receive response from `PEERINFO' service." -msgstr "" - #: src/peerstore/gnunet-peerstore.c:92 msgid "peerstore" msgstr "" @@ -6044,6 +6044,18 @@ msgstr "" msgid "Could not open revocation database file!" msgstr "无法连接到 %s:%u:%s\n" +#: src/rps/gnunet-rps.c:270 +msgid "Seed a PeerID" +msgstr "" + +#: src/rps/gnunet-rps.c:275 +msgid "Get updates of view (0 for infinite updates)" +msgstr "" + +#: src/rps/gnunet-rps.c:279 +msgid "Get peers from biased stream" +msgstr "" + #: src/rps/gnunet-rps-profiler.c:3200 msgid "duration of the profiling" msgstr "" @@ -6062,18 +6074,6 @@ msgstr "迭代次数" msgid "Measure quality and performance of the RPS service." msgstr "无法访问该服务" -#: src/rps/gnunet-rps.c:270 -msgid "Seed a PeerID" -msgstr "" - -#: src/rps/gnunet-rps.c:275 -msgid "Get updates of view (0 for infinite updates)" -msgstr "" - -#: src/rps/gnunet-rps.c:279 -msgid "Get peers from biased stream" -msgstr "" - #: src/scalarproduct/gnunet-scalarproduct.c:229 #, fuzzy msgid "You must specify at least one message ID to check!\n" @@ -6129,10 +6129,10 @@ msgstr "" msgid "Calculate the Vectorproduct with a GNUnet peer." msgstr "" -#: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1127 -#: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1073 #: src/scalarproduct/gnunet-service-scalarproduct_alice.c:1363 #: src/scalarproduct/gnunet-service-scalarproduct_bob.c:1366 +#: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1127 +#: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1073 #, fuzzy msgid "Connect to CADET failed\n" msgstr "“%s”已连接到“%s”。\n" @@ -6476,6 +6476,15 @@ msgstr "" msgid "%.s Unknown result code." msgstr "" +#: src/testbed/gnunet_testbed_mpi_spawn.c:119 +msgid "Waiting for child to exit.\n" +msgstr "" + +#: src/testbed/gnunet_testbed_mpi_spawn.c:242 +#, fuzzy, c-format +msgid "Spawning process `%s'\n" +msgstr "卸载 GNUnet 服务" + #: src/testbed/gnunet-testbed-profiler.c:290 msgid "tolerate COUNT number of continious timeout failures" msgstr "" @@ -6487,15 +6496,6 @@ msgid "" "signal is received" msgstr "" -#: src/testbed/gnunet_testbed_mpi_spawn.c:119 -msgid "Waiting for child to exit.\n" -msgstr "" - -#: src/testbed/gnunet_testbed_mpi_spawn.c:242 -#, fuzzy, c-format -msgid "Spawning process `%s'\n" -msgstr "卸载 GNUnet 服务" - #: src/testbed/testbed_api.c:399 #, fuzzy, c-format msgid "Adding host %u failed with error: %s\n" @@ -6829,6 +6829,10 @@ msgstr "发送消息失败。\n" msgid "GNUnet UNIX domain socket communicator" msgstr "" +#: src/transport/gnunet-service-transport_ats.c:137 +msgid "# Addresses given to ATS" +msgstr "" + #: src/transport/gnunet-service-transport.c:445 msgid "# messages dropped due to slow client" msgstr "" @@ -6869,10 +6873,6 @@ msgstr "卸载 GNUnet 服务" msgid "Adding blacklisting entry for peer `%s':`%s'\n" msgstr "" -#: src/transport/gnunet-service-transport_ats.c:137 -msgid "# Addresses given to ATS" -msgstr "" - #: src/transport/gnunet-service-transport_hello.c:195 msgid "# refreshed my HELLO" msgstr "" @@ -7181,44 +7181,6 @@ msgstr "" msgid "# HELLOs given to peerinfo" msgstr "" -#: src/transport/gnunet-transport-profiler.c:220 -#, c-format -msgid "%llu B in %llu ms == %.2f KB/s!\n" -msgstr "" - -#: src/transport/gnunet-transport-profiler.c:577 -msgid "send data to peer" -msgstr "" - -#: src/transport/gnunet-transport-profiler.c:581 -msgid "receive data from peer" -msgstr "" - -#: src/transport/gnunet-transport-profiler.c:586 -msgid "iterations" -msgstr "" - -#: src/transport/gnunet-transport-profiler.c:591 -#, fuzzy -msgid "number of messages to send" -msgstr "每次迭代所使用的消息数量" - -#: src/transport/gnunet-transport-profiler.c:596 -#, fuzzy -msgid "message size to use" -msgstr "消息尺寸" - -#: src/transport/gnunet-transport-profiler.c:601 -#: src/transport/gnunet-transport.c:1404 -msgid "peer identity" -msgstr "" - -#: src/transport/gnunet-transport-profiler.c:614 -#: src/transport/gnunet-transport.c:1426 -#, fuzzy -msgid "Direct access to transport service." -msgstr "初始化“%s”服务失败。\n" - #: src/transport/gnunet-transport.c:406 #, c-format msgid "Transmitted %llu bytes/s (%llu bytes in %s)\n" @@ -7355,6 +7317,11 @@ msgstr "" msgid "do not resolve hostnames" msgstr "" +#: src/transport/gnunet-transport.c:1404 +#: src/transport/gnunet-transport-profiler.c:601 +msgid "peer identity" +msgstr "" + #: src/transport/gnunet-transport.c:1408 msgid "monitor plugin sessions" msgstr "" @@ -7363,6 +7330,39 @@ msgstr "" msgid "send data for benchmarking to the other peer (until CTRL-C)" msgstr "" +#: src/transport/gnunet-transport.c:1426 +#: src/transport/gnunet-transport-profiler.c:614 +#, fuzzy +msgid "Direct access to transport service." +msgstr "初始化“%s”服务失败。\n" + +#: src/transport/gnunet-transport-profiler.c:220 +#, c-format +msgid "%llu B in %llu ms == %.2f KB/s!\n" +msgstr "" + +#: src/transport/gnunet-transport-profiler.c:577 +msgid "send data to peer" +msgstr "" + +#: src/transport/gnunet-transport-profiler.c:581 +msgid "receive data from peer" +msgstr "" + +#: src/transport/gnunet-transport-profiler.c:586 +msgid "iterations" +msgstr "" + +#: src/transport/gnunet-transport-profiler.c:591 +#, fuzzy +msgid "number of messages to send" +msgstr "每次迭代所使用的消息数量" + +#: src/transport/gnunet-transport-profiler.c:596 +#, fuzzy +msgid "message size to use" +msgstr "消息尺寸" + #: src/transport/plugin_transport_http_client.c:1489 #: src/transport/plugin_transport_http_server.c:2331 #: src/transport/plugin_transport_http_server.c:3562 @@ -7639,6 +7639,20 @@ msgstr "" msgid "TCP transport advertises itself as being on port %llu\n" msgstr "" +#: src/transport/plugin_transport_udp_broadcasting.c:169 +msgid "# Multicast HELLO beacons received via UDP" +msgstr "" + +#: src/transport/plugin_transport_udp_broadcasting.c:553 +msgid "" +"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n" +msgstr "" + +#: src/transport/plugin_transport_udp_broadcasting.c:571 +#, c-format +msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n" +msgstr "" + #: src/transport/plugin_transport_udp.c:3169 #, c-format msgid "" @@ -7687,20 +7701,6 @@ msgstr "“%s”不可用。\n" msgid "Failed to create UDP network sockets\n" msgstr "发送消息失败。\n" -#: src/transport/plugin_transport_udp_broadcasting.c:169 -msgid "# Multicast HELLO beacons received via UDP" -msgstr "" - -#: src/transport/plugin_transport_udp_broadcasting.c:553 -msgid "" -"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n" -msgstr "" - -#: src/transport/plugin_transport_udp_broadcasting.c:571 -#, c-format -msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n" -msgstr "" - #: src/transport/plugin_transport_unix.c:1396 #, fuzzy, c-format msgid "Cannot bind to `%s'\n" @@ -7778,17 +7778,17 @@ msgstr "“%s”已连接到“%s”。\n" msgid "Accepting connection from `%s': %p\n" msgstr "" -#: src/transport/tcp_server_legacy.c:478 src/util/service.c:1400 +#: src/transport/tcp_server_legacy.c:478 src/util/service.c:1397 #, fuzzy, c-format msgid "`%s' failed for port %d (%s).\n" msgstr "对驱动器“%2$s”的“%1$s”操作失败:%3$u\n" -#: src/transport/tcp_server_legacy.c:488 src/util/service.c:1412 +#: src/transport/tcp_server_legacy.c:488 src/util/service.c:1409 #, c-format msgid "`%s' failed for port %d (%s): address already in use\n" msgstr "" -#: src/transport/tcp_server_legacy.c:494 src/util/service.c:1419 +#: src/transport/tcp_server_legacy.c:494 src/util/service.c:1416 #, fuzzy, c-format msgid "`%s' failed for `%s': address already in use\n" msgstr "对驱动器“%2$s”的“%1$s”操作失败:%3$u\n" @@ -7800,7 +7800,7 @@ msgid "" "`GNUNET_SERVER_receive_done' after %s\n" msgstr "" -#: src/transport/tcp_service_legacy.c:345 src/util/service.c:837 +#: src/transport/tcp_service_legacy.c:345 src/util/service.c:834 #, c-format msgid "Unknown address family %d\n" msgstr "" @@ -7810,23 +7810,23 @@ msgstr "" msgid "Access from `%s' denied to service `%s'\n" msgstr "" -#: src/transport/tcp_service_legacy.c:410 src/util/service.c:950 +#: src/transport/tcp_service_legacy.c:410 src/util/service.c:947 #, c-format msgid "Could not parse IPv4 network specification `%s' for `%s:%s'\n" msgstr "" -#: src/transport/tcp_service_legacy.c:451 src/util/service.c:991 +#: src/transport/tcp_service_legacy.c:451 src/util/service.c:988 #, c-format msgid "Could not parse IPv6 network specification `%s' for `%s:%s'\n" msgstr "" #: src/transport/tcp_service_legacy.c:890 -#: src/transport/tcp_service_legacy.c:910 src/util/service.c:1480 +#: src/transport/tcp_service_legacy.c:910 src/util/service.c:1477 #, c-format msgid "Specified value for `%s' of service `%s' is invalid\n" msgstr "" -#: src/transport/tcp_service_legacy.c:935 src/util/service.c:1504 +#: src/transport/tcp_service_legacy.c:935 src/util/service.c:1501 #, c-format msgid "Could not access pre-bound socket %u, will try to bind myself\n" msgstr "" @@ -7841,45 +7841,45 @@ msgstr "运行 %s失败:%s %d\n" msgid "Service `%s' runs at %s\n" msgstr "" -#: src/transport/tcp_service_legacy.c:1193 src/util/service.c:1750 +#: src/transport/tcp_service_legacy.c:1193 src/util/service.c:1747 msgid "Service process failed to initialize\n" msgstr "" -#: src/transport/tcp_service_legacy.c:1198 src/util/service.c:1755 +#: src/transport/tcp_service_legacy.c:1198 src/util/service.c:1752 msgid "Service process could not initialize server function\n" msgstr "" -#: src/transport/tcp_service_legacy.c:1203 src/util/service.c:1760 +#: src/transport/tcp_service_legacy.c:1203 src/util/service.c:1757 msgid "Service process failed to report status\n" msgstr "" #: src/transport/tcp_service_legacy.c:1253 src/util/disk.c:1177 -#: src/util/service.c:1641 +#: src/util/service.c:1638 #, c-format msgid "Cannot obtain information about user `%s': %s\n" msgstr "无法获取有关用户“%s”的信息:%s\n" -#: src/transport/tcp_service_legacy.c:1255 src/util/service.c:1643 +#: src/transport/tcp_service_legacy.c:1255 src/util/service.c:1640 msgid "No such user" msgstr "无此用户" -#: src/transport/tcp_service_legacy.c:1269 src/util/service.c:1657 +#: src/transport/tcp_service_legacy.c:1269 src/util/service.c:1654 #, c-format msgid "Cannot change user/group to `%s': %s\n" msgstr "无法更改用户/组为“%s”:%s\n" -#: src/transport/tcp_service_legacy.c:1348 src/util/service.c:1999 +#: src/transport/tcp_service_legacy.c:1348 src/util/service.c:1996 msgid "do daemonize (detach from terminal)" msgstr "" #: src/transport/tcp_service_legacy.c:1397 -#: src/transport/transport-testing2.c:906 src/util/service.c:2073 -#: src/util/service.c:2085 +#: src/transport/transport-testing2.c:906 src/util/service.c:2070 +#: src/util/service.c:2082 #, fuzzy, c-format msgid "Malformed configuration file `%s', exit ...\n" msgstr "解析配置文件“%s”失败\n" -#: src/transport/tcp_service_legacy.c:1407 src/util/service.c:2095 +#: src/transport/tcp_service_legacy.c:1407 src/util/service.c:2092 #, fuzzy msgid "Malformed configuration, exit ...\n" msgstr "解析配置文件“%s”失败\n" @@ -7922,105 +7922,105 @@ msgstr "" msgid "Metadata `%s' failed to deserialize" msgstr "" -#: src/util/client.c:739 src/util/client.c:931 +#: src/util/client.c:747 src/util/client.c:937 msgid "not a valid filename" msgstr "" -#: src/util/client.c:1097 +#: src/util/client.c:1103 #, c-format msgid "Need a non-empty hostname for service `%s'.\n" msgstr "" -#: src/util/common_logging.c:259 src/util/common_logging.c:1116 +#: src/util/common_logging.c:259 src/util/common_logging.c:1112 msgid "DEBUG" msgstr "调试" -#: src/util/common_logging.c:261 src/util/common_logging.c:1114 +#: src/util/common_logging.c:261 src/util/common_logging.c:1110 msgid "INFO" msgstr "信息" -#: src/util/common_logging.c:263 src/util/common_logging.c:1112 +#: src/util/common_logging.c:263 src/util/common_logging.c:1108 msgid "MESSAGE" msgstr "" -#: src/util/common_logging.c:265 src/util/common_logging.c:1110 +#: src/util/common_logging.c:265 src/util/common_logging.c:1106 msgid "WARNING" msgstr "警告" -#: src/util/common_logging.c:267 src/util/common_logging.c:1108 +#: src/util/common_logging.c:267 src/util/common_logging.c:1104 msgid "ERROR" msgstr "错误" -#: src/util/common_logging.c:269 src/util/common_logging.c:1118 +#: src/util/common_logging.c:269 src/util/common_logging.c:1114 msgid "NONE" msgstr "" -#: src/util/common_logging.c:630 src/util/common_logging.c:669 +#: src/util/common_logging.c:626 src/util/common_logging.c:665 #, c-format msgid "ERROR: Unable to parse log definition: Syntax error at `%s'.\n" msgstr "" -#: src/util/common_logging.c:906 +#: src/util/common_logging.c:902 #, fuzzy, c-format msgid "Message `%.*s' repeated %u times in the last %s\n" msgstr "消息“%.*s”重复了 %u 次,在最近 %llu 秒内\n" -#: src/util/common_logging.c:1119 +#: src/util/common_logging.c:1115 msgid "INVALID" msgstr "" -#: src/util/common_logging.c:1400 +#: src/util/common_logging.c:1396 msgid "unknown address" msgstr "" -#: src/util/common_logging.c:1445 +#: src/util/common_logging.c:1441 msgid "invalid address" msgstr "" -#: src/util/common_logging.c:1464 +#: src/util/common_logging.c:1460 #, fuzzy, c-format msgid "Configuration fails to specify option `%s' in section `%s'!\n" msgstr "配置不满足配置规范文件“%s”的约束!\n" -#: src/util/common_logging.c:1487 +#: src/util/common_logging.c:1483 #, fuzzy, c-format msgid "" "Configuration specifies invalid value for option `%s' in section `%s': %s\n" msgstr "配置不满足配置规范文件“%s”的约束!\n" -#: src/util/configuration.c:325 +#: src/util/configuration.c:402 #, fuzzy, c-format msgid "Syntax error while deserializing in line %u\n" msgstr "配置文件“%s”第 %d 行有语法错误。\n" -#: src/util/configuration.c:383 +#: src/util/configuration.c:460 #, fuzzy, c-format msgid "Error while reading file `%s'\n" msgstr "解析 dscl 输出时出错。\n" -#: src/util/configuration.c:986 +#: src/util/configuration.c:1063 #, fuzzy msgid "Not a valid relative time specification" msgstr "配置文件“%s”已写入。\n" -#: src/util/configuration.c:1077 +#: src/util/configuration.c:1154 #, c-format msgid "" "Configuration value '%s' for '%s' in section '%s' is not in set of legal " "choices\n" msgstr "" -#: src/util/configuration.c:1192 +#: src/util/configuration.c:1269 #, c-format msgid "Recursive expansion suspected, aborting $-expansion for term `%s'\n" msgstr "" -#: src/util/configuration.c:1224 +#: src/util/configuration.c:1301 #, fuzzy, c-format msgid "Missing closing `%s' in option `%s'\n" msgstr "配置文件“%s”已写入。\n" -#: src/util/configuration.c:1290 +#: src/util/configuration.c:1367 #, c-format msgid "" "Failed to expand `%s' in `%s' as it is neither found in [PATHS] nor defined " @@ -8084,7 +8084,7 @@ msgstr "libgcrypt 的版本不符合预期(要求版本 %s)。\n" msgid "RSA signing failed at %s:%d: %s\n" msgstr "对驱动器“%2$s”的“%1$s”操作失败:%3$u\n" -#: src/util/crypto_rsa.c:1313 +#: src/util/crypto_rsa.c:1314 #, fuzzy, c-format msgid "RSA signature verification failed at %s:%d: %s\n" msgstr "对驱动器“%2$s”的“%1$s”操作失败:%3$u\n" @@ -8189,64 +8189,72 @@ msgstr "" msgid "Missing mandatory option `%s'.\n" msgstr "配置文件“%s”已写入。\n" -#: src/util/getopt_helpers.c:68 +#: src/util/getopt_helpers.c:69 msgid "print the version number" msgstr "" -#: src/util/getopt_helpers.c:114 +#: src/util/getopt_helpers.c:116 #, c-format msgid "" "Arguments mandatory for long options are also mandatory for short options.\n" msgstr "长选项的必选参数对短选项也是必选的。\n" -#: src/util/getopt_helpers.c:205 +#: src/util/getopt_helpers.c:208 msgid "print this help" msgstr "" -#: src/util/getopt_helpers.c:281 +#: src/util/getopt_helpers.c:288 msgid "be verbose" msgstr "" -#: src/util/getopt_helpers.c:417 +#: src/util/getopt_helpers.c:429 msgid "configure logging to use LOGLEVEL" msgstr "" -#: src/util/getopt_helpers.c:495 +#: src/util/getopt_helpers.c:510 msgid "configure logging to write logs to FILENAME" msgstr "" -#: src/util/getopt_helpers.c:516 +#: src/util/getopt_helpers.c:532 #, fuzzy msgid "use configuration file FILENAME" msgstr "更改配置文件中的一个值" -#: src/util/getopt_helpers.c:551 src/util/getopt_helpers.c:747 -#: src/util/getopt_helpers.c:810 +#: src/util/getopt_helpers.c:568 src/util/getopt_helpers.c:634 +#: src/util/getopt_helpers.c:835 src/util/getopt_helpers.c:900 #, c-format msgid "You must pass a number to the `%s' option.\n" msgstr "您必须向“%s”选项传递一个数字。\n" -#: src/util/getopt_helpers.c:612 +#: src/util/getopt_helpers.c:659 +msgid "[+/-]MICROSECONDS" +msgstr "" + +#: src/util/getopt_helpers.c:661 +msgid "modify system time by given offset (for debugging/testing only)" +msgstr "" + +#: src/util/getopt_helpers.c:696 #, fuzzy, c-format msgid "You must pass relative time to the `%s' option.\n" msgstr "您必须向“%s”选项传递一个数字。\n" -#: src/util/getopt_helpers.c:675 +#: src/util/getopt_helpers.c:761 #, fuzzy, c-format msgid "You must pass absolute time to the `%s' option.\n" msgstr "您必须向“%s”选项传递一个数字。\n" -#: src/util/getopt_helpers.c:740 +#: src/util/getopt_helpers.c:828 #, c-format -msgid "Your input for the '%s' option has to be a non negative number \n" +msgid "Your input for the '%s' option has to be a non negative number\n" msgstr "" -#: src/util/getopt_helpers.c:817 +#: src/util/getopt_helpers.c:907 #, fuzzy, c-format msgid "You must pass a number below %u to the `%s' option.\n" msgstr "您必须向“%s”选项传递一个数字。\n" -#: src/util/getopt_helpers.c:902 +#: src/util/getopt_helpers.c:994 #, c-format msgid "Argument `%s' malformed. Expected base32 (Crockford) encoded value.\n" msgstr "" @@ -8583,14 +8591,14 @@ msgstr "" msgid "Could not resolve our FQDN: %s\n" msgstr "无法解析“%s”(%s):%s\n" -#: src/util/service.c:657 +#: src/util/service.c:654 #, c-format msgid "" "Processing code for message of type %u did not call " "`GNUNET_SERVICE_client_continue' after %s\n" msgstr "" -#: src/util/service.c:1572 +#: src/util/service.c:1569 msgid "" "Could not bind to any of the ports I was supposed to, refusing to run!\n" msgstr "" @@ -8902,8 +8910,8 @@ msgstr "" msgid "Setup tunnels via VPN." msgstr "" -#: src/zonemaster/gnunet-service-zonemaster-monitor.c:420 #: src/zonemaster/gnunet-service-zonemaster.c:849 +#: src/zonemaster/gnunet-service-zonemaster-monitor.c:420 #, fuzzy msgid "Failed to connect to the namestore!\n" msgstr "初始化“%s”服务失败。\n" diff --git a/src/include/gnunet_revocation_service.h b/src/include/gnunet_revocation_service.h index 226dce357..b2f81b67a 100644 --- a/src/include/gnunet_revocation_service.h +++ b/src/include/gnunet_revocation_service.h @@ -201,7 +201,7 @@ GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, * @return a handle for use in PoW rounds */ struct GNUNET_REVOCATION_PowCalculationHandle* -GNUNET_REVOCATION_pow_init (const struct GNUNET_CRYPTO_EcdsaPublicKey *key, +GNUNET_REVOCATION_pow_init (const struct GNUNET_CRYPTO_EcdsaPrivateKey *key, int epochs, unsigned int difficulty); diff --git a/src/revocation/gnunet-revocation.c b/src/revocation/gnunet-revocation.c index c33f12c90..5f3df0ee0 100644 --- a/src/revocation/gnunet-revocation.c +++ b/src/revocation/gnunet-revocation.c @@ -345,6 +345,7 @@ ego_callback (void *cls, const struct GNUNET_IDENTITY_Ego *ego) { struct GNUNET_REVOCATION_Pow *pow; struct GNUNET_CRYPTO_EcdsaPublicKey key; + const struct GNUNET_CRYPTO_EcdsaPrivateKey *privkey; struct GNUNET_REVOCATION_PowCalculationHandle *ph = NULL; int epochs; @@ -356,6 +357,7 @@ ego_callback (void *cls, const struct GNUNET_IDENTITY_Ego *ego) return; } GNUNET_IDENTITY_ego_get_public_key (ego, &key); + privkey = GNUNET_IDENTITY_ego_get_private_key (ego); pow = GNUNET_new (struct GNUNET_REVOCATION_Pow); if ((NULL != filename) && (GNUNET_YES == GNUNET_DISK_file_test (filename)) && (sizeof(struct GNUNET_REVOCATION_Pow) == @@ -406,7 +408,7 @@ ego_callback (void *cls, const struct GNUNET_IDENTITY_Ego *ego) "%s", _ ("Revocation certificate not ready, calculating proof of work\n")); if (NULL == ph) - ph = GNUNET_REVOCATION_pow_init (&key, + ph = GNUNET_REVOCATION_pow_init (privkey, 1, /* Epochs */ matching_bits); pow_task = GNUNET_SCHEDULER_add_now (&calculate_pow, ph); diff --git a/src/revocation/revocation.h b/src/revocation/revocation.h index b2769da0e..868c2b853 100644 --- a/src/revocation/revocation.h +++ b/src/revocation/revocation.h @@ -92,7 +92,7 @@ struct RevokeMessage /** * Number that causes a hash collision with the @e public_key. */ - struct GNUNET_REVOCATION_Pow proof_of_work GNUNET_PACKED; + struct GNUNET_REVOCATION_Pow proof_of_work; }; diff --git a/src/revocation/revocation_api.c b/src/revocation/revocation_api.c index f2261ff4f..fba10a4d5 100644 --- a/src/revocation/revocation_api.c +++ b/src/revocation/revocation_api.c @@ -472,7 +472,7 @@ GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, * @return a handle for use in PoW rounds */ struct GNUNET_REVOCATION_PowCalculationHandle* -GNUNET_REVOCATION_pow_init (const struct GNUNET_CRYPTO_EcdsaPublicKey *key, +GNUNET_REVOCATION_pow_init (const struct GNUNET_CRYPTO_EcdsaPrivateKey *key, int epochs, unsigned int difficulty) { @@ -480,8 +480,15 @@ GNUNET_REVOCATION_pow_init (const struct GNUNET_CRYPTO_EcdsaPublicKey *key, struct GNUNET_TIME_Absolute ts = GNUNET_TIME_absolute_get (); pc = GNUNET_new (struct GNUNET_REVOCATION_PowCalculationHandle); - pc->pow.key = *key; pc->pow.timestamp = GNUNET_TIME_absolute_hton (ts); + pc->pow.purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_REVOCATION); + pc->pow.purpose.size = htonl (sizeof(struct GNUNET_CRYPTO_EccSignaturePurpose) + + sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey)); + GNUNET_CRYPTO_ecdsa_key_get_public (key, &pc->pow.key); + GNUNET_assert (GNUNET_OK == + GNUNET_CRYPTO_ecdsa_sign_ (key, + &pc->pow.purpose, + &pc->pow.signature)); pc->current_pow = GNUNET_CRYPTO_random_u64 (GNUNET_CRYPTO_QUALITY_WEAK, UINT64_MAX); pc->difficulty = difficulty; diff --git a/src/revocation/test_revocation.c b/src/revocation/test_revocation.c index 012bac09e..07f5e6e61 100644 --- a/src/revocation/test_revocation.c +++ b/src/revocation/test_revocation.c @@ -45,7 +45,7 @@ struct TestPeer struct GNUNET_IDENTITY_EgoLookup *ego_lookup; struct GNUNET_REVOCATION_Handle *revok_handle; struct GNUNET_CORE_Handle *ch; - uint64_t pow; + struct GNUNET_REVOCATION_PowCalculationHandle *pow; }; static struct TestPeer testpeers[2]; @@ -146,6 +146,7 @@ static void ego_cb (void *cls, const struct GNUNET_IDENTITY_Ego *ego) { static int completed = 0; + const struct GNUNET_CRYPTO_EcdsaPrivateKey *privkey; if ((NULL != ego) && (cls == &testpeers[0])) { @@ -159,30 +160,31 @@ ego_cb (void *cls, const struct GNUNET_IDENTITY_Ego *ego) testpeers[1].ego_lookup = NULL; testpeers[1].privkey = GNUNET_IDENTITY_ego_get_private_key (ego); GNUNET_IDENTITY_ego_get_public_key (ego, &testpeers[1].pubkey); - GNUNET_REVOCATION_sign_revocation (testpeers[1].privkey, &testpeers[1].sig); - GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Calculating proof of work...\n"); - testpeers[1].pow = 0; + privkey = GNUNET_IDENTITY_ego_get_private_key (ego); + testpeers[1].pow = GNUNET_REVOCATION_pow_init (privkey, + 1, + 5); int res = - GNUNET_REVOCATION_check_pow (&testpeers[1].pubkey, testpeers[1].pow, 5); + GNUNET_REVOCATION_pow_round (testpeers[1].pow); while (GNUNET_OK != res) { - testpeers[1].pow++; res = - GNUNET_REVOCATION_check_pow (&testpeers[1].pubkey, testpeers[1].pow, 5); + GNUNET_REVOCATION_pow_round (testpeers[1].pow); } fprintf (stderr, "Done calculating proof of work\n"); completed++; } if (2 == completed) { + const struct GNUNET_REVOCATION_Pow *pow; + pow = GNUNET_REVOCATION_pow_get (testpeers[1].pow); GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Egos retrieved\n"); testpeers[1].revok_handle = GNUNET_REVOCATION_revoke (testpeers[1].cfg, - &testpeers[1].pubkey, - &testpeers[1].sig, - testpeers[1].pow, + pow, &revocation_cb, NULL); + GNUNET_REVOCATION_pow_cleanup (testpeers[1].pow); } } diff --git a/src/revocation/test_revocation.conf b/src/revocation/test_revocation.conf index 3b04150c1..f195429b4 100644 --- a/src/revocation/test_revocation.conf +++ b/src/revocation/test_revocation.conf @@ -7,6 +7,7 @@ SERVICEHOME=$GNUNET_TMP/test-revocation-service [revocation] WORKBITS = 3 IMMEDIATE_START = YES +EPOCH_LENGTH = 365 d [identity] # Directory where we store information about our egos -- cgit v1.2.3 From 4a700470f454268928468ba49539524c3b02438a Mon Sep 17 00:00:00 2001 From: Martin Schanzenbach Date: Mon, 20 Apr 2020 16:58:17 +0200 Subject: remove sign API call --- src/include/gnunet_revocation_service.h | 22 +--------------------- src/revocation/revocation_api.c | 23 ----------------------- 2 files changed, 1 insertion(+), 44 deletions(-) diff --git a/src/include/gnunet_revocation_service.h b/src/include/gnunet_revocation_service.h index b2f81b67a..b38fbac3d 100644 --- a/src/include/gnunet_revocation_service.h +++ b/src/include/gnunet_revocation_service.h @@ -149,12 +149,8 @@ struct GNUNET_REVOCATION_Handle; * Perform key revocation. * * @param cfg the configuration to use - * @param key public key of the key to revoke - * @param sig signature to use on the revocation (should have been - * created using #GNUNET_REVOCATION_sign_revocation). - * @param ts revocation timestamp * @param pow proof of work to use (should have been created by - * iteratively calling #GNUNET_REVOCATION_check_pow) + * iteratively calling #GNUNET_REVOCATION_pow_round) * @param func funtion to call with the result of the check * (called with `is_valid` being #GNUNET_NO if * the revocation worked). @@ -254,22 +250,6 @@ void GNUNET_REVOCATION_pow_cleanup (struct GNUNET_REVOCATION_PowCalculationHandle *pc); - - - -/** - * Create a revocation signature. - * - * @param key private key of the key to revoke - * @param sig where to write the revocation signature - */ -void -GNUNET_REVOCATION_sign_revocation (struct - GNUNET_REVOCATION_Pow *pow, - const struct - GNUNET_CRYPTO_EcdsaPrivateKey *key); - - #if 0 /* keep Emacsens' auto-indent happy */ { #endif diff --git a/src/revocation/revocation_api.c b/src/revocation/revocation_api.c index fba10a4d5..1aff7c2f6 100644 --- a/src/revocation/revocation_api.c +++ b/src/revocation/revocation_api.c @@ -608,27 +608,4 @@ GNUNET_REVOCATION_pow_cleanup (struct GNUNET_free (pc); } - -/** - * Create a revocation signature. - * - * @param key private key of the key to revoke - * @param sig where to write the revocation signature - */ -void -GNUNET_REVOCATION_sign_revocation (struct GNUNET_REVOCATION_Pow *pow, - const struct - GNUNET_CRYPTO_EcdsaPrivateKey *key) -{ - pow->purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_REVOCATION); - pow->purpose.size = htonl (sizeof(struct GNUNET_CRYPTO_EccSignaturePurpose) - + sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey)); - GNUNET_CRYPTO_ecdsa_key_get_public (key, &pow->key); - GNUNET_assert (GNUNET_OK == - GNUNET_CRYPTO_ecdsa_sign_ (key, - &pow->purpose, - &pow->signature)); -} - - /* end of revocation_api.c */ -- cgit v1.2.3 From c81fbcd85bf914163ba090ba3cafe2b53fe20924 Mon Sep 17 00:00:00 2001 From: "Schanzenbach, Martin" Date: Mon, 20 Apr 2020 17:18:33 +0200 Subject: update API comments --- src/include/gnunet_revocation_service.h | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/src/include/gnunet_revocation_service.h b/src/include/gnunet_revocation_service.h index b38fbac3d..5c2ce91de 100644 --- a/src/include/gnunet_revocation_service.h +++ b/src/include/gnunet_revocation_service.h @@ -173,12 +173,9 @@ GNUNET_REVOCATION_revoke_cancel (struct GNUNET_REVOCATION_Handle *h); /** - * Check if the given proof-of-work value - * would be acceptable for revoking the given key. + * Check if the given proof-of-work is valid. * - * @param key key to check for - * @param ts revocation timestamp - * @param pow proof of work value + * @param pow proof of work * @param matching_bits how many bits must match (configuration) * @return number of epochs valid if the @a pow is acceptable, -1 if not */ @@ -217,21 +214,17 @@ GNUNET_REVOCATION_pow_init2 (const struct GNUNET_REVOCATION_Pow *pow, /** - * Calculate a key revocation valid for broadcasting for a number - * of epochs. + * Calculate a single round in the key revocation PoW. * * @param pc handle to the PoW, initially called with NULL. - * @param epochs number of epochs for which the revocation must be valid. - * @param pow current pow value to try - * @param difficulty current base difficulty to achieve - * @return #GNUNET_YES if the @a pow is acceptable, #GNUNET_NO if not + * @return GNUNET_YES if the @a pow is acceptable, GNUNET_NO if not */ int GNUNET_REVOCATION_pow_round (struct GNUNET_REVOCATION_PowCalculationHandle *pc); /** - * Return the curren PoW state from the calculation + * Return the current PoW state from the calculation * * @param pc the calculation to get it from * @return a pointer to the PoW -- cgit v1.2.3 From 24d5d46ade3ad70889855cdbe3a1a61754bdfb92 Mon Sep 17 00:00:00 2001 From: "Schanzenbach, Martin" Date: Mon, 20 Apr 2020 17:46:02 +0200 Subject: fix --- src/revocation/revocation_api.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/revocation/revocation_api.c b/src/revocation/revocation_api.c index 1aff7c2f6..771bcb92d 100644 --- a/src/revocation/revocation_api.c +++ b/src/revocation/revocation_api.c @@ -457,7 +457,7 @@ GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, } score = score / POW_COUNT; if (score < difficulty) - return GNUNET_NO; + return -1; epochs = score - difficulty; return epochs; } -- cgit v1.2.3 From 424cd50ecd0144b264a547fe149839cf2866c21f Mon Sep 17 00:00:00 2001 From: "Schanzenbach, Martin" Date: Mon, 20 Apr 2020 18:33:43 +0200 Subject: check signature in check_pow --- src/revocation/plugin_block_revocation.c | 9 --------- src/revocation/revocation_api.c | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/revocation/plugin_block_revocation.c b/src/revocation/plugin_block_revocation.c index 934c8d8c9..7c1ec26eb 100644 --- a/src/revocation/plugin_block_revocation.c +++ b/src/revocation/plugin_block_revocation.c @@ -149,15 +149,6 @@ block_plugin_revocation_evaluate (void *cls, GNUNET_break_op (0); return GNUNET_BLOCK_EVALUATION_RESULT_INVALID; } - if (GNUNET_OK != - GNUNET_CRYPTO_ecdsa_verify_ (GNUNET_SIGNATURE_PURPOSE_REVOCATION, - &rm->proof_of_work.purpose, - &rm->proof_of_work.signature, - &rm->proof_of_work.key)) - { - GNUNET_break_op (0); - return GNUNET_BLOCK_EVALUATION_RESULT_INVALID; - } GNUNET_CRYPTO_hash (&rm->proof_of_work.key, sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey), &chash); diff --git a/src/revocation/revocation_api.c b/src/revocation/revocation_api.c index 771bcb92d..2979e7400 100644 --- a/src/revocation/revocation_api.c +++ b/src/revocation/revocation_api.c @@ -423,6 +423,20 @@ GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, unsigned int epochs; uint64_t pow_val; + /** + * Check if signature valid + */ + if (GNUNET_OK != + GNUNET_CRYPTO_ecdsa_verify_ (GNUNET_SIGNATURE_PURPOSE_REVOCATION, + &pow->purpose, + &pow->signature, + &pow->key)) + { + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + "Proof of work signature invalid!\n"); + return -1; + } + /** * First, check if any duplicates are in the PoW set */ -- cgit v1.2.3 From c20768b8b09fabaa3c2330cde381e894b1f90efb Mon Sep 17 00:00:00 2001 From: "Schanzenbach, Martin" Date: Mon, 20 Apr 2020 19:08:23 +0200 Subject: include buffer of 10& of epoch --- src/include/gnunet_revocation_service.h | 6 ++- src/revocation/gnunet-revocation.c | 19 +++----- src/revocation/gnunet-service-revocation.c | 24 +++++++++- src/revocation/plugin_block_revocation.c | 12 ++++- src/revocation/revocation_api.c | 70 ++++++++++++++++++++++++++---- 5 files changed, 104 insertions(+), 27 deletions(-) diff --git a/src/include/gnunet_revocation_service.h b/src/include/gnunet_revocation_service.h index 5c2ce91de..6bd2e88d3 100644 --- a/src/include/gnunet_revocation_service.h +++ b/src/include/gnunet_revocation_service.h @@ -177,11 +177,13 @@ GNUNET_REVOCATION_revoke_cancel (struct GNUNET_REVOCATION_Handle *h); * * @param pow proof of work * @param matching_bits how many bits must match (configuration) - * @return number of epochs valid if the @a pow is acceptable, -1 if not + * @param epoch_length length of single epoch in configuration + * @return GNUNET_YES if the @a pow is acceptable, GNUNET_NO if not */ int GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, - unsigned int matching_bits); + unsigned int matching_bits, + struct GNUNET_TIME_Relative epoch_length); diff --git a/src/revocation/gnunet-revocation.c b/src/revocation/gnunet-revocation.c index 5f3df0ee0..d290d34c7 100644 --- a/src/revocation/gnunet-revocation.c +++ b/src/revocation/gnunet-revocation.c @@ -347,7 +347,6 @@ ego_callback (void *cls, const struct GNUNET_IDENTITY_Ego *ego) struct GNUNET_CRYPTO_EcdsaPublicKey key; const struct GNUNET_CRYPTO_EcdsaPrivateKey *privkey; struct GNUNET_REVOCATION_PowCalculationHandle *ph = NULL; - int epochs; el = NULL; if (NULL == ego) @@ -373,19 +372,12 @@ ego_callback (void *cls, const struct GNUNET_IDENTITY_Ego *ego) GNUNET_free (pow); return; } - if (0 < (epochs = + if (GNUNET_YES == GNUNET_REVOCATION_check_pow (pow, - (unsigned int) matching_bits))) + (unsigned int) matching_bits, + epoch_length)) { - struct GNUNET_TIME_Absolute ts; - struct GNUNET_TIME_Relative ttl; - ts = GNUNET_TIME_absolute_ntoh (pow->timestamp); - ttl = GNUNET_TIME_relative_multiply (epoch_length, - epochs); fprintf (stderr, "%s", _ ("Revocation certificate ready\n")); - fprintf (stderr, "%s %s for %s\n", _ ("Valid from"), - GNUNET_STRINGS_absolute_time_to_string (ts), - GNUNET_STRINGS_relative_time_to_string (ttl, GNUNET_NO)); if (perform) perform_revocation (pow); else @@ -499,9 +491,10 @@ run (void *cls, return; } GNUNET_SCHEDULER_add_shutdown (&do_shutdown, NULL); - if (0 >= + if (GNUNET_YES != GNUNET_REVOCATION_check_pow (&pow, - (unsigned int) matching_bits)) + (unsigned int) matching_bits, + epoch_length)) { struct GNUNET_REVOCATION_PowCalculationHandle *ph; ph = GNUNET_REVOCATION_pow_init2 (&pow, diff --git a/src/revocation/gnunet-service-revocation.c b/src/revocation/gnunet-service-revocation.c index 4746a7698..bd35b1055 100644 --- a/src/revocation/gnunet-service-revocation.c +++ b/src/revocation/gnunet-service-revocation.c @@ -128,6 +128,11 @@ static struct GNUNET_SET_ListenHandle *revocation_union_listen_handle; */ static unsigned long long revocation_work_required; +/** + * Length of an expiration expoch + */ +static struct GNUNET_TIME_Relative epoch_length; + /** * Our application ID for set union operations. Must be the * same for all (compatible) peers. @@ -167,8 +172,9 @@ new_peer_entry (const struct GNUNET_PeerIdentity *peer) static int verify_revoke_message (const struct RevokeMessage *rm) { - if (0 >= GNUNET_REVOCATION_check_pow (&rm->proof_of_work, - (unsigned int) revocation_work_required)) + if (GNUNET_YES != GNUNET_REVOCATION_check_pow (&rm->proof_of_work, + (unsigned int) revocation_work_required, + epoch_length)) { GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Proof of work invalid!\n"); @@ -846,6 +852,20 @@ run (void *cls, GNUNET_free (fn); return; } + if (GNUNET_OK != + GNUNET_CONFIGURATION_get_value_time (cfg, + "REVOCATION", + "EPOCH_LENGTH", + &epoch_length)) + { + GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR, + "REVOCATION", + "EPOCH_LENGTH"); + GNUNET_SCHEDULER_shutdown (); + GNUNET_free (fn); + return; + } + revocation_set = GNUNET_SET_create (cfg, GNUNET_SET_OPERATION_UNION); revocation_union_listen_handle diff --git a/src/revocation/plugin_block_revocation.c b/src/revocation/plugin_block_revocation.c index 7c1ec26eb..f384cfe1d 100644 --- a/src/revocation/plugin_block_revocation.c +++ b/src/revocation/plugin_block_revocation.c @@ -52,6 +52,7 @@ struct InternalContext { unsigned int matching_bits; + struct GNUNET_TIME_Relative epoch_length; }; @@ -144,7 +145,8 @@ block_plugin_revocation_evaluate (void *cls, } if (0 >= GNUNET_REVOCATION_check_pow (&rm->proof_of_work, - ic->matching_bits)) + ic->matching_bits, + ic->epoch_length)) { GNUNET_break_op (0); return GNUNET_BLOCK_EVALUATION_RESULT_INVALID; @@ -208,6 +210,7 @@ libgnunet_plugin_block_revocation_init (void *cls) struct GNUNET_BLOCK_PluginFunctions *api; struct InternalContext *ic; unsigned long long matching_bits; + struct GNUNET_TIME_Relative epoch_length; if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_number (cfg, @@ -215,6 +218,12 @@ libgnunet_plugin_block_revocation_init (void *cls) "WORKBITS", &matching_bits)) return NULL; + if (GNUNET_OK != + GNUNET_CONFIGURATION_get_value_time (cfg, + "REVOCATION", + "EPOCH_LENGTH", + &epoch_length)) + return NULL; api = GNUNET_new (struct GNUNET_BLOCK_PluginFunctions); api->evaluate = &block_plugin_revocation_evaluate; @@ -223,6 +232,7 @@ libgnunet_plugin_block_revocation_init (void *cls) api->types = types; ic = GNUNET_new (struct InternalContext); ic->matching_bits = (unsigned int) matching_bits; + ic->epoch_length = epoch_length; api->cls = ic; return api; } diff --git a/src/revocation/revocation_api.c b/src/revocation/revocation_api.c index 2979e7400..fe600ec7a 100644 --- a/src/revocation/revocation_api.c +++ b/src/revocation/revocation_api.c @@ -311,21 +311,41 @@ GNUNET_REVOCATION_revoke (const struct GNUNET_CONFIGURATION_Handle *cfg, GNUNET_MQ_handler_end () }; unsigned long long matching_bits; + struct GNUNET_TIME_Relative epoch_length; struct RevokeMessage *rm; struct GNUNET_MQ_Envelope *env; - if ((GNUNET_OK == + if ((GNUNET_OK != GNUNET_CONFIGURATION_get_value_number (cfg, "REVOCATION", "WORKBITS", - &matching_bits)) && - (0 >= GNUNET_REVOCATION_check_pow (pow, (unsigned int) matching_bits))) + &matching_bits))) + { + GNUNET_break (0); + GNUNET_free (h); + return NULL; + } + if ((GNUNET_OK != + GNUNET_CONFIGURATION_get_value_time (cfg, + "REVOCATION", + "EPOCH_LENGTH", + &epoch_length))) + { + GNUNET_break (0); + GNUNET_free (h); + return NULL; + } + if (GNUNET_YES != GNUNET_REVOCATION_check_pow (pow, + (unsigned int) matching_bits, + epoch_length)) { GNUNET_break (0); GNUNET_free (h); return NULL; } + + h->mq = GNUNET_CLIENT_connect (cfg, "revocation", handlers, @@ -408,16 +428,21 @@ calculate_score (const struct GNUNET_REVOCATION_PowCalculationHandle *ph) * @param ts revocation timestamp * @param pow proof of work value * @param matching_bits how many bits must match (configuration) - * @return number of epochs valid if the @a pow is acceptable, -1 if not + * @return GNUNET_YES if the @a pow is acceptable, GNUNET_NO if not */ int GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, - unsigned int difficulty) + unsigned int difficulty, + struct GNUNET_TIME_Relative epoch_length) { char buf[sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey) + sizeof (uint64_t) + sizeof (uint64_t)] GNUNET_ALIGN; struct GNUNET_HashCode result; + struct GNUNET_TIME_Absolute ts; + struct GNUNET_TIME_Absolute exp; + struct GNUNET_TIME_Relative ttl; + struct GNUNET_TIME_Relative buffer; unsigned int score = 0; unsigned int tmp_score = 0; unsigned int epochs; @@ -434,7 +459,7 @@ GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, { GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Proof of work signature invalid!\n"); - return -1; + return GNUNET_NO; } /** @@ -445,7 +470,7 @@ GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, for (unsigned int j = i + 1; j < POW_COUNT; j++) { if (pow->pow[i] == pow->pow[j]) - return -1; + return GNUNET_NO; } } GNUNET_memcpy (&buf[sizeof(uint64_t)], @@ -471,9 +496,36 @@ GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, } score = score / POW_COUNT; if (score < difficulty) - return -1; + return GNUNET_NO; epochs = score - difficulty; - return epochs; + + /** + * Check expiration + */ + ts = GNUNET_TIME_absolute_ntoh (pow->timestamp); + ttl = GNUNET_TIME_relative_multiply (epoch_length, + epochs); + /** + * Extend by 10% for unsynchronized clocks + */ + buffer = GNUNET_TIME_relative_divide (epoch_length, + 10); + ts = GNUNET_TIME_absolute_subtract (ts, + buffer); + + if (0 != GNUNET_TIME_absolute_get_remaining (ts).rel_value_us) + return GNUNET_NO; /* Not yet valid. */ + /* Revert to actual start time */ + ts = GNUNET_TIME_absolute_add (ts, + buffer); + + exp = GNUNET_TIME_absolute_add (ts, ttl); + exp = GNUNET_TIME_absolute_add (exp, + buffer); + + if (0 == GNUNET_TIME_absolute_get_remaining (exp).rel_value_us) + return GNUNET_NO; /* expired */ + return GNUNET_YES; } -- cgit v1.2.3 From d4fd97e693e462f3bd16425f4e803fe5a99b9d62 Mon Sep 17 00:00:00 2001 From: "Schanzenbach, Martin" Date: Mon, 20 Apr 2020 19:38:41 +0200 Subject: predate validity time on creation; extent ttl on validation --- src/revocation/revocation_api.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/revocation/revocation_api.c b/src/revocation/revocation_api.c index fe600ec7a..291c58dd8 100644 --- a/src/revocation/revocation_api.c +++ b/src/revocation/revocation_api.c @@ -510,8 +510,9 @@ GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, */ buffer = GNUNET_TIME_relative_divide (epoch_length, 10); - ts = GNUNET_TIME_absolute_subtract (ts, - buffer); + exp = GNUNET_TIME_absolute_add (ts, ttl); + exp = GNUNET_TIME_absolute_add (exp, + buffer); if (0 != GNUNET_TIME_absolute_get_remaining (ts).rel_value_us) return GNUNET_NO; /* Not yet valid. */ @@ -519,10 +520,6 @@ GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, ts = GNUNET_TIME_absolute_add (ts, buffer); - exp = GNUNET_TIME_absolute_add (ts, ttl); - exp = GNUNET_TIME_absolute_add (exp, - buffer); - if (0 == GNUNET_TIME_absolute_get_remaining (exp).rel_value_us) return GNUNET_NO; /* expired */ return GNUNET_YES; @@ -545,6 +542,13 @@ GNUNET_REVOCATION_pow_init (const struct GNUNET_CRYPTO_EcdsaPrivateKey *key, struct GNUNET_REVOCATION_PowCalculationHandle *pc; struct GNUNET_TIME_Absolute ts = GNUNET_TIME_absolute_get (); + /** + * Predate the validity period to prevent rejections due to + * unsynchronized clocks + */ + ts = GNUNET_TIME_absolute_subtract (ts, + GNUNET_TIME_UNIT_WEEKS); + pc = GNUNET_new (struct GNUNET_REVOCATION_PowCalculationHandle); pc->pow.timestamp = GNUNET_TIME_absolute_hton (ts); pc->pow.purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_REVOCATION); -- cgit v1.2.3 From 19b772329cb8968e5e96e33d5238f172f5553dc4 Mon Sep 17 00:00:00 2001 From: "Schanzenbach, Martin" Date: Tue, 21 Apr 2020 11:52:12 +0200 Subject: new pass API --- src/include/gnunet_revocation_service.h | 73 +++++++++++++----------- src/revocation/gnunet-revocation.c | 92 +++++++++++------------------- src/revocation/gnunet-service-revocation.c | 9 --- src/revocation/revocation_api.c | 84 +++++++++++++-------------- src/revocation/test_revocation.c | 17 +++--- 5 files changed, 125 insertions(+), 150 deletions(-) diff --git a/src/include/gnunet_revocation_service.h b/src/include/gnunet_revocation_service.h index 6bd2e88d3..e8824bd8a 100644 --- a/src/include/gnunet_revocation_service.h +++ b/src/include/gnunet_revocation_service.h @@ -69,7 +69,7 @@ struct GNUNET_REVOCATION_Pow /** * The TTL of this revocation (purely informational) */ - uint64_t ttl GNUNET_PACKED; + struct GNUNET_TIME_RelativeNBO ttl GNUNET_PACKED; /** * The PoWs @@ -81,6 +81,18 @@ struct GNUNET_REVOCATION_Pow */ struct GNUNET_CRYPTO_EcdsaSignature signature; + /** + * The revoked public key + */ + struct GNUNET_CRYPTO_EcdsaPublicKey key; +}; + + +/** + * The signature object we use for the PoW + */ +struct GNUNET_REVOCATION_SignaturePurpose +{ /** * The signature purpose */ @@ -90,11 +102,19 @@ struct GNUNET_REVOCATION_Pow * The revoked public key */ struct GNUNET_CRYPTO_EcdsaPublicKey key; + + /** + * The timestamp of the revocation + */ + struct GNUNET_TIME_AbsoluteNBO timestamp; }; GNUNET_NETWORK_STRUCT_END +/** + * Handle to a running proof-of-work calculation. + */ struct GNUNET_REVOCATION_PowCalculationHandle; /** @@ -112,7 +132,8 @@ struct GNUNET_REVOCATION_Query; * */ typedef void (*GNUNET_REVOCATION_Callback) (void *cls, - int is_valid); + enum GNUNET_GenericReturnValue + is_valid); /** @@ -151,7 +172,7 @@ struct GNUNET_REVOCATION_Handle; * @param cfg the configuration to use * @param pow proof of work to use (should have been created by * iteratively calling #GNUNET_REVOCATION_pow_round) - * @param func funtion to call with the result of the check + * @param func function to call with the result of the check * (called with `is_valid` being #GNUNET_NO if * the revocation worked). * @param func_cls closure to pass to @a func @@ -177,40 +198,37 @@ GNUNET_REVOCATION_revoke_cancel (struct GNUNET_REVOCATION_Handle *h); * * @param pow proof of work * @param matching_bits how many bits must match (configuration) - * @param epoch_length length of single epoch in configuration - * @return GNUNET_YES if the @a pow is acceptable, GNUNET_NO if not + * @param epoch_duration length of single epoch in configuration + * @return #GNUNET_YES if the @a pow is acceptable, #GNUNET_NO if not */ -int +enum GNUNET_GenericReturnValue GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, unsigned int matching_bits, - struct GNUNET_TIME_Relative epoch_length); - + struct GNUNET_TIME_Relative epoch_duration); /** - * Initializes a fresh PoW computation + * Initializes a fresh PoW computation. * * @param key the key to calculate the PoW for. - * @param epochs the number of epochs for which the PoW must be valid. - * @param difficulty the base difficulty of the PoW - * @return a handle for use in PoW rounds + * @param pow the pow object to work with in the calculation. */ -struct GNUNET_REVOCATION_PowCalculationHandle* +void GNUNET_REVOCATION_pow_init (const struct GNUNET_CRYPTO_EcdsaPrivateKey *key, - int epochs, - unsigned int difficulty); + struct GNUNET_REVOCATION_Pow *pow); /** - * Initializes PoW computation based on an existing PoW. + * Starts a proof-of-work calculation given the pow object as well as + * target epochs and difficulty. * - * @param pow the PoW to continue the calculations from. + * @param pow the PoW to based calculations on. * @param epochs the number of epochs for which the PoW must be valid. - * @param difficulty the base difficulty of the PoW + * @param difficulty the base difficulty of the PoW. * @return a handle for use in PoW rounds */ struct GNUNET_REVOCATION_PowCalculationHandle* -GNUNET_REVOCATION_pow_init2 (const struct GNUNET_REVOCATION_Pow *pow, +GNUNET_REVOCATION_pow_start (struct GNUNET_REVOCATION_Pow *pow, int epochs, unsigned int difficulty); @@ -221,29 +239,18 @@ GNUNET_REVOCATION_pow_init2 (const struct GNUNET_REVOCATION_Pow *pow, * @param pc handle to the PoW, initially called with NULL. * @return GNUNET_YES if the @a pow is acceptable, GNUNET_NO if not */ -int +enum GNUNET_GenericReturnValue GNUNET_REVOCATION_pow_round (struct GNUNET_REVOCATION_PowCalculationHandle *pc); -/** - * Return the current PoW state from the calculation - * - * @param pc the calculation to get it from - * @return a pointer to the PoW - */ -const struct GNUNET_REVOCATION_Pow* -GNUNET_REVOCATION_pow_get (const struct - GNUNET_REVOCATION_PowCalculationHandle *pc); - - /** * Cleanup a PoW calculation * * @param pc the calculation to clean up */ void -GNUNET_REVOCATION_pow_cleanup (struct - GNUNET_REVOCATION_PowCalculationHandle *pc); +GNUNET_REVOCATION_pow_cleanup ( + struct GNUNET_REVOCATION_PowCalculationHandle *pc); #if 0 /* keep Emacsens' auto-indent happy */ { diff --git a/src/revocation/gnunet-revocation.c b/src/revocation/gnunet-revocation.c index d290d34c7..2230114ae 100644 --- a/src/revocation/gnunet-revocation.c +++ b/src/revocation/gnunet-revocation.c @@ -93,6 +93,10 @@ static struct GNUNET_TIME_Relative epoch_length; */ static struct GNUNET_SCHEDULER_Task *pow_task; +/** + * Proof-of-work object + */ +static struct GNUNET_REVOCATION_Pow proof_of_work; /** * Function run if the user aborts with CTRL-C. @@ -197,41 +201,14 @@ print_revocation_result (void *cls, int is_valid) } -/** - * Data needed to perform a revocation. - */ -struct RevocationData -{ - /** - * Public key. - */ - struct GNUNET_CRYPTO_EcdsaPublicKey key; - - /** - * Revocation signature data. - */ - struct GNUNET_CRYPTO_EcdsaSignature sig; - - /** - * Time of revocation - */ - struct GNUNET_TIME_AbsoluteNBO ts; - - /** - * Proof of work (in NBO). - */ - uint64_t pow GNUNET_PACKED; -}; - - /** * Perform the revocation. */ static void -perform_revocation (const struct GNUNET_REVOCATION_Pow *pow) +perform_revocation () { h = GNUNET_REVOCATION_revoke (cfg, - pow, + &proof_of_work, &print_revocation_result, NULL); } @@ -244,12 +221,12 @@ perform_revocation (const struct GNUNET_REVOCATION_Pow *pow) * @param rd data to sync */ static void -sync_pow (const struct GNUNET_REVOCATION_Pow *pow) +sync_pow () { if ((NULL != filename) && (sizeof(struct GNUNET_REVOCATION_Pow) != GNUNET_DISK_fn_write (filename, - pow, + &proof_of_work, sizeof(struct GNUNET_REVOCATION_Pow), GNUNET_DISK_PERM_USER_READ | GNUNET_DISK_PERM_USER_WRITE))) @@ -267,7 +244,7 @@ calculate_pow_shutdown (void *cls) { struct GNUNET_REVOCATION_PowCalculationHandle *ph = cls; fprintf (stderr, "%s", _ ("Cancelling calculation.\n")); - sync_pow (GNUNET_REVOCATION_pow_get (ph)); + sync_pow (); if (NULL != pow_task) { GNUNET_SCHEDULER_cancel (pow_task); @@ -290,22 +267,21 @@ calculate_pow (void *cls) /* store temporary results */ pow_task = NULL; if (0 == (pow_passes % 128)) - sync_pow (GNUNET_REVOCATION_pow_get(ph)); + sync_pow (); /* actually do POW calculation */ if (GNUNET_OK == GNUNET_REVOCATION_pow_round (ph)) { - const struct GNUNET_REVOCATION_Pow *pow = GNUNET_REVOCATION_pow_get (ph); if ((NULL != filename) && (sizeof(struct GNUNET_REVOCATION_Pow) != GNUNET_DISK_fn_write (filename, - pow, + &proof_of_work, sizeof(struct GNUNET_REVOCATION_Pow), GNUNET_DISK_PERM_USER_READ | GNUNET_DISK_PERM_USER_WRITE))) GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR, "write", filename); if (perform) { - perform_revocation (pow); + perform_revocation (); } else { @@ -343,7 +319,6 @@ calculate_pow (void *cls) static void ego_callback (void *cls, const struct GNUNET_IDENTITY_Ego *ego) { - struct GNUNET_REVOCATION_Pow *pow; struct GNUNET_CRYPTO_EcdsaPublicKey key; const struct GNUNET_CRYPTO_EcdsaPrivateKey *privkey; struct GNUNET_REVOCATION_PowCalculationHandle *ph = NULL; @@ -357,32 +332,29 @@ ego_callback (void *cls, const struct GNUNET_IDENTITY_Ego *ego) } GNUNET_IDENTITY_ego_get_public_key (ego, &key); privkey = GNUNET_IDENTITY_ego_get_private_key (ego); - pow = GNUNET_new (struct GNUNET_REVOCATION_Pow); + memset(&proof_of_work, 0, sizeof (proof_of_work)); if ((NULL != filename) && (GNUNET_YES == GNUNET_DISK_file_test (filename)) && - (sizeof(struct GNUNET_REVOCATION_Pow) == - GNUNET_DISK_fn_read (filename, pow, sizeof(struct - GNUNET_REVOCATION_Pow)))) + (sizeof(proof_of_work) == + GNUNET_DISK_fn_read (filename, &proof_of_work, sizeof(proof_of_work)))) { - if (0 != GNUNET_memcmp (&pow->key, &key)) + if (0 != GNUNET_memcmp (&proof_of_work.key, &key)) { fprintf (stderr, _ ("Error: revocation certificate in `%s' is not for `%s'\n"), filename, revoke_ego); - GNUNET_free (pow); return; } if (GNUNET_YES == - GNUNET_REVOCATION_check_pow (pow, + GNUNET_REVOCATION_check_pow (&proof_of_work, (unsigned int) matching_bits, epoch_length)) { fprintf (stderr, "%s", _ ("Revocation certificate ready\n")); if (perform) - perform_revocation (pow); + perform_revocation (); else GNUNET_SCHEDULER_shutdown (); - GNUNET_free (pow); return; } /** @@ -391,18 +363,21 @@ ego_callback (void *cls, const struct GNUNET_IDENTITY_Ego *ego) fprintf (stderr, "%s", _("Continuing calculation where left off...\n")); - ph = GNUNET_REVOCATION_pow_init2 (pow, + ph = GNUNET_REVOCATION_pow_start (&proof_of_work, 1, /* Epochs */ matching_bits); - GNUNET_free (pow); } fprintf (stderr, "%s", _ ("Revocation certificate not ready, calculating proof of work\n")); if (NULL == ph) - ph = GNUNET_REVOCATION_pow_init (privkey, - 1, /* Epochs */ - matching_bits); + { + GNUNET_REVOCATION_pow_init (privkey, + &proof_of_work); + ph = GNUNET_REVOCATION_pow_start (&proof_of_work, + 1, /* Epochs */ + matching_bits); + } pow_task = GNUNET_SCHEDULER_add_now (&calculate_pow, ph); GNUNET_SCHEDULER_add_shutdown (&calculate_pow_shutdown, ph); } @@ -423,7 +398,6 @@ run (void *cls, const struct GNUNET_CONFIGURATION_Handle *c) { struct GNUNET_CRYPTO_EcdsaPublicKey pk; - struct GNUNET_REVOCATION_Pow pow; cfg = c; if (NULL != test_ego) @@ -483,7 +457,9 @@ run (void *cls, } if ((NULL != filename) && (perform)) { - if (sizeof(pow) != GNUNET_DISK_fn_read (filename, &pow, sizeof(pow))) + if (sizeof(proof_of_work) != GNUNET_DISK_fn_read (filename, + &proof_of_work, + sizeof(proof_of_work))) { fprintf (stderr, _ ("Failed to read revocation certificate from `%s'\n"), @@ -492,20 +468,20 @@ run (void *cls, } GNUNET_SCHEDULER_add_shutdown (&do_shutdown, NULL); if (GNUNET_YES != - GNUNET_REVOCATION_check_pow (&pow, + GNUNET_REVOCATION_check_pow (&proof_of_work, (unsigned int) matching_bits, epoch_length)) { struct GNUNET_REVOCATION_PowCalculationHandle *ph; - ph = GNUNET_REVOCATION_pow_init2 (&pow, - 1, /* Epochs */ - matching_bits); + ph = GNUNET_REVOCATION_pow_start (&proof_of_work, + 1, /* Epochs */ + matching_bits); pow_task = GNUNET_SCHEDULER_add_now (&calculate_pow, ph); GNUNET_SCHEDULER_add_shutdown (&calculate_pow_shutdown, ph); return; } - perform_revocation (&pow); + perform_revocation (); return; } fprintf (stderr, "%s", _ ("No action specified. Nothing to do.\n")); diff --git a/src/revocation/gnunet-service-revocation.c b/src/revocation/gnunet-service-revocation.c index bd35b1055..a9fbd57a7 100644 --- a/src/revocation/gnunet-service-revocation.c +++ b/src/revocation/gnunet-service-revocation.c @@ -181,15 +181,6 @@ verify_revoke_message (const struct RevokeMessage *rm) GNUNET_break_op (0); return GNUNET_NO; } - if (GNUNET_OK != - GNUNET_CRYPTO_ecdsa_verify_ (GNUNET_SIGNATURE_PURPOSE_REVOCATION, - &rm->proof_of_work.purpose, - &rm->proof_of_work.signature, - &rm->proof_of_work.key)) - { - GNUNET_break_op (0); - return GNUNET_NO; - } return GNUNET_YES; } diff --git a/src/revocation/revocation_api.c b/src/revocation/revocation_api.c index 291c58dd8..7bf7799de 100644 --- a/src/revocation/revocation_api.c +++ b/src/revocation/revocation_api.c @@ -83,7 +83,7 @@ struct GNUNET_REVOCATION_PowCalculationHandle /** * The final PoW result data structure. */ - struct GNUNET_REVOCATION_Pow pow; + struct GNUNET_REVOCATION_Pow *pow; /** * The current nonce to try @@ -421,23 +421,22 @@ calculate_score (const struct GNUNET_REVOCATION_PowCalculationHandle *ph) /** - * Check if the given proof-of-work value - * would be acceptable for revoking the given key. + * Check if the given proof-of-work is valid. * - * @param key key to check for - * @param ts revocation timestamp - * @param pow proof of work value + * @param pow proof of work * @param matching_bits how many bits must match (configuration) - * @return GNUNET_YES if the @a pow is acceptable, GNUNET_NO if not + * @param epoch_duration length of single epoch in configuration + * @return #GNUNET_YES if the @a pow is acceptable, #GNUNET_NO if not */ -int +enum GNUNET_GenericReturnValue GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, unsigned int difficulty, struct GNUNET_TIME_Relative epoch_length) { char buf[sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey) - + sizeof (uint64_t) + + sizeof (struct GNUNET_TIME_AbsoluteNBO) + sizeof (uint64_t)] GNUNET_ALIGN; + struct GNUNET_REVOCATION_SignaturePurpose spurp; struct GNUNET_HashCode result; struct GNUNET_TIME_Absolute ts; struct GNUNET_TIME_Absolute exp; @@ -451,9 +450,15 @@ GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, /** * Check if signature valid */ + spurp.key = pow->key; + spurp.timestamp = pow->timestamp; + spurp.purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_REVOCATION); + spurp.purpose.size = htonl (sizeof(struct GNUNET_CRYPTO_EccSignaturePurpose) + + sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey) + + sizeof (struct GNUNET_TIME_AbsoluteNBO)); if (GNUNET_OK != GNUNET_CRYPTO_ecdsa_verify_ (GNUNET_SIGNATURE_PURPOSE_REVOCATION, - &pow->purpose, + &spurp.purpose, &pow->signature, &pow->key)) { @@ -527,20 +532,17 @@ GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, /** - * Initializes a fresh PoW computation + * Initializes a fresh PoW computation. * * @param key the key to calculate the PoW for. - * @param epochs the number of epochs for which the PoW must be valid. - * @param difficulty the base difficulty of the PoW - * @return a handle for use in PoW rounds + * @param[out] pow starting point for PoW calculation (not yet valid) */ -struct GNUNET_REVOCATION_PowCalculationHandle* +void GNUNET_REVOCATION_pow_init (const struct GNUNET_CRYPTO_EcdsaPrivateKey *key, - int epochs, - unsigned int difficulty) + struct GNUNET_REVOCATION_Pow *pow) { - struct GNUNET_REVOCATION_PowCalculationHandle *pc; struct GNUNET_TIME_Absolute ts = GNUNET_TIME_absolute_get (); + struct GNUNET_REVOCATION_SignaturePurpose rp; /** * Predate the validity period to prevent rejections due to @@ -549,42 +551,39 @@ GNUNET_REVOCATION_pow_init (const struct GNUNET_CRYPTO_EcdsaPrivateKey *key, ts = GNUNET_TIME_absolute_subtract (ts, GNUNET_TIME_UNIT_WEEKS); - pc = GNUNET_new (struct GNUNET_REVOCATION_PowCalculationHandle); - pc->pow.timestamp = GNUNET_TIME_absolute_hton (ts); - pc->pow.purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_REVOCATION); - pc->pow.purpose.size = htonl (sizeof(struct GNUNET_CRYPTO_EccSignaturePurpose) - + sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey)); - GNUNET_CRYPTO_ecdsa_key_get_public (key, &pc->pow.key); + pow->timestamp = GNUNET_TIME_absolute_hton (ts); + rp.timestamp = pow->timestamp; + rp.purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_REVOCATION); + rp.purpose.size = htonl (sizeof(struct GNUNET_CRYPTO_EccSignaturePurpose) + + sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey) + + sizeof (struct GNUNET_TIME_AbsoluteNBO)); + GNUNET_CRYPTO_ecdsa_key_get_public (key, &pow->key); + rp.key = pow->key; GNUNET_assert (GNUNET_OK == GNUNET_CRYPTO_ecdsa_sign_ (key, - &pc->pow.purpose, - &pc->pow.signature)); - pc->current_pow = GNUNET_CRYPTO_random_u64 (GNUNET_CRYPTO_QUALITY_WEAK, - UINT64_MAX); - pc->difficulty = difficulty; - pc->epochs = epochs; - return pc; + &rp.purpose, + &pow->signature)); } /** - * Initializes PoW computation based on an existing PoW. + * Starts a proof-of-work calculation given the pow object as well as + * target epochs and difficulty. * - * @param pow the PoW to continue the calculations from. + * @param pow the PoW to based calculations on. * @param epochs the number of epochs for which the PoW must be valid. - * @param difficulty the base difficulty of the PoW + * @param difficulty the base difficulty of the PoW. * @return a handle for use in PoW rounds */ struct GNUNET_REVOCATION_PowCalculationHandle* -GNUNET_REVOCATION_pow_init2 (const struct GNUNET_REVOCATION_Pow *pow, +GNUNET_REVOCATION_pow_start (struct GNUNET_REVOCATION_Pow *pow, int epochs, unsigned int difficulty) { struct GNUNET_REVOCATION_PowCalculationHandle *pc; pc = GNUNET_new (struct GNUNET_REVOCATION_PowCalculationHandle); - pc->pow.key = pow->key; - pc->pow.timestamp = pow->timestamp; + pc->pow = pow; pc->current_pow = GNUNET_CRYPTO_random_u64 (GNUNET_CRYPTO_QUALITY_WEAK, UINT64_MAX); pc->difficulty = difficulty; @@ -593,7 +592,6 @@ GNUNET_REVOCATION_pow_init2 (const struct GNUNET_REVOCATION_Pow *pow, } - /** * Calculate a key revocation valid for broadcasting for a number * of epochs. @@ -604,7 +602,7 @@ GNUNET_REVOCATION_pow_init2 (const struct GNUNET_REVOCATION_Pow *pow, * @param difficulty current base difficulty to achieve * @return #GNUNET_YES if the @a pow is acceptable, #GNUNET_NO if not */ -int +enum GNUNET_GenericReturnValue GNUNET_REVOCATION_pow_round (struct GNUNET_REVOCATION_PowCalculationHandle *pc) { char buf[sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey) @@ -624,10 +622,10 @@ GNUNET_REVOCATION_pow_round (struct GNUNET_REVOCATION_PowCalculationHandle *pc) GNUNET_memcpy (buf, &pc->current_pow, sizeof(uint64_t)); GNUNET_memcpy (&buf[sizeof(uint64_t)], - &pc->pow.timestamp, + &pc->pow->timestamp, sizeof (uint64_t)); GNUNET_memcpy (&buf[sizeof(uint64_t) * 2], - &pc->pow.key, + &pc->pow->key, sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey)); GNUNET_CRYPTO_pow_hash ("gnunet-revocation-proof-of-work", buf, @@ -640,7 +638,7 @@ GNUNET_REVOCATION_pow_round (struct GNUNET_REVOCATION_PowCalculationHandle *pc) { pc->best[i].bits = zeros; pc->best[i].pow = pc->current_pow; - pc->pow.pow[i] = GNUNET_htonll (pc->current_pow); + pc->pow->pow[i] = GNUNET_htonll (pc->current_pow); GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "New best score %u with %" PRIu64 " (#%u)\n", zeros, pc->current_pow, i); @@ -662,7 +660,7 @@ const struct GNUNET_REVOCATION_Pow* GNUNET_REVOCATION_pow_get (const struct GNUNET_REVOCATION_PowCalculationHandle *pc) { - return &pc->pow; + return pc->pow; } diff --git a/src/revocation/test_revocation.c b/src/revocation/test_revocation.c index 07f5e6e61..84f90fe54 100644 --- a/src/revocation/test_revocation.c +++ b/src/revocation/test_revocation.c @@ -131,7 +131,7 @@ check_revocation (void *cls) static void -revocation_cb (void *cls, int is_valid) +revocation_cb (void *cls, enum GNUNET_GenericReturnValue is_valid) { testpeers[1].revok_handle = NULL; if (GNUNET_NO == is_valid) @@ -147,6 +147,8 @@ ego_cb (void *cls, const struct GNUNET_IDENTITY_Ego *ego) { static int completed = 0; const struct GNUNET_CRYPTO_EcdsaPrivateKey *privkey; + struct GNUNET_REVOCATION_Pow proof_of_work; + if ((NULL != ego) && (cls == &testpeers[0])) { @@ -162,9 +164,12 @@ ego_cb (void *cls, const struct GNUNET_IDENTITY_Ego *ego) GNUNET_IDENTITY_ego_get_public_key (ego, &testpeers[1].pubkey); GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Calculating proof of work...\n"); privkey = GNUNET_IDENTITY_ego_get_private_key (ego); - testpeers[1].pow = GNUNET_REVOCATION_pow_init (privkey, - 1, - 5); + memset (&proof_of_work, 0, sizeof (proof_of_work)); + GNUNET_REVOCATION_pow_init (privkey, + &proof_of_work); + testpeers[1].pow = GNUNET_REVOCATION_pow_start (&proof_of_work, + 1, + 5); int res = GNUNET_REVOCATION_pow_round (testpeers[1].pow); while (GNUNET_OK != res) @@ -177,11 +182,9 @@ ego_cb (void *cls, const struct GNUNET_IDENTITY_Ego *ego) } if (2 == completed) { - const struct GNUNET_REVOCATION_Pow *pow; - pow = GNUNET_REVOCATION_pow_get (testpeers[1].pow); GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Egos retrieved\n"); testpeers[1].revok_handle = GNUNET_REVOCATION_revoke (testpeers[1].cfg, - pow, + &proof_of_work, &revocation_cb, NULL); GNUNET_REVOCATION_pow_cleanup (testpeers[1].pow); -- cgit v1.2.3 From e64ec174f28812a18fd35f5d671a03e335380d93 Mon Sep 17 00:00:00 2001 From: "Schanzenbach, Martin" Date: Tue, 21 Apr 2020 15:45:12 +0200 Subject: rename, fix --- src/revocation/gnunet-revocation.c | 12 ++++++------ src/revocation/gnunet-service-revocation.c | 10 +++++----- src/revocation/plugin_block_revocation.c | 12 ++++++------ src/revocation/revocation_api.c | 16 ++++++++-------- src/revocation/test_revocation.c | 4 ++-- src/revocation/test_revocation.conf | 2 +- 6 files changed, 28 insertions(+), 28 deletions(-) diff --git a/src/revocation/gnunet-revocation.c b/src/revocation/gnunet-revocation.c index 2230114ae..2c46a20e7 100644 --- a/src/revocation/gnunet-revocation.c +++ b/src/revocation/gnunet-revocation.c @@ -86,7 +86,7 @@ static unsigned long long matching_bits; /** * Epoch length */ -static struct GNUNET_TIME_Relative epoch_length; +static struct GNUNET_TIME_Relative epoch_duration; /** * Task used for proof-of-work calculation. @@ -348,7 +348,7 @@ ego_callback (void *cls, const struct GNUNET_IDENTITY_Ego *ego) if (GNUNET_YES == GNUNET_REVOCATION_check_pow (&proof_of_work, (unsigned int) matching_bits, - epoch_length)) + epoch_duration)) { fprintf (stderr, "%s", _ ("Revocation certificate ready\n")); if (perform) @@ -432,12 +432,12 @@ run (void *cls, } if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_time (cfg, "REVOCATION", - "EPOCH_LENGTH", - &epoch_length)) + "EPOCH_DURATION", + &epoch_duration)) { GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR, "REVOCATION", - "EPOCH_LENGTH"); + "EPOCH_DURATION"); return; } @@ -470,7 +470,7 @@ run (void *cls, if (GNUNET_YES != GNUNET_REVOCATION_check_pow (&proof_of_work, (unsigned int) matching_bits, - epoch_length)) + epoch_duration)) { struct GNUNET_REVOCATION_PowCalculationHandle *ph; ph = GNUNET_REVOCATION_pow_start (&proof_of_work, diff --git a/src/revocation/gnunet-service-revocation.c b/src/revocation/gnunet-service-revocation.c index a9fbd57a7..3c08e8452 100644 --- a/src/revocation/gnunet-service-revocation.c +++ b/src/revocation/gnunet-service-revocation.c @@ -131,7 +131,7 @@ static unsigned long long revocation_work_required; /** * Length of an expiration expoch */ -static struct GNUNET_TIME_Relative epoch_length; +static struct GNUNET_TIME_Relative epoch_duration; /** * Our application ID for set union operations. Must be the @@ -174,7 +174,7 @@ verify_revoke_message (const struct RevokeMessage *rm) { if (GNUNET_YES != GNUNET_REVOCATION_check_pow (&rm->proof_of_work, (unsigned int) revocation_work_required, - epoch_length)) + epoch_duration)) { GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Proof of work invalid!\n"); @@ -846,12 +846,12 @@ run (void *cls, if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_time (cfg, "REVOCATION", - "EPOCH_LENGTH", - &epoch_length)) + "EPOCH_DURATION", + &epoch_duration)) { GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR, "REVOCATION", - "EPOCH_LENGTH"); + "EPOCH_DURATION"); GNUNET_SCHEDULER_shutdown (); GNUNET_free (fn); return; diff --git a/src/revocation/plugin_block_revocation.c b/src/revocation/plugin_block_revocation.c index f384cfe1d..291c56f70 100644 --- a/src/revocation/plugin_block_revocation.c +++ b/src/revocation/plugin_block_revocation.c @@ -52,7 +52,7 @@ struct InternalContext { unsigned int matching_bits; - struct GNUNET_TIME_Relative epoch_length; + struct GNUNET_TIME_Relative epoch_duration; }; @@ -146,7 +146,7 @@ block_plugin_revocation_evaluate (void *cls, if (0 >= GNUNET_REVOCATION_check_pow (&rm->proof_of_work, ic->matching_bits, - ic->epoch_length)) + ic->epoch_duration)) { GNUNET_break_op (0); return GNUNET_BLOCK_EVALUATION_RESULT_INVALID; @@ -210,7 +210,7 @@ libgnunet_plugin_block_revocation_init (void *cls) struct GNUNET_BLOCK_PluginFunctions *api; struct InternalContext *ic; unsigned long long matching_bits; - struct GNUNET_TIME_Relative epoch_length; + struct GNUNET_TIME_Relative epoch_duration; if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_number (cfg, @@ -221,8 +221,8 @@ libgnunet_plugin_block_revocation_init (void *cls) if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_time (cfg, "REVOCATION", - "EPOCH_LENGTH", - &epoch_length)) + "EPOCH_DURATION", + &epoch_duration)) return NULL; api = GNUNET_new (struct GNUNET_BLOCK_PluginFunctions); @@ -232,7 +232,7 @@ libgnunet_plugin_block_revocation_init (void *cls) api->types = types; ic = GNUNET_new (struct InternalContext); ic->matching_bits = (unsigned int) matching_bits; - ic->epoch_length = epoch_length; + ic->epoch_duration = epoch_duration; api->cls = ic; return api; } diff --git a/src/revocation/revocation_api.c b/src/revocation/revocation_api.c index 7bf7799de..bff004698 100644 --- a/src/revocation/revocation_api.c +++ b/src/revocation/revocation_api.c @@ -311,7 +311,7 @@ GNUNET_REVOCATION_revoke (const struct GNUNET_CONFIGURATION_Handle *cfg, GNUNET_MQ_handler_end () }; unsigned long long matching_bits; - struct GNUNET_TIME_Relative epoch_length; + struct GNUNET_TIME_Relative epoch_duration; struct RevokeMessage *rm; struct GNUNET_MQ_Envelope *env; @@ -328,8 +328,8 @@ GNUNET_REVOCATION_revoke (const struct GNUNET_CONFIGURATION_Handle *cfg, if ((GNUNET_OK != GNUNET_CONFIGURATION_get_value_time (cfg, "REVOCATION", - "EPOCH_LENGTH", - &epoch_length))) + "EPOCH_DURATION", + &epoch_duration))) { GNUNET_break (0); GNUNET_free (h); @@ -337,7 +337,7 @@ GNUNET_REVOCATION_revoke (const struct GNUNET_CONFIGURATION_Handle *cfg, } if (GNUNET_YES != GNUNET_REVOCATION_check_pow (pow, (unsigned int) matching_bits, - epoch_length)) + epoch_duration)) { GNUNET_break (0); GNUNET_free (h); @@ -431,7 +431,7 @@ calculate_score (const struct GNUNET_REVOCATION_PowCalculationHandle *ph) enum GNUNET_GenericReturnValue GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, unsigned int difficulty, - struct GNUNET_TIME_Relative epoch_length) + struct GNUNET_TIME_Relative epoch_duration) { char buf[sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey) + sizeof (struct GNUNET_TIME_AbsoluteNBO) @@ -462,7 +462,7 @@ GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, &pow->signature, &pow->key)) { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Proof of work signature invalid!\n"); return GNUNET_NO; } @@ -508,12 +508,12 @@ GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, * Check expiration */ ts = GNUNET_TIME_absolute_ntoh (pow->timestamp); - ttl = GNUNET_TIME_relative_multiply (epoch_length, + ttl = GNUNET_TIME_relative_multiply (epoch_duration, epochs); /** * Extend by 10% for unsynchronized clocks */ - buffer = GNUNET_TIME_relative_divide (epoch_length, + buffer = GNUNET_TIME_relative_divide (epoch_duration, 10); exp = GNUNET_TIME_absolute_add (ts, ttl); exp = GNUNET_TIME_absolute_add (exp, diff --git a/src/revocation/test_revocation.c b/src/revocation/test_revocation.c index 84f90fe54..a7de15a3f 100644 --- a/src/revocation/test_revocation.c +++ b/src/revocation/test_revocation.c @@ -141,14 +141,14 @@ revocation_cb (void *cls, enum GNUNET_GenericReturnValue is_valid) } } +struct GNUNET_REVOCATION_Pow proof_of_work; + static void ego_cb (void *cls, const struct GNUNET_IDENTITY_Ego *ego) { static int completed = 0; const struct GNUNET_CRYPTO_EcdsaPrivateKey *privkey; - struct GNUNET_REVOCATION_Pow proof_of_work; - if ((NULL != ego) && (cls == &testpeers[0])) { diff --git a/src/revocation/test_revocation.conf b/src/revocation/test_revocation.conf index f195429b4..66e2cdcc9 100644 --- a/src/revocation/test_revocation.conf +++ b/src/revocation/test_revocation.conf @@ -7,7 +7,7 @@ SERVICEHOME=$GNUNET_TMP/test-revocation-service [revocation] WORKBITS = 3 IMMEDIATE_START = YES -EPOCH_LENGTH = 365 d +EPOCH_DURATION = 365 d [identity] # Directory where we store information about our egos -- cgit v1.2.3 From b7d8277cb1f335cd8137de77806e3a1fb5484d39 Mon Sep 17 00:00:00 2001 From: "Schanzenbach, Martin" Date: Tue, 21 Apr 2020 15:46:09 +0200 Subject: remove pow_get --- src/revocation/revocation_api.c | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/revocation/revocation_api.c b/src/revocation/revocation_api.c index bff004698..5494f379c 100644 --- a/src/revocation/revocation_api.c +++ b/src/revocation/revocation_api.c @@ -650,20 +650,6 @@ GNUNET_REVOCATION_pow_round (struct GNUNET_REVOCATION_PowCalculationHandle *pc) } -/** - * Return the curren PoW state from the calculation - * - * @param pc the calculation to get it from - * @return a pointer to the PoW - */ -const struct GNUNET_REVOCATION_Pow* -GNUNET_REVOCATION_pow_get (const struct - GNUNET_REVOCATION_PowCalculationHandle *pc) -{ - return pc->pow; -} - - /** * Cleanup a PoW calculation * -- cgit v1.2.3 From 3efcca773c416cabe8d790abccac7b19a669b00d Mon Sep 17 00:00:00 2001 From: Martin Schanzenbach Date: Tue, 21 Apr 2020 18:11:13 +0200 Subject: packed makes no sense there --- src/include/gnunet_revocation_service.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/include/gnunet_revocation_service.h b/src/include/gnunet_revocation_service.h index e8824bd8a..394f561dc 100644 --- a/src/include/gnunet_revocation_service.h +++ b/src/include/gnunet_revocation_service.h @@ -69,7 +69,7 @@ struct GNUNET_REVOCATION_Pow /** * The TTL of this revocation (purely informational) */ - struct GNUNET_TIME_RelativeNBO ttl GNUNET_PACKED; + struct GNUNET_TIME_RelativeNBO ttl; /** * The PoWs -- cgit v1.2.3 From 6bda628f704707ab92b17c4006a4a8fcf6bd48dd Mon Sep 17 00:00:00 2001 From: Martin Schanzenbach Date: Tue, 21 Apr 2020 18:13:05 +0200 Subject: update revocation config --- src/revocation/revocation.conf.in | 1 + 1 file changed, 1 insertion(+) diff --git a/src/revocation/revocation.conf.in b/src/revocation/revocation.conf.in index 5ad41cd49..346168785 100644 --- a/src/revocation/revocation.conf.in +++ b/src/revocation/revocation.conf.in @@ -14,5 +14,6 @@ UNIX_MATCH_GID = YES # (using only a single-core) with SCRYPT. # DO NOT CHANGE THIS VALUE, doing so will break the protocol! WORKBITS = 25 +EPOCH_DURATION = 356 d DATABASE = $GNUNET_DATA_HOME/revocation.dat -- cgit v1.2.3 From e3866c8f09e173e7d36cce25015ecfbd666cd5bc Mon Sep 17 00:00:00 2001 From: Martin Schanzenbach Date: Tue, 21 Apr 2020 18:25:36 +0200 Subject: update API for cleanup of handle --- src/include/gnunet_revocation_service.h | 7 +- src/revocation/gnunet-revocation.c | 3 +- src/revocation/revocation_api.c | 29 ++-- src/revocation/test_revocation.c | 2 +- src/transport/test_communicator_basic-udp | 228 ++++++++++++++++++++++++++++++ 5 files changed, 250 insertions(+), 19 deletions(-) create mode 100755 src/transport/test_communicator_basic-udp diff --git a/src/include/gnunet_revocation_service.h b/src/include/gnunet_revocation_service.h index 394f561dc..9a8918b43 100644 --- a/src/include/gnunet_revocation_service.h +++ b/src/include/gnunet_revocation_service.h @@ -244,13 +244,14 @@ GNUNET_REVOCATION_pow_round (struct GNUNET_REVOCATION_PowCalculationHandle *pc); /** - * Cleanup a PoW calculation + * Stop a PoW calculation * * @param pc the calculation to clean up + * @return #GNUNET_YES if pow valid, #GNUNET_NO if pow was set but is not + * valid */ void -GNUNET_REVOCATION_pow_cleanup ( - struct GNUNET_REVOCATION_PowCalculationHandle *pc); +GNUNET_REVOCATION_pow_stop (struct GNUNET_REVOCATION_PowCalculationHandle *pc); #if 0 /* keep Emacsens' auto-indent happy */ { diff --git a/src/revocation/gnunet-revocation.c b/src/revocation/gnunet-revocation.c index 2c46a20e7..de9560172 100644 --- a/src/revocation/gnunet-revocation.c +++ b/src/revocation/gnunet-revocation.c @@ -250,7 +250,8 @@ calculate_pow_shutdown (void *cls) GNUNET_SCHEDULER_cancel (pow_task); pow_task = NULL; } - GNUNET_REVOCATION_pow_cleanup (ph); + if (NULL != ph) + GNUNET_REVOCATION_pow_stop (ph); } diff --git a/src/revocation/revocation_api.c b/src/revocation/revocation_api.c index 5494f379c..18a312ab8 100644 --- a/src/revocation/revocation_api.c +++ b/src/revocation/revocation_api.c @@ -320,16 +320,16 @@ GNUNET_REVOCATION_revoke (const struct GNUNET_CONFIGURATION_Handle *cfg, "REVOCATION", "WORKBITS", &matching_bits))) - { + { GNUNET_break (0); GNUNET_free (h); return NULL; } if ((GNUNET_OK != GNUNET_CONFIGURATION_get_value_time (cfg, - "REVOCATION", - "EPOCH_DURATION", - &epoch_duration))) + "REVOCATION", + "EPOCH_DURATION", + &epoch_duration))) { GNUNET_break (0); GNUNET_free (h); @@ -345,7 +345,6 @@ GNUNET_REVOCATION_revoke (const struct GNUNET_CONFIGURATION_Handle *cfg, } - h->mq = GNUNET_CLIENT_connect (cfg, "revocation", handlers, @@ -454,8 +453,8 @@ GNUNET_REVOCATION_check_pow (const struct GNUNET_REVOCATION_Pow *pow, spurp.timestamp = pow->timestamp; spurp.purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_REVOCATION); spurp.purpose.size = htonl (sizeof(struct GNUNET_CRYPTO_EccSignaturePurpose) - + sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey) - + sizeof (struct GNUNET_TIME_AbsoluteNBO)); + + sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey) + + sizeof (struct GNUNET_TIME_AbsoluteNBO)); if (GNUNET_OK != GNUNET_CRYPTO_ecdsa_verify_ (GNUNET_SIGNATURE_PURPOSE_REVOCATION, &spurp.purpose, @@ -555,8 +554,8 @@ GNUNET_REVOCATION_pow_init (const struct GNUNET_CRYPTO_EcdsaPrivateKey *key, rp.timestamp = pow->timestamp; rp.purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_REVOCATION); rp.purpose.size = htonl (sizeof(struct GNUNET_CRYPTO_EccSignaturePurpose) - + sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey) - + sizeof (struct GNUNET_TIME_AbsoluteNBO)); + + sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey) + + sizeof (struct GNUNET_TIME_AbsoluteNBO)); GNUNET_CRYPTO_ecdsa_key_get_public (key, &pow->key); rp.key = pow->key; GNUNET_assert (GNUNET_OK == @@ -577,8 +576,8 @@ GNUNET_REVOCATION_pow_init (const struct GNUNET_CRYPTO_EcdsaPrivateKey *key, */ struct GNUNET_REVOCATION_PowCalculationHandle* GNUNET_REVOCATION_pow_start (struct GNUNET_REVOCATION_Pow *pow, - int epochs, - unsigned int difficulty) + int epochs, + unsigned int difficulty) { struct GNUNET_REVOCATION_PowCalculationHandle *pc; @@ -651,15 +650,17 @@ GNUNET_REVOCATION_pow_round (struct GNUNET_REVOCATION_PowCalculationHandle *pc) /** - * Cleanup a PoW calculation + * Stop a PoW calculation * * @param pc the calculation to clean up + * @return #GNUNET_YES if pow valid, #GNUNET_NO if pow was set but is not + * valid */ void -GNUNET_REVOCATION_pow_cleanup (struct - GNUNET_REVOCATION_PowCalculationHandle *pc) +GNUNET_REVOCATION_pow_stop (struct GNUNET_REVOCATION_PowCalculationHandle *pc) { GNUNET_free (pc); } + /* end of revocation_api.c */ diff --git a/src/revocation/test_revocation.c b/src/revocation/test_revocation.c index a7de15a3f..f193d5f6c 100644 --- a/src/revocation/test_revocation.c +++ b/src/revocation/test_revocation.c @@ -187,7 +187,7 @@ ego_cb (void *cls, const struct GNUNET_IDENTITY_Ego *ego) &proof_of_work, &revocation_cb, NULL); - GNUNET_REVOCATION_pow_cleanup (testpeers[1].pow); + GNUNET_REVOCATION_pow_stop (testpeers[1].pow); } } diff --git a/src/transport/test_communicator_basic-udp b/src/transport/test_communicator_basic-udp new file mode 100755 index 000000000..c8e2c5e1e --- /dev/null +++ b/src/transport/test_communicator_basic-udp @@ -0,0 +1,228 @@ +#! /bin/sh + +# test_communicator_basic-udp - temporary wrapper script for .libs/test_communicator_basic-udp +# Generated by libtool (GNU libtool) 2.4.6.44-b9b4-dirty +# +# The test_communicator_basic-udp program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s|\([`"$\\]\)|\\\1|g' + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command="(cd /home/schanzen/dev/gnunet/src/transport; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/usr/local/sbin:/usr/local/opt/ruby/bin:/usr/local/bin:/usr/bin:/home/schanzen/software/bin; export PATH; clang -fno-strict-aliasing -Wall -g -O2 -Wno-address-of-packed-member -Wl,--unresolved-symbols=report-all -o \$progdir/\$file test_communicator_basic.o ./.libs/libgnunettransporttesting2.so /home/schanzen/dev/gnunet/src/transport/.libs/libgnunettransport.so /home/schanzen/dev/gnunet/src/ats/.libs/libgnunetats.so /home/schanzen/dev/gnunet/src/hello/.libs/libgnunethello.so ../../src/testing/.libs/libgnunettesting.so /home/schanzen/dev/gnunet/src/arm/.libs/libgnunetarm.so /home/schanzen/dev/gnunet/src/util/.libs/libgnunetutil.so ../../src/util/.libs/libgnunetutil.so -latomic -lgcrypt -lgpg-error -lltdl -lidn2 -lz -lunistring -lm -Wl,-rpath -Wl,/home/schanzen/dev/gnunet/src/transport/.libs -Wl,-rpath -Wl,/home/schanzen/dev/gnunet/src/ats/.libs -Wl,-rpath -Wl,/home/schanzen/dev/gnunet/src/hello/.libs -Wl,-rpath -Wl,/home/schanzen/dev/gnunet/src/testing/.libs -Wl,-rpath -Wl,/home/schanzen/dev/gnunet/src/arm/.libs -Wl,-rpath -Wl,/home/schanzen/dev/gnunet/src/util/.libs -Wl,-rpath -Wl,/home/schanzen/software/lib)" + +# This environment variable determines our operation mode. +if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then + # install mode needs the following variables: + generated_by_libtool_version='2.4.6.44-b9b4-dirty' + notinst_deplibs=' libgnunettransporttesting2.la /home/schanzen/dev/gnunet/src/transport/libgnunettransport.la /home/schanzen/dev/gnunet/src/ats/libgnunetats.la /home/schanzen/dev/gnunet/src/hello/libgnunethello.la ../../src/testing/libgnunettesting.la /home/schanzen/dev/gnunet/src/arm/libgnunetarm.la /home/schanzen/dev/gnunet/src/util/libgnunetutil.la ../../src/util/libgnunetutil.la' +else + # When we are sourced in execute mode, $file and $ECHO are already set. + if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then + file="$0" + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + ECHO="printf %s\\n" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ that is used only on +# windows platforms, and (c) all begin with the string --lt- +# (application programs are unlikely to have options that match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's ../../libtool value, followed by no. +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=$0 + shift + for lt_opt + do + case "$lt_opt" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%/[^/]*$%%'` + test "X$lt_dump_D" = "X$lt_script_arg0" && lt_dump_D=. + lt_dump_F=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%^.*/%%'` + cat "$lt_dump_D/$lt_dump_F" + exit 0 + ;; + --lt-*) + $ECHO "Unrecognized --lt- option: '$lt_opt'" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n "$lt_option_debug"; then + echo "test_communicator_basic-udp:test_communicator_basic-udp:$LINENO: libtool wrapper (GNU libtool) 2.4.6.44-b9b4-dirty" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + $ECHO "test_communicator_basic-udp:test_communicator_basic-udp:$LINENO: newargv[$lt_dump_args_N]: $lt_arg" + lt_dump_args_N=`expr $lt_dump_args_N + 1` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ + + if test -n "$lt_option_debug"; then + $ECHO "test_communicator_basic-udp:test_communicator_basic-udp:$LINENO: newargv[0]: $progdir/$program" 1>&2 + func_lt_dump_args ${1+"$@"} 1>&2 + fi + exec "$progdir/$program" ${1+"$@"} + + $ECHO "$0: cannot exec $program $*" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from $@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case " $* " in + *\ --lt-*) + for lt_wr_arg + do + case $lt_wr_arg in + --lt-*) ;; + *) set x "$@" "$lt_wr_arg"; shift;; + esac + shift + done ;; + esac + func_exec_program_core ${1+"$@"} +} + + # Parse options + func_parse_lt_options "$0" ${1+"$@"} + + # Find the directory that this script lives in. + thisdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'` + test "x$thisdir" = "x$file" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=`ls -ld "$file" | /usr/bin/sed -n 's/.*-> //p'` + while test -n "$file"; do + destdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'` + + # If there was a directory component, then change thisdir. + if test "x$destdir" != "x$file"; then + case "$destdir" in + [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;; + *) thisdir="$thisdir/$destdir" ;; + esac + fi + + file=`$ECHO "$file" | /usr/bin/sed 's%^.*/%%'` + file=`ls -ld "$thisdir/$file" | /usr/bin/sed -n 's/.*-> //p'` + done + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no + if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then + # special case for '.' + if test "$thisdir" = "."; then + thisdir=`pwd` + fi + # remove .libs from thisdir + case "$thisdir" in + *[\\/].libs ) thisdir=`$ECHO "$thisdir" | /usr/bin/sed 's%[\\/][^\\/]*$%%'` ;; + .libs ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=`cd "$thisdir" && pwd` + test -n "$absdir" && thisdir="$absdir" + + program=lt-'test_communicator_basic-udp' + progdir="$thisdir/.libs" + + if test ! -f "$progdir/$program" || + { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /usr/bin/sed 1q`; \ + test "X$file" != "X$progdir/$program"; }; then + + file="$$-$program" + + if test ! -d "$progdir"; then + mkdir "$progdir" + else + rm -f "$progdir/$file" + fi + + # relink executable if necessary + if test -n "$relink_command"; then + if relink_command_output=`eval $relink_command 2>&1`; then : + else + $ECHO "$relink_command_output" >&2 + rm -f "$progdir/$file" + exit 1 + fi + fi + + mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null || + { rm -f "$progdir/$program"; + mv -f "$progdir/$file" "$progdir/$program"; } + rm -f "$progdir/$file" + fi + + if test -f "$progdir/$program"; then + if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then + # Run the actual program with our arguments. + func_exec_program ${1+"$@"} + fi + else + # The program doesn't exist. + $ECHO "$0: error: '$progdir/$program' does not exist" 1>&2 + $ECHO "This script is just a wrapper for $program." 1>&2 + $ECHO "See the libtool documentation for more information." 1>&2 + exit 1 + fi +fi -- cgit v1.2.3 From 091f411cc91975e43d7d994a981b82d45bbc9bcb Mon Sep 17 00:00:00 2001 From: Martin Schanzenbach Date: Tue, 21 Apr 2020 18:37:28 +0200 Subject: purge scrypt; add argon2 --- README | 2 ++ configure.ac | 2 ++ src/util/crypto_pow.c | 40 ---------------------------------------- 3 files changed, 4 insertions(+), 40 deletions(-) diff --git a/README b/README index f8fd811f8..5c4648b8e 100644 --- a/README +++ b/README @@ -96,6 +96,8 @@ These are the direct dependencies for running GNUnet: - which (contrib/apparmor(?), gnunet-bugreport, and possibly more) - zlib +- argon2 >= 20190702 (for proof-of-work calculations in + revocation) These are the dependencies for GNUnet's testsuite: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/configure.ac b/configure.ac index 3b3c9cbe9..b6e44f90e 100644 --- a/configure.ac +++ b/configure.ac @@ -1033,6 +1033,8 @@ AS_IF([test x$nss = xfalse], AC_CHECK_LIB([kvm],[kvm_open]) AC_CHECK_LIB([kstat],[kstat_open]) +# test for argon2 (for POW) +AC_CHECK_LIB([argon2],[argon2d_hash_raw]) # test for libextractor extractor=0 diff --git a/src/util/crypto_pow.c b/src/util/crypto_pow.c index 1ab4443d1..35511a130 100644 --- a/src/util/crypto_pow.c +++ b/src/util/crypto_pow.c @@ -25,11 +25,8 @@ */ #include "platform.h" #include "gnunet_crypto_lib.h" -#include #include -#define LSD0001 - /** * Calculate the 'proof-of-work' hash (an expensive hash). * We're using a non-standard formula to avoid issues with @@ -46,7 +43,6 @@ GNUNET_CRYPTO_pow_hash (const char *salt, size_t buf_len, struct GNUNET_HashCode *result) { -#ifdef LSD0001 GNUNET_break (ARGON2_OK == argon2d_hash_raw (3, /* iterations */ 1024, /* memory (1 MiB) */ 1, /* threads */ @@ -58,42 +54,6 @@ GNUNET_CRYPTO_pow_hash (const char *salt, sizeof (struct GNUNET_HashCode))); -#else - struct GNUNET_CRYPTO_SymmetricInitializationVector iv; - struct GNUNET_CRYPTO_SymmetricSessionKey skey; - char rbuf[buf_len]; - - GNUNET_break (0 == gcry_kdf_derive (buf, - buf_len, - GCRY_KDF_SCRYPT, - 1 /* subalgo */, - salt, - strlen (salt), - 2 /* iterations; keep cost of individual op small */, - sizeof(skey), - &skey)); - GNUNET_CRYPTO_symmetric_derive_iv (&iv, - &skey, - "gnunet-proof-of-work-iv", - strlen ("gnunet-proof-of-work-iv"), - salt, - strlen (salt), - NULL, 0); - GNUNET_CRYPTO_symmetric_encrypt (buf, - buf_len, - &skey, - &iv, - &rbuf); - GNUNET_break (0 == gcry_kdf_derive (rbuf, - buf_len, - GCRY_KDF_SCRYPT, - 1 /* subalgo */, - salt, - strlen (salt), - 2 /* iterations; keep cost of individual op small */, - sizeof(struct GNUNET_HashCode), - result)); -#endif } -- cgit v1.2.3 From 1b57b570605c9145647e7ce62d43a5387efe9419 Mon Sep 17 00:00:00 2001 From: "Schanzenbach, Martin" Date: Wed, 22 Apr 2020 08:40:10 +0200 Subject: remova binary file commited by accident --- src/transport/test_communicator_basic-udp | 228 ------------------------------ 1 file changed, 228 deletions(-) delete mode 100755 src/transport/test_communicator_basic-udp diff --git a/src/transport/test_communicator_basic-udp b/src/transport/test_communicator_basic-udp deleted file mode 100755 index c8e2c5e1e..000000000 --- a/src/transport/test_communicator_basic-udp +++ /dev/null @@ -1,228 +0,0 @@ -#! /bin/sh - -# test_communicator_basic-udp - temporary wrapper script for .libs/test_communicator_basic-udp -# Generated by libtool (GNU libtool) 2.4.6.44-b9b4-dirty -# -# The test_communicator_basic-udp program cannot be directly executed until all the libtool -# libraries that it depends on are installed. -# -# This wrapper script should never be moved out of the build directory. -# If it is, it will not operate correctly. - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -sed_quote_subst='s|\([`"$\\]\)|\\\1|g' - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac -fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -relink_command="(cd /home/schanzen/dev/gnunet/src/transport; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=/usr/local/sbin:/usr/local/opt/ruby/bin:/usr/local/bin:/usr/bin:/home/schanzen/software/bin; export PATH; clang -fno-strict-aliasing -Wall -g -O2 -Wno-address-of-packed-member -Wl,--unresolved-symbols=report-all -o \$progdir/\$file test_communicator_basic.o ./.libs/libgnunettransporttesting2.so /home/schanzen/dev/gnunet/src/transport/.libs/libgnunettransport.so /home/schanzen/dev/gnunet/src/ats/.libs/libgnunetats.so /home/schanzen/dev/gnunet/src/hello/.libs/libgnunethello.so ../../src/testing/.libs/libgnunettesting.so /home/schanzen/dev/gnunet/src/arm/.libs/libgnunetarm.so /home/schanzen/dev/gnunet/src/util/.libs/libgnunetutil.so ../../src/util/.libs/libgnunetutil.so -latomic -lgcrypt -lgpg-error -lltdl -lidn2 -lz -lunistring -lm -Wl,-rpath -Wl,/home/schanzen/dev/gnunet/src/transport/.libs -Wl,-rpath -Wl,/home/schanzen/dev/gnunet/src/ats/.libs -Wl,-rpath -Wl,/home/schanzen/dev/gnunet/src/hello/.libs -Wl,-rpath -Wl,/home/schanzen/dev/gnunet/src/testing/.libs -Wl,-rpath -Wl,/home/schanzen/dev/gnunet/src/arm/.libs -Wl,-rpath -Wl,/home/schanzen/dev/gnunet/src/util/.libs -Wl,-rpath -Wl,/home/schanzen/software/lib)" - -# This environment variable determines our operation mode. -if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then - # install mode needs the following variables: - generated_by_libtool_version='2.4.6.44-b9b4-dirty' - notinst_deplibs=' libgnunettransporttesting2.la /home/schanzen/dev/gnunet/src/transport/libgnunettransport.la /home/schanzen/dev/gnunet/src/ats/libgnunetats.la /home/schanzen/dev/gnunet/src/hello/libgnunethello.la ../../src/testing/libgnunettesting.la /home/schanzen/dev/gnunet/src/arm/libgnunetarm.la /home/schanzen/dev/gnunet/src/util/libgnunetutil.la ../../src/util/libgnunetutil.la' -else - # When we are sourced in execute mode, $file and $ECHO are already set. - if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then - file="$0" - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -$1 -_LTECHO_EOF' -} - ECHO="printf %s\\n" - fi - -# Very basic option parsing. These options are (a) specific to -# the libtool wrapper, (b) are identical between the wrapper -# /script/ and the wrapper /executable/ that is used only on -# windows platforms, and (c) all begin with the string --lt- -# (application programs are unlikely to have options that match -# this pattern). -# -# There are only two supported options: --lt-debug and -# --lt-dump-script. There is, deliberately, no --lt-help. -# -# The first argument to this parsing function should be the -# script's ../../libtool value, followed by no. -lt_option_debug= -func_parse_lt_options () -{ - lt_script_arg0=$0 - shift - for lt_opt - do - case "$lt_opt" in - --lt-debug) lt_option_debug=1 ;; - --lt-dump-script) - lt_dump_D=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%/[^/]*$%%'` - test "X$lt_dump_D" = "X$lt_script_arg0" && lt_dump_D=. - lt_dump_F=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%^.*/%%'` - cat "$lt_dump_D/$lt_dump_F" - exit 0 - ;; - --lt-*) - $ECHO "Unrecognized --lt- option: '$lt_opt'" 1>&2 - exit 1 - ;; - esac - done - - # Print the debug banner immediately: - if test -n "$lt_option_debug"; then - echo "test_communicator_basic-udp:test_communicator_basic-udp:$LINENO: libtool wrapper (GNU libtool) 2.4.6.44-b9b4-dirty" 1>&2 - fi -} - -# Used when --lt-debug. Prints its arguments to stdout -# (redirection is the responsibility of the caller) -func_lt_dump_args () -{ - lt_dump_args_N=1; - for lt_arg - do - $ECHO "test_communicator_basic-udp:test_communicator_basic-udp:$LINENO: newargv[$lt_dump_args_N]: $lt_arg" - lt_dump_args_N=`expr $lt_dump_args_N + 1` - done -} - -# Core function for launching the target application -func_exec_program_core () -{ - - if test -n "$lt_option_debug"; then - $ECHO "test_communicator_basic-udp:test_communicator_basic-udp:$LINENO: newargv[0]: $progdir/$program" 1>&2 - func_lt_dump_args ${1+"$@"} 1>&2 - fi - exec "$progdir/$program" ${1+"$@"} - - $ECHO "$0: cannot exec $program $*" 1>&2 - exit 1 -} - -# A function to encapsulate launching the target application -# Strips options in the --lt-* namespace from $@ and -# launches target application with the remaining arguments. -func_exec_program () -{ - case " $* " in - *\ --lt-*) - for lt_wr_arg - do - case $lt_wr_arg in - --lt-*) ;; - *) set x "$@" "$lt_wr_arg"; shift;; - esac - shift - done ;; - esac - func_exec_program_core ${1+"$@"} -} - - # Parse options - func_parse_lt_options "$0" ${1+"$@"} - - # Find the directory that this script lives in. - thisdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'` - test "x$thisdir" = "x$file" && thisdir=. - - # Follow symbolic links until we get to the real thisdir. - file=`ls -ld "$file" | /usr/bin/sed -n 's/.*-> //p'` - while test -n "$file"; do - destdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'` - - # If there was a directory component, then change thisdir. - if test "x$destdir" != "x$file"; then - case "$destdir" in - [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;; - *) thisdir="$thisdir/$destdir" ;; - esac - fi - - file=`$ECHO "$file" | /usr/bin/sed 's%^.*/%%'` - file=`ls -ld "$thisdir/$file" | /usr/bin/sed -n 's/.*-> //p'` - done - - # Usually 'no', except on cygwin/mingw when embedded into - # the cwrapper. - WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no - if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then - # special case for '.' - if test "$thisdir" = "."; then - thisdir=`pwd` - fi - # remove .libs from thisdir - case "$thisdir" in - *[\\/].libs ) thisdir=`$ECHO "$thisdir" | /usr/bin/sed 's%[\\/][^\\/]*$%%'` ;; - .libs ) thisdir=. ;; - esac - fi - - # Try to get the absolute directory name. - absdir=`cd "$thisdir" && pwd` - test -n "$absdir" && thisdir="$absdir" - - program=lt-'test_communicator_basic-udp' - progdir="$thisdir/.libs" - - if test ! -f "$progdir/$program" || - { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /usr/bin/sed 1q`; \ - test "X$file" != "X$progdir/$program"; }; then - - file="$$-$program" - - if test ! -d "$progdir"; then - mkdir "$progdir" - else - rm -f "$progdir/$file" - fi - - # relink executable if necessary - if test -n "$relink_command"; then - if relink_command_output=`eval $relink_command 2>&1`; then : - else - $ECHO "$relink_command_output" >&2 - rm -f "$progdir/$file" - exit 1 - fi - fi - - mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null || - { rm -f "$progdir/$program"; - mv -f "$progdir/$file" "$progdir/$program"; } - rm -f "$progdir/$file" - fi - - if test -f "$progdir/$program"; then - if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then - # Run the actual program with our arguments. - func_exec_program ${1+"$@"} - fi - else - # The program doesn't exist. - $ECHO "$0: error: '$progdir/$program' does not exist" 1>&2 - $ECHO "This script is just a wrapper for $program." 1>&2 - $ECHO "See the libtool documentation for more information." 1>&2 - exit 1 - fi -fi -- cgit v1.2.3 From c4fa48421916ff0777e9cf1bbb3b83634392a494 Mon Sep 17 00:00:00 2001 From: "Schanzenbach, Martin" Date: Wed, 22 Apr 2020 17:10:22 +0200 Subject: add epochs CLI parameter --- doc/man/gnunet-revocation.1 | 3 +++ src/revocation/gnunet-revocation.c | 21 ++++++++++++++++----- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/doc/man/gnunet-revocation.1 b/doc/man/gnunet-revocation.1 index 0c447a94f..05d80178a 100644 --- a/doc/man/gnunet-revocation.1 +++ b/doc/man/gnunet-revocation.1 @@ -30,6 +30,7 @@ .Sh SYNOPSIS .Nm .Op Fl t Ar KEY | Fl -test= Ns Ar KEY +.Op Fl e Ar EPOCHS | Fl -epochs= Ns Ar EPOCHS .Op Fl R Ar NAME | Fl -revoke= Ns Ar NAME .Op Fl p | -perform .Op Fl f Ar NAME | Fl -filename= Ns Ar NAME @@ -50,6 +51,8 @@ Depending on your CPU, the calculation can take days or weeks. .Bl -tag -width indent .It Fl t Ar KEY | Fl -test= Ns Ar KEY Check if the given KEY (ASCII-encoded public key required) has been revoked. +.It Fl e Ar EPOCHS | Fl -epochs= Ns Ar EPOCHS +Number of epochs for which the revocation should be valid (default: 1) .It Fl R Ar NAME | Fl -revoke= Ns Ar NAME Calculate or perform revocation for the ego with the given NAME. .It Fl p | -perform diff --git a/src/revocation/gnunet-revocation.c b/src/revocation/gnunet-revocation.c index de9560172..19fd5ab2c 100644 --- a/src/revocation/gnunet-revocation.c +++ b/src/revocation/gnunet-revocation.c @@ -58,6 +58,11 @@ static char *revoke_ego; */ static char *test_ego; +/** + * -e option. + */ +static unsigned int epochs = 1; + /** * Handle for revocation query. */ @@ -333,7 +338,7 @@ ego_callback (void *cls, const struct GNUNET_IDENTITY_Ego *ego) } GNUNET_IDENTITY_ego_get_public_key (ego, &key); privkey = GNUNET_IDENTITY_ego_get_private_key (ego); - memset(&proof_of_work, 0, sizeof (proof_of_work)); + memset (&proof_of_work, 0, sizeof (proof_of_work)); if ((NULL != filename) && (GNUNET_YES == GNUNET_DISK_file_test (filename)) && (sizeof(proof_of_work) == GNUNET_DISK_fn_read (filename, &proof_of_work, sizeof(proof_of_work)))) @@ -363,9 +368,9 @@ ego_callback (void *cls, const struct GNUNET_IDENTITY_Ego *ego) */ fprintf (stderr, "%s", - _("Continuing calculation where left off...\n")); + _ ("Continuing calculation where left off...\n")); ph = GNUNET_REVOCATION_pow_start (&proof_of_work, - 1, /* Epochs */ + epochs, matching_bits); } fprintf (stderr, @@ -376,7 +381,7 @@ ego_callback (void *cls, const struct GNUNET_IDENTITY_Ego *ego) GNUNET_REVOCATION_pow_init (privkey, &proof_of_work); ph = GNUNET_REVOCATION_pow_start (&proof_of_work, - 1, /* Epochs */ + epochs, /* Epochs */ matching_bits); } pow_task = GNUNET_SCHEDULER_add_now (&calculate_pow, ph); @@ -475,7 +480,7 @@ run (void *cls, { struct GNUNET_REVOCATION_PowCalculationHandle *ph; ph = GNUNET_REVOCATION_pow_start (&proof_of_work, - 1, /* Epochs */ + epochs, /* Epochs */ matching_bits); pow_task = GNUNET_SCHEDULER_add_now (&calculate_pow, ph); @@ -528,6 +533,12 @@ main (int argc, char *const *argv) gettext_noop ( "test if the public key KEY has been revoked"), &test_ego), + GNUNET_GETOPT_option_uint ('e', + "epochs", + "EPOCHS", + gettext_noop ( + "number of epochs to calculate for"), + &epochs), GNUNET_GETOPT_OPTION_END }; -- cgit v1.2.3 From 69f8fad56e942054bda1f7623de09c525c62b6c1 Mon Sep 17 00:00:00 2001 From: "Schanzenbach, Martin" Date: Fri, 24 Apr 2020 10:18:16 +0200 Subject: fix #6220 --- configure.ac | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index b6e44f90e..bfaf8cf14 100644 --- a/configure.ac +++ b/configure.ac @@ -1033,8 +1033,15 @@ AS_IF([test x$nss = xfalse], AC_CHECK_LIB([kvm],[kvm_open]) AC_CHECK_LIB([kstat],[kstat_open]) +argon=0 # test for argon2 (for POW) -AC_CHECK_LIB([argon2],[argon2d_hash_raw]) +AC_CHECK_LIB([argon2],[argon2d_hash_raw], argon=1, argon=0) +AS_IF([test x$argon = x1], +[ + AC_MSG_RESULT([argon2 found]) +],[ + AC_MSG_ERROR([GNUnet requires argon2.]) +]) # test for libextractor extractor=0 -- cgit v1.2.3 From 892bd3c6013f0a8c44106f16299a34d9a1c99e48 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Fri, 24 Apr 2020 13:50:05 +0530 Subject: check for integer overflow in buffer lib (fixes #6217) --- src/util/buffer.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/util/buffer.c b/src/util/buffer.c index 8efb3e284..dabf630c7 100644 --- a/src/util/buffer.c +++ b/src/util/buffer.c @@ -56,6 +56,8 @@ GNUNET_buffer_ensure_remaining (struct GNUNET_Buffer *buf, { size_t new_capacity = buf->position + n; + /* guard against overflow */ + GNUNET_assert (new_capacity >= buf->position); if (new_capacity <= buf->capacity) return; /* warn if calculation of expected size was wrong */ -- cgit v1.2.3