diff options
author | Linus Nordberg <linus@nordberg.se> | 2011-11-24 17:49:31 +0100 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2011-11-30 11:55:45 -0500 |
commit | 5bee213d236943dac2e08e04c1525e96a62f13f7 (patch) | |
tree | ee4bc2c0a7264444f6a6595fc86d3298328cdc59 /src | |
parent | 1c2c3314a9b8990533cc8632d0a02aa5f79950b6 (diff) | |
download | tor-5bee213d236943dac2e08e04c1525e96a62f13f7.tar.gz tor-5bee213d236943dac2e08e04c1525e96a62f13f7.zip |
Turn get_first_advertised_v4_port_by_type() into get_first_advertised_port_by_type_af().
Diffstat (limited to 'src')
-rw-r--r-- | src/or/config.c | 15 | ||||
-rw-r--r-- | src/or/config.h | 6 |
2 files changed, 13 insertions, 8 deletions
diff --git a/src/or/config.c b/src/or/config.c index 76b2bcb479..c9320f48fe 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -5907,18 +5907,23 @@ get_configured_ports(void) return configured_ports; } -/** DOCDOC */ +/** Return the first advertised port of type <b>listener_type</b> in + <b>address_family</b>. */ int -get_first_advertised_v4_port_by_type(int listener_type) +get_first_advertised_port_by_type_af(int listener_type, int address_family) { if (!configured_ports) return 0; SMARTLIST_FOREACH_BEGIN(configured_ports, const port_cfg_t *, cfg) { if (cfg->type == listener_type && !cfg->no_advertise && - (tor_addr_family(&cfg->addr) == AF_INET || - (tor_addr_family(&cfg->addr) == AF_UNSPEC && !cfg->ipv6_only))) { - return cfg->port; + (tor_addr_family(&cfg->addr) == address_family || + tor_addr_family(&cfg->addr) == AF_UNSPEC)) { + if (tor_addr_family(&cfg->addr) != AF_UNSPEC || + (address_family == AF_INET && !cfg->ipv6_only) || + (address_family == AF_INET6 && !cfg->ipv4_only)) { + return cfg->port; + } } } SMARTLIST_FOREACH_END(cfg); return 0; diff --git a/src/or/config.h b/src/or/config.h index a202bffa50..cbba9e697d 100644 --- a/src/or/config.h +++ b/src/or/config.h @@ -65,11 +65,11 @@ int did_last_state_file_write_fail(void); int or_state_save(time_t now); const smartlist_t *get_configured_ports(void); -int get_first_advertised_v4_port_by_type(int listener_type); +int get_first_advertised_port_by_type_af(int listener_type, int address_family); #define get_primary_or_port() \ - (get_first_advertised_v4_port_by_type(CONN_TYPE_OR_LISTENER)) + (get_first_advertised_port_by_type_af(CONN_TYPE_OR_LISTENER, AF_INET)) #define get_primary_dir_port() \ - (get_first_advertised_v4_port_by_type(CONN_TYPE_DIR_LISTENER)) + (get_first_advertised_port_by_type_af(CONN_TYPE_DIR_LISTENER, AF_INET)) int options_need_geoip_info(const or_options_t *options, const char **reason_out); |