mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 10:59:27 +00:00
deps: update nghttp2 to 1.59.0
PR-URL: https://github.com/nodejs/node/pull/51581 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
This commit is contained in:
parent
d1114c485d
commit
68885d5126
2
deps/nghttp2/lib/CMakeLists.txt
vendored
2
deps/nghttp2/lib/CMakeLists.txt
vendored
@ -14,7 +14,7 @@ set(NGHTTP2_SOURCES
|
||||
nghttp2_stream.c nghttp2_outbound_item.c
|
||||
nghttp2_session.c nghttp2_submit.c
|
||||
nghttp2_helper.c
|
||||
nghttp2_npn.c
|
||||
nghttp2_alpn.c
|
||||
nghttp2_hd.c nghttp2_hd_huffman.c nghttp2_hd_huffman_data.c
|
||||
nghttp2_version.c
|
||||
nghttp2_priority_spec.c
|
||||
|
4
deps/nghttp2/lib/Makefile.am
vendored
4
deps/nghttp2/lib/Makefile.am
vendored
@ -41,7 +41,7 @@ OBJECTS = nghttp2_pq.c nghttp2_map.c nghttp2_queue.c \
|
||||
nghttp2_stream.c nghttp2_outbound_item.c \
|
||||
nghttp2_session.c nghttp2_submit.c \
|
||||
nghttp2_helper.c \
|
||||
nghttp2_npn.c \
|
||||
nghttp2_alpn.c \
|
||||
nghttp2_hd.c nghttp2_hd_huffman.c nghttp2_hd_huffman_data.c \
|
||||
nghttp2_version.c \
|
||||
nghttp2_priority_spec.c \
|
||||
@ -60,7 +60,7 @@ HFILES = nghttp2_pq.h nghttp2_int.h nghttp2_map.h nghttp2_queue.h \
|
||||
nghttp2_frame.h \
|
||||
nghttp2_buf.h \
|
||||
nghttp2_session.h nghttp2_helper.h nghttp2_stream.h nghttp2_int.h \
|
||||
nghttp2_npn.h \
|
||||
nghttp2_alpn.h \
|
||||
nghttp2_submit.h nghttp2_outbound_item.h \
|
||||
nghttp2_net.h \
|
||||
nghttp2_hd.h nghttp2_hd_huffman.h \
|
||||
|
22
deps/nghttp2/lib/Makefile.in
vendored
22
deps/nghttp2/lib/Makefile.in
vendored
@ -153,7 +153,7 @@ am__objects_1 =
|
||||
am__objects_2 = nghttp2_pq.lo nghttp2_map.lo nghttp2_queue.lo \
|
||||
nghttp2_frame.lo nghttp2_buf.lo nghttp2_stream.lo \
|
||||
nghttp2_outbound_item.lo nghttp2_session.lo nghttp2_submit.lo \
|
||||
nghttp2_helper.lo nghttp2_npn.lo nghttp2_hd.lo \
|
||||
nghttp2_helper.lo nghttp2_alpn.lo nghttp2_hd.lo \
|
||||
nghttp2_hd_huffman.lo nghttp2_hd_huffman_data.lo \
|
||||
nghttp2_version.lo nghttp2_priority_spec.lo nghttp2_option.lo \
|
||||
nghttp2_callbacks.lo nghttp2_mem.lo nghttp2_http.lo \
|
||||
@ -183,15 +183,15 @@ am__v_at_1 =
|
||||
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__maybe_remake_depfiles = depfiles
|
||||
am__depfiles_remade = ./$(DEPDIR)/nghttp2_buf.Plo \
|
||||
./$(DEPDIR)/nghttp2_callbacks.Plo \
|
||||
am__depfiles_remade = ./$(DEPDIR)/nghttp2_alpn.Plo \
|
||||
./$(DEPDIR)/nghttp2_buf.Plo ./$(DEPDIR)/nghttp2_callbacks.Plo \
|
||||
./$(DEPDIR)/nghttp2_debug.Plo ./$(DEPDIR)/nghttp2_extpri.Plo \
|
||||
./$(DEPDIR)/nghttp2_frame.Plo ./$(DEPDIR)/nghttp2_hd.Plo \
|
||||
./$(DEPDIR)/nghttp2_hd_huffman.Plo \
|
||||
./$(DEPDIR)/nghttp2_hd_huffman_data.Plo \
|
||||
./$(DEPDIR)/nghttp2_helper.Plo ./$(DEPDIR)/nghttp2_http.Plo \
|
||||
./$(DEPDIR)/nghttp2_map.Plo ./$(DEPDIR)/nghttp2_mem.Plo \
|
||||
./$(DEPDIR)/nghttp2_npn.Plo ./$(DEPDIR)/nghttp2_option.Plo \
|
||||
./$(DEPDIR)/nghttp2_option.Plo \
|
||||
./$(DEPDIR)/nghttp2_outbound_item.Plo \
|
||||
./$(DEPDIR)/nghttp2_pq.Plo \
|
||||
./$(DEPDIR)/nghttp2_priority_spec.Plo \
|
||||
@ -502,7 +502,7 @@ OBJECTS = nghttp2_pq.c nghttp2_map.c nghttp2_queue.c \
|
||||
nghttp2_stream.c nghttp2_outbound_item.c \
|
||||
nghttp2_session.c nghttp2_submit.c \
|
||||
nghttp2_helper.c \
|
||||
nghttp2_npn.c \
|
||||
nghttp2_alpn.c \
|
||||
nghttp2_hd.c nghttp2_hd_huffman.c nghttp2_hd_huffman_data.c \
|
||||
nghttp2_version.c \
|
||||
nghttp2_priority_spec.c \
|
||||
@ -521,7 +521,7 @@ HFILES = nghttp2_pq.h nghttp2_int.h nghttp2_map.h nghttp2_queue.h \
|
||||
nghttp2_frame.h \
|
||||
nghttp2_buf.h \
|
||||
nghttp2_session.h nghttp2_helper.h nghttp2_stream.h nghttp2_int.h \
|
||||
nghttp2_npn.h \
|
||||
nghttp2_alpn.h \
|
||||
nghttp2_submit.h nghttp2_outbound_item.h \
|
||||
nghttp2_net.h \
|
||||
nghttp2_hd.h nghttp2_hd_huffman.h \
|
||||
@ -621,6 +621,7 @@ mostlyclean-compile:
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nghttp2_alpn.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nghttp2_buf.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nghttp2_callbacks.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nghttp2_debug.Plo@am__quote@ # am--include-marker
|
||||
@ -633,7 +634,6 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nghttp2_http.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nghttp2_map.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nghttp2_mem.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nghttp2_npn.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nghttp2_option.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nghttp2_outbound_item.Plo@am__quote@ # am--include-marker
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nghttp2_pq.Plo@am__quote@ # am--include-marker
|
||||
@ -906,7 +906,8 @@ clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
|
||||
mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -f ./$(DEPDIR)/nghttp2_buf.Plo
|
||||
-rm -f ./$(DEPDIR)/nghttp2_alpn.Plo
|
||||
-rm -f ./$(DEPDIR)/nghttp2_buf.Plo
|
||||
-rm -f ./$(DEPDIR)/nghttp2_callbacks.Plo
|
||||
-rm -f ./$(DEPDIR)/nghttp2_debug.Plo
|
||||
-rm -f ./$(DEPDIR)/nghttp2_extpri.Plo
|
||||
@ -918,7 +919,6 @@ distclean: distclean-recursive
|
||||
-rm -f ./$(DEPDIR)/nghttp2_http.Plo
|
||||
-rm -f ./$(DEPDIR)/nghttp2_map.Plo
|
||||
-rm -f ./$(DEPDIR)/nghttp2_mem.Plo
|
||||
-rm -f ./$(DEPDIR)/nghttp2_npn.Plo
|
||||
-rm -f ./$(DEPDIR)/nghttp2_option.Plo
|
||||
-rm -f ./$(DEPDIR)/nghttp2_outbound_item.Plo
|
||||
-rm -f ./$(DEPDIR)/nghttp2_pq.Plo
|
||||
@ -977,7 +977,8 @@ install-ps-am:
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
-rm -f ./$(DEPDIR)/nghttp2_buf.Plo
|
||||
-rm -f ./$(DEPDIR)/nghttp2_alpn.Plo
|
||||
-rm -f ./$(DEPDIR)/nghttp2_buf.Plo
|
||||
-rm -f ./$(DEPDIR)/nghttp2_callbacks.Plo
|
||||
-rm -f ./$(DEPDIR)/nghttp2_debug.Plo
|
||||
-rm -f ./$(DEPDIR)/nghttp2_extpri.Plo
|
||||
@ -989,7 +990,6 @@ maintainer-clean: maintainer-clean-recursive
|
||||
-rm -f ./$(DEPDIR)/nghttp2_http.Plo
|
||||
-rm -f ./$(DEPDIR)/nghttp2_map.Plo
|
||||
-rm -f ./$(DEPDIR)/nghttp2_mem.Plo
|
||||
-rm -f ./$(DEPDIR)/nghttp2_npn.Plo
|
||||
-rm -f ./$(DEPDIR)/nghttp2_option.Plo
|
||||
-rm -f ./$(DEPDIR)/nghttp2_outbound_item.Plo
|
||||
-rm -f ./$(DEPDIR)/nghttp2_pq.Plo
|
||||
|
2
deps/nghttp2/lib/Makefile.msvc
vendored
2
deps/nghttp2/lib/Makefile.msvc
vendored
@ -74,7 +74,7 @@ NGHTTP2_SRC := nghttp2_pq.c \
|
||||
nghttp2_session.c \
|
||||
nghttp2_submit.c \
|
||||
nghttp2_helper.c \
|
||||
nghttp2_npn.c \
|
||||
nghttp2_alpn.c \
|
||||
nghttp2_hd.c \
|
||||
nghttp2_hd_huffman.c \
|
||||
nghttp2_hd_huffman_data.c \
|
||||
|
137
deps/nghttp2/lib/includes/nghttp2/nghttp2.h
vendored
137
deps/nghttp2/lib/includes/nghttp2/nghttp2.h
vendored
@ -1997,7 +1997,7 @@ typedef int (*nghttp2_on_extension_chunk_recv_callback)(
|
||||
* ``NULL``. The |*payload| is available as ``frame->ext.payload`` in
|
||||
* :type:`nghttp2_on_frame_recv_callback`. Therefore if application
|
||||
* can free that memory inside :type:`nghttp2_on_frame_recv_callback`
|
||||
* callback. Of course, application has a liberty not ot use
|
||||
* callback. Of course, application has a liberty not to use
|
||||
* |*payload|, and do its own mechanism to process extension frames.
|
||||
*
|
||||
* To abort processing this extension frame, return
|
||||
@ -4958,6 +4958,55 @@ NGHTTP2_EXTERN int nghttp2_session_change_extpri_stream_priority(
|
||||
nghttp2_session *session, int32_t stream_id, const nghttp2_extpri *extpri,
|
||||
int ignore_client_signal);
|
||||
|
||||
/**
|
||||
* @function
|
||||
*
|
||||
* Stores the stream priority of the existing stream denoted by
|
||||
* |stream_id| in the object pointed by |extpri|. This function is
|
||||
* meant to be used by server for :rfc:`9218` extensible
|
||||
* prioritization scheme.
|
||||
*
|
||||
* If |session| is initialized as client, this function returns
|
||||
* :enum:`nghttp2_error.NGHTTP2_ERR_INVALID_STATE`.
|
||||
*
|
||||
* If
|
||||
* :enum:`nghttp2_settings_id.NGHTTP2_SETTINGS_NO_RFC7540_PRIORITIES`
|
||||
* of value of 1 is not submitted via `nghttp2_submit_settings()`,
|
||||
* this function does nothing and returns 0.
|
||||
*
|
||||
* This function returns 0 if it succeeds, or one of the following
|
||||
* negative error codes:
|
||||
*
|
||||
* :enum:`nghttp2_error.NGHTTP2_ERR_INVALID_STATE`
|
||||
* The |session| is initialized as client.
|
||||
* :enum:`nghttp2_error.NGHTTP2_ERR_INVALID_ARGUMENT`
|
||||
* |stream_id| is zero; or a stream denoted by |stream_id| is not
|
||||
* found.
|
||||
*/
|
||||
NGHTTP2_EXTERN int nghttp2_session_get_extpri_stream_priority(
|
||||
nghttp2_session *session, nghttp2_extpri *extpri, int32_t stream_id);
|
||||
|
||||
/**
|
||||
* @function
|
||||
*
|
||||
* Parses Priority header field value pointed by |value| of length
|
||||
* |len|, and stores the result in the object pointed by |extpri|.
|
||||
* Priority header field is defined in :rfc:`9218`.
|
||||
*
|
||||
* This function does not initialize the object pointed by |extpri|
|
||||
* before storing the result. It only assigns the values that the
|
||||
* parser correctly extracted to fields.
|
||||
*
|
||||
* This function returns 0 if it succeeds, or one of the following
|
||||
* negative error codes:
|
||||
*
|
||||
* :enum:`nghttp2_error.NGHTTP2_ERR_INVALID_ARGUMENT`
|
||||
* Failed to parse the header field value.
|
||||
*/
|
||||
NGHTTP2_EXTERN int nghttp2_extpri_parse_priority(nghttp2_extpri *extpri,
|
||||
const uint8_t *value,
|
||||
size_t len);
|
||||
|
||||
/**
|
||||
* @function
|
||||
*
|
||||
@ -4973,11 +5022,14 @@ NGHTTP2_EXTERN int nghttp2_nv_compare_name(const nghttp2_nv *lhs,
|
||||
/**
|
||||
* @function
|
||||
*
|
||||
* A helper function for dealing with NPN in client side or ALPN in
|
||||
* server side. The |in| contains peer's protocol list in preferable
|
||||
* order. The format of |in| is length-prefixed and not
|
||||
* null-terminated. For example, ``h2`` and
|
||||
* ``http/1.1`` stored in |in| like this::
|
||||
* .. warning::
|
||||
*
|
||||
* Deprecated. Use `nghttp2_select_alpn` instead.
|
||||
*
|
||||
* A helper function for dealing with ALPN in server side. The |in|
|
||||
* contains peer's protocol list in preferable order. The format of
|
||||
* |in| is length-prefixed and not null-terminated. For example,
|
||||
* ``h2`` and ``http/1.1`` stored in |in| like this::
|
||||
*
|
||||
* in[0] = 2
|
||||
* in[1..2] = "h2"
|
||||
@ -5002,20 +5054,18 @@ NGHTTP2_EXTERN int nghttp2_nv_compare_name(const nghttp2_nv *lhs,
|
||||
*
|
||||
* For ALPN, refer to https://tools.ietf.org/html/rfc7301
|
||||
*
|
||||
* See http://technotes.googlecode.com/git/nextprotoneg.html for more
|
||||
* details about NPN.
|
||||
* To use this method you should do something like::
|
||||
*
|
||||
* For NPN, to use this method you should do something like::
|
||||
*
|
||||
* static int select_next_proto_cb(SSL* ssl,
|
||||
* unsigned char **out,
|
||||
* static int alpn_select_proto_cb(SSL* ssl,
|
||||
* const unsigned char **out,
|
||||
* unsigned char *outlen,
|
||||
* const unsigned char *in,
|
||||
* unsigned int inlen,
|
||||
* void *arg)
|
||||
* {
|
||||
* int rv;
|
||||
* rv = nghttp2_select_next_protocol(out, outlen, in, inlen);
|
||||
* rv = nghttp2_select_next_protocol((unsigned char**)out, outlen,
|
||||
* in, inlen);
|
||||
* if (rv == -1) {
|
||||
* return SSL_TLSEXT_ERR_NOACK;
|
||||
* }
|
||||
@ -5025,7 +5075,7 @@ NGHTTP2_EXTERN int nghttp2_nv_compare_name(const nghttp2_nv *lhs,
|
||||
* return SSL_TLSEXT_ERR_OK;
|
||||
* }
|
||||
* ...
|
||||
* SSL_CTX_set_next_proto_select_cb(ssl_ctx, select_next_proto_cb, my_obj);
|
||||
* SSL_CTX_set_alpn_select_cb(ssl_ctx, alpn_select_proto_cb, my_obj);
|
||||
*
|
||||
*/
|
||||
NGHTTP2_EXTERN int nghttp2_select_next_protocol(unsigned char **out,
|
||||
@ -5033,6 +5083,65 @@ NGHTTP2_EXTERN int nghttp2_select_next_protocol(unsigned char **out,
|
||||
const unsigned char *in,
|
||||
unsigned int inlen);
|
||||
|
||||
/**
|
||||
* @function
|
||||
*
|
||||
* A helper function for dealing with ALPN in server side. The |in|
|
||||
* contains peer's protocol list in preferable order. The format of
|
||||
* |in| is length-prefixed and not null-terminated. For example,
|
||||
* ``h2`` and ``http/1.1`` stored in |in| like this::
|
||||
*
|
||||
* in[0] = 2
|
||||
* in[1..2] = "h2"
|
||||
* in[3] = 8
|
||||
* in[4..11] = "http/1.1"
|
||||
* inlen = 12
|
||||
*
|
||||
* The selection algorithm is as follows:
|
||||
*
|
||||
* 1. If peer's list contains HTTP/2 protocol the library supports,
|
||||
* it is selected and returns 1. The following step is not taken.
|
||||
*
|
||||
* 2. If peer's list contains ``http/1.1``, this function selects
|
||||
* ``http/1.1`` and returns 0. The following step is not taken.
|
||||
*
|
||||
* 3. This function selects nothing and returns -1 (So called
|
||||
* non-overlap case). In this case, |out| and |outlen| are left
|
||||
* untouched.
|
||||
*
|
||||
* Selecting ``h2`` means that ``h2`` is written into |*out| and its
|
||||
* length (which is 2) is assigned to |*outlen|.
|
||||
*
|
||||
* For ALPN, refer to https://tools.ietf.org/html/rfc7301
|
||||
*
|
||||
* To use this method you should do something like::
|
||||
*
|
||||
* static int alpn_select_proto_cb(SSL* ssl,
|
||||
* const unsigned char **out,
|
||||
* unsigned char *outlen,
|
||||
* const unsigned char *in,
|
||||
* unsigned int inlen,
|
||||
* void *arg)
|
||||
* {
|
||||
* int rv;
|
||||
* rv = nghttp2_select_alpn(out, outlen, in, inlen);
|
||||
* if (rv == -1) {
|
||||
* return SSL_TLSEXT_ERR_NOACK;
|
||||
* }
|
||||
* if (rv == 1) {
|
||||
* ((MyType*)arg)->http2_selected = 1;
|
||||
* }
|
||||
* return SSL_TLSEXT_ERR_OK;
|
||||
* }
|
||||
* ...
|
||||
* SSL_CTX_set_alpn_select_cb(ssl_ctx, alpn_select_proto_cb, my_obj);
|
||||
*
|
||||
*/
|
||||
NGHTTP2_EXTERN int nghttp2_select_alpn(const unsigned char **out,
|
||||
unsigned char *outlen,
|
||||
const unsigned char *in,
|
||||
unsigned int inlen);
|
||||
|
||||
/**
|
||||
* @function
|
||||
*
|
||||
|
@ -29,7 +29,7 @@
|
||||
* @macro
|
||||
* Version number of the nghttp2 library release
|
||||
*/
|
||||
#define NGHTTP2_VERSION "1.58.0"
|
||||
#define NGHTTP2_VERSION "1.59.0"
|
||||
|
||||
/**
|
||||
* @macro
|
||||
@ -37,6 +37,6 @@
|
||||
* release. This is a 24 bit number with 8 bits for major number, 8 bits
|
||||
* for minor and 8 bits for patch. Version 1.2.3 becomes 0x010203.
|
||||
*/
|
||||
#define NGHTTP2_VERSION_NUM 0x013a00
|
||||
#define NGHTTP2_VERSION_NUM 0x013b00
|
||||
|
||||
#endif /* NGHTTP2VER_H */
|
||||
|
@ -22,13 +22,13 @@
|
||||
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
#include "nghttp2_npn.h"
|
||||
#include "nghttp2_alpn.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
static int select_next_protocol(unsigned char **out, unsigned char *outlen,
|
||||
const unsigned char *in, unsigned int inlen,
|
||||
const char *key, unsigned int keylen) {
|
||||
static int select_alpn(const unsigned char **out, unsigned char *outlen,
|
||||
const unsigned char *in, unsigned int inlen,
|
||||
const char *key, unsigned int keylen) {
|
||||
unsigned int i;
|
||||
for (i = 0; i + keylen <= inlen; i += (unsigned int)(in[i] + 1)) {
|
||||
if (memcmp(&in[i], key, keylen) == 0) {
|
||||
@ -45,12 +45,25 @@ static int select_next_protocol(unsigned char **out, unsigned char *outlen,
|
||||
|
||||
int nghttp2_select_next_protocol(unsigned char **out, unsigned char *outlen,
|
||||
const unsigned char *in, unsigned int inlen) {
|
||||
if (select_next_protocol(out, outlen, in, inlen, NGHTTP2_PROTO_ALPN,
|
||||
NGHTTP2_PROTO_ALPN_LEN) == 0) {
|
||||
if (select_alpn((const unsigned char **)out, outlen, in, inlen,
|
||||
NGHTTP2_PROTO_ALPN, NGHTTP2_PROTO_ALPN_LEN) == 0) {
|
||||
return 1;
|
||||
}
|
||||
if (select_next_protocol(out, outlen, in, inlen, NGHTTP2_HTTP_1_1_ALPN,
|
||||
NGHTTP2_HTTP_1_1_ALPN_LEN) == 0) {
|
||||
if (select_alpn((const unsigned char **)out, outlen, in, inlen,
|
||||
NGHTTP2_HTTP_1_1_ALPN, NGHTTP2_HTTP_1_1_ALPN_LEN) == 0) {
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
int nghttp2_select_alpn(const unsigned char **out, unsigned char *outlen,
|
||||
const unsigned char *in, unsigned int inlen) {
|
||||
if (select_alpn(out, outlen, in, inlen, NGHTTP2_PROTO_ALPN,
|
||||
NGHTTP2_PROTO_ALPN_LEN) == 0) {
|
||||
return 1;
|
||||
}
|
||||
if (select_alpn(out, outlen, in, inlen, NGHTTP2_HTTP_1_1_ALPN,
|
||||
NGHTTP2_HTTP_1_1_ALPN_LEN) == 0) {
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
@ -22,8 +22,8 @@
|
||||
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
#ifndef NGHTTP2_NPN_H
|
||||
#define NGHTTP2_NPN_H
|
||||
#ifndef NGHTTP2_ALPN_H
|
||||
#define NGHTTP2_ALPN_H
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
@ -31,4 +31,4 @@
|
||||
|
||||
#include <nghttp2/nghttp2.h>
|
||||
|
||||
#endif /* NGHTTP2_NPN_H */
|
||||
#endif /* NGHTTP2_ALPN_H */
|
6
deps/nghttp2/lib/nghttp2_extpri.c
vendored
6
deps/nghttp2/lib/nghttp2_extpri.c
vendored
@ -24,6 +24,7 @@
|
||||
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
#include "nghttp2_extpri.h"
|
||||
#include "nghttp2_http.h"
|
||||
|
||||
uint8_t nghttp2_extpri_to_uint8(const nghttp2_extpri *extpri) {
|
||||
return (uint8_t)((uint32_t)extpri->inc << 7 | extpri->urgency);
|
||||
@ -33,3 +34,8 @@ void nghttp2_extpri_from_uint8(nghttp2_extpri *extpri, uint8_t u8extpri) {
|
||||
extpri->urgency = nghttp2_extpri_uint8_urgency(u8extpri);
|
||||
extpri->inc = nghttp2_extpri_uint8_inc(u8extpri);
|
||||
}
|
||||
|
||||
int nghttp2_extpri_parse_priority(nghttp2_extpri *extpri, const uint8_t *value,
|
||||
size_t len) {
|
||||
return nghttp2_http_parse_priority(extpri, value, len);
|
||||
}
|
||||
|
29
deps/nghttp2/lib/nghttp2_session.c
vendored
29
deps/nghttp2/lib/nghttp2_session.c
vendored
@ -3302,7 +3302,7 @@ static ssize_t nghttp2_session_mem_send_internal(nghttp2_session *session,
|
||||
}
|
||||
|
||||
if (rv == NGHTTP2_ERR_HEADER_COMP) {
|
||||
/* If header compression error occurred, should terminiate
|
||||
/* If header compression error occurred, should terminate
|
||||
connection. */
|
||||
rv = nghttp2_session_terminate_session(session,
|
||||
NGHTTP2_INTERNAL_ERROR);
|
||||
@ -8366,3 +8366,30 @@ int nghttp2_session_change_extpri_stream_priority(
|
||||
return session_update_stream_priority(session, stream,
|
||||
nghttp2_extpri_to_uint8(&extpri));
|
||||
}
|
||||
|
||||
int nghttp2_session_get_extpri_stream_priority(nghttp2_session *session,
|
||||
nghttp2_extpri *extpri,
|
||||
int32_t stream_id) {
|
||||
nghttp2_stream *stream;
|
||||
|
||||
if (!session->server) {
|
||||
return NGHTTP2_ERR_INVALID_STATE;
|
||||
}
|
||||
|
||||
if (session->pending_no_rfc7540_priorities != 1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (stream_id == 0) {
|
||||
return NGHTTP2_ERR_INVALID_ARGUMENT;
|
||||
}
|
||||
|
||||
stream = nghttp2_session_get_stream_raw(session, stream_id);
|
||||
if (!stream) {
|
||||
return NGHTTP2_ERR_INVALID_ARGUMENT;
|
||||
}
|
||||
|
||||
nghttp2_extpri_from_uint8(extpri, stream->extpri);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
19
deps/nghttp2/lib/nghttp2_time.c
vendored
19
deps/nghttp2/lib/nghttp2_time.c
vendored
@ -24,13 +24,11 @@
|
||||
*/
|
||||
#include "nghttp2_time.h"
|
||||
|
||||
#ifdef HAVE_TIME_H
|
||||
# include <time.h>
|
||||
#endif /* HAVE_TIME_H */
|
||||
#ifdef HAVE_WINDOWS_H
|
||||
# include <windows.h>
|
||||
#endif /* HAVE_WINDOWS_H */
|
||||
|
||||
#ifdef HAVE_SYSINFOAPI_H
|
||||
# include <sysinfoapi.h>
|
||||
#endif /* HAVE_SYSINFOAPI_H */
|
||||
#include <time.h>
|
||||
|
||||
#if !defined(HAVE_GETTICKCOUNT64) || defined(__CYGWIN__)
|
||||
static uint64_t time_now_sec(void) {
|
||||
@ -46,7 +44,8 @@ static uint64_t time_now_sec(void) {
|
||||
|
||||
#if defined(HAVE_GETTICKCOUNT64) && !defined(__CYGWIN__)
|
||||
uint64_t nghttp2_time_now_sec(void) { return GetTickCount64() / 1000; }
|
||||
#elif defined(HAVE_CLOCK_GETTIME)
|
||||
#elif defined(HAVE_CLOCK_GETTIME) && defined(HAVE_DECL_CLOCK_MONOTONIC) && \
|
||||
HAVE_DECL_CLOCK_MONOTONIC
|
||||
uint64_t nghttp2_time_now_sec(void) {
|
||||
struct timespec tp;
|
||||
int rv = clock_gettime(CLOCK_MONOTONIC, &tp);
|
||||
@ -57,6 +56,8 @@ uint64_t nghttp2_time_now_sec(void) {
|
||||
|
||||
return (uint64_t)tp.tv_sec;
|
||||
}
|
||||
#else /* (!HAVE_CLOCK_GETTIME || __CYGWIN__) && !HAVE_GETTICKCOUNT64 */
|
||||
#else /* (!HAVE_CLOCK_GETTIME || !HAVE_DECL_CLOCK_MONOTONIC) && \
|
||||
(!HAVE_GETTICKCOUNT64 || __CYGWIN__)) */
|
||||
uint64_t nghttp2_time_now_sec(void) { return time_now_sec(); }
|
||||
#endif /* (!HAVE_CLOCK_GETTIME || __CYGWIN__) && !HAVE_GETTICKCOUNT64 */
|
||||
#endif /* (!HAVE_CLOCK_GETTIME || !HAVE_DECL_CLOCK_MONOTONIC) && \
|
||||
(!HAVE_GETTICKCOUNT64 || __CYGWIN__)) */
|
||||
|
2
deps/nghttp2/nghttp2.gyp
vendored
2
deps/nghttp2/nghttp2.gyp
vendored
@ -13,7 +13,7 @@
|
||||
'lib/nghttp2_http.c',
|
||||
'lib/nghttp2_map.c',
|
||||
'lib/nghttp2_mem.c',
|
||||
'lib/nghttp2_npn.c',
|
||||
'lib/nghttp2_alpn.c',
|
||||
'lib/nghttp2_option.c',
|
||||
'lib/nghttp2_outbound_item.c',
|
||||
'lib/nghttp2_pq.c',
|
||||
|
Loading…
Reference in New Issue
Block a user