don't mark our descriptor dirty if our onion key hasn't changed

This commit is contained in:
Roger Dingledine 2011-05-21 19:23:27 -04:00
parent 1ba1bdee4b
commit af0e8d834e
2 changed files with 9 additions and 0 deletions

4
changes/bug3263 Normal file
View File

@ -0,0 +1,4 @@
o Minor bugfixes:
- Don't publish a new relay descriptor when we reload our onion key,
unless the onion key has actually changed. Fixes bug 3263 and
resolves another cause of bug 1810. Bugfix on 0.1.1.11-alpha.

View File

@ -82,6 +82,11 @@ static authority_cert_t *legacy_key_certificate = NULL;
static void static void
set_onion_key(crypto_pk_env_t *k) set_onion_key(crypto_pk_env_t *k)
{ {
if (onionkey && !crypto_pk_cmp_keys(onionkey, k)) {
/* k is already our onion key; free it and return */
crypto_free_pk_env(k);
return;
}
tor_mutex_acquire(key_lock); tor_mutex_acquire(key_lock);
crypto_free_pk_env(onionkey); crypto_free_pk_env(onionkey);
onionkey = k; onionkey = k;