diff options
Diffstat (limited to 'src/libcharon/plugins/eap_ttls/eap_ttls_peer.c')
-rw-r--r-- | src/libcharon/plugins/eap_ttls/eap_ttls_peer.c | 10 |
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) |