#include "ip_addr.h"
Go to the source code of this file.
enum RadiusRxResult |
RadiusRxResult - RADIUS client RX handler result
Definition at line 213 of file radius_client.h.
enum RadiusType |
RadiusType - RADIUS server type for RADIUS client
RADIUS_AUTH |
RADIUS authentication |
RADIUS_ACCT |
RADIUS_ACCT - RADIUS accounting |
RADIUS_ACCT_INTERIM |
RADIUS_ACCT_INTERIM - RADIUS interim accounting message Used only with radius_client_send(). This behaves just like RADIUS_ACCT, but removes any pending interim RADIUS Accounting messages for the same STA before sending the new interim update. |
Definition at line 189 of file radius_client.h.
void radius_client_deinit | ( | struct radius_client_data * | radius | ) |
radius_client_deinit - Deinitialize RADIUS client : RADIUS client context from radius_client_init()
Definition at line 1291 of file radius_client.c.
void radius_client_flush | ( | struct radius_client_data * | radius, | |
int | only_auth | |||
) |
radius_client_flush - Flush all pending RADIUS client messages : RADIUS client context from radius_client_init() : Whether only authentication messages are removed
Definition at line 887 of file radius_client.c.
void radius_client_flush_auth | ( | struct radius_client_data * | radius, | |
const u8 * | addr | |||
) |
radius_client_flush_auth - Flush pending RADIUS messages for an address : RADIUS client context from radius_client_init() : MAC address of the related device
This function can be used to remove pending RADIUS authentication messages that are related to a specific device. The addr parameter is matched with the one used in radius_client_send() call that was used to transmit the authentication request.
Definition at line 1326 of file radius_client.c.
u8 radius_client_get_id | ( | struct radius_client_data * | radius | ) |
radius_client_get_id - Get an identifier for a new RADIUS message : RADIUS client context from radius_client_init() Returns: Allocated identifier
This function is used to fetch a unique (among pending requests) identifier for a new RADIUS message.
Definition at line 847 of file radius_client.c.
int radius_client_get_mib | ( | struct radius_client_data * | radius, | |
char * | buf, | |||
size_t | buflen | |||
) |
radius_client_get_mib - Get RADIUS client MIB information : RADIUS client context from radius_client_init() : Buffer for returning MIB data in text format : Maximum buf length in octets Returns: Number of octets written into the buffer
Definition at line 1462 of file radius_client.c.
struct radius_client_data* radius_client_init | ( | void * | ctx, | |
struct hostapd_radius_servers * | conf | |||
) | [read] |
radius_client_init - Initialize RADIUS client : Callback context to be used in hostapd_logger() calls : RADIUS client configuration (RADIUS servers) Returns: Pointer to private RADIUS client context or NULL on failure
The caller is responsible for keeping the configuration data available for the lifetime of the RADIUS client, i.e., until radius_client_deinit() is called for the returned context pointer.
Definition at line 1254 of file radius_client.c.
int radius_client_register | ( | struct radius_client_data * | radius, | |
RadiusType | msg_type, | |||
RadiusRxResult(*)(struct radius_msg *msg, struct radius_msg *req, const u8 *shared_secret, size_t shared_secret_len, void *data) | handler, | |||
void * | data | |||
) |
radius_client_register - Register a RADIUS client RX handler : RADIUS client context from radius_client_init() : RADIUS client type (RADIUS_AUTH or RADIUS_ACCT) : Handler for received RADIUS messages : Context pointer for handler callbacks Returns: 0 on success, -1 on failure
This function is used to register a handler for processing received RADIUS authentication and accounting messages. The handler() callback function will be called whenever a RADIUS message is received from the active server.
There can be multiple registered RADIUS message handlers. The handlers will be called in order until one of them indicates that it has processed or queued the message.
Definition at line 270 of file radius_client.c.
int radius_client_send | ( | struct radius_client_data * | radius, | |
struct radius_msg * | msg, | |||
RadiusType | msg_type, | |||
const u8 * | addr | |||
) |
radius_client_send - Send a RADIUS request : RADIUS client context from radius_client_init() : RADIUS message to be sent : Message type (RADIUS_AUTH, RADIUS_ACCT, RADIUS_ACCT_INTERIM) : MAC address of the device related to this message or NULL Returns: 0 on success, -1 on failure
This function is used to transmit a RADIUS authentication (RADIUS_AUTH) or accounting request (RADIUS_ACCT or RADIUS_ACCT_INTERIM). The only difference between accounting and interim accounting messages is that the interim message will override any pending interim accounting updates while a new accounting message does not remove any pending messages.
The message is added on the retransmission queue and will be retransmitted automatically until a response is received or maximum number of retries (RADIUS_CLIENT_MAX_RETRIES) is reached.
The related device MAC address can be used to identify pending messages that can be removed with radius_client_flush_auth() or with interim accounting updates.
Definition at line 627 of file radius_client.c.