From 76753efd7b9fd08fa6b88d096e85f0ff798f2939 Mon Sep 17 00:00:00 2001 From: meejah Date: Wed, 10 Dec 2014 22:30:14 -0700 Subject: [PATCH] Fix 13941: make calling log_new_relay_greeting() optional. Specifically, only if we're creating secret_id_key do we log the greeting (and then only if the key is actually created). --- changes/bug13941 | 4 ++++ src/or/rendservice.c | 2 +- src/or/router.c | 18 +++++++++++------- src/or/router.h | 2 +- 4 files changed, 17 insertions(+), 9 deletions(-) create mode 100644 changes/bug13941 diff --git a/changes/bug13941 b/changes/bug13941 new file mode 100644 index 0000000000..eae748cdab --- /dev/null +++ b/changes/bug13941 @@ -0,0 +1,4 @@ + o Minor bugfixes (hidden services): + - When adding a new hidden-service (for example, via SETCONF) Tor + no longer logs a congratulations for running a relay. + diff --git a/src/or/rendservice.c b/src/or/rendservice.c index 26e5659123..5766cfc78d 100644 --- a/src/or/rendservice.c +++ b/src/or/rendservice.c @@ -738,7 +738,7 @@ rend_service_load_keys(rend_service_t *s) s->directory); return -1; } - s->private_key = init_key_from_file(fname, 1, LOG_ERR); + s->private_key = init_key_from_file(fname, 1, LOG_ERR, 0); if (!s->private_key) return -1; diff --git a/src/or/router.c b/src/or/router.c index 01838b4b3e..56bb909952 100644 --- a/src/or/router.c +++ b/src/or/router.c @@ -392,10 +392,12 @@ log_new_relay_greeting(void) /** Try to read an RSA key from fname. If fname doesn't exist * and generate is true, create a new RSA key and save it in * fname. Return the read/created key, or NULL on error. Log all - * errors at level severity. + * errors at level severity. If log_greeting is non-zero and a + * new key was created, log_new_relay_greeting() is called. */ crypto_pk_t * -init_key_from_file(const char *fname, int generate, int severity) +init_key_from_file(const char *fname, int generate, int severity, + int log_greeting) { crypto_pk_t *prkey = NULL; @@ -433,7 +435,9 @@ init_key_from_file(const char *fname, int generate, int severity) goto error; } log_info(LD_GENERAL, "Generated key seems valid"); - log_new_relay_greeting(); + if (log_greeting) { + log_new_relay_greeting(); + } if (crypto_pk_write_private_key_to_filename(prkey, fname)) { tor_log(severity, LD_FS, "Couldn't write generated key to \"%s\".", fname); @@ -545,7 +549,7 @@ load_authority_keyset(int legacy, crypto_pk_t **key_out, fname = get_datadir_fname2("keys", legacy ? "legacy_signing_key" : "authority_signing_key"); - signing_key = init_key_from_file(fname, 0, LOG_INFO); + signing_key = init_key_from_file(fname, 0, LOG_INFO, 0); if (!signing_key) { log_warn(LD_DIR, "No version 3 directory key found in %s", fname); goto done; @@ -828,7 +832,7 @@ init_keys(void) /* 1b. Read identity key. Make it if none is found. */ keydir = get_datadir_fname2("keys", "secret_id_key"); log_info(LD_GENERAL,"Reading/making identity key \"%s\"...",keydir); - prkey = init_key_from_file(keydir, 1, LOG_ERR); + prkey = init_key_from_file(keydir, 1, LOG_ERR, 1); tor_free(keydir); if (!prkey) return -1; set_server_identity_key(prkey); @@ -851,7 +855,7 @@ init_keys(void) /* 2. Read onion key. Make it if none is found. */ keydir = get_datadir_fname2("keys", "secret_onion_key"); log_info(LD_GENERAL,"Reading/making onion key \"%s\"...",keydir); - prkey = init_key_from_file(keydir, 1, LOG_ERR); + prkey = init_key_from_file(keydir, 1, LOG_ERR, 1); tor_free(keydir); if (!prkey) return -1; set_onion_key(prkey); @@ -876,7 +880,7 @@ init_keys(void) keydir = get_datadir_fname2("keys", "secret_onion_key.old"); if (!lastonionkey && file_status(keydir) == FN_FILE) { - prkey = init_key_from_file(keydir, 1, LOG_ERR); /* XXXX Why 1? */ + prkey = init_key_from_file(keydir, 1, LOG_ERR, 0); /* XXXX Why 1? */ if (prkey) lastonionkey = prkey; } diff --git a/src/or/router.h b/src/or/router.h index 16d3845be1..b5d7f11053 100644 --- a/src/or/router.h +++ b/src/or/router.h @@ -29,7 +29,7 @@ crypto_pk_t *get_my_v3_legacy_signing_key(void); void dup_onion_keys(crypto_pk_t **key, crypto_pk_t **last); void rotate_onion_key(void); crypto_pk_t *init_key_from_file(const char *fname, int generate, - int severity); + int severity, int log_greeting); void v3_authority_check_key_expiry(void); di_digest256_map_t *construct_ntor_key_map(void);