Remove SSL_set_fallback_version.

Ding-dong the fallback's dead.
https://mailarchive.ietf.org/arch/msg/tls/xfCh7D7hISFs5x-eA0xHwksoLrc

Also we'll need to tweak the versioning code slightly to implement
supported_versions and it's nice to have this out of the way.

Change-Id: I0961e19ea56b4afd828f6f48858ac6310129503d
Reviewed-on: https://boringssl-review.googlesource.com/11120
Reviewed-by: David Benjamin <davidben@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c
index 1e1f752..aa03999 100644
--- a/ssl/ssl_lib.c
+++ b/ssl/ssl_lib.c
@@ -965,10 +965,6 @@
   ssl->max_version = ssl->method->version_from_wire(version);
 }
 
-void SSL_set_fallback_version(SSL *ssl, uint16_t version) {
-  ssl->fallback_version = ssl->method->version_from_wire(version);
-}
-
 uint32_t SSL_CTX_set_options(SSL_CTX *ctx, uint32_t options) {
   ctx->options |= options;
   return ctx->options;
@@ -2682,9 +2678,8 @@
 
 static const size_t kVersionsLen = OPENSSL_ARRAY_SIZE(kVersions);
 
-int ssl_get_full_version_range(const SSL *ssl, uint16_t *out_min_version,
-                               uint16_t *out_fallback_version,
-                               uint16_t *out_max_version) {
+int ssl_get_version_range(const SSL *ssl, uint16_t *out_min_version,
+                          uint16_t *out_max_version) {
   /* For historical reasons, |SSL_OP_NO_DTLSv1| aliases |SSL_OP_NO_TLSv1|, but
    * DTLS 1.0 should be mapped to TLS 1.1. */
   uint32_t options = ssl->options;
@@ -2743,32 +2738,16 @@
     }
   }
 
-  uint16_t fallback_version = max_version;
-  if (ssl->fallback_version != 0 && ssl->fallback_version < fallback_version) {
-    fallback_version = ssl->fallback_version;
-  }
-
-  if (!any_enabled || fallback_version < min_version) {
+  if (!any_enabled) {
     OPENSSL_PUT_ERROR(SSL, SSL_R_WRONG_SSL_VERSION);
     return 0;
   }
 
   *out_min_version = min_version;
-  *out_fallback_version = fallback_version;
   *out_max_version = max_version;
   return 1;
 }
 
-int ssl_get_version_range(const SSL *ssl, uint16_t *out_min_version,
-                          uint16_t *out_effective_max_version) {
-  /* This function returns the effective maximum version and not the fallback
-   * version. */
-  uint16_t real_max_version_unused;
-  return ssl_get_full_version_range(ssl, out_min_version,
-                                    out_effective_max_version,
-                                    &real_max_version_unused);
-}
-
 uint16_t ssl3_protocol_version(const SSL *ssl) {
   assert(ssl->s3->have_version);
   return ssl->method->version_from_wire(ssl->version);