summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorteor <teor@torproject.org>2019-06-24 19:44:24 +1000
committerteor <teor@torproject.org>2019-06-24 19:44:24 +1000
commit8356cc5b514a5d6a0170927d7c3730e2e1164298 (patch)
treef492efdd919d3ce9b0ca58d4fb9c8cad2335de0d
parent4ecd09cfb7c5d43450d481807f60feb0aa98bccf (diff)
downloadtor-8356cc5b514a5d6a0170927d7c3730e2e1164298.tar.gz
tor-8356cc5b514a5d6a0170927d7c3730e2e1164298.zip
stats: Always publish pluggable transports in extra info documents
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.
-rw-r--r--changes/bug309564
-rw-r--r--doc/tor.1.txt6
-rw-r--r--src/feature/relay/router.c17
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) {