|
ascii-chat 0.8.38
Real-time terminal-based video chat with ASCII art conversion
|
🚦 Rate limiting implementation with backend abstraction More...
Go to the source code of this file.
Data Structures | |
| struct | rate_limiter_s |
| Rate limiter structure. More... | |
Functions | |
| rate_limiter_t * | rate_limiter_create_memory (void) |
| rate_limiter_t * | rate_limiter_create_sqlite (const char *db_path) |
| void | rate_limiter_set_sqlite_db (rate_limiter_t *limiter, void *db) |
| void | rate_limiter_destroy (rate_limiter_t *limiter) |
| asciichat_error_t | rate_limiter_check (rate_limiter_t *limiter, const char *ip_address, rate_event_type_t event_type, const rate_limit_config_t *config, bool *allowed) |
| asciichat_error_t | rate_limiter_record (rate_limiter_t *limiter, const char *ip_address, rate_event_type_t event_type) |
| asciichat_error_t | rate_limiter_prune (rate_limiter_t *limiter, uint32_t max_age_secs) |
| const char * | rate_limiter_event_type_string (rate_event_type_t event_type) |
| Get event type string for logging. | |
Variables | |
| const rate_limit_config_t | DEFAULT_RATE_LIMITS [RATE_EVENT_MAX] |
🚦 Rate limiting implementation with backend abstraction
Definition in file rate_limit.c.
| asciichat_error_t rate_limiter_check | ( | rate_limiter_t * | limiter, |
| const char * | ip_address, | ||
| rate_event_type_t | event_type, | ||
| const rate_limit_config_t * | config, | ||
| bool * | allowed | ||
| ) |
Definition at line 128 of file rate_limit.c.
Referenced by check_and_record_rate_limit().
| rate_limiter_t * rate_limiter_create_memory | ( | void | ) |
Definition at line 73 of file rate_limit.c.
References memory_backend_create(), and memory_backend_ops.
Referenced by server_main().
| rate_limiter_t * rate_limiter_create_sqlite | ( | const char * | db_path | ) |
Definition at line 90 of file rate_limit.c.
References sqlite_backend_create(), and sqlite_backend_ops.
Referenced by acds_server_init().
| void rate_limiter_destroy | ( | rate_limiter_t * | limiter | ) |
Definition at line 116 of file rate_limit.c.
Referenced by acds_server_init(), acds_server_shutdown(), and server_main().
| const char * rate_limiter_event_type_string | ( | rate_event_type_t | event_type | ) |
Get event type string for logging.
Definition at line 176 of file rate_limit.c.
| asciichat_error_t rate_limiter_prune | ( | rate_limiter_t * | limiter, |
| uint32_t | max_age_secs | ||
| ) |
Definition at line 161 of file rate_limit.c.
| asciichat_error_t rate_limiter_record | ( | rate_limiter_t * | limiter, |
| const char * | ip_address, | ||
| rate_event_type_t | event_type | ||
| ) |
Definition at line 145 of file rate_limit.c.
Referenced by check_and_record_rate_limit().
| void rate_limiter_set_sqlite_db | ( | rate_limiter_t * | limiter, |
| void * | db | ||
| ) |
Definition at line 107 of file rate_limit.c.
References sqlite_backend_set_db().
Referenced by acds_server_init().
| const rate_limit_config_t DEFAULT_RATE_LIMITS[RATE_EVENT_MAX] |
Definition at line 30 of file rate_limit.c.