summaryrefslogtreecommitdiff
path: root/src/or
diff options
context:
space:
mode:
authorKarsten Loesing <karsten.loesing@gmx.net>2011-08-04 14:45:24 +0200
committerKarsten Loesing <karsten.loesing@gmx.net>2011-08-04 21:18:19 +0200
commitd690a99dfe65ba164aa3de0662be2a8fedc69b01 (patch)
tree1d939eb911af602d265845b6466f5a018e6d4d0f /src/or
parent88083463cb895df0286210830e14c635c9e026a5 (diff)
downloadtor-d690a99dfe65ba164aa3de0662be2a8fedc69b01.tar.gz
tor-d690a99dfe65ba164aa3de0662be2a8fedc69b01.zip
Clean up bridge-stats code.
Only write a bridge-stats string if bridge stats have been initialized. This behavior is similar to dirreq-stats, entry-stats, etc. Also add a few unit tests for the bridge-stats code.
Diffstat (limited to 'src/or')
-rw-r--r--src/or/geoip.c8
-rw-r--r--src/or/geoip.h1
2 files changed, 6 insertions, 3 deletions
diff --git a/src/or/geoip.c b/src/or/geoip.c
index e525b2a095..67dea965f3 100644
--- a/src/or/geoip.c
+++ b/src/or/geoip.c
@@ -1197,8 +1197,8 @@ static char *bridge_stats_extrainfo = NULL;
/** Return a newly allocated string holding our bridge usage stats by country
* in a format suitable for inclusion in an extrainfo document. Return NULL on
* failure. */
-static char *
-format_bridge_stats_extrainfo(time_t now)
+char *
+geoip_format_bridge_stats(time_t now)
{
char *out = NULL, *data = NULL;
long duration = now - start_of_bridge_stats_interval;
@@ -1206,6 +1206,8 @@ format_bridge_stats_extrainfo(time_t now)
if (duration < 0)
return NULL;
+ if (!start_of_bridge_stats_interval)
+ return NULL; /* Not initialized. */
format_iso_time(written, now);
data = geoip_get_client_history(GEOIP_CLIENT_CONNECT);
@@ -1255,7 +1257,7 @@ geoip_bridge_stats_write(time_t now)
geoip_remove_old_clients(start_of_bridge_stats_interval);
/* Generate formatted string */
- val = format_bridge_stats_extrainfo(now);
+ val = geoip_format_bridge_stats(now);
if (val == NULL)
goto done;
diff --git a/src/or/geoip.h b/src/or/geoip.h
index 3372260357..ce3841967f 100644
--- a/src/or/geoip.h
+++ b/src/or/geoip.h
@@ -53,6 +53,7 @@ void geoip_entry_stats_term(void);
void geoip_reset_entry_stats(time_t now);
char *geoip_format_entry_stats(time_t now);
void geoip_bridge_stats_init(time_t now);
+char *geoip_format_bridge_stats(time_t now);
time_t geoip_bridge_stats_write(time_t now);
void geoip_bridge_stats_term(void);
const char *geoip_get_bridge_stats_extrainfo(time_t);