28#include <freeradius-devel/util/dlist.h>
82# define radius_track_entry_reserve(_te_out, _ctx, _tt, _request, _code, _uctx) \
83 _radius_track_entry_reserve( __FILE__, __LINE__, _te_out, _ctx, _tt, _request, _code, _uctx)
90# define radius_track_entry_release(_te) \
91 _radius_track_entry_release( __FILE__, __LINE__, _te)
Head of a doubly linked list.
Entry in a doubly linked list.
#define RADIUS_AUTH_VECTOR_LENGTH
char const * file
Where the entry was allocated.
void radius_track_state_log(fr_log_t const *log, fr_log_type_t log_type, char const *file, int line, radius_track_t *tt, radius_track_log_extra_t extra)
Print out the state of every tracking entry.
fr_dlist_head_t free_list
so we allocate by least recently used
int _radius_track_entry_release(char const *file, int line, radius_track_entry_t **te)
Release a tracking entry.
int radius_track_entry_update(radius_track_entry_t *te, uint8_t const *vector)
Update a tracking entry with the authentication vector.
radius_track_entry_t * radius_track_entry_find(radius_track_t *tt, uint8_t packet_id, uint8_t const *vector))
Find a tracking entry from a request authenticator.
#define radius_track_entry_release(_te)
void * uctx
Result/resumption context.
int line
Where the entry was freed.
uint64_t operation
Incremented each alloc and de-alloc.
unsigned int num_requests
number of requests in the allocation
fr_rb_node_t node
Entry in the tracking tree.
uint8_t code
packet code (sigh)
int _radius_track_entry_reserve(char const *file, int line, radius_track_entry_t **te_out, TALLOC_CTX *ctx, radius_track_t *tt, request_t *request, uint8_t code, void *uctx))
Allocate a tracking entry.
#define radius_track_entry_reserve(_te_out, _ctx, _tt, _request, _code, _uctx)
radius_track_t * radius_track_alloc(TALLOC_CTX *ctx)
Create an radius_track_t.
void(* radius_track_log_extra_t)(fr_log_t const *log, fr_log_type_t log_type, char const *file, int line, radius_track_entry_t *te)
uint64_t operation
Used to give an idea of the alloc/free timeline.
request_t * request
as always...
radius_track_entry_t *** binding
Binding chunk we use to release the entry when its parent is freed.
Track one request to a response.