diff options
-rw-r--r-- | changes/bug40281 | 6 | ||||
-rw-r--r-- | changes/ticket40221_045 | 6 | ||||
-rw-r--r-- | src/core/or/protover.c | 2 | ||||
-rw-r--r-- | src/feature/nodelist/networkstatus.c | 9 | ||||
-rw-r--r-- | src/feature/relay/router.c | 10 | ||||
-rw-r--r-- | src/rust/protover/protover.rs | 4 | ||||
-rw-r--r-- | src/test/test_protover.c | 3 |
7 files changed, 30 insertions, 10 deletions
diff --git a/changes/bug40281 b/changes/bug40281 new file mode 100644 index 0000000000..0708039f04 --- /dev/null +++ b/changes/bug40281 @@ -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. diff --git a/changes/ticket40221_045 b/changes/ticket40221_045 new file mode 100644 index 0000000000..0f3ab894c2 --- /dev/null +++ b/changes/ticket40221_045 @@ -0,0 +1,6 @@ + o Minor features (protocol versions): + - Stop claiming to support the "DirCache=1" subprotocol version. + Technically, we stopped supporting this subprotocol back in + 0.4.5.1-alpha, but we needed to wait for the authorities to stop + listing it as "required" before we can drop support. Closes ticket + 40221. diff --git a/src/core/or/protover.c b/src/core/or/protover.c index 5a87ade3da..aa96cafff9 100644 --- a/src/core/or/protover.c +++ b/src/core/or/protover.c @@ -398,7 +398,7 @@ protover_get_supported_protocols(void) return "Cons=1-2 " "Desc=1-2 " - "DirCache=1-2 " + "DirCache=2 " "FlowCtrl=1 " "HSDir=1-2 " "HSIntro=3-5 " diff --git a/src/feature/nodelist/networkstatus.c b/src/feature/nodelist/networkstatus.c index ece3c9e059..80940e6092 100644 --- a/src/feature/nodelist/networkstatus.c +++ b/src/feature/nodelist/networkstatus.c @@ -2723,6 +2723,13 @@ networkstatus_check_required_protocols(const networkstatus_t *ns, const bool consensus_postdates_this_release = 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); if (client_mode) { @@ -2740,7 +2747,7 @@ networkstatus_check_required_protocols(const networkstatus_t *ns, "%s on the Tor network. The missing protocols are: %s", func, missing); tor_free(missing); - return consensus_postdates_this_release ? 1 : 0; + return 1; } if (! protover_all_supported(recommended, &missing)) { diff --git a/src/feature/relay/router.c b/src/feature/relay/router.c index 0be3eec1dd..8a7e76e33f 100644 --- a/src/feature/relay/router.c +++ b/src/feature/relay/router.c @@ -2678,9 +2678,13 @@ check_descriptor_ipaddress_changed(time_t now) /* Attempt to discovery the publishable address for the family which will * actively attempt to discover the address if we are configured with a - * port for the family. */ - relay_find_addr_to_publish(get_options(), family, RELAY_FIND_ADDR_NO_FLAG, - ¤t); + * port for the family. + * + * It is OK to ignore the returned value here since in the failure case, + * that is the address was not found, the current value is set to UNSPEC. + * Add this (void) so Coverity is happy. */ + (void) relay_find_addr_to_publish(get_options(), family, + RELAY_FIND_ADDR_NO_FLAG, ¤t); /* The "current" address might be UNSPEC meaning it was not discovered nor * found in our current cache. If we had an address before and we have diff --git a/src/rust/protover/protover.rs b/src/rust/protover/protover.rs index 0060864a2e..da87509ffa 100644 --- a/src/rust/protover/protover.rs +++ b/src/rust/protover/protover.rs @@ -160,7 +160,7 @@ pub(crate) fn get_supported_protocols_cstr() -> &'static CStr { cstr!( "Cons=1-2 \ Desc=1-2 \ - DirCache=1-2 \ + DirCache=2 \ FlowCtrl=1 \ HSDir=1-2 \ HSIntro=3-5 \ @@ -175,7 +175,7 @@ pub(crate) fn get_supported_protocols_cstr() -> &'static CStr { cstr!( "Cons=1-2 \ Desc=1-2 \ - DirCache=1-2 \ + DirCache=2 \ FlowCtrl=1 \ HSDir=1-2 \ HSIntro=3-5 \ diff --git a/src/test/test_protover.c b/src/test/test_protover.c index be3aeb5e40..dd65f4bbf5 100644 --- a/src/test/test_protover.c +++ b/src/test/test_protover.c @@ -469,9 +469,6 @@ test_protover_supported_protocols(void *arg) /* No DirCache versions appear anywhere in the code. */ tt_assert(protocol_list_supports_protocol(supported_protocols, PRT_DIRCACHE, - PROTOVER_DIRCACHE_V1)); - tt_assert(protocol_list_supports_protocol(supported_protocols, - PRT_DIRCACHE, PROTOVER_DIRCACHE_V2)); /* No Desc versions appear anywhere in the code. */ |