eap-dynamic: Publish the get_auth() method of the wrapped EAP method
Fixes #2238.
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user