aboutsummaryrefslogtreecommitdiffstats
path: root/src/charon/plugins/eap_tls/eap_tls.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/charon/plugins/eap_tls/eap_tls.c')
-rw-r--r--src/charon/plugins/eap_tls/eap_tls.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/charon/plugins/eap_tls/eap_tls.c b/src/charon/plugins/eap_tls/eap_tls.c
index fddd5073e..cf4294970 100644
--- a/src/charon/plugins/eap_tls/eap_tls.c
+++ b/src/charon/plugins/eap_tls/eap_tls.c
@@ -335,9 +335,17 @@ METHOD(eap_method_t, process, status_t,
if (!(pkt->flags & EAP_TLS_START))
{
if (data.len == sizeof(eap_tls_packet_t))
- { /* ACK to our fragment, send next */
- *out = read_buf(this, pkt->identifier);
- return NEED_MORE;
+ {
+ if (this->output.len)
+ { /* ACK to our fragment, send next */
+ *out = read_buf(this, pkt->identifier);
+ return NEED_MORE;
+ }
+ if (this->tls->is_complete(this->tls))
+ {
+ return SUCCESS;
+ }
+ return FAILED;
}
if (!write_buf(this, pkt))
{