Limit the number of different handshake reasons to report

If connections failed in more than 10 different states, let's just
report the top ten states.
This commit is contained in:
Nick Mathewson 2011-06-28 14:23:28 -04:00
parent 734d9486f6
commit b25ca8af06

View File

@ -221,6 +221,9 @@ broken_state_count_compare(const void **a_ptr, const void **b_ptr)
return a->count - b->count;
}
/** DOCDOC */
#define MAX_REASONS_TO_REPORT 10
/** DOCDOC */
void
connection_or_report_broken_states(int severity, int domain)
@ -242,9 +245,12 @@ connection_or_report_broken_states(int severity, int domain)
smartlist_sort(items, broken_state_count_compare);
log(severity, domain, "%d connections have failed:", total);
log(severity, domain, "%d connections have failed%s", total,
smartlist_len(items) > MAX_REASONS_TO_REPORT ? ". Top reasons:" : ":");
SMARTLIST_FOREACH_BEGIN(items, const broken_state_count_t *, c) {
if (c_sl_idx > MAX_REASONS_TO_REPORT)
break;
log(severity, domain,
" %d connections died in state %s", (int)c->count, c->state);
} SMARTLIST_FOREACH_END(c);