mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 04:13:28 +01:00
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
This commit is contained in:
parent
77459b97aa
commit
fb7f90c181
@ -2,5 +2,5 @@
|
||||
- Fix an integer overflow in the rate-limiter that caused displaying of
|
||||
wrong number of suppressed messages (if there are too many of them).
|
||||
If the number of messages hits the limit of messages per interval the
|
||||
rate-limiter drops a warning and doesn't count any further.
|
||||
Fixes bug 19435.
|
||||
rate-limiter doesn't count any further.
|
||||
Fixes bug 19435; bugfix on 0.2.4.11-alpha.
|
||||
|
@ -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 {
|
||||
|
@ -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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user