Make direclient_dump_total_dls() respect SafeLogging and pass tests.

Don't dump totals with anonymous purposes.  Additionally, don't dump
headers that have nothing underneath them.
This commit is contained in:
Nick Mathewson
2020-02-20 12:26:32 -05:00
parent 93af83e16a
commit ce9eeefbcc
+16 -13
View File
@@ -1981,19 +1981,22 @@ static uint64_t total_dl[DIR_PURPOSE_MAX_][2];
void
dirclient_dump_total_dls(void)
{
log_notice(LD_NET,
"While bootstrapping, fetched this many bytes: ");
for (int i=0; i < DIR_PURPOSE_MAX_; ++i) {
uint64_t n = total_dl[i][0];
if (n) {
log_notice(LD_NET, " %zu (%s)", n, dir_conn_purpose_to_string(i));
}
}
log_notice(LD_NET,
"While not bootsrapping, fetched this many bytes: ");
for (int i=0; i < DIR_PURPOSE_MAX_; ++i) {
uint64_t n = total_dl[i][1];
if (n) {
const or_options_t *options = get_options();
for (int bootstrapped = 0; bootstrapped < 2; ++bootstrapped) {
bool first_time = true;
for (int i=0; i < DIR_PURPOSE_MAX_; ++i) {
uint64_t n = total_dl[i][0];
if (n == 0)
continue;
if (options->SafeLogging_ != SAFELOG_SCRUB_NONE &&
purpose_needs_anonymity(i, ROUTER_PURPOSE_GENERAL, NULL))
continue;
if (first_time) {
log_notice(LD_NET,
"While %sbootstrapping, fetched this many bytes: ",
bootstrapped?"not ":"");
first_time = false;
}
log_notice(LD_NET, " %zu (%s)", n, dir_conn_purpose_to_string(i));
}
}