bool cisco_accounting_username_bug;
} rlm_eap_config_t;
-/** Instantiate an EAP submodule
- *
- * Function to handle any submodule specific instantiation.
- *
- * @param config of the rlm_eap instance. Should not be modified.
- * @param instance A uint8_t array of inst_size if inst_size > 0, else NULL,
- * this should contain the result of parsing the submodule's
- * CONF_PARSER array that it specified in the interface struct.
- * @param cs section holding driver specific #CONF_PAIR (s).
- * @return
- * - 0 on success.
- * - -1 on failure.
- */
-typedef int (*eap_instantiate_t)(rlm_eap_config_t const *config, void *instance, CONF_SECTION *cs);
-
/** Interface exported by EAP submodules
*
*/
typedef struct rlm_eap_submodule {
RAD_MODULE_COMMON; //!< Common fields to all loadable modules.
- eap_instantiate_t instantiate; //!< Create a new submodule instance.
+ module_instantiate_t bootstrap; //!< Register any attributes required for the module
+ //!< to function, and perform library intit.
+ module_instantiate_t instantiate; //!< Create a new submodule instance.
eap_process_t session_init; //!< Callback for creating a new #eap_session_t.
eap_process_t process; //!< Callback for processing the next #eap_round_t of an
//!< #eap_session_t.
* Call the instantiated function in the submodule
*/
if ((method->submodule->instantiate) &&
- ((method->submodule->instantiate)(&inst->config, method->submodule_inst->data, cs) < 0)) {
+ ((method->submodule->instantiate)(method->submodule_inst->data, cs) < 0)) {
talloc_free(method);
return -1;
}
/*
* Attach the module.
*/
-static int mod_instantiate(UNUSED rlm_eap_config_t const *config, void *instance, CONF_SECTION *cs)
+static int mod_instantiate(void *instance, CONF_SECTION *cs)
{
rlm_eap_fast_t *inst = talloc_get_type_abort(instance, rlm_eap_fast_t);
/*
* Attach the module.
*/
-static int mod_instantiate(UNUSED rlm_eap_config_t const *config, void *instance, CONF_SECTION *cs)
+static int mod_instantiate(void *instance, CONF_SECTION *cs)
{
rlm_eap_gtc_t *inst = talloc_get_type_abort(instance, rlm_eap_gtc_t);
fr_dict_enum_t *dval;
/*
* Attach the module.
*/
-static int mod_instantiate(UNUSED rlm_eap_config_t const *config, void *instance, CONF_SECTION *cs)
+static int mod_instantiate(void *instance, CONF_SECTION *cs)
{
rlm_eap_mschapv2_t *inst = talloc_get_type_abort(instance, rlm_eap_mschapv2_t);
fr_dict_enum_t const *dv;
/*
* Attach the module.
*/
-static int mod_instantiate(UNUSED rlm_eap_config_t const *config, void *instance, CONF_SECTION *cs)
+static int mod_instantiate(void *instance, CONF_SECTION *cs)
{
rlm_eap_peap_t *inst = talloc_get_type_abort(instance, rlm_eap_peap_t);
fr_dict_enum_t *dv;
return 0;
}
-static int mod_instantiate(UNUSED rlm_eap_config_t const *config, void *instance, CONF_SECTION *cs)
+static int mod_instantiate(void *instance, CONF_SECTION *cs)
{
rlm_eap_pwd_t *inst = talloc_get_type_abort(instance, rlm_eap_pwd_t);
/*
* Attach the module.
*/
-static int mod_instantiate(UNUSED rlm_eap_config_t const *config, UNUSED void *instance, CONF_SECTION *cs)
+static int mod_instantiate(UNUSED void *instance, CONF_SECTION *cs)
{
fr_dict_attr_t const *da;
CONF_SECTION *subcs = NULL;
/*
* Attach the EAP-TLS module.
*/
-static int mod_instantiate(UNUSED rlm_eap_config_t const *config, void *instance, CONF_SECTION *cs)
+static int mod_instantiate(void *instance, CONF_SECTION *cs)
{
rlm_eap_tls_t *inst = talloc_get_type_abort(instance, rlm_eap_tls_t);
/*
* Attach the module.
*/
-static int mod_instantiate(UNUSED rlm_eap_config_t const *config, void *instance, CONF_SECTION *cs)
+static int mod_instantiate(void *instance, CONF_SECTION *cs)
{
rlm_eap_ttls_t *inst = talloc_get_type_abort(instance, rlm_eap_ttls_t);