/* * Attach the module. */ static int eappeap_attach(CONF_SECTION *cs, void **instance) { rlm_eap_peap_t *inst; inst = malloc(sizeof(*inst)); if (!inst) { radlog(L_ERR, "rlm_eap_peap: out of memory"); return -1; } memset(inst, 0, sizeof(*inst)); /* * Parse the configuration attributes. */ if (cf_section_parse(cs, inst, module_config) < 0) { eappeap_detach(inst); return -1; } /* * Convert the name to an integer, to make it easier to * handle. */ inst->default_eap_type = eaptype_name2type(inst->default_eap_type_name); if (inst->default_eap_type < 0) { radlog(L_ERR, "rlm_eap_peap: Unknown EAP type %s", inst->default_eap_type_name); eappeap_detach(inst); return -1; } /* * Read tls configuration, either from group given by 'tls' * option, or from the eap-tls configuration. */ inst->tls_conf = eaptls_conf_parse(cs, "tls"); if (!inst->tls_conf) { radlog(L_ERR, "rlm_eap_peap: Failed initializing SSL context"); eappeap_detach(inst); return -1; } *instance = inst; return 0; }
/* * Attach the module. */ static int eappeap_attach(CONF_SECTION *cs, void **instance) { rlm_eap_peap_t *inst; inst = malloc(sizeof(*inst)); if (!inst) { radlog(L_ERR, "rlm_eap_peap: out of memory"); return -1; } memset(inst, 0, sizeof(*inst)); /* * Parse the configuration attributes. */ if (cf_section_parse(cs, inst, module_config) < 0) { eappeap_detach(inst); return -1; } if (inst->soh && !inst->soh_virtual_server) { radlog(L_ERR, "rlm_eap_peap: You MUST specify a value for \"soh_virtual_server\""); eappeap_detach(inst); return -1; } /* * Convert the name to an integer, to make it easier to * handle. */ inst->default_eap_type = eaptype_name2type(inst->default_eap_type_name); if (inst->default_eap_type < 0) { radlog(L_ERR, "rlm_eap_peap: Unknown EAP type %s", inst->default_eap_type_name); eappeap_detach(inst); return -1; } *instance = inst; return 0; }