]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUILD: ssl: Allow building against libssl without SSLv3.
authorJérémie Courrèges-Anglas <jca@wxcvbn.org>
Sat, 25 Jul 2015 22:50:52 +0000 (16:50 -0600)
committerWilly Tarreau <w@1wt.eu>
Sun, 26 Jul 2015 06:11:57 +0000 (08:11 +0200)
If SSLv3 is explicitely requested but not available, warn the user and
bail out.

src/ssl_sock.c

index 7f1a07018b28b8c8f172adcfe733d2f43be6275d..2b91eedbe88ff8070fe3bf480a76b587632a1331 100644 (file)
@@ -1937,8 +1937,14 @@ int ssl_sock_prepare_ctx(struct bind_conf *bind_conf, SSL_CTX *ctx, struct proxy
                ssloptions |= SSL_OP_NO_TLSv1_2;
        if (bind_conf->ssl_options & BC_SSL_O_NO_TLS_TICKETS)
                ssloptions |= SSL_OP_NO_TICKET;
-       if (bind_conf->ssl_options & BC_SSL_O_USE_SSLV3)
+       if (bind_conf->ssl_options & BC_SSL_O_USE_SSLV3) {
+#ifndef OPENSSL_NO_SSL3
                SSL_CTX_set_ssl_version(ctx, SSLv3_server_method());
+#else
+               Alert("SSLv3 support requested but unavailable.\n");
+               cfgerr++;
+#endif
+       }
        if (bind_conf->ssl_options & BC_SSL_O_USE_TLSV10)
                SSL_CTX_set_ssl_version(ctx, TLSv1_server_method());
 #if SSL_OP_NO_TLSv1_1
@@ -2305,8 +2311,14 @@ int ssl_sock_prepare_srv_ctx(struct server *srv, struct proxy *curproxy)
                options |= SSL_OP_NO_TLSv1_2;
        if (srv->ssl_ctx.options & SRV_SSL_O_NO_TLS_TICKETS)
                options |= SSL_OP_NO_TICKET;
-       if (srv->ssl_ctx.options & SRV_SSL_O_USE_SSLV3)
+       if (srv->ssl_ctx.options & SRV_SSL_O_USE_SSLV3) {
+#ifndef OPENSSL_NO_SSL3
                SSL_CTX_set_ssl_version(srv->ssl_ctx.ctx, SSLv3_client_method());
+#else
+               Alert("SSLv3 support requested but unavailable.");
+               cfgerr++;
+#endif
+       }
        if (srv->ssl_ctx.options & SRV_SSL_O_USE_TLSV10)
                SSL_CTX_set_ssl_version(srv->ssl_ctx.ctx, TLSv1_client_method());
 #if SSL_OP_NO_TLSv1_1