aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2016-02-22 10:07:42 -0500
committerNick Mathewson <nickm@torproject.org>2016-02-22 10:07:42 -0500
commit60efce445b17d4b4153e91527887873812f5599f (patch)
tree30129c34577653cac2a03d44712440c103b1a83d /src
parentbe6174f8f6aaaf8f990eb56c5cba16bc5ec0fcea (diff)
downloadtor-60efce445b17d4b4153e91527887873812f5599f.tar.gz
tor-60efce445b17d4b4153e91527887873812f5599f.zip
Enable ed25519 collator in voting.
Previously, I had left in some debugging code with /*XXX*/ after it, which nobody noticed. Live and learn! Next time I will use /*XXX DO NOT COMMIT*/ or something. We need to define a new consensus method for this; consensus method 21 shouldn't actually be used. Fixes bug 17702; bugfix on 0.2.7.2-alpha.
Diffstat (limited to 'src')
-rw-r--r--src/or/dircollate.c2
-rw-r--r--src/or/dirvote.c7
-rw-r--r--src/or/dirvote.h7
3 files changed, 12 insertions, 4 deletions
diff --git a/src/or/dircollate.c b/src/or/dircollate.c
index 4c812c40e6..f56aea8c64 100644
--- a/src/or/dircollate.c
+++ b/src/or/dircollate.c
@@ -159,7 +159,7 @@ dircollator_collate(dircollator_t *dc, int consensus_method)
tor_assert(!dc->is_collated);
dc->all_rsa_sha1_lst = smartlist_new();
- if (consensus_method < MIN_METHOD_FOR_ED25519_ID_VOTING + 10/*XXX*/)
+ if (consensus_method < MIN_METHOD_FOR_ED25519_ID_VOTING)
dircollator_collate_by_rsa(dc);
else
dircollator_collate_by_ed25519(dc);
diff --git a/src/or/dirvote.c b/src/or/dirvote.c
index d8e6ee2229..be0635d92b 100644
--- a/src/or/dirvote.c
+++ b/src/or/dirvote.c
@@ -558,6 +558,13 @@ compute_consensus_method(smartlist_t *votes)
static int
consensus_method_is_supported(int method)
{
+ if (method == MIN_METHOD_FOR_ED25519_ID_IN_MD) {
+ /* This method was broken due to buggy code accidently left in
+ * dircollate.c; do not actually use it.
+ */
+ return 0;
+ }
+
return (method >= MIN_SUPPORTED_CONSENSUS_METHOD) &&
(method <= MAX_SUPPORTED_CONSENSUS_METHOD);
}
diff --git a/src/or/dirvote.h b/src/or/dirvote.h
index dca8540870..50c2496bb0 100644
--- a/src/or/dirvote.h
+++ b/src/or/dirvote.h
@@ -55,7 +55,7 @@
#define MIN_SUPPORTED_CONSENSUS_METHOD 13
/** The highest consensus method that we currently support. */
-#define MAX_SUPPORTED_CONSENSUS_METHOD 21
+#define MAX_SUPPORTED_CONSENSUS_METHOD 22
/** Lowest consensus method where microdesc consensuses omit any entry
* with no microdesc. */
@@ -87,11 +87,12 @@
#define MIN_METHOD_FOR_GUARDFRACTION 20
/** Lowest consensus method where authorities may include an "id" line for
- * ed25519 identities in microdescriptors. */
+ * ed25519 identities in microdescriptors. (Broken; see
+ * consensus_method_is_supported() for more info.) */
#define MIN_METHOD_FOR_ED25519_ID_IN_MD 21
/** Lowest consensus method where authorities vote on ed25519 ids and ensure
* ed25519 id consistency. */
-#define MIN_METHOD_FOR_ED25519_ID_VOTING MIN_METHOD_FOR_ED25519_ID_IN_MD
+#define MIN_METHOD_FOR_ED25519_ID_VOTING 22
/** Default bandwidth to clip unmeasured bandwidths to using method >=
* MIN_METHOD_TO_CLIP_UNMEASURED_BW. (This is not a consensus method; do not