comparison src/http/ngx_http_request.c @ 7934:61abb35bb8cf

HTTP/2: removed support for NPN. NPN was replaced with ALPN, published as RFC 7301 in July 2014. It used to negotiate SPDY (and, in transition, HTTP/2). NPN supported appeared in OpenSSL 1.0.1. It does not work with TLSv1.3 [1]. ALPN is supported since OpenSSL 1.0.2. The NPN support was dropped in Firefox 53 [2] and Chrome 51 [3]. [1] https://github.com/openssl/openssl/issues/3665. [2] https://bugzilla.mozilla.org/show_bug.cgi?id=1248198 [3] https://www.chromestatus.com/feature/5767920709795840
author Vladimir Homutov <vl@nginx.com>
date Fri, 15 Oct 2021 10:02:15 +0300
parents 7a6afd584eb4
children 65946a191197
comparison
equal deleted inserted replaced
7933:2f443cac3f1e 7934:61abb35bb8cf
804 */ 804 */
805 805
806 c->ssl->no_wait_shutdown = 1; 806 c->ssl->no_wait_shutdown = 1;
807 807
808 #if (NGX_HTTP_V2 \ 808 #if (NGX_HTTP_V2 \
809 && (defined TLSEXT_TYPE_application_layer_protocol_negotiation \ 809 && defined TLSEXT_TYPE_application_layer_protocol_negotiation)
810 || defined TLSEXT_TYPE_next_proto_neg))
811 { 810 {
812 unsigned int len; 811 unsigned int len;
813 const unsigned char *data; 812 const unsigned char *data;
814 ngx_http_connection_t *hc; 813 ngx_http_connection_t *hc;
815 814
816 hc = c->data; 815 hc = c->data;
817 816
818 if (hc->addr_conf->http2) { 817 if (hc->addr_conf->http2) {
819 818
820 #ifdef TLSEXT_TYPE_application_layer_protocol_negotiation
821 SSL_get0_alpn_selected(c->ssl->connection, &data, &len); 819 SSL_get0_alpn_selected(c->ssl->connection, &data, &len);
822
823 #ifdef TLSEXT_TYPE_next_proto_neg
824 if (len == 0) {
825 SSL_get0_next_proto_negotiated(c->ssl->connection, &data, &len);
826 }
827 #endif
828
829 #else /* TLSEXT_TYPE_next_proto_neg */
830 SSL_get0_next_proto_negotiated(c->ssl->connection, &data, &len);
831 #endif
832 820
833 if (len == 2 && data[0] == 'h' && data[1] == '2') { 821 if (len == 2 && data[0] == 'h' && data[1] == '2') {
834 ngx_http_v2_init(c->read); 822 ngx_http_v2_init(c->read);
835 return; 823 return;
836 } 824 }