summaryrefslogtreecommitdiffstats
path: root/ssl/d1_lib.c
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2013-04-06 15:50:12 +0100
committerDr. Stephen Henson <steve@openssl.org>2013-04-09 14:02:48 +0100
commitc6913eeb762edffddecaaba5c84909d7a7962927 (patch)
treea57c3c33e23b846852f00ec4681c6fdeccf8ea85 /ssl/d1_lib.c
parent04638f2fc335a6dc2af8e5d556d36e29c261dcd2 (diff)
Dual DTLS version methods.
Add new methods DTLS_*_method() which support both DTLS 1.0 and DTLS 1.2 and pick the highest version the peer supports during negotiation. As with SSL/TLS options can change this behaviour specifically SSL_OP_NO_DTLSv1 and SSL_OP_NO_DTLSv1_2.
Diffstat (limited to 'ssl/d1_lib.c')
-rw-r--r--ssl/d1_lib.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ssl/d1_lib.c b/ssl/d1_lib.c
index b70bce68ad..2b066e0165 100644
--- a/ssl/d1_lib.c
+++ b/ssl/d1_lib.c
@@ -267,6 +267,8 @@ void dtls1_clear(SSL *s)
ssl3_clear(s);
if (s->options & SSL_OP_CISCO_ANYCONNECT)
s->version=DTLS1_BAD_VER;
+ else if (s->method->version == DTLS_ANY_VERSION)
+ s->version=DTLS1_2_VERSION;
else
s->version=s->method->version;
}
@@ -526,5 +528,3 @@ static int dtls1_handshake_write(SSL *s)
{
return dtls1_do_write(s, SSL3_RT_HANDSHAKE);
}
-
-