diff options
Diffstat (limited to 'pcr/strongswan/2238-eap-dynamic-auth.patch')
-rw-r--r-- | pcr/strongswan/2238-eap-dynamic-auth.patch | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/pcr/strongswan/2238-eap-dynamic-auth.patch b/pcr/strongswan/2238-eap-dynamic-auth.patch new file mode 100644 index 000000000..17b954ea7 --- /dev/null +++ b/pcr/strongswan/2238-eap-dynamic-auth.patch @@ -0,0 +1,38 @@ +diff --git a/src/libcharon/plugins/eap_dynamic/eap_dynamic.c b/src/libcharon/plugins/eap_dynamic/eap_dynamic.c +index d0f0595de..83ccd3a8a 100644 +--- a/src/libcharon/plugins/eap_dynamic/eap_dynamic.c ++++ b/src/libcharon/plugins/eap_dynamic/eap_dynamic.c +@@ -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) + |