summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/spec/dir-spec.txt11
-rw-r--r--src/or/config.c2
-rw-r--r--src/or/or.h6
3 files changed, 15 insertions, 4 deletions
diff --git a/doc/spec/dir-spec.txt b/doc/spec/dir-spec.txt
index c1fe74e8dc..6e3099ffa2 100644
--- a/doc/spec/dir-spec.txt
+++ b/doc/spec/dir-spec.txt
@@ -309,17 +309,28 @@ $Id$
VA-DistSeconds-VoteSeconds: The authorities exchange votes.
+ VA-DistSeconds-VoteSeconds/2: The authorities try to download any
+ votes they don't have.
+
VA-DistSeconds: The authorities calculate the consensus and exchange
signatures.
+ VA-DistSeconds/2: The authorities try to download any signatures
+ they don't have.
+
VA: All authorities have a multiply signed consensus.
VA ... FU: Caches download the consensus.
FU: The consensus is no long the freshest consensus.
+ FU ... VU: Clients download the consensus.
+
VU: The consensus is no longer valid.
+ VoteSeconds and DistSeconds MUST each be at least 20 seconds; FU-VA and
+ VU-FU MUST each be at least 5 minutes.
+
2. Router operation and formats
ORs SHOULD generate a new router descriptor and a new extra-info
diff --git a/src/or/config.c b/src/or/config.c
index 380e97bac2..4b548e3392 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -3025,7 +3025,7 @@ options_validate(or_options_t *old_options, or_options_t *options,
if (options->V3AuthNIntervalsValid < 2)
REJECT("V3AuthNIntervalsValid must be at least 2.");
- if (options->V3AuthVotingInterval < 300) {
+ if (options->V3AuthVotingInterval < MIN_VOTE_INTERVAL) {
REJECT("V3AuthVotingInterval is insanely low.");
} else if (options->V3AuthVotingInterval > 24*60*60) {
REJECT("V3AuthVotingInterval is insanely high.");
diff --git a/src/or/or.h b/src/or/or.h
index abb3c15fb7..4674a4d295 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -2886,11 +2886,11 @@ format_networkstatus_vote(crypto_pk_env_t *private_key,
/********************************* dirvote.c ************************/
-/* XXXX020 enforce */
-/* XXXX020 document in dir-spec.txt */
-/*DOCDOC*/
+/** Lowest allowable value for VoteSeconds. /*
#define MIN_VOTE_SECONDS 20
+/** Lowest allowable value for DistSeconds. */
#define MIN_DIST_SECONDS 20
+/** Smallest allowable voting interval. */
#define MIN_VOTE_INTERVAL 300
void dirvote_free_all(void);