26 RCSIDH(protocol_h,
"$Id: 6550c11a88b99d138689f1461e1b28bd7864779e $")
32 #include <freeradius-devel/io/base.h>
34 #include <freeradius-devel/server/dl_module.h>
35 #include <freeradius-devel/server/listen.h>
85 #define TRANSPORT_NONE 0
86 #define TRANSPORT_TCP (1 << IPPROTO_TCP)
87 #define TRANSPORT_UDP (1 << IPPROTO_UDP)
88 #define TRANSPORT_DUAL (TRANSPORT_UDP | TRANSPORT_TCP)
static int const char char buffer[256]
A section grouping multiple CONF_PAIR.
int common_socket_print(rad_listen_t const *this, char *buffer, size_t bufsize)
rad_listen_error_t error
Handle error/eol on the descriptor.
rad_listen_unlang_t compile
Phase2 - Compile unlang sections in the virtual server that map to packet types used by the protocol.
void(* rad_listen_free_t)(rad_listen_t *)
int(* rad_listen_parse_t)(CONF_SECTION *, rad_listen_t *)
rad_listen_parse_t parse
Perform extra processing of the configuration data specified by config.
struct rad_protocol_s rad_protocol_t
Struct exported by a proto_* module.
int common_socket_parse(CONF_SECTION *cs, rad_listen_t *this)
rad_listen_unlang_t bootstrap
Phase1 - Basic validation checks of virtual server.
DL_MODULE_COMMON
Common fields to all loadable modules.
uint32_t transports
What can transport this protocol.
int common_socket_open(CONF_SECTION *cs, rad_listen_t *this)
void common_packet_debug(request_t *request, fr_packet_t *packet, fr_pair_list_t *pairs, bool received)
rad_listen_debug_t debug
Print an attribute list for debugging.
rad_listen_encode_t encode
Encode an outgoing packet.
rad_listen_print_t print
Print a line describing the packet being sent or the packet that was received.
bool tls
Whether protocol can be wrapped in TLS.
rad_listen_recv_t recv
Read an incoming packet from the descriptor.
rad_listen_send_t send
Write an outgoing packet to the descriptor.
rad_listen_decode_t decode
Decode an incoming packet.
int(* rad_listen_unlang_t)(CONF_SECTION *, CONF_SECTION *)
rad_listen_parse_t open
Open a descriptor.
Struct exported by a proto_* module.
int(* rad_listen_print_t)(rad_listen_t const *, char *, size_t)
int(* rad_listen_recv_t)(rad_listen_t *)
int(* rad_listen_decode_t)(rad_listen_t *, request_t *)
int(* rad_listen_send_t)(rad_listen_t *, request_t *)
int(* rad_listen_encode_t)(rad_listen_t *, request_t *)
int(* rad_listen_error_t)(rad_listen_t *, int)
void(* rad_listen_debug_t)(request_t *, fr_packet_t *, fr_pair_list_t *, bool received)