asynchronous nature of eap_sim_db functionality inside eap2 module
Ming-Ching Tiew
mctiew at yahoo.com
Wed Sep 14 11:20:46 CEST 2011
While trying out the eap_sim_db functionality of eap2 module, for the purpose of retrieving authentication information from external sources, I found that the it works in a somewhat asynchronous manner, specifically when a call to eap_sim_db_get_gsm_triplet() is made via eap2 module, the functions returns PENDING to the caller. And this is in the code :-
/*
.....
* When using an external server for GSM triplets, this function can always
* start a request and return EAP_SIM_DB_PENDING immediately if authentication
* triplets are not available. Once the triplets are received, callback
* function registered with eap_sim_db_init() is called to notify EAP state
* machine to reprocess the message. This eap_sim_db_get_gsm_triplets()
* function will then be called again and the newly received triplets will then
* be given to the caller.
When hard-coding the data to return immediately, I notice that the authentication from radius client will succeed. But when using this
asynchronous behaviour, authentication will not succeed. By the way, I am using eapol_test for the testing.
Should I just make it synchronous ( ie block until the gsm data comes back ) or there is a way to accomodate this inside freeradius ?
Best regards.
More information about the Freeradius-Devel
mailing list