Classes | Enumerations | Functions
radius_client.h File Reference
#include "ip_addr.h"
Include dependency graph for radius_client.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  hostapd_radius_server
struct  hostapd_radius_servers

Enumerations

enum  RadiusRxResult { RADIUS_RX_PROCESSED, RADIUS_RX_QUEUED, RADIUS_RX_UNKNOWN, RADIUS_RX_INVALID_AUTHENTICATOR }
enum  RadiusType { RADIUS_AUTH, RADIUS_ACCT, RADIUS_ACCT_INTERIM }

Functions

void radius_client_deinit (struct radius_client_data *radius)
void radius_client_flush (struct radius_client_data *radius, int only_auth)
void radius_client_flush_auth (struct radius_client_data *radius, const u8 *addr)
u8 radius_client_get_id (struct radius_client_data *radius)
int radius_client_get_mib (struct radius_client_data *radius, char *buf, size_t buflen)
struct radius_client_dataradius_client_init (void *ctx, struct hostapd_radius_servers *conf)
int radius_client_register (struct radius_client_data *radius, RadiusType msg_type, RadiusRxResult(*handler)(struct radius_msg *msg, struct radius_msg *req, const u8 *shared_secret, size_t shared_secret_len, void *data), void *data)
int radius_client_send (struct radius_client_data *radius, struct radius_msg *msg, RadiusType msg_type, const u8 *addr)

Enumeration Type Documentation

RadiusRxResult - RADIUS client RX handler result

Enumerator:
RADIUS_RX_PROCESSED 

RADIUS_RX_PROCESSED - Message processed

This stops handler calls and frees the message.

RADIUS_RX_QUEUED 

RADIUS_RX_QUEUED - Message has been queued

This stops handler calls, but does not free the message; the handler that returned this is responsible for eventually freeing the message.

RADIUS_RX_UNKNOWN 

RADIUS_RX_UNKNOWN - Message is not for this handler

RADIUS_RX_INVALID_AUTHENTICATOR 

RADIUS_RX_INVALID_AUTHENTICATOR - Message has invalid Authenticator

Definition at line 213 of file radius_client.h.

enum RadiusType

RadiusType - RADIUS server type for RADIUS client

Enumerator:
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.


Function Documentation

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.



wpa_supplicant
Author(s): Package maintained by Blaise Gassend
autogenerated on Thu Apr 24 2014 15:34:39