aboutsummaryrefslogtreecommitdiffstats
path: root/src/tls/tls_channel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tls/tls_channel.cpp')
-rw-r--r--src/tls/tls_channel.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/tls/tls_channel.cpp b/src/tls/tls_channel.cpp
index 024aec099..a2260e448 100644
--- a/src/tls/tls_channel.cpp
+++ b/src/tls/tls_channel.cpp
@@ -175,7 +175,7 @@ size_t Channel::received_data(const byte buf[], size_t buf_size)
if(msg.first == HANDSHAKE_NONE) // no full handshake yet
break;
- process_handshake_msg(msg.first, msg.second);
+ process_handshake_msg(*m_state.get(), msg.first, msg.second);
}
}
else if(rec_type == HEARTBEAT && m_peer_supports_heartbeats)
@@ -383,6 +383,9 @@ void Channel::send_alert(const Alert& alert)
catch(...) { /* swallow it */ }
}
+ if(alert.type() == Alert::NO_RENEGOTIATION)
+ m_state.reset();
+
if(alert.is_fatal() && !m_active_session.empty())
{
m_session_manager.remove_entry(m_active_session);