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;
|
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.
|
* 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);
|
this->method = load_method(this, entry->type, entry->vendor);
|
||||||
if (this->method)
|
if (this->method)
|
||||||
{
|
{
|
||||||
|
if (this->method->get_auth)
|
||||||
|
{
|
||||||
|
this->public.interface.get_auth = _get_auth;
|
||||||
|
}
|
||||||
if (entry->vendor)
|
if (entry->vendor)
|
||||||
{
|
{
|
||||||
DBG1(DBG_IKE, "vendor specific EAP method %d-%d selected",
|
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 */
|
/* restart with a different method */
|
||||||
this->method->destroy(this->method);
|
this->method->destroy(this->method);
|
||||||
this->method = NULL;
|
this->method = NULL;
|
||||||
|
this->public.interface.get_auth = NULL;
|
||||||
return initiate(this, out);
|
return initiate(this, out);
|
||||||
}
|
}
|
||||||
if (!this->other_types)
|
if (!this->other_types)
|
||||||
|
|||||||
Reference in New Issue
Block a user