mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 21:23:58 +01:00
Permit an empty "bridge-ips" line when parsing bridge stats.
This commit is contained in:
parent
f80672d747
commit
3a5a728d4a
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user