26RCSIDH(coord_pair_h,
"$Id: 8362d4872ac0ccf1b6a70ac38c97372da1a7f164 $")
28#include <freeradius-devel/io/coord.h>
29#include <freeradius-devel/server/request.h>
30#include <freeradius-devel/util/pair.h>
62 bool single_thread,
void *uctx);
72#define FR_COORD_PAIR_CALLBACK(_id) [_id] = { .callback = fr_coord_pair_data_recv, .inst_create = fr_coord_pair_inst_create }
77#define FR_COORD_WORKER_PAIR_CALLBACK(_id) [_id] = { .callback = fr_coord_worker_pair_data_recv }
84#define FR_COORD_PAIR_CB_CTX_SET(_in_cb, _out_cb, _reg) \
86 _in_cb[fr_coord_pair_reg_cb_id(_reg)].uctx = _reg; \
87 _out_cb[fr_coord_pair_reg_cb_id(_reg)].uctx = _reg; \
A section grouping multiple CONF_PAIR.
A coordinator which receives messages from workers.
The worker end of worker <-> coordinator communication.
fr_coord_pair_reg_t * coord_pair_reg
Registration details for this coord pair.
fr_coord_worker_pair_cb_reg_t * worker_cb
Callbacks for coordinator -> worker pair messages.
uint32_t packet_type
Packet type value for this callback.
fr_time_delta_t max_request_time
Maximum time for coordinator request processing.
void fr_coord_worker_pair_data_recv(fr_coord_worker_t *cw, fr_dbuff_t *dbuff, fr_time_t now, void *uctx)
Callback run when a worker receives pair list data.
fr_dict_attr_t const * root
Root attribute for decoding pair list messages.
int fr_coord_to_worker_reply_send(request_t *request, uint32_t worker_id)
Send a reply list from a coordinator to a worker.
int fr_worker_to_coord_pair_send(fr_coord_worker_t *cw, fr_coord_pair_reg_t *coord_pair_reg, fr_pair_list_t *list)
Send a pair list from a worker to a coordinator.
CONF_SECTION * cs
Module conf section.
uint32_t fr_coord_pair_reg_cb_id(fr_coord_pair_reg_t *coord_pair_reg)
Return the coordinator callback ID associated with a coord_pair_reg_t.
fr_coord_pair_reg_t * fr_coord_pair_register(TALLOC_CTX *ctx, fr_coord_pair_reg_ctx_t *reg_ctx)
Register a set of callbacks for pair list based coordinator messages.
void(* fr_coord_worker_pair_cb_t)(fr_coord_worker_t *cw, fr_coord_pair_reg_t *coord_pair_reg, fr_pair_list_t const *list, fr_time_t now, void *uctx)
fr_coord_cb_inst_t * fr_coord_pair_inst_create(TALLOC_CTX *ctx, fr_coord_t *coord, fr_event_list_t *el, bool single_thread, void *uctx)
Plugin creation called during coordinator creation.
fr_coord_worker_pair_cb_t callback
Function to call.
void * uctx
Ctx to pass to callback.
struct fr_coord_pair_reg_s fr_coord_pair_reg_t
uint32_t cb_id
Coordinator callback id used for pair list messages.
void fr_coord_pair_data_recv(fr_coord_t *coord, uint32_t worker_id, fr_dbuff_t *dbuff, fr_time_t now, void *parent, void *uctx)
Stores all information relating to an event list.
static _Thread_local int worker_id
Internal ID of the current worker thread.
A time delta, a difference in time measured in nanoseconds.
static fr_event_list_t * el