summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2015-05-23 21:05:19 +0100
committerMatt Caswell <matt@openssl.org>2015-05-24 23:54:12 +0100
commit81fc390fd96ad9fae21cda919513fb696cd24028 (patch)
treeab3ad5de7e908d66c7e45e07f869d5e45f6275fa
parent69567687b0b7ed67831c17a010f4d46dfd059aef (diff)
Set first_packet for TLS clients
Version negotiation was broken (one of the late changes in the review process broke it). The problem is that TLS clients do not set first_packet, whereas TLS/DTLS servers and DTLS clients do. The simple fix is to set first_packet for TLS clients too. Reviewed-by: Kurt Roeckx <kurt@openssl.org>
-rw-r--r--ssl/s3_clnt.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/ssl/s3_clnt.c b/ssl/s3_clnt.c
index ace0838106..f70dce4b0d 100644
--- a/ssl/s3_clnt.c
+++ b/ssl/s3_clnt.c
@@ -947,8 +947,7 @@ int ssl3_get_server_hello(SSL *s)
* Hello verify request and/or server hello version may not match so set
* first packet if we're negotiating version.
*/
- if (SSL_IS_DTLS(s))
- s->first_packet = 1;
+ s->first_packet = 1;
n = s->method->ssl_get_message(s,
SSL3_ST_CR_SRVR_HELLO_A,
@@ -957,8 +956,8 @@ int ssl3_get_server_hello(SSL *s)
if (!ok)
return ((int)n);
+ s->first_packet = 0;
if (SSL_IS_DTLS(s)) {
- s->first_packet = 0;
if (s->s3->tmp.message_type == DTLS1_MT_HELLO_VERIFY_REQUEST) {
if (s->d1->send_cookie == 0) {
s->s3->tmp.reuse_message = 1;