eap-dynamic: Publish the get_auth() method of the wrapped EAP method

Fixes #2238.
This commit is contained in:
Tobias Brunner
2017-02-07 10:52:24 +01:00
parent 124a1eb8cf
commit 865fd804ee
@@ -94,6 +94,13 @@ static eap_method_t *load_method(private_eap_dynamic_t *this,
return method;
}
METHOD(eap_method_t, get_auth, auth_cfg_t*,
private_eap_dynamic_t *this)
{
/* get_auth() is only registered if the EAP method supports it */
return this->method->get_auth(this->method);
}
/**
* Select the first method we can instantiate and is supported by both peers.
*/
@@ -135,6 +142,10 @@ static void select_method(private_eap_dynamic_t *this)
this->method = load_method(this, entry->type, entry->vendor);
if (this->method)
{
if (this->method->get_auth)
{
this->public.interface.get_auth = _get_auth;
}
if (entry->vendor)
{
DBG1(DBG_IKE, "vendor specific EAP method %d-%d selected",
@@ -211,6 +222,7 @@ METHOD(eap_method_t, process, status_t,
/* restart with a different method */
this->method->destroy(this->method);
this->method = NULL;
this->public.interface.get_auth = NULL;
return initiate(this, out);
}
if (!this->other_types)