diff options
author | Nick Mathewson <nickm@torproject.org> | 2019-06-24 13:36:10 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2019-06-24 13:36:10 -0400 |
commit | 8803930de8c5845fdb56614fbec32604ad64bf6d (patch) | |
tree | 6c3bee8f6ecef95f3d58f3b414a35cb926c47942 | |
parent | aab5f42ae01cb33ec32ff02f1468bb0360d341e0 (diff) | |
parent | 8356cc5b514a5d6a0170927d7c3730e2e1164298 (diff) | |
download | tor-8803930de8c5845fdb56614fbec32604ad64bf6d.tar.gz tor-8803930de8c5845fdb56614fbec32604ad64bf6d.zip |
Merge remote-tracking branch 'tor-github/pr/1130' into maint-0.4.1
-rw-r--r-- | changes/bug30956 | 4 | ||||
-rw-r--r-- | doc/tor.1.txt | 6 | ||||
-rw-r--r-- | src/feature/relay/router.c | 17 |
3 files changed, 19 insertions, 8 deletions
diff --git a/changes/bug30956 b/changes/bug30956 new file mode 100644 index 0000000000..8f52a81de3 --- /dev/null +++ b/changes/bug30956 @@ -0,0 +1,4 @@ + o Minor bugfixes (pluggable transports): + - Always publish bridge pluggable transport information in the extra info + descriptor, even if ExtraInfoStatistics is 0. This information is + needed by BridgeDB. Fixes bug 30956; bugfix on 0.4.1.1-alpha. diff --git a/doc/tor.1.txt b/doc/tor.1.txt index 4bd365c774..95d56c6dbd 100644 --- a/doc/tor.1.txt +++ b/doc/tor.1.txt @@ -2451,8 +2451,10 @@ is non-zero): [[ExtraInfoStatistics]] **ExtraInfoStatistics** **0**|**1**:: When this option is enabled, Tor includes previously gathered statistics in its extra-info documents that it uploads to the directory authorities. - Disabling this option also disables bandwidth usage statistics, GeoIPFile - hashes, and ServerTransportPlugin lists in the extra-info file. + Disabling this option also removes bandwidth usage statistics, and + GeoIPFile and GeoIPv6File hashes from the extra-info file. Bridge + ServerTransportPlugin lines are always includes in the extra-info file, + because they are required by BridgeDB. (Default: 1) [[ExtendAllowPrivateAddresses]] **ExtendAllowPrivateAddresses** **0**|**1**:: diff --git a/src/feature/relay/router.c b/src/feature/relay/router.c index e0daf34db2..25bb1835c2 100644 --- a/src/feature/relay/router.c +++ b/src/feature/relay/router.c @@ -3175,6 +3175,15 @@ extrainfo_dump_to_string(char **s_out, extrainfo_t *extrainfo, published); smartlist_add(chunks, pre); + /* Add information about the pluggable transports we support, even if we + * are not publishing statistics. This information is needed by BridgeDB + * to distribute bridges. */ + if (options->ServerTransportPlugin) { + char *pluggable_transports = pt_get_extra_info_descriptor_string(); + if (pluggable_transports) + smartlist_add(chunks, pluggable_transports); + } + if (options->ExtraInfoStatistics && write_stats_to_extrainfo) { log_info(LD_GENERAL, "Adding stats to extra-info descriptor."); /* Bandwidth usage stats don't have their own option */ @@ -3182,6 +3191,7 @@ extrainfo_dump_to_string(char **s_out, extrainfo_t *extrainfo, contents = rep_hist_get_bandwidth_lines(); smartlist_add(chunks, contents); } + /* geoip hashes aren't useful unless we are publishing other stats */ if (geoip_is_loaded(AF_INET)) smartlist_add_asprintf(chunks, "geoip-db-digest %s\n", geoip_db_digest(AF_INET)); @@ -3223,12 +3233,7 @@ extrainfo_dump_to_string(char **s_out, extrainfo_t *extrainfo, if (contents) smartlist_add(chunks, contents); } - /* Add information about the pluggable transports we support. */ - if (options->ServerTransportPlugin) { - char *pluggable_transports = pt_get_extra_info_descriptor_string(); - if (pluggable_transports) - smartlist_add(chunks, pluggable_transports); - } + /* bridge statistics */ if (should_record_bridge_info(options)) { const char *bridge_stats = geoip_get_bridge_stats_extrainfo(now); if (bridge_stats) { |