From: Martin Willi Date: Tue, 15 Jan 2013 16:36:11 +0000 (+0100) Subject: Send TLS close notify if application returns SUCCESS X-Git-Tag: 5.0.3dr2~21^2~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7bbf7aa97a0acf3d728fe4f1e1518e1854050f90;p=thirdparty%2Fstrongswan.git Send TLS close notify if application returns SUCCESS --- diff --git a/src/libtls/tls_fragmentation.c b/src/libtls/tls_fragmentation.c index c76376b432..6e4347e3cf 100644 --- a/src/libtls/tls_fragmentation.c +++ b/src/libtls/tls_fragmentation.c @@ -223,7 +223,7 @@ static status_t process_application(private_tls_fragmentation_t *this, continue; case SUCCESS: this->application_finished = TRUE; - return SUCCESS; + /* FALL */ case FAILED: default: this->alert->add(this->alert, TLS_FATAL, TLS_CLOSE_NOTIFY); @@ -368,7 +368,7 @@ static status_t build_application(private_tls_fragmentation_t *this) break; case SUCCESS: this->application_finished = TRUE; - break; + /* FALL */ case FAILED: default: this->alert->add(this->alert, TLS_FATAL, TLS_CLOSE_NOTIFY); @@ -391,6 +391,10 @@ METHOD(tls_fragmentation_t, build, status_t, this->state = ALERT_SENT; return INVALID_STATE; case ALERT_SENT: + if (this->application_finished) + { + return SUCCESS; + } return FAILED; case ALERT_NONE: break;