Complete Doxygen documentation for RADIUS client

No more warnings from Doxygen about missing documentation from
radius_client.[ch].
This commit is contained in:
Jouni Malinen 2009-11-29 11:48:28 +02:00
parent 42158e247d
commit 15ef92d3cc
2 changed files with 115 additions and 12 deletions

View file

@ -62,14 +62,21 @@
* This data structure is used internally inside the RADIUS client module to
* store registered RX handlers. These handlers are registered by calls to
* radius_client_register() and unregistered when the RADIUS client is
* deinitizlized with a call to radius_client_deinit().
* deinitialized with a call to radius_client_deinit().
*/
struct radius_rx_handler {
/**
* handler - Received RADIUS message handler
*/
RadiusRxResult (*handler)(struct radius_msg *msg,
struct radius_msg *req,
const u8 *shared_secret,
size_t shared_secret_len,
void *data);
/**
* data - Context data for the handler
*/
void *data;
};
@ -81,21 +88,63 @@ struct radius_rx_handler {
* store pending RADIUS requests that may still need to be retransmitted.
*/
struct radius_msg_list {
u8 addr[ETH_ALEN]; /* STA/client address; used to find RADIUS messages
* for the same STA. */
/**
* addr - STA/client address
*
* This is used to find RADIUS messages for the same STA.
*/
u8 addr[ETH_ALEN];
/**
* msg - RADIUS message
*/
struct radius_msg *msg;
/**
* msg_type - Message type
*/
RadiusType msg_type;
/**
* first_try - Time of the first transmission attempt
*/
os_time_t first_try;
/**
* next_try - Time for the next transmission attempt
*/
os_time_t next_try;
/**
* attempts - Number of transmission attempts
*/
int attempts;
/**
* next_wait - Next retransmission wait time in seconds
*/
int next_wait;
/**
* last_attempt - Time of the last transmission attempt
*/
struct os_time last_attempt;
u8 *shared_secret;
/**
* shared_secret - Shared secret with the target RADIUS server
*/
const u8 *shared_secret;
/**
* shared_secret_len - shared_secret length in octets
*/
size_t shared_secret_len;
/* TODO: server config with failover to backup server(s) */
/**
* next - Next message in the list
*/
struct radius_msg_list *next;
};
@ -120,36 +169,68 @@ struct radius_client_data {
struct hostapd_radius_servers *conf;
/**
* auth_serv_sock - Socket for authentication RADIUS messages
* auth_serv_sock - IPv4 socket for RADIUS authentication messages
*/
int auth_serv_sock;
/**
* acct_serv_sock - Socket for accounting RADIUS messages
* acct_serv_sock - IPv4 socket for RADIUS accounting messages
*/
int acct_serv_sock;
/**
* auth_serv_sock6 - IPv6 socket for RADIUS authentication messages
*/
int auth_serv_sock6;
/**
* acct_serv_sock6 - IPv6 socket for RADIUS accounting messages
*/
int acct_serv_sock6;
/**
* auth_sock - Current used socket for RADIUS authentication server
* auth_sock - Currently used socket for RADIUS authentication server
*/
int auth_sock;
/**
* acct_sock - Current used socket for RADIUS accounting server
* acct_sock - Currently used socket for RADIUS accounting server
*/
int acct_sock;
/**
* auth_handlers - Authentication message handlers
*/
struct radius_rx_handler *auth_handlers;
/**
* num_auth_handlers - Number of handlers in auth_handlers
*/
size_t num_auth_handlers;
/**
* acct_handlers - Accounting message handlers
*/
struct radius_rx_handler *acct_handlers;
/**
* num_acct_handlers - Number of handlers in acct_handlers
*/
size_t num_acct_handlers;
/**
* msgs - Pending outgoing RADIUS messages
*/
struct radius_msg_list *msgs;
/**
* num_msgs - Number of pending messages in the msgs list
*/
size_t num_msgs;
/**
* next_radius_identifier - Next RADIUS message identifier to use
*/
u8 next_radius_identifier;
};
@ -435,7 +516,8 @@ static void radius_client_update_timeout(struct radius_client_data *radius)
static void radius_client_list_add(struct radius_client_data *radius,
struct radius_msg *msg,
RadiusType msg_type, u8 *shared_secret,
RadiusType msg_type,
const u8 *shared_secret,
size_t shared_secret_len, const u8 *addr)
{
struct radius_msg_list *entry, *prev;
@ -548,7 +630,7 @@ int radius_client_send(struct radius_client_data *radius,
const u8 *addr)
{
struct hostapd_radius_servers *conf = radius->conf;
u8 *shared_secret;
const u8 *shared_secret;
size_t shared_secret_len;
char *name;
int s, res;
@ -833,7 +915,7 @@ void radius_client_flush(struct radius_client_data *radius, int only_auth)
static void radius_client_update_acct_msgs(struct radius_client_data *radius,
u8 *shared_secret,
const u8 *shared_secret,
size_t shared_secret_len)
{
struct radius_msg_list *entry;

View file

@ -28,7 +28,7 @@ struct radius_msg;
* server.
*
* radiusAuthClientPendingRequests (or radiusAccClientPendingRequests) is the
* length of hapd->radius->msgs for matching msg_type.
* number struct radius_client_data::msgs for matching msg_type.
*/
struct hostapd_radius_server {
/**
@ -211,9 +211,30 @@ typedef enum {
* RadiusRxResult - RADIUS client RX handler result
*/
typedef enum {
/**
* RADIUS_RX_PROCESSED - Message processed
*
* This stops handler calls and frees the message.
*/
RADIUS_RX_PROCESSED,
/**
* 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_QUEUED,
/**
* RADIUS_RX_UNKNOWN - Message is not for this handler
*/
RADIUS_RX_UNKNOWN,
/**
* RADIUS_RX_INVALID_AUTHENTICATOR - Message has invalid Authenticator
*/
RADIUS_RX_INVALID_AUTHENTICATOR
} RadiusRxResult;