Adapt version-handling functions to DTLS
diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index 0b8b0d0..13b7115 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -3600,6 +3600,13 @@
 void ssl_set_transport( ssl_context *ssl, int transport )
 {
     ssl->transport = transport;
+
+    /* DTLS starts with TLS1.1 */
+    if( ssl->min_minor_ver < SSL_MINOR_VERSION_2 )
+        ssl->min_minor_ver = SSL_MINOR_VERSION_2;
+
+    if( ssl->max_minor_ver < SSL_MINOR_VERSION_2 )
+        ssl->max_minor_ver = SSL_MINOR_VERSION_2;
 }
 
 void ssl_set_authmode( ssl_context *ssl, int authmode )
@@ -3964,22 +3971,30 @@
 
 void ssl_set_max_version( ssl_context *ssl, int major, int minor )
 {
-    if( major >= SSL_MIN_MAJOR_VERSION && major <= SSL_MAX_MAJOR_VERSION &&
-        minor >= SSL_MIN_MINOR_VERSION && minor <= SSL_MAX_MINOR_VERSION )
+    if( major < SSL_MIN_MAJOR_VERSION || major > SSL_MAX_MAJOR_VERSION ||
+        minor < SSL_MIN_MINOR_VERSION || minor > SSL_MAX_MINOR_VERSION ||
+        ( ssl->transport == SSL_TRANSPORT_DATAGRAM &&
+          minor < SSL_MINOR_VERSION_2 ) )
     {
-        ssl->max_major_ver = major;
-        ssl->max_minor_ver = minor;
+        return;
     }
+
+    ssl->max_major_ver = major;
+    ssl->max_minor_ver = minor;
 }
 
 void ssl_set_min_version( ssl_context *ssl, int major, int minor )
 {
-    if( major >= SSL_MIN_MAJOR_VERSION && major <= SSL_MAX_MAJOR_VERSION &&
-        minor >= SSL_MIN_MINOR_VERSION && minor <= SSL_MAX_MINOR_VERSION )
+    if( major < SSL_MIN_MAJOR_VERSION || major > SSL_MAX_MAJOR_VERSION ||
+        minor < SSL_MIN_MINOR_VERSION || minor > SSL_MAX_MINOR_VERSION ||
+        ( ssl->transport == SSL_TRANSPORT_DATAGRAM &&
+          minor < SSL_MINOR_VERSION_2 ) )
     {
-        ssl->min_major_ver = major;
-        ssl->min_minor_ver = minor;
+        return;
     }
+
+    ssl->min_major_ver = major;
+    ssl->min_minor_ver = minor;
 }
 
 #if defined(POLARSSL_SSL_MAX_FRAGMENT_LENGTH)
@@ -4067,6 +4082,23 @@
 
 const char *ssl_get_version( const ssl_context *ssl )
 {
+#if defined(POLARSSL_SSL_PROTO_DTLS)
+    if( ssl->transport == SSL_TRANSPORT_DATAGRAM )
+    {
+        switch( ssl->minor_ver )
+        {
+            case SSL_MINOR_VERSION_2:
+                return( "DTLSv1.0" );
+
+            case SSL_MINOR_VERSION_3:
+                return( "DTLSv1.2" );
+
+            default:
+                return( "unknown (DTLS)" );
+        }
+    }
+#endif
+
     switch( ssl->minor_ver )
     {
         case SSL_MINOR_VERSION_0:
@@ -4082,9 +4114,8 @@
             return( "TLSv1.2" );
 
         default:
-            break;
+            return( "unknown" );
     }
-    return( "unknown" );
 }
 
 #if defined(POLARSSL_X509_CRT_PARSE_C)