diff options
Diffstat (limited to 'src/charon/plugins/eap_tls/eap_tls.c')
-rw-r--r-- | src/charon/plugins/eap_tls/eap_tls.c | 14 |
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)) { |