summaryrefslogtreecommitdiff
path: root/src/or/networkstatus.c
diff options
context:
space:
mode:
authorIsis Lovecruft <isis@torproject.org>2014-08-25 23:13:03 +0000
committerIsis Lovecruft <isis@torproject.org>2014-08-25 23:46:17 +0000
commit374b531dba966780f2e59163ca80b1b5a0b8f14c (patch)
tree8ed8e6cd24c2f6d5da380f072a7cb85cab467d9a /src/or/networkstatus.c
parent72ba1739e2bf93d022e93fc2100650e300ad1e4d (diff)
downloadtor-374b531dba966780f2e59163ca80b1b5a0b8f14c.tar.gz
tor-374b531dba966780f2e59163ca80b1b5a0b8f14c.zip
Add `published` line to `@type bridge-network-status` documents.
This modifies the format of the bridge networkstatus documents produced by the BridgeAuth. The new format adds a `published` line to the header of the file, before the `flag-thresholds` line. This is done once per networkstatus file that is written. The timestamp in the `published` line is the standard ISO 8601 format (with a space as the separator) used throughout the rest of tor. * FIXES #12951 https://bugs.torproject.org/12951
Diffstat (limited to 'src/or/networkstatus.c')
-rw-r--r--src/or/networkstatus.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/or/networkstatus.c b/src/or/networkstatus.c
index 890da0ad17..7a14d17894 100644
--- a/src/or/networkstatus.c
+++ b/src/or/networkstatus.c
@@ -1672,17 +1672,22 @@ networkstatus_dump_bridge_status_to_file(time_t now)
char *status = networkstatus_getinfo_by_purpose("bridge", now);
const or_options_t *options = get_options();
char *fname = NULL;
- char *thresholds = NULL, *thresholds_and_status = NULL;
+ char *thresholds = NULL;
+ char *published_thresholds_and_status = NULL;
routerlist_t *rl = router_get_routerlist();
+ char published[ISO_TIME_LEN+1];
+
+ format_iso_time(published, now);
dirserv_compute_bridge_flag_thresholds(rl);
thresholds = dirserv_get_flag_thresholds_line();
- tor_asprintf(&thresholds_and_status, "flag-thresholds %s\n%s",
- thresholds, status);
+ tor_asprintf(&published_thresholds_and_status,
+ "published %s\nflag-thresholds %s\n%s",
+ published, thresholds, status);
tor_asprintf(&fname, "%s"PATH_SEPARATOR"networkstatus-bridges",
options->DataDirectory);
- write_str_to_file(fname,thresholds_and_status,0);
+ write_str_to_file(fname,published_thresholds_and_status,0);
tor_free(thresholds);
- tor_free(thresholds_and_status);
+ tor_free(published_thresholds_and_status);
tor_free(fname);
tor_free(status);
}