blob: 23a182cde49c626fefd8625d9f715883d31731a9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#ifndef PENALTY_H
#define PENALTY_H
#define PENALTY_MAX_VALUE ((1 << 16)-1)
struct penalty *penalty_init(void);
void penalty_deinit(struct penalty **penalty);
void penalty_set_expire_secs(struct penalty *penalty, unsigned int expire_secs);
unsigned int penalty_get(struct penalty *penalty, const char *ident,
time_t *last_penalty_r);
/* if checksum is non-zero and it already exists for ident, the value
is set to "value-1", otherwise it's set to "value". */
void penalty_inc(struct penalty *penalty, const char *ident,
unsigned int checksum, unsigned int value);
bool penalty_has_checksum(struct penalty *penalty, const char *ident,
unsigned int checksum);
void penalty_dump(struct penalty *penalty, struct ostream *output);
#endif
|