aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlloyd <[email protected]>2012-08-06 13:00:09 +0000
committerlloyd <[email protected]>2012-08-06 13:00:09 +0000
commitd593fdec5ff25ac09c59830e1853c534e65eb77b (patch)
tree967adc1a82b7cd0abd185e27b6f4c1586582bc41
parentc41ec2821df51fdefcb065a0870921c0027b8982 (diff)
The client wasn't sending a next protocol message on a session
resumption.
-rw-r--r--src/tls/tls_client.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/tls/tls_client.cpp b/src/tls/tls_client.cpp
index 0a0ca0549..6b4561cab 100644
--- a/src/tls/tls_client.cpp
+++ b/src/tls/tls_client.cpp
@@ -484,6 +484,17 @@ void Client::process_handshake_msg(Handshake_Type type,
m_state->session_keys(),
m_state->server_hello()->compression_method());
+ if(m_state->server_hello()->next_protocol_notification())
+ {
+ const std::string protocol =
+ dynamic_cast<Client_Handshake_State&>(*m_state).client_npn_cb(
+ m_state->server_hello()->next_protocols());
+
+ m_state->next_protocol(
+ new Next_Protocol(m_state->handshake_io(), m_state->hash(), protocol)
+ );
+ }
+
m_state->client_finished(
new Finished(m_state->handshake_io(), m_state.get(), CLIENT)
);