Revert "Do not replace a HS descriptor with a different replica of itself"

This reverts commit 9407040c59.

Small fix, "e->received" had to be removed since that variable doesn't exist
anymore.

Signed-off-by: David Goulet <dgoulet@ev0ke.net>
This commit is contained in:
David Goulet 2015-06-16 13:16:34 -04:00
parent 59fa0c2d99
commit 8acf5255c2
2 changed files with 21 additions and 2 deletions

13
changes/bug16381 Normal file
View File

@ -0,0 +1,13 @@
o Major bugfix (Hidden service client)
- Revert commit 9407040c592184e05e45a3c1a00739c2dd302288 of bug #14219
that indeed fixed an issue but introduced a major hidden service
reachability regression detailed in bug #16381. This is a temporary
fix since we can live with the minor issue in #14219 but the
regression introduced is too much of a set back.
To be clear, #14219 bug just results in some load on the network, and
some delay for the client when visiting a hidden service that will
ultimately fail.
This is only a bandaid for #16381 thus it does _not_ fixes it. bugfix
on tor-0.2.6.3-alpha~138.

View File

@ -1249,12 +1249,18 @@ rend_cache_store_v2_desc_as_client(const char *desc,
/* Do we already have a newer descriptor? */
tor_snprintf(key, sizeof(key), "2%s", service_id);
e = (rend_cache_entry_t*) strmap_get_lc(rend_cache, key);
if (e && e->parsed->timestamp >= parsed->timestamp) {
log_info(LD_REND, "We already have a new enough service descriptor for "
if (e && e->parsed->timestamp > parsed->timestamp) {
log_info(LD_REND, "We already have a newer service descriptor for "
"service ID %s with the same desc ID and version.",
safe_str_client(service_id));
goto okay;
}
/* Do we already have this descriptor? */
if (e && !strcmp(desc, e->desc)) {
log_info(LD_REND,"We already have this service descriptor %s.",
safe_str_client(service_id));
goto okay;
}
if (!e) {
e = tor_malloc_zero(sizeof(rend_cache_entry_t));
strmap_set_lc(rend_cache, key, e);