Merge remote-tracking branch 'origin/maint-0.2.2'

This commit is contained in:
Nick Mathewson 2011-05-15 12:18:39 -04:00
commit 1f7b9e61ce
2 changed files with 9 additions and 0 deletions

4
changes/bug3026 Normal file
View File

@ -0,0 +1,4 @@
o Minor bugfixes (directory authority)
- Do not upload our own vote or signature set to ourself. It would
tell us nothing new. Also, as of Tor 0.2.2.24-alpha, we started
to warn about receiving duplicate votes. Resolves bug 3026.

View File

@ -289,6 +289,8 @@ directory_post_to_dirservers(uint8_t dir_purpose, uint8_t router_purpose,
int post_via_tor; int post_via_tor;
smartlist_t *dirservers = router_get_trusted_dir_servers(); smartlist_t *dirservers = router_get_trusted_dir_servers();
int found = 0; int found = 0;
const int exclude_self = (dir_purpose == DIR_PURPOSE_UPLOAD_VOTE ||
dir_purpose == DIR_PURPOSE_UPLOAD_SIGNATURES);
tor_assert(dirservers); tor_assert(dirservers);
/* This tries dirservers which we believe to be down, but ultimately, that's /* This tries dirservers which we believe to be down, but ultimately, that's
* harmless, and we may as well err on the side of getting things uploaded. * harmless, and we may as well err on the side of getting things uploaded.
@ -301,6 +303,9 @@ directory_post_to_dirservers(uint8_t dir_purpose, uint8_t router_purpose,
if ((type & ds->type) == 0) if ((type & ds->type) == 0)
continue; continue;
if (exclude_self && router_digest_is_me(ds->digest))
continue;
if (options->ExcludeNodes && options->StrictNodes && if (options->ExcludeNodes && options->StrictNodes &&
routerset_contains_routerstatus(options->ExcludeNodes, rs, -1)) { routerset_contains_routerstatus(options->ExcludeNodes, rs, -1)) {
log_warn(LD_DIR, "Wanted to contact authority '%s' for %s, but " log_warn(LD_DIR, "Wanted to contact authority '%s' for %s, but "