aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/or/or.h1
-rw-r--r--src/or/router.c25
2 files changed, 15 insertions, 11 deletions
diff --git a/src/or/or.h b/src/or/or.h
index f348e9232..87f00ac02 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -3295,6 +3295,7 @@ int authdir_mode_handles_descs(or_options_t *options);
int authdir_mode_publishes_statuses(or_options_t *options);
int authdir_mode_tests_reachability(or_options_t *options);
int authdir_mode_bridge(or_options_t *options);
+int authdir_mode_any_nonbridge(or_options_t *options);
int clique_mode(or_options_t *options);
int server_mode(or_options_t *options);
int advertised_server_mode(void);
diff --git a/src/or/router.c b/src/or/router.c
index dc44ad48f..e69aa3d57 100644
--- a/src/or/router.c
+++ b/src/or/router.c
@@ -367,7 +367,7 @@ init_keys(void)
/* 1a. Read v3 directory authority key/cert information. */
memset(v3_digest, 0, sizeof(v3_digest));
- if (authdir_mode(options) && options->V3AuthoritativeDir) {
+ if (authdir_mode_v3(options)) {
init_v3_authority_keys(keydir);
if (get_my_v3_authority_cert()) {
crypto_pk_get_digest(get_my_v3_authority_cert()->identity_key,
@@ -735,14 +735,23 @@ authdir_mode_v3(or_options_t *options)
{
return authdir_mode(options) && options->V3AuthoritativeDir != 0;
}
+/** DOCDOC */
+int
+authdir_mode_any_nonbridge(or_options_t *options)
+{
+ return authdir_mode(options) &&
+ (options->V1AuthoritativeDir ||
+ options->V2AuthoritativeDir ||
+ options->V3AuthoritativeDir);
+}
/** Return true iff we are an authoritative directory server that
* is willing to receive or serve descriptors on its dirport.
*/
int
authdir_mode_handles_descs(or_options_t *options)
{
- return authdir_mode_v1(options) || authdir_mode_v2(options) ||
- authdir_mode_bridge(options);
+ return authdir_mode_any_nonbridge(options) ||
+ authdir_mode_bridge(options);
}
/** Return true iff we are an authoritative directory server that
* publishes its own network statuses.
@@ -752,10 +761,7 @@ authdir_mode_publishes_statuses(or_options_t *options)
{
if (authdir_mode_bridge(options))
return 0;
- return authdir_mode(options) &&
- (options->V1AuthoritativeDir ||
- options->V2AuthoritativeDir ||
- options->V3AuthoritativeDir);
+ return authdir_mode_any_nonbridge(options);
}
/** Return true iff we are an authoritative directory server that
* tests reachability of the descriptors it learns about.
@@ -763,10 +769,7 @@ authdir_mode_publishes_statuses(or_options_t *options)
int
authdir_mode_tests_reachability(or_options_t *options)
{
- return authdir_mode(options) &&
- (options->V1AuthoritativeDir ||
- options->V2AuthoritativeDir ||
- options->V3AuthoritativeDir);
+ return authdir_mode_any_nonbridge(options);
}
/** Return true iff we believe ourselves to be a bridge authoritative
* directory server.