diff options
author | Nick Mathewson <nickm@torproject.org> | 2016-10-13 09:16:40 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2016-10-13 09:19:37 -0400 |
commit | 1fc3e291083493bd7517901f467a7341d5c6f650 (patch) | |
tree | cc3cf770302fe58571a758a0d72d3d2b20b6ffee | |
parent | 0e1b228aa6b5ed7665ba5167a2b88924e58fb9b5 (diff) | |
download | tor-1fc3e291083493bd7517901f467a7341d5c6f650.tar.gz tor-1fc3e291083493bd7517901f467a7341d5c6f650.zip |
Remove duplicate code that checks for default authorities
Patch from ericho.
Fixes 18529. Simple refactoring.
-rw-r--r-- | src/or/config.c | 2 | ||||
-rw-r--r-- | src/or/config.h | 10 | ||||
-rw-r--r-- | src/or/router.c | 3 |
3 files changed, 12 insertions, 3 deletions
diff --git a/src/or/config.c b/src/or/config.c index 93e753bb49..bef81ab812 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -2471,7 +2471,7 @@ resolve_my_address(int warn_severity, const or_options_t *options, addr_string = tor_dup_ip(addr); if (tor_addr_is_internal(&myaddr, 0)) { /* make sure we're ok with publishing an internal IP */ - if (!options->DirAuthorities && !options->AlternateDirAuthority) { + if (is_default_dir_authorities(options)) { /* if they are using the default authorities, disallow internal IPs * always. */ log_fn(warn_severity, LD_CONFIG, diff --git a/src/or/config.h b/src/or/config.h index 208659acb7..1b40efc5ec 100644 --- a/src/or/config.h +++ b/src/or/config.h @@ -76,6 +76,8 @@ MOCK_DECL(char *, #define get_datadir_fname_suffix(sub1, suffix) \ get_datadir_fname2_suffix((sub1), NULL, (suffix)) +inline int is_default_dir_authorities(const or_options_t *options); + int check_or_create_data_subdir(const char *subdir); int write_to_data_subdir(const char* subdir, const char* fname, const char* str, const char* descr); @@ -147,6 +149,14 @@ smartlist_t *get_options_from_transport_options_line(const char *line, const char *transport); smartlist_t *get_options_for_server_transport(const char *transport); +/* Check if we are using default authorities */ +inline int +is_default_dir_authorities(const or_options_t *options) +{ + return (!options->DirAuthorities && + !options->AlternateDirAuthority) ? 1 : 0; +} + #ifdef CONFIG_PRIVATE #define CL_PORT_NO_STREAM_OPTIONS (1u<<0) diff --git a/src/or/router.c b/src/or/router.c index b93b7c1a13..287bc1691e 100644 --- a/src/or/router.c +++ b/src/or/router.c @@ -2093,8 +2093,7 @@ router_build_fresh_descriptor(routerinfo_t **r, extrainfo_t **e) tor_addr_family(&p->addr) == AF_INET6) { /* Like IPv4, if the relay is configured using the default * authorities, disallow internal IPs. Otherwise, allow them. */ - const int default_auth = (!options->DirAuthorities && - !options->AlternateDirAuthority); + const int default_auth = is_default_dir_authorities(options); if (! tor_addr_is_internal(&p->addr, 0) || ! default_auth) { ipv6_orport = p; break; |