aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlloyd <[email protected]>2011-12-28 13:37:21 +0000
committerlloyd <[email protected]>2011-12-28 13:37:21 +0000
commit9ef53bc0f5d3d503633e8c8335a14c39a149b184 (patch)
treef07853919dd25480814622e8fcff366ed61b351e
parent83ebcf2351b6cf9c8320bbe6fe87e307e40577dc (diff)
We wouldn't send an alert before handshaking was complete because
active == false, which made debugging hard and caused timeouts/hangs in clients if (for instance) a ciphersuite couldn't be negotiated. Always send alerts.
-rw-r--r--src/tls/tls_channel.cpp11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/tls/tls_channel.cpp b/src/tls/tls_channel.cpp
index 8aa52a307..399568a44 100644
--- a/src/tls/tls_channel.cpp
+++ b/src/tls/tls_channel.cpp
@@ -169,15 +169,12 @@ void TLS_Channel::queue_for_sending(const byte buf[], size_t buf_size)
void TLS_Channel::alert(Alert_Level level, Alert_Type alert_code)
{
- if(active && alert_code != NO_ALERT_TYPE)
+ try
{
- try
- {
- writer.alert(level, alert_code);
- writer.flush();
- }
- catch(...) { /* swallow it */ }
+ writer.alert(level, alert_code);
+ writer.flush();
}
+ catch(...) { /* swallow it */ }
if(active && level == FATAL)
{