diff options
author | Chelsea H. Komlo <chelsea.komlo@gmail.com> | 2016-10-18 19:04:22 -0500 |
---|---|---|
committer | Chelsea H. Komlo <chelsea.komlo@gmail.com> | 2016-10-19 12:25:50 -0500 |
commit | 471b0c5175521bb2bc49eb7e30d78f656a3a2843 (patch) | |
tree | 1ab750249a93fcf5f9177f8b48cd11f79f726345 | |
parent | 195ccce94e250a150e208f7a8fb9ba8375b6fe89 (diff) | |
download | tor-471b0c5175521bb2bc49eb7e30d78f656a3a2843.tar.gz tor-471b0c5175521bb2bc49eb7e30d78f656a3a2843.zip |
Refactor purpose_needs_anonymity to use switch statement
-rw-r--r-- | changes/ticket20077 | 2 | ||||
-rw-r--r-- | src/or/directory.c | 27 | ||||
-rw-r--r-- | src/test/test_dir.c | 10 |
3 files changed, 28 insertions, 11 deletions
diff --git a/changes/ticket20077 b/changes/ticket20077 index bc0e38ed3c..d5510694ff 100644 --- a/changes/ticket20077 +++ b/changes/ticket20077 @@ -1,3 +1,5 @@ o Code simplification and refactoring: - Remove redundant behavior of is_sensitive_dir_purpose, refactor to use only purpose_needs_anonymity + - Refactor large if statement in purpose_needs_anonymity to use switch + statement instead. diff --git a/src/or/directory.c b/src/or/directory.c index 8dc30952a6..abe1372ec6 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -136,17 +136,22 @@ purpose_needs_anonymity(uint8_t dir_purpose, uint8_t router_purpose) return 1; /* if no circuits yet, this might break bootstrapping, but it's * needed to be safe. */ - if (dir_purpose == DIR_PURPOSE_UPLOAD_DIR || - dir_purpose == DIR_PURPOSE_UPLOAD_VOTE || - dir_purpose == DIR_PURPOSE_UPLOAD_SIGNATURES || - dir_purpose == DIR_PURPOSE_FETCH_STATUS_VOTE || - dir_purpose == DIR_PURPOSE_FETCH_DETACHED_SIGNATURES || - dir_purpose == DIR_PURPOSE_FETCH_CONSENSUS || - dir_purpose == DIR_PURPOSE_FETCH_CERTIFICATE || - dir_purpose == DIR_PURPOSE_FETCH_SERVERDESC || - dir_purpose == DIR_PURPOSE_FETCH_EXTRAINFO || - dir_purpose == DIR_PURPOSE_FETCH_MICRODESC) - return 0; + switch (dir_purpose) + { + case DIR_PURPOSE_UPLOAD_DIR: + case DIR_PURPOSE_UPLOAD_VOTE: + case DIR_PURPOSE_UPLOAD_SIGNATURES: + case DIR_PURPOSE_FETCH_STATUS_VOTE: + case DIR_PURPOSE_FETCH_DETACHED_SIGNATURES: + case DIR_PURPOSE_FETCH_CONSENSUS: + case DIR_PURPOSE_FETCH_CERTIFICATE: + case DIR_PURPOSE_FETCH_SERVERDESC: + case DIR_PURPOSE_FETCH_EXTRAINFO: + case DIR_PURPOSE_FETCH_MICRODESC: + return 0; + default: + break; + } return 1; } diff --git a/src/test/test_dir.c b/src/test/test_dir.c index 73a8a355ac..0f6166d718 100644 --- a/src/test/test_dir.c +++ b/src/test/test_dir.c @@ -3253,6 +3253,15 @@ test_dir_http_handling(void *args) } static void +test_dir_purpose_needs_anonymity_returns_true_by_default(void *arg) +{ + (void)arg; + + tt_int_op(1, ==, purpose_needs_anonymity(0, 0)); + done: ; +} + +static void test_dir_purpose_needs_anonymity_returns_true_for_bridges(void *arg) { (void)arg; @@ -5500,6 +5509,7 @@ struct testcase_t dir_tests[] = { DIR(dirserv_set_routerstatus_testing, 0), DIR(http_handling, 0), DIR(purpose_needs_anonymity_returns_true_for_bridges, 0), + DIR(purpose_needs_anonymity_returns_true_by_default, 0), DIR(purpose_needs_anonymity_returns_true_for_sensitive_purpose, 0), DIR(purpose_needs_anonymity_ret_false_for_non_sensitive_conn, 0), DIR(fetch_type, 0), |