--- src/ssl_sock.c.orig 2018-08-01 04:59:30.000000000 +1000 +++ src/ssl_sock.c 2018-08-01 05:08:24.000000000 +1000 @@ -1147,7 +1147,7 @@ #endif } -#ifdef OPENSSL_NPN_NEGOTIATED +#if defined(OPENSSL_NPN_NEGOTIATED) && !defined(OPENSSL_NO_NEXTPROTONEG) /* This callback is used so that the server advertises the list of * negociable protocols for NPN. */ @@ -2875,7 +2875,7 @@ SSL_CTX_set_msg_callback(ctx, ssl_sock_msgcbk); #endif -#ifdef OPENSSL_NPN_NEGOTIATED +#if defined(OPENSSL_NPN_NEGOTIATED) && !defined(OPENSSL_NO_NEXTPROTONEG) if (bind_conf->npn_str) SSL_CTX_set_next_protos_advertised_cb(ctx, ssl_sock_advertise_npn_protos, bind_conf); #endif @@ -4891,7 +4891,7 @@ return 1; } -#ifdef OPENSSL_NPN_NEGOTIATED +#if defined(OPENSSL_NPN_NEGOTIATED) && !defined(OPENSSL_NO_NEXTPROTONEG) static int smp_fetch_ssl_fc_npn(const struct arg *args, struct sample *smp, const char *kw, void *private) { @@ -5418,7 +5418,7 @@ /* parse the "npn" bind keyword */ static int bind_parse_npn(char **args, int cur_arg, struct proxy *px, struct bind_conf *conf, char **err) { -#ifdef OPENSSL_NPN_NEGOTIATED +#if defined(OPENSSL_NPN_NEGOTIATED) && !defined(OPENSSL_NO_NEXTPROTONEG) char *p1, *p2; if (!*args[cur_arg + 1]) { @@ -6318,7 +6318,7 @@ { "ssl_fc_has_crt", smp_fetch_ssl_fc_has_crt, 0, NULL, SMP_T_BOOL, SMP_USE_L5CLI }, { "ssl_fc_has_sni", smp_fetch_ssl_fc_has_sni, 0, NULL, SMP_T_BOOL, SMP_USE_L5CLI }, { "ssl_fc_is_resumed", smp_fetch_ssl_fc_is_resumed, 0, NULL, SMP_T_BOOL, SMP_USE_L5CLI }, -#ifdef OPENSSL_NPN_NEGOTIATED +#if defined(OPENSSL_NPN_NEGOTIATED) && !defined(OPENSSL_NO_NEXTPROTONEG) { "ssl_fc_npn", smp_fetch_ssl_fc_npn, 0, NULL, SMP_T_STR, SMP_USE_L5CLI }, #endif #ifdef TLSEXT_TYPE_application_layer_protocol_negotiation