asynchronous nature of eap_sim_db functionality inside eap2 module
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.
Ming-Ching Tiew wrote:
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 ?
I have no idea. The libeap code is from hostap, and I know very little about that. Alan DeKok.
participants (2)
-
Alan DeKok -
Ming-Ching Tiew