HEX
Server: LiteSpeed
System: Linux server.searchcove.com 4.18.0-513.24.1.lve.2.el8.x86_64 #1 SMP Fri May 24 12:42:50 UTC 2024 x86_64
User: lurax (1083)
PHP: 8.3.30
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/include/dovecot/log-throttle.h
#ifndef LOG_THROTTLE_H
#define LOG_THROTTLE_H

struct log_throttle_settings {
	/* Start throttling after we reach this many log events/interval. */
	unsigned int throttle_at_max_per_interval;
	/* Throttling continues until there's only this many or below
	   log events/interval. */
	unsigned int unthrottle_at_max_per_interval;
	/* Interval unit in milliseconds. The throttled-callback is also called
	   at this interval. Default (0) is 1000 milliseconds. */
	unsigned int interval_msecs;
};

typedef void
log_throttle_callback_t(unsigned int new_events_count, void *context);

struct log_throttle *
log_throttle_init(const struct log_throttle_settings *set,
		  log_throttle_callback_t *callback, void *context);
#define log_throttle_init(set, callback, context) \
	log_throttle_init(set - \
		CALLBACK_TYPECHECK(callback, void (*)(unsigned int, typeof(context))), \
		(log_throttle_callback_t *)callback, context)
void log_throttle_deinit(struct log_throttle **throttle);

/* Increase event count. Returns TRUE if the event should be logged,
   FALSE if it's throttled. ioloop_timeval is used to determine the current
   time. */
bool log_throttle_accept(struct log_throttle *throttle);

#endif