our quotas recently. Fixes bug 1013; bugfix on 0.2.1.8-alpha.
- Do not cap bandwidths reported by directory authorities; they are
already adjusted to reflect reality.
+ - When we can't find an intro key for a v2 hidden service descriptor,
+ fall back to the v0 hidden service descriptor and log a bug message.
+ Workaround for bug1024.
o Major features:
- Clients now use the bandwidth values in the consensus, rather than
}
});
if (!intro_key) {
- log_warn(LD_BUG, "Internal error: could not find intro key.");
- goto err;
+ if (rend_cache_lookup_entry(introcirc->rend_data->onion_address,
+ 0, &entry) > 0) {
+ log_warn(LD_BUG, "We have both a v0 and a v2 rend desc for this "
+ "service. The v2 desc doesn't contain the introduction "
+ "point (and key) to send an INTRODUCE1/2 cell to this "
+ "introduction point. Assuming the introduction point "
+ "is for v0 rend clients and using the service key "
+ "from the v0 desc instead. (This is probably a bug, "
+ "because we shouldn't even have both a v0 and a v2 "
+ "descriptor for the same service.)");
+ /* See flyspray task 1024. */
+ intro_key = entry->parsed->pk;
+ } else {
+ log_warn(LD_BUG, "Internal error: could not find intro key; we "
+ "only have a v2 rend desc with %d intro points.",
+ smartlist_len(entry->parsed->intro_nodes));
+ goto err;
+ }
}
}
if (crypto_pk_get_digest(intro_key, payload)<0) {