summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid Goulet <dgoulet@torproject.org>2022-10-26 15:01:40 -0400
committerDavid Goulet <dgoulet@torproject.org>2022-10-26 15:01:40 -0400
commit0a49e04691b6f6efedadc003521cd0e5809f81da (patch)
treef9206ef5df2fdeaa8301aad03e44d615febb1396 /src
parent59008c6f515cb63b12061a24a9c4ddf0dc018e7f (diff)
parentbab8375ef5e4a917f9512e4250c52a45d33fb9ba (diff)
downloadtor-0a49e04691b6f6efedadc003521cd0e5809f81da.tar.gz
tor-0a49e04691b6f6efedadc003521cd0e5809f81da.zip
Merge branch 'tor-gitlab/mr/635' into maint-0.4.7
Diffstat (limited to 'src')
-rw-r--r--src/feature/dirauth/dirauth_options.inc3
-rw-r--r--src/feature/dirauth/dirvote.c3
-rw-r--r--src/feature/nodelist/fmt_routerstatus.c15
3 files changed, 14 insertions, 7 deletions
diff --git a/src/feature/dirauth/dirauth_options.inc b/src/feature/dirauth/dirauth_options.inc
index 7ee0201e1a..a43ed285ce 100644
--- a/src/feature/dirauth/dirauth_options.inc
+++ b/src/feature/dirauth/dirauth_options.inc
@@ -138,7 +138,4 @@ CONF_VAR(VersioningAuthoritativeDirectory, BOOL, 0, "0")
* pressure or not. */
CONF_VAR(AuthDirRejectRequestsUnderLoad, BOOL, 0, "1")
-/** Boolean: Should we not give bandwidth weight measurements to dirauths? */
-CONF_VAR(AuthDirDontVoteOnDirAuthBandwidth, BOOL, 0, "1")
-
END_CONF_STRUCT(dirauth_options_t)
diff --git a/src/feature/dirauth/dirvote.c b/src/feature/dirauth/dirvote.c
index cdd2c132ef..1bb4fd7de1 100644
--- a/src/feature/dirauth/dirvote.c
+++ b/src/feature/dirauth/dirvote.c
@@ -2302,8 +2302,7 @@ networkstatus_compute_consensus(smartlist_t *votes,
smartlist_add_asprintf(chunks, "pr %s\n", chosen_protocol_list);
}
/* Now the weight line. */
- if (rs_out.has_bandwidth && (!rs_out.is_authority ||
- !dirauth_get_options()->AuthDirDontVoteOnDirAuthBandwidth)) {
+ if (rs_out.has_bandwidth) {
char *guardfraction_str = NULL;
int unmeasured = rs_out.bw_is_unmeasured;
diff --git a/src/feature/nodelist/fmt_routerstatus.c b/src/feature/nodelist/fmt_routerstatus.c
index 95379a7721..8c02a302af 100644
--- a/src/feature/nodelist/fmt_routerstatus.c
+++ b/src/feature/nodelist/fmt_routerstatus.c
@@ -169,9 +169,20 @@ routerstatus_format_entry(const routerstatus_t *rs, const char *version,
smartlist_add_asprintf(chunks,
"w Bandwidth=%d", bw_kb);
+ /* Include the bandwidth weight from our external bandwidth
+ * authority, if we have one. */
if (format == NS_V3_VOTE && vrs && vrs->has_measured_bw) {
- smartlist_add_asprintf(chunks,
- " Measured=%d", vrs->measured_bw_kb);
+ if (!rs->is_authority) { /* normal case */
+ smartlist_add_asprintf(chunks,
+ " Measured=%d", vrs->measured_bw_kb);
+ } else {
+ /* dir auth special case: don't give it a Measured line, so we
+ * can reserve its attention for authority-specific activities.
+ * But do include the bwauth's opinion so it can be recorded for
+ * posterity. See #40698 for details. */
+ smartlist_add_asprintf(chunks,
+ " MeasuredButAuthority=%d", vrs->measured_bw_kb);
+ }
}
/* Write down guardfraction information if we have it. */
if (format == NS_V3_VOTE && vrs && vrs->status.has_guardfraction) {