]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUILD/MINOR: ssl: fix build with non-alpn/non-npn libssl
authorLukas Tribus <lukas@ltri.eu>
Sun, 25 Nov 2018 12:21:27 +0000 (13:21 +0100)
committerWilly Tarreau <w@1wt.eu>
Mon, 26 Nov 2018 07:34:40 +0000 (08:34 +0100)
In commit c7566001 ("MINOR: server: Add "alpn" and "npn" keywords") and
commit 201b9f4e ("MAJOR: connections: Defer mux creation for outgoing
connection if alpn is set"), the build was broken on older OpenSSL
releases.

Move the #ifdef's around so that we build again with older OpenSSL
releases (0.9.8 was tested).

src/backend.c
src/ssl_sock.c

index cdc63c6ad625a38745b467afdaaf93d49ef93f3f..e55d87c346016e0c85bb90920007a2cb59345795 100644 (file)
@@ -1035,7 +1035,7 @@ static void assign_tproxy_address(struct stream *s)
 #endif
 }
 
-#ifdef USE_OPENSSL
+#if defined(USE_OPENSSL) && defined(TLSEXT_TYPE_application_layer_protocol_negotiation)
 /*
  * Pick the right mux once the connection is established, we should now have
  * an alpn if available, so we are now able to choose.
@@ -1259,7 +1259,7 @@ int connect_server(struct stream *s)
                else
                        return SF_ERR_INTERNAL;  /* how did we get there ? */
 
-#ifdef USE_OPENSSL
+#if defined(USE_OPENSSL) && defined(TLSEXT_TYPE_application_layer_protocol_negotiation)
                if (!srv ||
                    ((!(srv->ssl_ctx.alpn_str) && !(srv->ssl_ctx.npn_str)) ||
                    srv->mux_proto))
@@ -1273,7 +1273,7 @@ int connect_server(struct stream *s)
                        if (conn_install_mux_be(srv_conn, srv_cs) < 0)
                                return SF_ERR_INTERNAL;
                }
-#ifdef USE_OPENSSL
+#if defined(USE_OPENSSL) && defined(TLSEXT_TYPE_application_layer_protocol_negotiation)
                else {
                        srv_conn->mux_ctx = s;
                        /* Store the connection into the stream interface,
index c1e2e7b605efcbb899b289aec30b5d9c34bb082b..4fb984f279b849e5aa864d4d3141fb37609ec150 100644 (file)
@@ -4842,9 +4842,9 @@ void ssl_sock_free_srv_ctx(struct server *srv)
        if (srv->ssl_ctx.alpn_str)
                free(srv->ssl_ctx.alpn_str);
 #endif
+#ifdef OPENSSL_NPN_NEGOTIATED
        if (srv->ssl_ctx.npn_str)
                free(srv->ssl_ctx.npn_str);
-#ifdef OPENSSL_NPN_NEGOTIATED
        if (srv->ssl_ctx.ctx)
                SSL_CTX_free(srv->ssl_ctx.ctx);
 #endif