asynchronous nature of eap_sim_db functionality inside eap2 module

Ming-Ching Tiew mctiew at
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