From fb7f90c181dc44ae9f23cb4d16cac25609463d9f Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Tue, 26 Jul 2016 09:59:48 -0400 Subject: Tweaks on 19435 fix: * Raise limit: 16k isn't all that high. * Don't log when limit exceded; log later on. * Say "over" when we log more than we say we log. * Add target version to changes file --- src/common/util.c | 12 ++++-------- src/common/util.h | 2 +- 2 files changed, 5 insertions(+), 9 deletions(-) (limited to 'src/common') diff --git a/src/common/util.c b/src/common/util.c index 72efd897a7..d9361563ef 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -1995,12 +1995,7 @@ rate_limit_is_ready(ratelim_t *lim, time_t now) lim->n_calls_since_last_time = 0; return res; } else { - if (lim->n_calls_since_last_time < RATELIM_TOOMANY) { - ++lim->n_calls_since_last_time; - } else if (lim->n_calls_since_last_time == RATELIM_TOOMANY) { - log_warn(LD_GENERAL, - "Enormously large number of messages (%d). It's probably a bug.", - RATELIM_TOOMANY); + if (lim->n_calls_since_last_time <= RATELIM_TOOMANY) { ++lim->n_calls_since_last_time; } @@ -2020,11 +2015,12 @@ rate_limit_log(ratelim_t *lim, time_t now) return tor_strdup(""); } else { char *cp=NULL; + const char *opt_over = (n >= RATELIM_TOOMANY) ? "over " : ""; /* XXXX this is not exactly correct: the messages could have occurred * any time between the old value of lim->allowed and now. */ tor_asprintf(&cp, - " [%d similar message(s) suppressed in last %d seconds]", - n-1, lim->rate); + " [%s%d similar message(s) suppressed in last %d seconds]", + opt_over, n-1, lim->rate); return cp; } } else { diff --git a/src/common/util.h b/src/common/util.h index 837d2e9cf3..a6638aa39b 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -292,7 +292,7 @@ typedef struct ratelim_t { } ratelim_t; #define RATELIM_INIT(r) { (r), 0, 0 } -#define RATELIM_TOOMANY (16*1000) +#define RATELIM_TOOMANY (16*1000*1000) char *rate_limit_log(ratelim_t *lim, time_t now); -- cgit v1.2.3-54-g00ecf