26 RCSIDH(request_data_h,
"$Id: 236092b856548e85db31505040179c116384734a $")
28 #include <freeradius-devel/server/request.h>
59 #define request_data_add(_request, _unique_ptr, _unique_int, _opaque, _free_on_replace, _free_on_parent, _persist) \
60 _request_data_add(_request, _unique_ptr, _unique_int, NULL, _opaque, \
61 _free_on_replace, _free_on_parent, _persist, __FILE__, __LINE__)
86 #define request_data_talloc_add(_request, _unique_ptr, _unique_int, _type, _opaque, _free_on_replace, _free_on_parent, _persist) \
87 _request_data_add(_request, _unique_ptr, _unique_int, STRINGIFY(_type), _opaque, \
88 _free_on_replace, _free_on_parent, _persist, __FILE__, __LINE__)
112 #ifdef WITH_VERIFY_PTR
Head of a doubly linked list.
bool free_on_replace
Whether to talloc_free(opaque) when the request data is removed.
void * opaque
Opaque data.
void const * unique_ptr
Key to lookup request data.
bool persist
Whether this data should be transferred to a session_entry_t after we're done processing this request...
bool free_on_parent
Whether to talloc_free(opaque) when the request is freed.
int unique_int
Alternative key to lookup request data.
Per-request opaque data, added by modules.
int request_data_by_persistance_count(request_t *request, bool persist)
Return how many request data entries exist of a given persistence.
int request_data_by_persistance(fr_dlist_head_t *out, request_t *request, bool persist)
Loop over all the request data, pulling out ones matching persist state.
void * request_data_get(request_t *request, void const *unique_ptr, int unique_int)
Get opaque data from a request.
int _request_data_add(request_t *request, void const *unique_ptr, int unique_int, char const *type, void *opaque, bool free_on_replace, bool free_on_parent, bool persist, char const *file, int line)
Add opaque data to a request_t.
void * request_data_reference(request_t *request, void const *unique_ptr, int unique_int)
Get opaque data from a request without removing it.
void request_data_list_init(fr_dlist_head_t *data)
void request_data_restore(request_t *request, fr_dlist_head_t *in)
Add request data back to a request.
void request_data_dump(request_t *request)
void request_data_persistable_free(request_t *request)
Used for removing data from subrequests that are about to be freed.
int request_data_by_persistance_reparent(TALLOC_CTX *ctx, fr_dlist_head_t *out, request_t *request, bool persist)
Loop over all the request data, copying, then freeing ones matching persist state.
void request_data_list_dump(request_t *request, fr_dlist_head_t *head)
fr_aka_sim_id_type_t type
static size_t char ** out