ratelim.c File Reference
#include "lib/log/ratelim.h"
#include "lib/malloc/malloc.h"
#include "lib/string/printf.h"

Go to the source code of this file.


static int rate_limit_is_ready (ratelim_t *lim, time_t now)
char * rate_limit_log (ratelim_t *lim, time_t now)

Detailed Description

Summarize similar messages that would otherwise flood the logs.

Definition in file ratelim.c.

Function Documentation

◆ rate_limit_is_ready()

static int rate_limit_is_ready ( ratelim_t lim,
time_t  now 

If the rate-limiter lim is ready at now, return the number of calls to rate_limit_is_ready (including this one!) since the last time rate_limit_is_ready returned nonzero. Otherwise return 0. If the call number hits RATELIM_TOOMANY limit, drop a warning about this event and stop counting.

Definition at line 21 of file ratelim.c.

Referenced by rate_limit_log().

◆ rate_limit_log()

char* rate_limit_log ( ratelim_t lim,
time_t  now 

If the rate-limiter lim is ready at now, return a newly allocated string indicating how many messages were suppressed, suitable to append to a log message. Otherwise return NULL.

Definition at line 41 of file ratelim.c.

References rate_limit_is_ready().