ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
memory.h File Reference

🧠 In-memory rate limiting backend interface More...

Go to the source code of this file.

Functions

void * memory_backend_create (void)
 Create memory backend instance.
uint64_t rate_limiter_get_time_ms (void)
 Helper: Get current time in milliseconds.
const char * rate_limiter_event_type_string (rate_event_type_t event_type)
 Helper: Get event type string for logging.

Variables

const rate_limiter_backend_ops_t memory_backend_ops
 Memory backend operations vtable.

Detailed Description

🧠 In-memory rate limiting backend interface

Definition in file network/rate_limit/memory.h.

Function Documentation

◆ memory_backend_create()

void * memory_backend_create ( void )

Create memory backend instance.

Returns
Backend instance or NULL on failure

Definition at line 256 of file memory.c.

256 {
258 if (!backend) {
259 log_error("Failed to allocate memory backend");
260 return NULL;
261 }
262
263 defer_named(release_backend, SAFE_FREE(backend));
264 memset(backend, 0, sizeof(*backend));
265
266 if (mutex_init(&backend->lock, "rate_limiter") != 0) {
267 log_error("Failed to initialize mutex");
268 return NULL;
269 }
270
271 log_debug("Memory rate limiter backend initialized");
272 defer_cancel(release_backend);
273 return backend;
274}
#define SAFE_FREE(ptr)
Definition common.h:377
#define SAFE_MALLOC(size, cast)
Definition common.h:265
#define log_error(...)
Log an ERROR message.
Definition log/log.h:634
#define log_debug(...)
Log a DEBUG message.
Definition log/log.h:595
Memory backend data.
Definition memory.c:49
mutex_t lock
Mutex for thread safety.
Definition memory.c:51

References memory_backend_t::lock, log_debug, log_error, SAFE_FREE, and SAFE_MALLOC.

Referenced by rate_limiter_create_memory().

◆ rate_limiter_event_type_string()

const char * rate_limiter_event_type_string ( rate_event_type_t event_type)

Helper: Get event type string for logging.

Helper: Get event type string for logging.

Definition at line 194 of file rate_limit.c.

194 {
195 if (event_type >= RATE_EVENT_MAX) {
196 return "unknown";
197 }
198 return event_type_strings[event_type];
199}
@ RATE_EVENT_MAX
Sentinel value.
Definition rate_limit.h:63

◆ rate_limiter_get_time_ms()

uint64_t rate_limiter_get_time_ms ( void )

Helper: Get current time in milliseconds.

Variable Documentation

◆ memory_backend_ops

const rate_limiter_backend_ops_t memory_backend_ops
extern

Memory backend operations vtable.

Definition at line 276 of file memory.c.

276 {
277 .check = memory_check,
278 .record = memory_record,
279 .cleanup = memory_cleanup,
280 .destroy = memory_destroy,
281};

Referenced by rate_limiter_create_memory().