aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2019-06-24 13:36:10 -0400
committerNick Mathewson <nickm@torproject.org>2019-06-24 13:36:10 -0400
commit8803930de8c5845fdb56614fbec32604ad64bf6d (patch)
tree6c3bee8f6ecef95f3d58f3b414a35cb926c47942
parentaab5f42ae01cb33ec32ff02f1468bb0360d341e0 (diff)
parent8356cc5b514a5d6a0170927d7c3730e2e1164298 (diff)
downloadtor-8803930de8c5845fdb56614fbec32604ad64bf6d.tar.gz
tor-8803930de8c5845fdb56614fbec32604ad64bf6d.zip
Merge remote-tracking branch 'tor-github/pr/1130' into maint-0.4.1
-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) {