From: Arran Cudbard-Bell Date: Fri, 23 Apr 2021 18:22:43 +0000 (-0500) Subject: Add support for type_identity to EAP-SIM/AKA/AKA' X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=37e4d063f9ecb040d2621529006d14dcefd6f920;p=thirdparty%2Ffreeradius-server.git Add support for type_identity to EAP-SIM/AKA/AKA' --- diff --git a/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c b/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c index 7a87b0c46f6..6188f9953fd 100644 --- a/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c +++ b/src/modules/rlm_eap/types/rlm_eap_aka/rlm_eap_aka.c @@ -86,6 +86,13 @@ static int mod_instantiate(void *instance, CONF_SECTION *conf) return 0; } +static eap_type_t mod_type_identity(UNUSED void *instance, char const *id, size_t len) +{ + if (fr_aka_sim_id_to_eap_type(id, len) == FR_EAP_METHOD_AKA) return FR_EAP_METHOD_AKA; + + return FR_EAP_METHOD_INVALID; +} + static int mod_load(void) { if (fr_aka_sim_init() < 0) return -1; @@ -121,6 +128,7 @@ rlm_eap_submodule_t rlm_eap_aka = { .instantiate = mod_instantiate, + .type_identity = mod_type_identity, .session_init = mod_session_init, .namespace = &dict_eap_aka_sim }; diff --git a/src/modules/rlm_eap/types/rlm_eap_aka_prime/rlm_eap_aka_prime.c b/src/modules/rlm_eap/types/rlm_eap_aka_prime/rlm_eap_aka_prime.c index 501e9b16f55..66fd63bd6c1 100644 --- a/src/modules/rlm_eap/types/rlm_eap_aka_prime/rlm_eap_aka_prime.c +++ b/src/modules/rlm_eap/types/rlm_eap_aka_prime/rlm_eap_aka_prime.c @@ -65,6 +65,13 @@ static int mod_instantiate(void *instance, UNUSED CONF_SECTION *conf) return 0; } +static eap_type_t mod_type_identity(UNUSED void *instance, char const *id, size_t len) +{ + if (fr_aka_sim_id_to_eap_type(id, len) == FR_EAP_METHOD_AKA_PRIME) return FR_EAP_METHOD_AKA_PRIME; + + return FR_EAP_METHOD_INVALID; +} + static int mod_load(void) { if (fr_aka_sim_init() < 0) return -1; @@ -100,6 +107,7 @@ rlm_eap_submodule_t rlm_eap_aka_prime = { .instantiate = mod_instantiate, + .type_identity = mod_type_identity, .session_init = mod_session_init, .namespace = &dict_eap_aka_sim }; diff --git a/src/modules/rlm_eap/types/rlm_eap_sim/rlm_eap_sim.c b/src/modules/rlm_eap/types/rlm_eap_sim/rlm_eap_sim.c index d0e76800fe0..9349f3a3a55 100644 --- a/src/modules/rlm_eap/types/rlm_eap_sim/rlm_eap_sim.c +++ b/src/modules/rlm_eap/types/rlm_eap_sim/rlm_eap_sim.c @@ -63,6 +63,14 @@ static int mod_instantiate(void *instance, UNUSED CONF_SECTION *conf) return 0; } + +static eap_type_t mod_type_identity(UNUSED void *instance, char const *id, size_t len) +{ + if (fr_aka_sim_id_to_eap_type(id, len) == FR_EAP_METHOD_AKA) return FR_EAP_METHOD_AKA; + + return FR_EAP_METHOD_INVALID; +} + static int mod_load(void) { if (fr_aka_sim_init() < 0) return -1; @@ -98,6 +106,7 @@ rlm_eap_submodule_t rlm_eap_sim = { .instantiate = mod_instantiate, + .type_identity = mod_type_identity, .session_init = mod_session_init, /* Initialise a new EAP session */ .namespace = &dict_eap_aka_sim };