The FreeRADIUS server
$Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
|
#include <freeradius-devel/server/pair.h>
#include <freeradius-devel/radius/radius.h>
#include <freeradius-devel/util/nbo.h>
#include "attrs.h"
#include "compose.h"
Go to the source code of this file.
Functions | |
static int | _eap_session_free (eap_session_t *eap_session) |
static char * | eap_identity (request_t *request, eap_session_t *eap_session, eap_packet_raw_t *eap_packet) |
Extract the EAP identity from EAP-Identity-Response packets. More... | |
static eap_session_t * | eap_session_alloc (request_t *request) |
Allocate a new eap_session_t. More... | |
eap_session_t * | eap_session_continue (void const *instance, eap_packet_raw_t **eap_packet_p, request_t *request) |
Ingest an eap_packet into a thawed or newly allocated session. More... | |
void | eap_session_destroy (eap_session_t **eap_session) |
'destroy' an EAP session and disassociate it from the current request More... | |
void | eap_session_freeze (eap_session_t **eap_session) |
Freeze an eap_session_t so that it can continue later. More... | |
eap_session_t * | eap_session_thaw (request_t *request) |
Thaw an eap_session_t so it can be continued. More... | |
|
static |
|
static |
Extract the EAP identity from EAP-Identity-Response packets.
[in] | request | The current request. |
[in] | eap_session | EAP-Session to associate identity with. |
[in] | eap_packet | To extract the identity from. |
Definition at line 230 of file session.c.
|
static |
Allocate a new eap_session_t.
Allocates a new eap_session_t, and inserts it into the REQUEST_DATA_EAP_SESSION index of the request.
[in] | request | That generated this eap_session_t. |
Definition at line 104 of file session.c.
eap_session_t* eap_session_continue | ( | void const * | instance, |
eap_packet_raw_t ** | eap_packet_p, | ||
request_t * | request | ||
) |
Ingest an eap_packet into a thawed or newly allocated session.
If eap_packet is an Identity-Response then allocate a new eap_session and fill the identity.
If eap_packet is not an identity response, retrieve the pre-existing eap_session_t from request data.
If no User-Name attribute is present in the request, one will be created from the Identity-Response received when the eap_session was allocated.
[in] | instance | of rlm_eap that created the session. |
[in] | eap_packet_p | extracted from the RADIUS Access-Request. Consumed or freed by this function. Do not access after calling this function. Is a **so the packet pointer can be set to NULL. |
[in] | request | The current request. |
Definition at line 307 of file session.c.
void eap_session_destroy | ( | eap_session_t ** | eap_session | ) |
'destroy' an EAP session and disassociate it from the current request
eap_session | to destroy (disassociate and free). |
Definition at line 148 of file session.c.
void eap_session_freeze | ( | eap_session_t ** | eap_session | ) |
Freeze an eap_session_t so that it can continue later.
Sets the request and pointer to the eap_session to NULL. Primarily here to help track the lifecycle of an eap_session_t.
The actual freezing/thawing and management (ensuring it's available during multiple rounds of EAP) of the eap_session_t associated with REQUEST_DATA_EAP_SESSION, is done by the state API.
eap_session | to freeze. |
Definition at line 173 of file session.c.
eap_session_t* eap_session_thaw | ( | request_t * | request | ) |
Thaw an eap_session_t so it can be continued.
Retrieve an eap_session_t from the request data, and set relevant fields. Primarily here to help track the lifecycle of an eap_session_t.
The actual freezing/thawing and management (ensuring it's available during multiple rounds of EAP) of the eap_session_t associated with REQUEST_DATA_EAP_SESSION, is done by the state API.
request | to retrieve session from. |
Definition at line 205 of file session.c.