Permit an empty "bridge-ips" line when parsing bridge stats.

This commit is contained in:
Karsten Loesing 2009-12-18 13:29:51 +01:00
parent f80672d747
commit 3a5a728d4a

View File

@ -1102,6 +1102,7 @@ parse_bridge_stats_controller(const char *stats_str, time_t now)
const char *BRIDGE_STATS_END = "bridge-stats-end ";
const char *BRIDGE_IPS = "bridge-ips ";
const char *BRIDGE_IPS_EMPTY_LINE = "bridge-ips\n";
const char *tmp;
time_t stats_end_time;
size_t controller_len;
@ -1130,17 +1131,21 @@ parse_bridge_stats_controller(const char *stats_str, time_t now)
/* Parse: "bridge-ips CC=N,CC=N,..." */
tmp = find_str_at_start_of_line(stats_str, BRIDGE_IPS);
if (!tmp)
return NULL;
tmp += strlen(BRIDGE_IPS);
tmp = eat_whitespace_no_nl(tmp);
eol = strchr(tmp, '\n');
if (eol)
summary = tor_strndup(tmp, eol-tmp);
else
summary = tor_strdup(tmp);
if (tmp) {
tmp += strlen(BRIDGE_IPS);
tmp = eat_whitespace_no_nl(tmp);
eol = strchr(tmp, '\n');
if (eol)
summary = tor_strndup(tmp, eol-tmp);
else
summary = tor_strdup(tmp);
} else {
/* Look if there is an empty "bridge-ips" line */
tmp = find_str_at_start_of_line(stats_str, BRIDGE_IPS_EMPTY_LINE);
if (!tmp)
return NULL;
summary = tor_strdup("");
}
controller_len = strlen("TimeStarted=\"\" CountrySummary=") +
strlen(summary) + 42;