Don't log supported-protover warnings if consensus is older than Tor.

Previously we would warn in this case... but there's really no
justification for doing so, and it can only cause confusion.

Fixes bug #40281; bugfix on 0.4.0.1-alpha.
This commit is contained in:
Nick Mathewson 2021-02-08 11:52:53 -05:00
parent 49c61c1bb8
commit 56f1cab9c1
2 changed files with 14 additions and 1 deletions

6
changes/bug40281 Normal file
View File

@ -0,0 +1,6 @@
o Minor bugfixes (logging):
- Avoid a spurious log message about missing subprotocol versions, when
the consensus that we're reading from is older than the current
release. . Previously we had made this message nonfatal in this case,
but in practice, it is never relevant when the consensus is older than
the current release. Fixes bug 40281; bugfix on 0.4.0.1-alpha.

View File

@ -2713,6 +2713,13 @@ networkstatus_check_required_protocols(const networkstatus_t *ns,
const bool consensus_postdates_this_release = const bool consensus_postdates_this_release =
ns->valid_after >= tor_get_approx_release_date(); ns->valid_after >= tor_get_approx_release_date();
if (! consensus_postdates_this_release) {
// We can't meaningfully warn about this case: This consensus is from
// before we were released, so whatever is says about required or
// recommended versions may no longer be true.
return 0;
}
tor_assert(warning_out); tor_assert(warning_out);
if (client_mode) { if (client_mode) {
@ -2730,7 +2737,7 @@ networkstatus_check_required_protocols(const networkstatus_t *ns,
"%s on the Tor network. The missing protocols are: %s", "%s on the Tor network. The missing protocols are: %s",
func, missing); func, missing);
tor_free(missing); tor_free(missing);
return consensus_postdates_this_release ? 1 : 0; return 1;
} }
if (! protover_all_supported(recommended, &missing)) { if (! protover_all_supported(recommended, &missing)) {