aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/plugins/eap_ttls/eap_ttls_peer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcharon/plugins/eap_ttls/eap_ttls_peer.c')
-rw-r--r--src/libcharon/plugins/eap_ttls/eap_ttls_peer.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/libcharon/plugins/eap_ttls/eap_ttls_peer.c b/src/libcharon/plugins/eap_ttls/eap_ttls_peer.c
index d84211540..11e6cd0f3 100644
--- a/src/libcharon/plugins/eap_ttls/eap_ttls_peer.c
+++ b/src/libcharon/plugins/eap_ttls/eap_ttls_peer.c
@@ -147,12 +147,16 @@ METHOD(tls_application_t, process, status_t,
switch (status)
{
case SUCCESS:
- /* fall through to NEED_MORE since response must be sent */
- case NEED_MORE:
- /* TODO support multiple EAP request/response exchanges */
this->method->destroy(this->method);
this->method = NULL;
return NEED_MORE;
+ case NEED_MORE:
+ if (type != EAP_TNC)
+ {
+ this->method->destroy(this->method);
+ this->method = NULL;
+ }
+ return NEED_MORE;
case FAILED:
default:
if (vendor)