From a2c12359691943ede12f7f515cbe97af1b193e7b Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Tue, 24 Aug 2010 10:29:54 +0200 Subject: [PATCH] Skip the close notify if application layer completes successfully --- src/libtls/tls_alert.c | 11 +++++++++-- src/libtls/tls_fragmentation.c | 4 ++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/libtls/tls_alert.c b/src/libtls/tls_alert.c index 34f159e77..8a4fa7d77 100644 --- a/src/libtls/tls_alert.c +++ b/src/libtls/tls_alert.c @@ -138,8 +138,15 @@ METHOD(tls_alert_t, get, bool, this->consumed = TRUE; *level = TLS_FATAL; *desc = this->desc; - DBG1(DBG_TLS, "sending fatal TLS alert '%N'", - tls_alert_desc_names, this->desc); + if (this->desc == TLS_CLOSE_NOTIFY) + { + DBG1(DBG_TLS, "sending TLS close notify"); + } + else + { + DBG1(DBG_TLS, "sending fatal TLS alert '%N'", + tls_alert_desc_names, this->desc); + } return TRUE; } else diff --git a/src/libtls/tls_fragmentation.c b/src/libtls/tls_fragmentation.c index b941c97a5..ea5c89769 100644 --- a/src/libtls/tls_fragmentation.c +++ b/src/libtls/tls_fragmentation.c @@ -211,7 +211,7 @@ static status_t process_application(private_tls_fragmentation_t *this, continue; case SUCCESS: this->application_finished = TRUE; - /* FALL */ + return SUCCESS; case FAILED: default: this->alert->add(this->alert, TLS_FATAL, TLS_CLOSE_NOTIFY); @@ -340,7 +340,7 @@ METHOD(tls_fragmentation_t, build, status_t, break; case SUCCESS: this->application_finished = TRUE; - /* FALL */ + return SUCCESS; case FAILED: default: this->alert->add(this->alert, TLS_FATAL,