diff --git a/apiref.html b/apiref.html index 339bd07e..f0a7d142 100644 --- a/apiref.html +++ b/apiref.html @@ -555,14 +555,14 @@ The GOAWAY frame.

NGHTTP2_WINDOW_UPDATE
-

(9) +

(8) The WINDOW_UPDATE frame.

NGHTTP2_CONTINUATION
-

(10) +

(9) The CONTINUATION frame.

@@ -615,6 +615,27 @@ The END_PUSH_PROMISE flag.

The ACK flag.

+
+
+NGHTTP2_FLAG_END_SEGMENT
+

(0x2) +The END_SEGMENT flag.

+
+ +
+
+NGHTTP2_FLAG_PAD_LOW
+

(0x10) +The PAD_LOW flag.

+
+ +
+
+NGHTTP2_FLAG_PAD_HIGH
+

(0x20) +The PAD_HIGH flag.

+
+
@@ -638,28 +659,21 @@ SETTINGS_ENABLE_PUSH

NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS
-

(4) +

(3) SETTINGS_MAX_CONCURRENT_STREAMS

NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE
-

(7) +

(4) SETTINGS_INITIAL_WINDOW_SIZE

-
-
-NGHTTP2_SETTINGS_FLOW_CONTROL_OPTIONS
-

(10) -SETTINGS_FLOW_CONTROL_OPTIONS

-
-
NGHTTP2_SETTINGS_MAX
-

(10) +

(4) Maximum ID of nghttp2_settings_id.

@@ -749,10 +763,17 @@ CONNECT_ERROR

NGHTTP2_ENHANCE_YOUR_CALM
-

(420) +

(11) ENHANCE_YOUR_CALM

+
+
+NGHTTP2_INADEQUATE_SECURITY
+

(12) +INADEQUATE_SECURITY

+
+
@@ -1015,6 +1036,13 @@ of data from it.

nghttp2_data

The DATA frame. The received data is delivered via nghttp2_on_data_chunk_recv_callback.

+
+
+size_t padlen
+

The length of the padding in this frame. This includes PAD_HIGH +and PAD_LOW.

+
+
@@ -1027,6 +1055,13 @@ of data from it.

The frame header.

+
+
+size_t padlen
+

The length of the padding in this frame. This includes PAD_HIGH +and PAD_LOW.

+
+
nghttp2_nv *nva
@@ -1141,6 +1176,13 @@ size_t niv +
+size_t padlen
+

The length of the padding in this frame. This includes PAD_HIGH +and PAD_LOW.

+
+
nghttp2_nv *nva
@@ -1549,6 +1591,21 @@ the other nonzero value is returned, it is treated as immediately return NGHTTP2_ERR_CALLBACK_FAILURE.

+
+
+typedef ssize_t (*nghttp2_select_padding_callback)(nghttp2_session *session, const nghttp2_frame *frame, size_t max_payloadlen, void *user_data)
+

Callback function invoked when the library asks application how +much padding is required for the transmission of the frame. The +application must choose the total length of payload including +padded bytes in range [frame->hd.length, max_payloadlen], +inclusive. Choosing number not in this range will be treated as +NGHTTP2_ERR_CALLBACK_FAILURE. Returning +frame->hd.length means no padding is added. Returning +NGHTTP2_ERR_CALLBACK_FAILURE will make +nghttp2_session_send() function immediately return +NGHTTP2_ERR_CALLBACK_FAILURE.

+
+
nghttp2_session_callbacks
@@ -1634,6 +1691,13 @@ HEADERS or PUSH_PROMISE is started.

received.

+
+
+nghttp2_select_padding_callback select_padding_callback
+

Callback function invoked when the library asks application how +much padding is required for the transmission of the given frame.

+
+
@@ -1979,8 +2043,6 @@ that and returns effective data length. In particular, if the local window size is reduced by submitting negative window_size_increment with nghttp2_submit_window_update(), this function returns the number of bytes less than actually received.

-

If flow control is disabled for that stream, this function returns -0.

This function returns -1 if it fails.

@@ -2005,8 +2067,6 @@ that and returns effective data length. In particular, if the local window size is reduced by submitting negative window_size_increment with nghttp2_submit_window_update(), this function returns the number of bytes less than actually received.

-

If flow control is disabled for a connection, this function returns -0.

This function returns -1 if it fails.

@@ -2303,8 +2363,8 @@ by the library and application could not send it at its will.

negative error codes:

NGHTTP2_ERR_INVALID_ARGUMENT
-
The iv contains invalid value (e.g., attempting to re-enable -flow control).
+
The iv contains invalid value (e.g., initial window size +strictly greater than (1 << 31) - 1.
NGHTTP2_ERR_NOMEM
Out of memory.
diff --git a/genindex.html b/genindex.html index 1c559eb9..4ae79090 100644 --- a/genindex.html +++ b/genindex.html @@ -201,6 +201,10 @@ +
nghttp2_data.padlen (C member) +
+ +
nghttp2_data_provider (C type)
@@ -377,6 +381,10 @@ +
NGHTTP2_FLAG_END_SEGMENT (C macro) +
+ +
NGHTTP2_FLAG_END_STREAM (C macro)
@@ -385,6 +393,14 @@ +
NGHTTP2_FLAG_PAD_HIGH (C macro) +
+ + +
NGHTTP2_FLAG_PAD_LOW (C macro) +
+ +
NGHTTP2_FLAG_PRIORITY (C macro)
@@ -549,6 +565,10 @@ +
nghttp2_headers.padlen (C member) +
+ +
nghttp2_headers.pri (C member)
@@ -557,6 +577,10 @@ +
NGHTTP2_INADEQUATE_SECURITY (C macro) +
+ +
nghttp2_info (C type)
@@ -616,6 +640,8 @@
nghttp2_nv.name (C member)
+ +
nghttp2_nv.namelen (C member)
@@ -624,8 +650,6 @@
nghttp2_nv.value (C member)
-
-
nghttp2_nv.valuelen (C member)
@@ -775,6 +799,10 @@ +
nghttp2_push_promise.padlen (C member) +
+ +
nghttp2_push_promise.promised_stream_id (C member)
@@ -807,6 +835,10 @@ +
nghttp2_select_padding_callback (C type) +
+ +
nghttp2_send_callback (C type)
@@ -863,6 +895,10 @@ +
nghttp2_session_callbacks.select_padding_callback (C member) +
+ +
nghttp2_session_callbacks.send_callback (C member)
@@ -983,10 +1019,6 @@ -
NGHTTP2_SETTINGS_FLOW_CONTROL_OPTIONS (C macro) -
- -
NGHTTP2_SETTINGS_HEADER_TABLE_SIZE (C macro)
diff --git a/index.html b/index.html index fc827956..fa47adf4 100644 --- a/index.html +++ b/index.html @@ -199,8 +199,8 @@ version 2.0.

Resources

diff --git a/nghttp2.h.html b/nghttp2.h.html index b77bfb63..ba1b5ad2 100644 --- a/nghttp2.h.html +++ b/nghttp2.h.html @@ -190,13 +190,13 @@ * * The protocol version identification of this library supports. */ -#define NGHTTP2_PROTO_VERSION_ID "HTTP-draft-09/2.0" +#define NGHTTP2_PROTO_VERSION_ID "h2-10" /** * @macro * * The length of :macro:`NGHTTP2_PROTO_VERSION_ID`. */ -#define NGHTTP2_PROTO_VERSION_ID_LEN 17 +#define NGHTTP2_PROTO_VERSION_ID_LEN 5 struct nghttp2_session; /** @@ -514,11 +514,11 @@ /** * The WINDOW_UPDATE frame. */ - NGHTTP2_WINDOW_UPDATE = 9, + NGHTTP2_WINDOW_UPDATE = 8, /** * The CONTINUATION frame. */ - NGHTTP2_CONTINUATION = 10 + NGHTTP2_CONTINUATION = 9 } nghttp2_frame_type; /** @@ -551,7 +551,19 @@ /** * The ACK flag. */ - NGHTTP2_FLAG_ACK = 0x1 + NGHTTP2_FLAG_ACK = 0x1, + /** + * The END_SEGMENT flag. + */ + NGHTTP2_FLAG_END_SEGMENT = 0x2, + /** + * The PAD_LOW flag. + */ + NGHTTP2_FLAG_PAD_LOW = 0x10, + /** + * The PAD_HIGH flag. + */ + NGHTTP2_FLAG_PAD_HIGH = 0x20 } nghttp2_flag; /** @@ -570,19 +582,15 @@ /** * SETTINGS_MAX_CONCURRENT_STREAMS */ - NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS = 4, + NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS = 3, /** * SETTINGS_INITIAL_WINDOW_SIZE */ - NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE = 7, - /** - * SETTINGS_FLOW_CONTROL_OPTIONS - */ - NGHTTP2_SETTINGS_FLOW_CONTROL_OPTIONS = 10, + NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE = 4, /** * Maximum ID of :type:`nghttp2_settings_id`. */ - NGHTTP2_SETTINGS_MAX = 10 + NGHTTP2_SETTINGS_MAX = 4 } nghttp2_settings_id; /** @@ -643,7 +651,11 @@ /** * ENHANCE_YOUR_CALM */ - NGHTTP2_ENHANCE_YOUR_CALM = 420 + NGHTTP2_ENHANCE_YOUR_CALM = 11, + /** + * INADEQUATE_SECURITY + */ + NGHTTP2_INADEQUATE_SECURITY = 12 } nghttp2_error_code; /** @@ -737,6 +749,11 @@ */ typedef struct { nghttp2_frame_hd hd; + /** + * The length of the padding in this frame. This includes PAD_HIGH + * and PAD_LOW. + */ + size_t padlen; } nghttp2_data; /** @@ -781,6 +798,11 @@ */ nghttp2_frame_hd hd; /** + * The length of the padding in this frame. This includes PAD_HIGH + * and PAD_LOW. + */ + size_t padlen; + /** * The name/value pairs. */ nghttp2_nv *nva; @@ -872,6 +894,11 @@ */ nghttp2_frame_hd hd; /** + * The length of the padding in this frame. This includes PAD_HIGH + * and PAD_LOW. + */ + size_t padlen; + /** * The name/value pairs. */ nghttp2_nv *nva; @@ -1299,6 +1326,26 @@ const uint8_t *value, size_t valuelen, void *user_data); +/** + * @functypedef + * + * Callback function invoked when the library asks application how + * much padding is required for the transmission of the |frame|. The + * application must choose the total length of payload including + * padded bytes in range [frame->hd.length, max_payloadlen], + * inclusive. Choosing number not in this range will be treated as + * :enum:`NGHTTP2_ERR_CALLBACK_FAILURE`. Returning + * ``frame->hd.length`` means no padding is added. Returning + * :enum:`NGHTTP2_ERR_CALLBACK_FAILURE` will make + * `nghttp2_session_send()` function immediately return + * :enum:`NGHTTP2_ERR_CALLBACK_FAILURE`. + */ +typedef ssize_t (*nghttp2_select_padding_callback) +(nghttp2_session *session, + const nghttp2_frame *frame, + size_t max_payloadlen, + void *user_data); + /** * @struct * @@ -1362,6 +1409,11 @@ * received. */ nghttp2_on_header_callback on_header_callback; + /** + * Callback function invoked when the library asks application how + * much padding is required for the transmission of the given frame. + */ + nghttp2_select_padding_callback select_padding_callback; } nghttp2_session_callbacks; /** @@ -1773,9 +1825,6 @@ * window_size_increment with `nghttp2_submit_window_update()`, this * function returns the number of bytes less than actually received. * - * If flow control is disabled for that stream, this function returns - * 0. - * * This function returns -1 if it fails. */ int32_t nghttp2_session_get_stream_effective_recv_data_length @@ -1806,9 +1855,6 @@ * with `nghttp2_submit_window_update()`, this function returns the * number of bytes less than actually received. * - * If flow control is disabled for a connection, this function returns - * 0. - * * This function returns -1 if it fails. */ int32_t nghttp2_session_get_effective_recv_data_length @@ -2171,8 +2217,8 @@ * negative error codes: * * :enum:`NGHTTP2_ERR_INVALID_ARGUMENT` - * The |iv| contains invalid value (e.g., attempting to re-enable - * flow control). + * The |iv| contains invalid value (e.g., initial window size + * strictly greater than (1 << 31) - 1. * :enum:`NGHTTP2_ERR_NOMEM` * Out of memory. */ diff --git a/objects.inv b/objects.inv index b22b5191..3f7f72f4 100644 Binary files a/objects.inv and b/objects.inv differ diff --git a/package_README.html b/package_README.html index 58a62bab..95df463b 100644 --- a/package_README.html +++ b/package_README.html @@ -152,45 +152,36 @@ version 2.0.

Development Status

-

We started to implement HTTP-draft-09/2.0 -(http://tools.ietf.org/html/draft-ietf-httpbis-http2-09) and the +

We started to implement h2-10 +(http://tools.ietf.org/html/draft-ietf-httpbis-http2-10) and the header compression -(http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-05).

+(http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-06).

The nghttp2 code base was forked from spdylay project.

--++ - + - + - + - + - + - - - - - - - - - - - + +
FeaturesHTTP-draft-09/2.0h2-10
:authority
HPACK-draft-06 Done
HPACK-draft-05
Strict SETTINGS validation Done
SETTINGS_HEADER_TABLE_SIZE
Disallow client to push Done
SETTINGS_ENABLE_PUSH
Padding Done
FRAME_SIZE_ERRORDone
SETTINGS with ACKDone
Header ContinuationDone
ALPNDone
END_SEGMENT 
@@ -198,15 +189,20 @@ header compression

Public Test Server

The following endpoints are available to try out nghttp2 -implementation. These endpoints supports HTTP-draft-09/2.0 and -the earlier draft versions are not supporeted.

+implementation.

@@ -305,19 +301,21 @@ $ make with prior knowledge, HTTP Upgrade and NPN/ALPN TLS extension.

It has verbose output mode for framing information. Here is sample output from nghttp client:

-
$ src/nghttp -vn https://localhost:8443
-[  0.003] NPN select next protocol: the remote server offers:
-          * HTTP-draft-09/2.0
+
$ src/nghttp -nv https://localhost:8443
+[  0.004][NPN] server offers:
+          * h2-10
+          * spdy/3.1
           * spdy/3
           * spdy/2
           * http/1.1
-          NPN selected the protocol: HTTP-draft-09/2.0
-[  0.005] send SETTINGS frame <length=16, flags=0x00, stream_id=0>
+The negotiated protocol: h2-10
+[  0.006] send SETTINGS frame <length=10, flags=0x00, stream_id=0>
           (niv=2)
-          [SETTINGS_MAX_CONCURRENT_STREAMS(4):100]
-          [SETTINGS_INITIAL_WINDOW_SIZE(7):65535]
-[  0.006] send HEADERS frame <length=47, flags=0x05, stream_id=1>
+          [SETTINGS_MAX_CONCURRENT_STREAMS(3):100]
+          [SETTINGS_INITIAL_WINDOW_SIZE(4):65535]
+[  0.007] send HEADERS frame <length=48, flags=0x05, stream_id=1>
           ; END_STREAM | END_HEADERS
+          (padlen=0)
           ; Open new stream
           :authority: localhost:8443
           :method: GET
@@ -325,90 +323,90 @@ output from nghttp cl
           :scheme: https
           accept: */*
           accept-encoding: gzip, deflate
-          user-agent: nghttp2/0.1.0-DEV
-[  0.006] recv SETTINGS frame <length=16, flags=0x00, stream_id=0>
-          (niv=2)
-          [SETTINGS_MAX_CONCURRENT_STREAMS(4):100]
-          [SETTINGS_INITIAL_WINDOW_SIZE(7):65535]
-[  0.006] send SETTINGS frame <length=0, flags=0x01, stream_id=0>
+          user-agent: nghttp2/0.4.0-DEV
+[  0.007] recv SETTINGS frame <length=15, flags=0x00, stream_id=0>
+          (niv=3)
+          [SETTINGS_MAX_CONCURRENT_STREAMS(3):100]
+          [SETTINGS_INITIAL_WINDOW_SIZE(4):65535]
+          [SETTINGS_ENABLE_PUSH(2):0]
+[  0.007] send SETTINGS frame <length=0, flags=0x01, stream_id=0>
           ; ACK
           (niv=0)
-[  0.006] recv WINDOW_UPDATE frame <length=4, flags=0x00, stream_id=0>
-          (window_size_increment=1000000007)
-[  0.006] recv SETTINGS frame <length=0, flags=0x01, stream_id=0>
+[  0.007] recv SETTINGS frame <length=0, flags=0x01, stream_id=0>
           ; ACK
           (niv=0)
-[  0.006] recv HEADERS frame <length=132, flags=0x04, stream_id=1>
+[  0.008] (stream_id=1) :status: 200
+[  0.008] (stream_id=1) accept-ranges: bytes
+[  0.008] (stream_id=1) content-encoding: gzip
+[  0.008] (stream_id=1) content-length: 146
+[  0.008] (stream_id=1) content-type: text/html
+[  0.008] (stream_id=1) date: Sat, 15 Feb 2014 08:14:12 GMT
+[  0.008] (stream_id=1) etag: "b1-4e5535a027780-gzip"
+[  0.008] (stream_id=1) last-modified: Sun, 01 Sep 2013 14:34:22 GMT
+[  0.008] (stream_id=1) server: Apache/2.4.6 (Debian)
+[  0.008] (stream_id=1) vary: Accept-Encoding
+[  0.008] (stream_id=1) via: 1.1 nghttpx
+[  0.008] recv HEADERS frame <length=141, flags=0x04, stream_id=1>
           ; END_HEADERS
+          (padlen=0)
           ; First response header
-          :status: 200
-          accept-ranges: bytes
-          content-encoding: gzip
-          content-length: 146
-          content-type: text/html
-          date: Sun, 27 Oct 2013 14:23:54 GMT
-          etag: "b1-4e5535a027780-gzip"
-          last-modified: Sun, 01 Sep 2013 14:34:22 GMT
-          server: Apache/2.4.6 (Debian)
-          vary: Accept-Encoding
-          via: 1.1 nghttpx
-[  0.006] recv DATA frame <length=146, flags=0x00, stream_id=1>
-[  0.006] recv DATA frame <length=0, flags=0x01, stream_id=1>
+[  0.008] recv DATA frame <length=146, flags=0x00, stream_id=1>
+[  0.008] recv DATA frame <length=0, flags=0x01, stream_id=1>
           ; END_STREAM
-[  0.007] send GOAWAY frame <length=8, flags=0x00, stream_id=0>
+[  0.008] send GOAWAY frame <length=8, flags=0x00, stream_id=0>
           (last_stream_id=0, error_code=NO_ERROR(0), opaque_data(0)=[])

The HTTP Upgrade is performed like this:

-
$ src/nghttp -vnu http://localhost:8080
+
$ src/nghttp -nvu http://localhost:8080
 [  0.000] HTTP Upgrade request
 GET / HTTP/1.1
 Host: localhost:8080
 Connection: Upgrade, HTTP2-Settings
-Upgrade: HTTP-draft-09/2.0
-HTTP2-Settings: AAAABAAAAGQAAAAHAAD__w
+Upgrade: h2-10
+HTTP2-Settings: AwAAAGQEAAD__w
 Accept: */*
-User-Agent: nghttp2/0.1.0-DEV
+User-Agent: nghttp2/0.4.0-DEV
 
 
-[  0.000] HTTP Upgrade response
+[  0.001] HTTP Upgrade response
 HTTP/1.1 101 Switching Protocols
 Connection: Upgrade
-Upgrade: HTTP-draft-09/2.0
+Upgrade: h2-10
 
 
 [  0.001] HTTP Upgrade success
-[  0.001] send SETTINGS frame <length=16, flags=0x00, stream_id=0>
+[  0.001] send SETTINGS frame <length=10, flags=0x00, stream_id=0>
           (niv=2)
-          [SETTINGS_MAX_CONCURRENT_STREAMS(4):100]
-          [SETTINGS_INITIAL_WINDOW_SIZE(7):65535]
-[  0.001] recv SETTINGS frame <length=16, flags=0x00, stream_id=0>
-          (niv=2)
-          [SETTINGS_MAX_CONCURRENT_STREAMS(4):100]
-          [SETTINGS_INITIAL_WINDOW_SIZE(7):65535]
-[  0.001] recv WINDOW_UPDATE frame <length=4, flags=0x00, stream_id=0>
-          (window_size_increment=1000000007)
-[  0.001] recv HEADERS frame <length=121, flags=0x04, stream_id=1>
+          [SETTINGS_MAX_CONCURRENT_STREAMS(3):100]
+          [SETTINGS_INITIAL_WINDOW_SIZE(4):65535]
+[  0.001] recv SETTINGS frame <length=15, flags=0x00, stream_id=0>
+          (niv=3)
+          [SETTINGS_MAX_CONCURRENT_STREAMS(3):100]
+          [SETTINGS_INITIAL_WINDOW_SIZE(4):65535]
+          [SETTINGS_ENABLE_PUSH(2):0]
+[  0.001] (stream_id=1) :status: 200
+[  0.001] (stream_id=1) accept-ranges: bytes
+[  0.001] (stream_id=1) content-length: 177
+[  0.001] (stream_id=1) content-type: text/html
+[  0.001] (stream_id=1) date: Sat, 15 Feb 2014 08:16:23 GMT
+[  0.001] (stream_id=1) etag: "b1-4e5535a027780"
+[  0.001] (stream_id=1) last-modified: Sun, 01 Sep 2013 14:34:22 GMT
+[  0.001] (stream_id=1) server: Apache/2.4.6 (Debian)
+[  0.001] (stream_id=1) vary: Accept-Encoding
+[  0.001] (stream_id=1) via: 1.1 nghttpx
+[  0.001] recv HEADERS frame <length=132, flags=0x04, stream_id=1>
           ; END_HEADERS
+          (padlen=0)
           ; First response header
-          :status: 200
-          accept-ranges: bytes
-          content-length: 177
-          content-type: text/html
-          date: Sun, 27 Oct 2013 14:26:04 GMT
-          etag: "b1-4e5535a027780"
-          last-modified: Sun, 01 Sep 2013 14:34:22 GMT
-          server: Apache/2.4.6 (Debian)
-          vary: Accept-Encoding
-          via: 1.1 nghttpx
 [  0.001] recv DATA frame <length=177, flags=0x00, stream_id=1>
 [  0.001] recv DATA frame <length=0, flags=0x01, stream_id=1>
           ; END_STREAM
-[  0.001] send SETTINGS frame <length=0, flags=0x01, stream_id=0>
+[  0.002] send SETTINGS frame <length=0, flags=0x01, stream_id=0>
           ; ACK
           (niv=0)
-[  0.001] send GOAWAY frame <length=8, flags=0x00, stream_id=0>
+[  0.002] send GOAWAY frame <length=8, flags=0x00, stream_id=0>
           (last_stream_id=0, error_code=NO_ERROR(0), opaque_data(0)=[])
-[  0.001] recv SETTINGS frame <length=0, flags=0x01, stream_id=0>
+[  0.002] recv SETTINGS frame <length=0, flags=0x01, stream_id=0>
           ; ACK
           (niv=0)
@@ -427,50 +425,53 @@ information. Here is sample output from
$ src/nghttpd --no-tls -v 8080
 IPv4: listen on port 8080
 IPv6: listen on port 8080
-[id=1] [  1.189] send SETTINGS frame <length=8, flags=0x00, stream_id=0>
-          (niv=1)
-          [SETTINGS_MAX_CONCURRENT_STREAMS(4):100]
-[id=1] [  1.191] recv SETTINGS frame <length=16, flags=0x00, stream_id=0>
+[id=1] [  1.027] send SETTINGS frame <length=10, flags=0x00, stream_id=0>
           (niv=2)
-          [SETTINGS_MAX_CONCURRENT_STREAMS(4):100]
-          [SETTINGS_INITIAL_WINDOW_SIZE(7):65535]
-[id=1] [  1.191] recv HEADERS frame <length=47, flags=0x05, stream_id=1>
+          [SETTINGS_MAX_CONCURRENT_STREAMS(3):100]
+          [SETTINGS_ENABLE_PUSH(2):0]
+[id=1] [  1.027] recv SETTINGS frame <length=10, flags=0x00, stream_id=0>
+          (niv=2)
+          [SETTINGS_MAX_CONCURRENT_STREAMS(3):100]
+          [SETTINGS_INITIAL_WINDOW_SIZE(4):65535]
+[id=1] [  1.027] (stream_id=1) :authority: localhost:8080
+[id=1] [  1.027] (stream_id=1) :method: GET
+[id=1] [  1.027] (stream_id=1) :path: /
+[id=1] [  1.027] (stream_id=1) :scheme: http
+[id=1] [  1.027] (stream_id=1) accept: */*
+[id=1] [  1.027] (stream_id=1) accept-encoding: gzip, deflate
+[id=1] [  1.027] (stream_id=1) user-agent: nghttp2/0.4.0-DEV
+[id=1] [  1.027] recv HEADERS frame <length=48, flags=0x05, stream_id=1>
           ; END_STREAM | END_HEADERS
+          (padlen=0)
           ; Open new stream
-          :authority: localhost:8080
-          :method: GET
-          :path: /
-          :scheme: http
-          accept: */*
-          accept-encoding: gzip, deflate
-          user-agent: nghttp2/0.1.0-DEV
-[id=1] [  1.192] send SETTINGS frame <length=0, flags=0x01, stream_id=0>
+[id=1] [  1.027] send SETTINGS frame <length=0, flags=0x01, stream_id=0>
           ; ACK
           (niv=0)
-[id=1] [  1.192] send HEADERS frame <length=70, flags=0x04, stream_id=1>
+[id=1] [  1.027] send HEADERS frame <length=72, flags=0x04, stream_id=1>
           ; END_HEADERS
+          (padlen=0)
           ; First response header
           :status: 404
           content-encoding: gzip
           content-type: text/html; charset=UTF-8
-          date: Sun, 27 Oct 2013 14:27:53 GMT
-          server: nghttpd nghttp2/0.1.0-DEV
-[id=1] [  1.192] send DATA frame <length=117, flags=0x00, stream_id=1>
-[id=1] [  1.192] send DATA frame <length=0, flags=0x01, stream_id=1>
+          date: Sat, 15 Feb 2014 08:18:53 GMT
+          server: nghttpd nghttp2/0.4.0-DEV
+[id=1] [  1.028] send DATA frame <length=118, flags=0x00, stream_id=1>
+[id=1] [  1.028] send DATA frame <length=0, flags=0x01, stream_id=1>
           ; END_STREAM
-[id=1] [  1.192] stream_id=1 closed
-[id=1] [  1.192] recv SETTINGS frame <length=0, flags=0x01, stream_id=0>
+[id=1] [  1.028] stream_id=1 closed
+[id=1] [  1.028] recv SETTINGS frame <length=0, flags=0x01, stream_id=0>
           ; ACK
           (niv=0)
-[id=1] [  1.192] recv GOAWAY frame <length=8, flags=0x00, stream_id=0>
+[id=1] [  1.028] recv GOAWAY frame <length=8, flags=0x00, stream_id=0>
           (last_stream_id=0, error_code=NO_ERROR(0), opaque_data(0)=[])
-[id=1] [  1.192] closed
+[id=1] [ 1.028] closed

nghttpx - proxy

The nghttpx is a multi-threaded reverse proxy for -HTTP-draft-09/2.0, SPDY and HTTP/1.1. It has several operation modes:

+h2-10, SPDY and HTTP/1.1. It has several operation modes:

@@ -514,7 +515,7 @@ HTTP-draft-09/2.0, SPDY and HTTP/1.1. It has several operation modes:

The interesting mode at the moment is the default mode. It works like -a reverse proxy and listens HTTP-draft-09/2.0, SPDY and HTTP/1.1 and +a reverse proxy and listens h2-10, SPDY and HTTP/1.1 and can be deployed SSL/TLS terminator for existing web server.

The default mode, --http2-proxy and --http2-bridge modes use SSL/TLS in the frontend connection by default. To disable SSL/TLS, use @@ -606,17 +607,14 @@ format used in

The deflatehd reads JSON data or HTTP/1-style header fields from stdin and outputs compressed header block in JSON.

-

For the JSON input, the root JSON object must contain context key, -which indicates which compression context is used. If it is -request, request compression context is used. Otherwise, response -compression context is used. The value of cases key contains the -sequence of input header set. They share the same compression context -and are processed in the order they appear. Each item in the sequence -is a JSON object and it must have at least headers key. Its value -is an array of a JSON object containing exactly one name/value pair.

+

For the JSON input, the root JSON object must include cases +key. Its value has to include the sequence of input header set. They +share the same compression context and are processed in the order they +appear. Each item in the sequence is a JSON object and it must +include headers key. Its value is an array of a JSON object , +which includes exactly one name/value pair.

Example:

{
-  "context": "request",
   "cases":
   [
     {
@@ -646,9 +644,7 @@ header field block. Each header set is delimited by empty line:

user-agent: nghttp2
-

The output is JSON object. It contains context key and its value -is request if the compression context is request, otherwise -response. The root JSON object also contains cases key and its +

The output is JSON object. It should include cases key and its value is an array of JSON object, which has at least following keys:

seq
@@ -668,7 +664,6 @@ value is an array of JSON object, which has at least following keys:

Examples:

{
-  "context": "request",
   "cases":
   [
     {
@@ -729,9 +724,9 @@ value is an array of JSON object, which has at least following keys:

The output can be used as the input for inflatehd and deflatehd.

With -d option, the extra header_table key is added and its -associated value contains the state of dyanmic header table after the -corresponding header set was processed. The value contains following -keys:

+associated value includes the state of dyanmic header table after the +corresponding header set was processed. The value includes at least +following keys:

entries
The entry in the header table. If referenced is true, it @@ -760,7 +755,6 @@ that they are no longer referenced.

Example:

{
-  "context": "request",
   "cases":
   [
     {
@@ -916,17 +910,13 @@ that they are no longer referenced.
 

inflatehd - header decompressor

The inflatehd reads JSON data from stdin and outputs decompressed name/value pairs in JSON.

-

The root JSON object must contain context key, which indicates -which compression context is used. If it is request, request -compression context is used. Otherwise, response compression context -is used. The value of cases key contains the sequence of -compressed header block. They share the same compression context and -are processed in the order they appear. Each item in the sequence is a -JSON object and it must have at least wire key. Its value is a -string containing compressed header block in hex string.

+

The root JSON object must include cases key. Its value has to +include the sequence of compressed header block. They share the same +compression context and are processed in the order they appear. Each +item in the sequence is a JSON object and it must have at least +wire key. Its value is a compressed header block in hex string.

Example:

{
-  "context": "request",
   "cases":
   [
     { "wire": "8285" },
@@ -935,15 +925,13 @@ string containing compressed header block in hex string.

}
-

The output is JSON object. It contains context key and its value -is request if the compression context is request, otherwise -response. The root JSON object also contains cases key and its +

The output is JSON object. It should include cases key and its value is an array of JSON object, which has at least following keys:

seq
The index of header set in the input.
headers
-
The JSON array contains decompressed name/value pairs.
+
The JSON array includes decompressed name/value pairs.
wire
The compressed header block in hex string.
header_table_size
@@ -952,7 +940,6 @@ block.

Example:

{
-  "context": "request",
   "cases":
   [
     {
@@ -1007,7 +994,7 @@ block.
 

The output can be used as the input for deflatehd and inflatehd.

With -d option, the extra header_table key is added and its -associated value contains the state of dyanmic header table after the +associated value includes the state of dyanmic header table after the corresponding header set was processed. The format is the same as deflatehd.

@@ -1030,8 +1017,8 @@ and decompressor in Python:

import binascii
 import nghttp2
 
-deflater = nghttp2.HDDeflater(nghttp2.HD_SIDE_REQUEST)
-inflater = nghttp2.HDInflater(nghttp2.HD_SIDE_REQUEST)
+deflater = nghttp2.HDDeflater()
+inflater = nghttp2.HDInflater()
 
 data = deflater.deflate([(b'foo', b'bar'),
                          (b'baz', b'buz')])
diff --git a/searchindex.js b/searchindex.js
index 8a6565c5..343a4ca0 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({objects:{"":{NGHTTP2_ERR_INVALID_STATE:[3,1,1,""],NGHTTP2_ERR_HEADER_COMP:[3,1,1,""],NGHTTP2_SETTINGS_HEADER_TABLE_SIZE:[3,1,1,""],nghttp2_settings_entry:[3,2,1,""],NGHTTP2_INTERNAL_ERROR:[3,1,1,""],NGHTTP2_PRI_LOWEST:[3,1,1,""],nghttp2_on_frame_recv_callback:[3,2,1,""],NGHTTP2_CLIENT_CONNECTION_HEADER_LEN:[3,1,1,""],nghttp2_goaway:[3,2,1,""],nghttp2_ping:[3,2,1,""],NGHTTP2_ERR_INVALID_FRAME:[3,1,1,""],nghttp2_frame_type:[3,2,1,""],NGHTTP2_ERR_INVALID_STREAM_ID:[3,1,1,""],nghttp2_select_next_protocol:[3,3,1,""],NGHTTP2_ERR_INVALID_HEADER_BLOCK:[3,1,1,""],nghttp2_session_callbacks:[3,2,1,""],NGHTTP2_ERR_TOO_MANY_INFLIGHT_SETTINGS:[3,1,1,""],NGHTTP2_ERR_PROTO:[3,1,1,""],NGHTTP2_MAX_HEADER_TABLE_SIZE:[3,1,1,""],nghttp2_submit_window_update:[3,3,1,""],NGHTTP2_ERR_UNSUPPORTED_VERSION:[3,1,1,""],NGHTTP2_SETTINGS_ENABLE_PUSH:[3,1,1,""],nghttp2_window_update:[3,2,1,""],nghttp2_session_client_new2:[3,3,1,""],NGHTTP2_DATA:[3,1,1,""],nghttp2_frame_hd:[3,2,1,""],NGHTTP2_ERR_INVALID_STREAM_STATE:[3,1,1,""],nghttp2_on_header_callback:[3,2,1,""],NGHTTP2_FLAG_ACK:[3,1,1,""],NGHTTP2_STREAM_CLOSED:[3,1,1,""],NGHTTP2_SETTINGS_MAX:[3,1,1,""],NGHTTP2_MAX_WINDOW_SIZE:[3,1,1,""],nghttp2_headers_category:[3,2,1,""],nghttp2_error_code:[3,2,1,""],NGHTTP2_REFUSED_STREAM:[3,1,1,""],nghttp2_on_data_chunk_recv_callback:[3,2,1,""],NGHTTP2_ERR_START_STREAM_NOT_ALLOWED:[3,1,1,""],NGHTTP2_ERR_FLOW_CONTROL:[3,1,1,""],nghttp2_strerror:[3,3,1,""],nghttp2_gzip_inflate_del:[3,3,1,""],NGHTTP2_ERR_FATAL:[3,1,1,""],nghttp2_submit_goaway:[3,3,1,""],nghttp2_error:[3,2,1,""],NGHTTP2_INITIAL_CONNECTION_WINDOW_SIZE:[3,1,1,""],NGHTTP2_ERR_NOMEM:[3,1,1,""],NGHTTP2_ERR_PAUSE:[3,1,1,""],NGHTTP2_ENHANCE_YOUR_CALM:[3,1,1,""],NGHTTP2_NO_ERROR:[3,1,1,""],NGHTTP2_OPT_PEER_MAX_CONCURRENT_STREAMS:[3,1,1,""],nghttp2_session_server_new2:[3,3,1,""],NGHTTP2_ERR_DEFERRED:[3,1,1,""],nghttp2_push_promise:[3,2,1,""],NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE:[3,1,1,""],nghttp2_session_get_outbound_queue_size:[3,3,1,""],nghttp2_rst_stream:[3,2,1,""],NGHTTP2_PROTO_VERSION_ID_LEN:[3,1,1,""],NGHTTP2_INITIAL_MAX_CONCURRENT_STREAMS:[3,1,1,""],nghttp2_data_source_read_callback:[3,2,1,""],NGHTTP2_SETTINGS_TIMEOUT:[3,1,1,""],NGHTTP2_ERR_WOULDBLOCK:[3,1,1,""],nghttp2_session_resume_data:[3,3,1,""],NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE:[3,1,1,""],NGHTTP2_PRI_DEFAULT:[3,1,1,""],nghttp2_session_server_new:[3,3,1,""],NGHTTP2_CONTINUATION:[3,1,1,""],NGHTTP2_FLAG_END_PUSH_PROMISE:[3,1,1,""],NGHTTP2_ERR_INVALID_ARGUMENT:[3,1,1,""],NGHTTP2_ERR_FRAME_SIZE_ERROR:[3,1,1,""],nghttp2_session_del:[3,3,1,""],nghttp2_session_mem_recv:[3,3,1,""],nghttp2_flag:[3,2,1,""],NGHTTP2_OPT_NO_AUTO_STREAM_WINDOW_UPDATE:[3,1,1,""],NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS:[3,1,1,""],NGHTTP2_HCAT_REQUEST:[3,1,1,""],NGHTTP2_FLAG_END_HEADERS:[3,1,1,""],nghttp2_gzip:[3,2,1,""],NGHTTP2_FLAG_END_STREAM:[3,1,1,""],NGHTTP2_ERR_EOF:[3,1,1,""],NGHTTP2_HCAT_HEADERS:[3,1,1,""],NGHTTP2_VERSION_NUM:[3,1,1,""],NGHTTP2_SETTINGS:[3,1,1,""],nghttp2_frame:[3,2,1,""],nghttp2_submit_push_promise:[3,3,1,""],NGHTTP2_ERR_DEFERRED_DATA_EXIST:[3,1,1,""],NGHTTP2_CANCEL:[3,1,1,""],nghttp2_send_callback:[3,2,1,""],nghttp2_on_frame_send_callback:[3,2,1,""],NGHTTP2_HEADERS:[3,1,1,""],NGHTTP2_VERSION:[3,1,1,""],nghttp2_opt_set:[3,2,1,""],nghttp2_session:[3,2,1,""],NGHTTP2_COMPRESSION_ERROR:[3,1,1,""],NGHTTP2_HCAT_PUSH_RESPONSE:[3,1,1,""],nghttp2_submit_rst_stream:[3,3,1,""],nghttp2_submit_headers:[3,3,1,""],nghttp2_recv_callback:[3,2,1,""],nghttp2_session_get_stream_user_data:[3,3,1,""],NGHTTP2_FLAG_PRIORITY:[3,1,1,""],nghttp2_nv:[3,2,1,""],nghttp2_on_invalid_frame_recv_callback:[3,2,1,""],nghttp2_version:[3,3,1,""],nghttp2_on_unknown_frame_recv_callback:[3,2,1,""],NGHTTP2_ERR_STREAM_CLOSED:[3,1,1,""],nghttp2_opt:[3,2,1,""],NGHTTP2_ERR_CALLBACK_FAILURE:[3,1,1,""],NGHTTP2_ERR_GOAWAY_ALREADY_SENT:[3,1,1,""],NGHTTP2_FLOW_CONTROL_ERROR:[3,1,1,""],nghttp2_session_set_stream_user_data:[3,3,1,""],nghttp2_check_header_value:[3,3,1,""],NGHTTP2_ERR_STREAM_CLOSING:[3,1,1,""],nghttp2_session_client_new:[3,3,1,""],nghttp2_check_header_name:[3,3,1,""],nghttp2_info:[3,2,1,""],NGHTTP2_PROTO_VERSION_ID:[3,1,1,""],nghttp2_settings_id:[3,2,1,""],nghttp2_session_send:[3,3,1,""],NGHTTP2_PROTOCOL_ERROR:[3,1,1,""],nghttp2_gzip_inflate:[3,3,1,""],nghttp2_session_upgrade:[3,3,1,""],nghttp2_on_begin_headers_callback:[3,2,1,""],NGHTTP2_ERR_INSUFF_BUFSIZE:[3,1,1,""],nghttp2_settings:[3,2,1,""],nghttp2_on_frame_not_send_callback:[3,2,1,""],nghttp2_session_get_effective_recv_data_length:[3,3,1,""],nghttp2_submit_data:[3,3,1,""],nghttp2_submit_response:[3,3,1,""],NGHTTP2_CLIENT_CONNECTION_HEADER:[3,1,1,""],NGHTTP2_FLAG_NONE:[3,1,1,""],nghttp2_session_terminate_session:[3,3,1,""],nghttp2_submit_settings:[3,3,1,""],NGHTTP2_HCAT_RESPONSE:[3,1,1,""],NGHTTP2_PING:[3,1,1,""],NGHTTP2_OPT_NO_AUTO_CONNECTION_WINDOW_UPDATE:[3,1,1,""],nghttp2_priority:[3,2,1,""],nghttp2_session_want_read:[3,3,1,""],NGHTTP2_VERSION_AGE:[3,1,1,""],NGHTTP2_ERR_STREAM_ID_NOT_AVAILABLE:[3,1,1,""],NGHTTP2_CONNECT_ERROR:[3,1,1,""],NGHTTP2_RST_STREAM:[3,1,1,""],nghttp2_on_stream_close_callback:[3,2,1,""],NGHTTP2_PUSH_PROMISE:[3,1,1,""],nghttp2_data_provider:[3,2,1,""],NGHTTP2_ERR_PUSH_DISABLED:[3,1,1,""],nghttp2_session_recv:[3,3,1,""],nghttp2_session_get_effective_local_window_size:[3,3,1,""],NGHTTP2_INITIAL_WINDOW_SIZE:[3,1,1,""],NGHTTP2_WINDOW_UPDATE:[3,1,1,""],NGHTTP2_SETTINGS_FLOW_CONTROL_OPTIONS:[3,1,1,""],nghttp2_session_want_write:[3,3,1,""],nghttp2_submit_priority:[3,3,1,""],nghttp2_session_get_stream_effective_local_window_size:[3,3,1,""],nghttp2_headers:[3,2,1,""],nghttp2_before_frame_send_callback:[3,2,1,""],NGHTTP2_GOAWAY:[3,1,1,""],NGHTTP2_ERR_GZIP:[3,1,1,""],nghttp2_is_fatal:[3,3,1,""],nghttp2_submit_ping:[3,3,1,""],NGHTTP2_FRAME_SIZE_ERROR:[3,1,1,""],nghttp2_data_source:[3,2,1,""],NGHTTP2_ERR_STREAM_SHUT_WR:[3,1,1,""],NGHTTP2_PRIORITY:[3,1,1,""],nghttp2_submit_request:[3,3,1,""],nghttp2_session_get_stream_effective_recv_data_length:[3,3,1,""],nghttp2_pack_settings_payload:[3,3,1,""],nghttp2_data:[3,2,1,""],nghttp2_gzip_inflate_new:[3,3,1,""],nghttp2_nv_compare_name:[3,3,1,""]},nghttp2_session_callbacks:{on_invalid_frame_recv_callback:[3,0,1,""],before_frame_send_callback:[3,0,1,""],on_stream_close_callback:[3,0,1,""],on_data_chunk_recv_callback:[3,0,1,""],on_begin_headers_callback:[3,0,1,""],send_callback:[3,0,1,""],on_unknown_frame_recv_callback:[3,0,1,""],on_frame_recv_callback:[3,0,1,""],on_header_callback:[3,0,1,""],on_frame_not_send_callback:[3,0,1,""],on_frame_send_callback:[3,0,1,""],recv_callback:[3,0,1,""]},nghttp2_frame:{push_promise:[3,0,1,""],settings:[3,0,1,""],ping:[3,0,1,""],rst_stream:[3,0,1,""],priority:[3,0,1,""],headers:[3,0,1,""],goaway:[3,0,1,""],window_update:[3,0,1,""],data:[3,0,1,""],hd:[3,0,1,""]},nghttp2_ping:{hd:[3,0,1,""]},nghttp2_data_provider:{source:[3,0,1,""],read_callback:[3,0,1,""]},nghttp2_priority:{pri:[3,0,1,""],hd:[3,0,1,""]},nghttp2_settings_entry:{settings_id:[3,0,1,""],value:[3,0,1,""]},nghttp2_window_update:{hd:[3,0,1,""],window_size_increment:[3,0,1,""]},nghttp2_frame_hd:{stream_id:[3,0,1,""],length:[3,0,1,""],flags:[3,0,1,""],type:[3,0,1,""]},nghttp2_info:{age:[3,0,1,""],version_str:[3,0,1,""],version_num:[3,0,1,""],proto_str:[3,0,1,""]},nghttp2_rst_stream:{error_code:[3,0,1,""],hd:[3,0,1,""]},nghttp2_nv:{valuelen:[3,0,1,""],namelen:[3,0,1,""],name:[3,0,1,""],value:[3,0,1,""]},nghttp2_headers:{nvlen:[3,0,1,""],pri:[3,0,1,""],hd:[3,0,1,""],nva:[3,0,1,""],cat:[3,0,1,""]},nghttp2_opt_set:{no_auto_stream_window_update:[3,0,1,""],peer_max_concurrent_streams:[3,0,1,""],no_auto_connection_window_update:[3,0,1,""]},nghttp2_goaway:{opaque_data:[3,0,1,""],error_code:[3,0,1,""],opaque_data_len:[3,0,1,""],hd:[3,0,1,""],last_stream_id:[3,0,1,""]},nghttp2_data_source:{fd:[3,0,1,""],ptr:[3,0,1,""]},nghttp2_push_promise:{promised_stream_id:[3,0,1,""],nvlen:[3,0,1,""],nva:[3,0,1,""],hd:[3,0,1,""]},nghttp2_settings:{niv:[3,0,1,""],hd:[3,0,1,""],iv:[3,0,1,""]}},terms:{my_obj:[3,6],nghttp2_io_flag:6,nghttp2_cancel:[3,6],opt_set:[3,6],prefix:[2,6,3],nghttp2_session_get_stream_effective_local_window_s:[3,6],"const":[2,6,5,3],nghttp2_submit_:[2,5],under:[3,6,4],bufferevent_getfd:5,spec:[3,6],merchant:[2,6,5,1],digit:5,"void":[2,6,5,3],bufferevent_ssl:[2,5],initialize_nghttp2_setup:[2,5],verif:5,servic:2,warnx:[2,5],on_stream_close_callback:[2,6,5,3],direct:4,ssl_op_no_session_resumption_on_renegoti:[2,5],neg:[3,6],nghttp2_err_insuff_bufs:[3,6],"new":[2,6,4,5,3],tatsuhiro:[0,1,2,4,5,6],nghttp2_session_resume_data:[3,6],ipproto_tcp:[2,5],abov:[2,1,3,4,5,6],initialize_app_context:2,here:[2,6,4,5,3],met:[2,6,5,3],path:[2,4,5],settings_timeout:[3,6],interpret:[3,6],nextprotoneg:[3,6],sslv23_server_method:2,permit:[2,6,5,1],nghttp2_submit_prior:[3,6],aka:[3,6,4],nghttp2_err_gzip:[3,6],nghttp2_frame:[2,6,5,3],bufferevent_ssl_connect:5,substr:2,bev_event_error:[2,5],printabl:5,unit:4,describ:[2,6,5,3],would:[3,6],overhead:4,asset:4,nghttp2_on_invalid_frame_recv_callback:[3,6],nghttp2_version:[3,6,1],type:[0,2,3,4,5,6],tell:[2,6,5,3],relat:[2,5],notic:[2,6,5,1],warn:2,ssl_shutdown:[2,5],herebi:[2,6,5,1],unpack:[3,6],must:[2,6,4,5,3],word:[3,6],err:[2,5],exit_failur:[2,5],setup:[2,5],work:[2,4],lev_opt_close_on_fre:2,nghttp2_flag_ack:[3,6],root:[2,4],syn_repli:[3,6],defer:[2,6,5,3],give:[3,6],indic:[2,6,4,5,3],want:[2,6,5,3],unsign:[2,6,5,3],nghttp2_settings_flow_control_opt:[3,6],end:[2,6,5,3],datalen:[2,5],how:5,nghttp2_err_fat:[3,6],nghttp2_frame_typ:[3,6],updat:[3,6],nghttp2_msg_more:6,after:[2,6,4,5,3],badli:[3,6],demonstr:5,request_path:2,attempt:[3,6],third:[2,6,5,3],opaqu:[3,6],exclud:[3,6],receiv:[2,6,5,3],first:[2,6,4,5,3],order:[2,6,4,3],frontend:4,over:[2,4,5],becaus:[2,6,5,3],eagain:[2,5],vari:4,fit:[2,6,5,1],fwrite:5,deflate_s:4,hidden:[3,6],them:[2,6,5,3],thei:[2,6,4,5,3],safe:[2,6,3],"break":[2,6,5,3],promis:[3,6],choic:[3,6],ai_addr:2,timeout:[2,5],each:[2,6,4,5,3],debug:[3,6,5],side:[2,6,3],mean:[3,6,4,5],slen:2,protocol_error:[3,6],http2_stream_data:[2,5],nghttp2_session_server_new2:[3,6],network:[2,5],content:[0,4,2],end_stream:[3,6,4],situat:[2,5],free:[2,6,5,1,3],spdy:[3,6,4],openssl:[2,4,5],nghttp2_version_num:[3,6,1],sigact:[2,5],rang:[3,6,4],restrict:[2,6,5,1],nghttp2_protocol_error:[3,6],alreadi:[2,6,5,3],primari:[3,6],nghttp2_max_header_table_s:[3,6],too:[2,6,3],memcmp:2,draft:[0,6,4,3],listen:[2,4],tool:[0,6,4,3],travers:2,compressor:4,target:[3,6,4],provid:[2,1,3,4,5,6],project:[0,4],matter:[3,6],nghttp2_continu:[3,6],increment:[3,6],nghttp2_session_recv:[3,6],nghttp2_session_get_stream_effective_recv_data_length:[3,6],transmit:[3,6,5],sig_ign:[2,5],shall:[2,6,5,1],object:[2,6,4,5,3],writecb:[2,5],nghttp2_settings_timeout:[3,6],simplic:5,don:[2,6,3],hex_to_uint:2,doc:4,flow:[3,6],doe:[2,6,4,5,3],nghttp2_gzip_inflate_new:[3,6],section:[3,6],on_invalid_frame_recv_callback:[3,6],bev_event_eof:[2,5],pkg:4,identifi:[2,6,5,3],bufferevent_setcb:[2,5],involv:[3,6],explain:5,configur:[3,6,4],apach:4,nghttp2_err_invalid_stream_id:[3,6],busi:[2,5],oct:4,nghttp2_err_proto:[3,6],authoritylen:5,stop:[2,5],end_head:[3,6,4],evbuffer_drain:[2,5],bar:4,ai_pass:2,ietf:[0,6,4,3],baz:4,push_promis:[2,6,3],"public":[0,6,4,3],nghttp2_strerror:[2,6,5,3],nghttp2_gzip_inflate_del:[3,6],bufferevent_ssl_accept:2,nul:[3,6],result:[2,6,5,3],respons:[2,6,4,5,3],fail:[3,6],key_fil:2,subject:[2,6,5,1],said:[3,6],figur:4,bev_opt_close_on_fre:[2,5],accord:[3,6],extens:[4,5],advertis:[2,5],setsockopt:[2,5],against:[3,6],ssl_ctx_use_certificate_chain_fil:2,header_t:4,logic:2,enhance_your_calm:[3,6],com:[0,6,4,3],int32_t:[2,6,5,3],assum:[3,6],duplic:[3,6],reciev:5,liabil:[2,6,5,1],evbuffer_get_length:[2,5],union:[0,6,3,2],max_deflate_s:4,been:[2,6,5,3],trigger:[3,6],interest:[2,4,5],basic:4,futur:[3,6],tini:5,life:2,regul:[2,5],argument:[2,6,4,5,3],ewouldblock:[2,5],ssl_op_no_compress:[2,5],nghttp2_settings_initial_window_s:[3,6],zlib:4,nghttp2_on_begin_headers_callback:[3,6,5],bev_event_timeout:[2,5],bufferevent_socket_connect_hostnam:5,nghttp2_set:[3,6],promised_stream_id:[3,6],conf:4,sever:[2,6,4,5,3],perform:[2,6,4,3],make:[2,6,4,3],transpar:[3,6],headlen:[3,6],split:[3,6],version_str:[3,6],nghttp2_on_stream_close_callback:[3,6,5],complet:[2,6,5,3],start_listen:2,bufferevent_openssl_get_ssl:[2,5],nghttp2_err_deferred_data_exist:[3,6],ssl_ctx_new:[2,5],zlib1g:4,ownership:[3,6],niv:[3,6,4],thu:[2,6,3],nghttp2_session_get_effective_local_window_s:[3,6],client:[0,2,3,4,5,6],thi:[0,1,2,3,4,5,6],endif:[2,6,1],gzip:[3,6,4],opaque_data:[3,6,4],protocol:[0,2,3,4,5,6],just:[2,6,4,5,3],"0x01":4,initiate_connect:5,ifdef:[2,6],previous:[3,6],easi:4,els:[2,5],applic:[2,6,4,5,3],initialize_nghttp2_sess:[2,5],specif:[2,6,5,3],arbitrari:[3,6],http2_session_data:[2,5],client_addr:2,manual:4,html:[0,6,4,3,2],tcp_nodelai:[2,5],unnecessari:5,underli:[2,5],www:[3,6],right:[2,6,5,1],deal:[2,6,5,1,3],intern:[3,6],successfulli:[2,6,5,3],transmiss:[2,6,5,3],ni_numerichost:2,bottom:[3,6],nghttp2_data_source_read_callback:[3,6],buffer:[2,6,4,5,3],condit:[2,6,5,1,3],foo:4,localhost:4,particular:[2,6,5,1,3],sensibl:[3,6],repositori:[2,5],peer:[2,6,5,3],post:[3,6,4],decompressor:4,inlen_ptr:[3,6],nghttp2_submit_data:[3,6],nghttp2_settings_max_concurrent_stream:[2,6,5,3],produc:[3,6],evbuff:[2,5],encod:[2,6,4,3],down:[2,5],nghttp2_before_frame_send_callback:[3,6,5],errx:[2,5],git:[0,6,4,3],session_send:[2,5],wai:[3,6,4],support:[2,6,4,5,3],verbos:4,call:[2,6,4,5,3],fork:4,head:[2,6,3],form:[3,6],offer:4,bev_event_connect:[2,5],"true":4,hddeflat:4,ssl_ctx_free:[2,5],maximum:[3,6,4],until:[3,6],deafult:4,autoconf:4,emit:[2,6,5,3],nghttp2_initial_window_s:[3,6],featur:4,httpbi:[0,6,4,3],"abstract":[2,5],unreleas:4,exist:[3,6,4],ai_flag:2,ends_with:2,check:[2,6,5,3],delete_http2_session_data:[2,5],when:[2,6,4,5,3],role:[2,6,5,3],nghttp2_check_header_valu:[3,6],send_client_connection_head:5,unlimit:[3,6],intend:2,af_unspec:[2,5],nghttp2_max_window_s:[3,6],technot:[3,6],max_siz:4,evconnlistener_new_bind:2,longer:[2,4],nghttp2_check_header_nam:[3,6],ignor:[2,6,3],time:[2,6,4,3],push:[3,6,4],skip:[3,6],evbuffer_remov:2,nghttp2_on_frame_recv_callback:[3,6,5],nghttp2ver_h:1,decid:[3,6],create_ssl_ctx:[2,5],depend:[2,5],readabl:5,sourc:[0,6,5,3,2],string:[2,6,4,5,3],nghttp2_settings_enable_push:[3,6],level:[2,6,3],did:[3,6,5],item:4,settings_id:[3,6],conhead:2,upper:[3,6],sign:4,port:[2,4,5],appear:[3,6,4],event_base_fre:[2,5],current:[2,6,4,3],gener:[3,6,4],address:4,nghttp2_submit_rst_stream:[2,6,3],connect_error:[3,6],queue:[2,6,5,3],behav:[3,6],ourselv:[2,5],nghttp2_err_goaway_already_s:[3,6],regardless:[3,6],extra:[4,5],modul:4,prefer:[3,6],instal:4,hdinflat:4,memori:[2,6,4,5,3],strdup:2,prev:2,reorder:[3,6,5],rst_stream:[2,6,5,3],ctype:2,nghttp2_submit_window_upd:[3,6],prepar:[3,6],stream_user_data:[3,6,5],cat:[2,6,5,3],descriptor:[2,6,3],can:[2,6,4,5,3],http2:[0,6,4,3],purpos:[2,6,5,1],uf_path:5,claim:[2,6,5,1],stream:[2,6,4,5,3],agent:4,critic:[3,6],abort:[3,6],tabl:[3,6,4],nghttp2_header:[2,6,5,3],occur:[3,6],alwai:[2,6,3],multipl:[2,6,5,3],charset:4,ping:[3,6],write:[2,4,5],opt_set_mask:[3,6],max:5,intrus:2,mai:[2,6,4,5,3],acceptcb:2,data:[2,6,4,5,3],autotool:4,stdin:4,inform:[2,6,4,5,3],"switch":[2,4,5],aaaabaaaagqaaaahaad__w:4,talk:[2,4],nghttp2_err_stream_shut_wr:[3,6],size_t:[2,6,5,3],nghttp2_err_unsupported_vers:[3,6],still:[2,6,4,3],pointer:[2,6,3],entiti:2,disconnect:[2,5],precondit:[3,6],tort:[2,6,5,1],window:[3,6],main:[2,5],non:[2,6,4,5,3],recal:5,initi:[2,6,5,3],nghttp2_submit_head:[3,6],nghttp2_on_header_callback:[2,6,5,3],"0x000400":1,name:[2,6,4,5,3],version_num:[3,6],config:4,no_error:4,drop:[2,6,5,3],replac:[3,6],individu:[3,6],continu:[2,6,4,5,3],event_base_loop:[2,5],turoti:5,happen:[2,4,5],ai_addrlen:2,space:[3,6,4],output_length:4,nghttp2_flag_end_push_promis:[3,6],earlier:[2,4,5],event_base_new:[2,5],argv:[2,5],org:[0,6,4,3],"byte":[2,6,4,5,3],argc:[2,5],care:[3,6],nghttp2_opt_no_auto_connection_window_upd:[3,6],nghttp2ver:[0,6,1,3],"88448504252dd5918485":4,befor:[2,6,4,5,3],thing:[2,6,5,3],nghttp2_flag_non:[2,6,5,3],place:[3,6],evdns_base_new:5,oper:[3,6,4],directli:[2,6,5,3],onc:[3,6],arrai:[3,6,4,5],yourself:4,nghttp2_is_fat:[3,6],nghttp2_flow_control_error:[3,6],submit:[3,6,5],on_frame_recv_callback:[2,6,5,3],open:[2,6,4,3],size:[2,6,4,3],avail:[2,6,4,5,3],given:[3,6],necessarili:[3,6],sigpip:[2,5],internal_error:[3,6],conveni:[3,6],ssl_ctx:[2,6,5,3],copi:[2,6,5,1,3],specifi:[2,6,4,5,3],github:[0,4],holder:[2,6,5,1],than:[2,6,4,3],serv:2,wide:2,nghttp2_session_get_outbound_queue_s:[3,6],were:[2,5],posit:[3,6],read_callback:[2,6,3],browser:4,lowest:[3,6],sai:[3,6],pri:[3,6],ani:[2,1,3,4,5,6],deliv:[3,6],bitwis:[3,6],event_bas:[2,5],nghttp2_flag_prior:[3,6],destroi:[2,5],payloadlen:[3,6],note:[2,6,4,5,3],take:[2,6,4,5,3],properti:[2,5],noth:[3,6],begin:5,sure:[2,4,5],normal:[3,6],track:[2,4,5],compress:[0,4],nghttp2_hcat_request:[2,6,5,3],pathlen:5,sublicens:[2,6,5,1],pair:[2,6,4,5,3],http2_select:[3,6],later:[2,6,5,3],gracefulli:5,show:[4,5],unprocess:[2,5],concurr:[2,6,3],permiss:[2,6,5,1],threshold:2,onli:[2,6,4,5,3],state:[2,6,4,3],"4e5535a027780":4,overwritten:[3,6],reset:5,variou:[3,6],get:[2,6,4,5,3],outlen:[3,6,5],ssl:[2,6,4,5,3],cannot:[2,6,3],nghttpd:4,requir:[0,6,4,3],nghttp2_set_stream_user_data:2,nghttp2_frame_size_error:[3,6],detect:[3,6,4],"import":4,fcntl:2,pipefd:2,bump:[3,6],evdns_bas:5,typedef:[0,6,5,3,2],submit_request:5,region:[3,6],contract:[2,6,5,1],tutori:[0,5,2],deflatehd:4,mani:[3,6],nghttp2_data_provid:[2,6,3],unistd:[2,5],nghttp2_err_too_many_inflight_set:[3,6],cancel:[3,6],damag:[2,6,5,1],header_table_s:4,nghttp2_settings_max:[3,6],netdb:2,nghttp2_on_unknown_frame_recv_callback:[3,6],nghttp2_opt:[3,6],those:[2,6,5,3],"case":[2,6,4,5,3],hdr:[2,4,5],invok:[2,6,5,3],invoc:[2,6,3],on_data_chunk_recv_callback:[3,6,5],stdout:[4,5],ascii:[3,6],develop:[0,4],author:[2,6,4,5,1],bev_opt_defer_callback:[2,5],alphabet:[3,6],same:[2,6,4,5,3],ssl_library_init:[2,5],binari:5,pac:4,document:[0,1,2,4,5,6],finish:[2,5],decompress:[3,6,4],handshake_leftlen:2,extern:6,postpon:[3,6],macro:[0,6,1,3],without:[2,1,3,4,5,6],nghttp2_push_promis:[3,6],event2:[2,5],nghttp2_err_def:[3,6],nghttp2_submit_set:[2,6,5,3],execut:4,multiplex:[2,4],struct:[0,6,5,3,2],hint:2,except:[3,6],identif:[3,6],nghttp2_select_next_protocol:[3,6,5],real:5,read:[2,6,4,5,3],nghttp2_version_ag:[3,6],test:[0,4],next_proto_cb:2,integ:[3,6],server:[0,2,3,4,5,6],either:[2,6,3],output:[2,6,4,5,3],manag:[2,6,3],stream_clos:[3,6],ssl_ctx_set_next_protos_advertised_cb:2,handshak:[2,5],nonzero:[2,6,3],easili:5,exit:[2,5],refer:[0,6,4,3],base64url:[3,6],nghttp2_session_server_new:[2,6,3],fulli:2,getnameinfo:2,src:4,inflater_ptr:[3,6],ack:[3,6,4],dnsbase:5,settings_payload:[3,6],act:[2,5],routin:[2,5],no_auto_stream_window_upd:[3,6],least_vers:[3,6],error_repli:2,insuffici:[3,6],b2a_hex:4,nghttp2_hcat_respons:[3,6,5],hex:[2,4],start:[2,6,4,5,3],nghttp2_err_stream_clos:[3,6],low:[3,6],lot:[3,6],ipv6:4,strictli:[3,6],next_proto_list:2,nghttp2_proto_version_id_len:[2,6,3],nghttp2_err_invalid_st:[3,6],possibl:[2,6,5,3],"default":[2,6,4,3],applayerprotoneg:[3,6],hpack:[0,4],err_get_error:[2,5],expect:4,creat:[2,6,4,5,3],mainli:[3,6],decreas:[3,6],file:[2,1,3,4,5,6],nghttp2_err_invalid_header_block:[3,6],fill:2,denot:[3,6,5],functypedef:6,googl:4,field:[2,6,4,5,3],valid:[3,6,4],nghttp2_prioriti:[3,6],print_head:5,you:[2,6,4,5,3],sequenc:[2,6,4,5,3],reduc:[3,6],cunit:4,directori:[2,4,5],mask:[3,6],represent:[3,1],all:[2,6,5,1,3],on_unknown_frame_recv_callback:[3,6],illustr:4,nghttp2_err_start_stream_not_allow:[3,6],lack:[3,6],follow:[2,1,3,4,5,6],ptr:[2,6,5,3],app_cont:2,uint8_t:[2,6,5,3],readcb:[2,5],program:[0,4,5,2],bufferevent_writ:[2,5],uf_queri:5,far:[2,5],settings_header_table_s:[3,6,4],nghttp2_client_connection_header_len:[2,6,5,3],failur:[3,6],veri:[3,6,5],no_auto_connection_window_upd:[3,6],"__cplusplu":6,list:[2,6,3],nghttp2_headers_categori:[3,6],adjust:[3,6],stderr:[2,4,5],small:[3,6],session_recv:2,zero:[3,6],pass:[3,6,5],further:[2,6,5,3],what:[3,6,4],sub:2,sun:4,sum:4,delet:5,version:[0,6,4,1,3],method:[2,6,4,5,3],libjansson:4,percentage_of_original_s:4,excess:2,modifi:[2,6,4,5,1],valu:[2,6,4,5,3],search:2,ai_addrconfig:2,nghttp2_err_push_dis:[3,6],prior:4,amount:[2,5],action:[2,6,5,1,3],via:[2,6,4,5,3],primit:5,famili:[2,5],establish:[2,5],select:[3,6,4,5],regist:2,libev:[0,4,5,2],taken:[3,6],minor:[3,1],more:[2,6,4,5,3],tsujikawa:[2,6,5,1],nghttp2_settings_header_table_s:[3,6],nghttp2_pri_default:[3,6,5],flag:[2,6,4,5,3],sens:[3,6],known:[3,6],nghttp2_err_wouldblock:[2,6,5,3],endpoint:[3,6,4],dev:[4,1],remain:[2,6,5,3],share:[3,6,4],accept:[2,6,4,3],minimum:2,ssl_op_al:[2,5],create_ssl:[2,5],strlen:[2,5],huge:[2,5],netinet:[2,5],secur:4,anoth:[3,6],serveraddr:4,reject:[3,6],sec9:[3,6],simpl:[2,6,5,3],resourc:[0,6,4,5,3],referenc:4,variant:[3,6],spdylai:4,associ:[2,1,3,4,5,6],"short":[2,5],caus:[3,6],callback:[2,6,5,3],alpn:[3,6,4],authroiti:5,hypertext:[0,4],libcunit1:4,through:[2,4],left:[3,6],paramet:[3,6,5],style:4,nghttp2_hcat_push_respons:[3,6],pend:[2,6,5,3],nghttp2_err_eof:[3,6],progoram:5,valuelen:[2,6,5,3],"0x010203":[3,1],"return":[2,6,4,5,3],check_path:2,synopsi:[2,5],nghttp2_initial_max_concurrent_stream:[3,6],readlen:2,nghttp2_err_callback_failur:[2,6,5,3],tear:[2,5],achiev:[2,6,3],found:[2,6,3],trailer:[3,6],nghttp2_on_frame_send_callback:[3,6],monoton:5,realli:5,connect:[2,1,3,4,5,6],field_set:5,event:[2,6,5,1],app_ctx:2,publish:[2,6,5,1],payload:[3,6],etag:4,print:[4,5],on_frame_not_send_callback:[3,6],proxi:[0,4],differ:[3,6],effect:[3,6],reason:[2,6,3],base:[2,4,5],put:[3,6],nghttp2_session_mem_recv:[2,6,5,3],nghttp2_flag:[3,6],recv:4,thread:[2,4],omit:[3,6,5],nghttp2_err_invalid_stream_st:[3,6],assign:[2,6,5,3],feed:[2,5],major:[3,1],notifi:2,prevent:[3,6],number:[2,6,1,3],"0x8":[3,6],done:[2,4,5],construct:[3,6],stdlib:6,nghttp2_internal_error:[2,6,3],script:4,data_prd:[2,6,3],nghttp2_session_get_stream_user_data:[2,6,5,3],least:[3,6,4],scheme:[4,5],store:[2,6,5,3],input_length:4,memset:[2,5],option:[2,6,4,5,3],similarli:[3,6],nghttp2_client_connection_head:[2,6,5,3],pars:5,kind:[2,6,5,1,3],doubli:2,remot:[2,6,4,5,3],remov:[2,6,3],bridg:4,ai_next:2,consumpt:[2,5],nghttp2_error:[3,6],window_size_incr:[3,6,4],lib_error_cod:[3,6],arrlen:[2,5],packag:4,"null":[2,6,5,3],syn_stream:[3,6],sell:[2,6,5,1],outbound:[3,6],equival:[3,6],afram:[3,6],also:[2,6,4,5,3],build:[0,4,5],nghttp2_err_frame_size_error:[3,6],make_nv:[2,5],distribut:[2,6,5,1],reacb:5,reach:[3,6],chart:[3,6],most:[3,6],vnu:4,charg:[2,6,5,1],addr:2,"01881f3468e5891afcbf83868a3d856659c62e3f":4,compar:[3,6,5],frame_size_error:[3,6,4],session:[2,6,5,3],nghttp2_submit_push_promis:[3,6],copyright:[2,6,5,1],refused_stream:[3,6],nghttp2_opt_no_auto_stream_window_upd:[3,6],queu:[2,6,5,3],express:[2,6,5,1],window_upd:[3,6,4],liabl:[2,6,5,1],before_frame_send_callback:[3,6,5],retreiv:5,crt:2,certif:[2,4,5],set:[2,6,4,5,3],seq:4,sep:4,ousid:4,remove_stream:2,nghttp2_submit_goawai:[3,6],arg:[2,6,5,3],close:[2,6,4,5,3],analog:[3,6],strchr:2,someth:[3,6],won:[2,6,3],hold:[3,6],nghttp2_on_data_chunk_recv_callback:[3,6,5],numer:[3,6,1],percent_decod:2,both:[2,6,4,5,3],last:[3,6,4],delimit:4,nghttp2_session_want_writ:[2,6,5,3],tempor:[3,6],context:[2,6,4,5,3],compression_error:[3,6],whole:[3,6],simpli:[2,5],point:[2,6,5,3],header:[0,2,3,4,5,6],shutdown:[2,6,5,3],suppli:[3,6],nghttp2_session:[2,6,5,3],backend:4,due:[3,6],empti:[2,6,4,5,3],send_respons:2,whom:[2,6,5,1],stdint:6,add_stream:2,flight:[3,6],nghttp2_err_nomem:[3,6],settings_enable_push:[3,6,4],nghttp2_session_terminate_sess:[3,6,5],buflen:[3,6],func:6,next_proto_list_len:2,look:[2,5],"while":[2,6,5,3],behavior:[3,6],error:[2,6,4,5,3],loop:[2,5],malloc:[2,5],nghttp2_session_callback:[2,6,5,3],readi:2,user_data:[2,6,5,3],itself:[2,6,5,3],flow_control_error:[3,6],grant:[2,6,5,1],belong:[3,6],create_http2_session_data:[2,5],decod:[2,6,3],uf_schema:5,mytyp:[3,6],inflat:[3,6,4],alert:4,moment:4,user:[3,6,4,5],implement:[0,2,3,4,5,6],nghttp2_h:6,noninfring:[2,6,5,1],entri:[3,6,4],nghttp:4,person:[2,6,5,1],uint32_t:[3,6],self:4,hd_side_request:4,end_push_promis:[3,6],nghttp2_gzip_infl:[3,6],on_frame_send_callback:[3,6],nghttp2_ping:[3,6],input:[2,6,4,5,3],subsequ:[3,6],bin:4,on_begin_headers_callback:[2,6,5,3],format:[2,6,4,5,3],http_parser:5,bit:[3,6,1],strstr:2,signal:[2,6,5,3],lib_error:[3,6],api:[0,6,3],some:[2,6,5,3],back:[3,6],sampl:4,sizeof:[2,5],libssl:4,lev_opt_reus:2,though:4,per:[3,6],larg:[3,6],make_nv2:5,machin:4,run:[2,6,4,5,3],step:[3,6],handshake_readcb:2,idl:[3,6],block:[2,6,4,5,3],nghttp2_err_paus:[3,6],nsm:6,within:4,nghttp2_send_callback:[3,6,5],nghttp2_opt_set:[3,6],occupi:4,inclus:[3,6],errno:2,bodi:[2,6,5,3],"long":[3,6],nghttp2:[0,1,2,3,4,5,6],includ:[0,1,2,3,4,5,6],forward:4,session_ptr:[3,6],link:[2,4],ni_maxhost:2,nghttp2_session_set_stream_user_data:[2,6,3],line:4,concaten:[3,6],utf:4,caller:[2,6,3],nghttpx:4,clear:[3,6],parser:5,repres:[3,6],"char":[2,6,5,3],incomplet:4,sublen:2,titl:2,invalid:[3,6],librari:[0,1,2,3,4,5,6],libtool:4,create_http2_stream_data:[2,5],algorithm:[3,6],nghttp2_submit_request:[3,6,5],namelen:[2,6,5,3],getaddrinfo:2,code:[2,6,4,5,3],queri:5,nghttp2_frame_hd:[3,6],cython:4,privat:2,send:[2,6,4,5,3],http_parser_url:5,lower:[3,6],aris:[2,6,5,1],fatal:[2,6,5,3],sent:[2,6,5,3],nghttp2_submit_p:[3,6],untouch:[3,6],relev:[2,5],tri:[3,6],magic:[2,5],http_parser_parse_url:5,"try":4,freed:4,pleas:[2,6,4,5,3],impli:[2,6,5,1],smaller:4,snprintf:5,"0x1":[3,6],"0x0":[3,6],"0x4":[3,6],download:[0,4],index:4,o_rdonli:2,settings_flow_control_opt:[3,6],access:4,experiment:[0,4],inspect:[3,6],ssl_ctx_set_opt:[2,5],nghttp2_enhance_your_calm:[3,6],len:[2,6,5,3],closur:[3,6,5],nghttp2_rst_stream:[3,6],ubuntu:4,becom:[2,6,1,3],sinc:[2,6,4,5,3],remark:[0,3],larger:[3,6],settings_payloadlen:[3,6],autoreconf:4,jansson:4,greac:[2,5],chang:[2,6,3],output_wouldblock_threshold:2,appli:[3,6],bufferev:[2,5],from:[0,1,2,3,4,5,6],commun:[2,4,5],binascii:4,upgrad:[3,6,4],next:[2,6,4,5,3],findproxyforurl:4,usr:4,nghttp2_nv:[2,6,5,3],jxck:4,goawai:[2,6,4,5,3],deflat:[3,6,4],account:[3,6,4,5],retriev:[2,6,5,3],tunnel:4,nghttp2_settings_id:[3,6],aliv:[2,6,3],sslv23_client_method:5,control:[3,6],process:[2,6,4,5,3],fprintf:[2,5],onlin:[3,4],serial:[2,6,5,3],evdns_base_fre:5,nghttp2_session_want_read:[2,6,5,3],ssl_ctx_use_privatekey_fil:2,evbas:[2,5],instead:[3,6],nullifi:[3,6],npn:[2,6,4,5,3],eventcb:[2,5],nghttp2_compression_error:[3,6],alloc:[2,6,3],bind:[0,4],nvlen:[2,6,5,3],correspond:[2,4],element:[2,6,3],issu:[0,6,3],stream_id:[2,6,4,5,3],nghttp2_connect_error:[3,6],ssize_t:[2,6,5,3],furnish:[2,6,5,1],move:[3,6],max_outlen:[3,6],therefor:[3,6,5],nghttp2_session_send:[2,6,5,3],inlen:[3,6,5],recept:[2,6,5,3],crash:3,greater:[3,6],handl:[2,5],nghttp2_goawai:[3,6],handi:5,automat:[3,6],anyth:5,uf_port:5,mode:4,ssl_filetype_pem:2,chunk:[3,6,5],nghttp2_err_temporal_callback_failur:[2,6,3],"static":[2,6,4,5,3],our:5,patch:[3,1],out:[2,1,3,4,5,6],variabl:4,req:[3,6],categori:[3,6,5],suitabl:[3,6],rel:2,field_data:5,recv_callback:[3,6],insid:4,releas:[0,1,3],could:[2,6,5,3],keep:[2,6,4,5,3],length:[2,6,4,5,3],outsid:[3,4],retain:[3,6],softwar:[2,6,5,1],addrinfo:2,date:4,prioriti:[3,6,5],unknown:[2,6,3],system:[2,5],messag:[3,6,5],attach:[2,5],termin:[2,6,4,5,3],ipv4:4,sa_handl:[2,5],enqueu:5,exactli:[2,4],nghttp2_err_header_comp:[3,6],see:[2,6,4,5,3],structur:[2,6,5,3],charact:[2,6,5,3],nghttp2_session_del:[2,6,5,3],bev:[2,5],ssl_new:[2,5],"function":[0,2,3,4,5,6],bufferevent_get_input:[2,5],corrupt:5,have:[2,6,4,5,3],reserv:[3,6],need:[3,6,4,5],ai_socktyp:2,"0x04":4,"0x05":4,"0x00":[3,6,4],nghttp2_err_flow_control:[3,6],nghttp2_refused_stream:[3,6],evbuffer_pullup:[2,5],which:[2,6,4,5,3],singl:[2,6,4,5,3],opaque_data_len:[3,6],unless:[3,6],bufferevent_openssl_socket_new:[2,5],settings_max_concurrent_stream:[2,6,4,5,3],stream_data:[2,5],deploi:4,"class":4,nghttp2_error_cod:[2,6,5,3],nghttp2_err_stream_id_not_avail:[3,6],url:[2,4],request:[2,6,4,5,3],uri:[4,5],pipe:2,determin:4,nghttp2_pack_settings_payload:[3,6],"0x0d":[3,6],"0x0a":[3,6],ssl_load_error_str:[2,5],text:4,bufferevent_get_output:[2,5],redirect:5,locat:5,should:[2,6,5,3],local:[3,6],meant:5,familiar:4,memcpi:[2,5],nghttp2_session_client_new2:[3,6],settings_initial_window_s:[3,6,4],nghttp2_data:[2,6,3],increas:[3,6,5],portion:[2,6,5,1,3],nghttp2_submit_respons:[2,6,3],enabl:[3,6,4],whether:[2,6,5,1],stuff:[3,6],contain:[2,6,4,5,3],nghttp2_window_upd:[3,6],frame:[2,6,4,5,3],knowledg:4,temporarili:[3,6],statu:[0,6,4,3,2],wire:[2,4,5],nghttp2_settings_entri:[2,6,5,3],written:[2,6,4,5,3],https_uri:5,nghttp2_initial_connection_window_s:[3,6],kei:[2,6,4,3],supporet:4,entir:[2,6,3],last_stream_id:[3,6,4],addit:[2,6,3],file_read_callback:2,nghttp2_proto_version_id:[2,6,5,3],equal:2,etc:[2,4,5],instanc:[3,6],uint16_t:[3,6,5],rfc2616:[3,6],commenc:5,respect:[3,6,5],nghttp2_recv_callback:[3,6],ssl_ctx_set_next_proto_select_cb:[3,6,5],adjsut:4,compon:5,json:4,treat:[2,6,3],immedi:[3,6],nghttp2_hcat_head:[3,6],sock_stream:2,evconnlisten:2,on_header_callback:[2,6,5,3],multi:4,defin:[2,6,5,1,3],eintr:2,helper:[3,6],on_request_recv:2,libxml2:4,squid:4,select_next_proto_cb:[3,6,5],archiv:[2,5],substanti:[2,6,5,1],incom:[2,6,4,3],let:[2,5],member:[2,6,3],python:[0,4],ifndef:[6,1],dyanmic:4,http:[0,1,2,3,4,5,6],hostnam:4,uf_host:5,dealloc:4,peer_max_concurrent_stream:[3,6],off:5,well:[2,5],app_context:2,inflatehd:4,exampl:[2,6,4,5,3],command:4,error_cod:[2,6,4,5,3],nghttp2_data_sourc:[2,6,3],usual:[3,6],paus:[3,6],less:[3,6],send_callback:[2,6,5,3],half:[3,6],obtain:[2,6,5,1],tcp:[2,5],web:[2,4],cert_fil:2,send_server_connection_head:2,priorit:[3,6],addrlen:2,add:[2,6,3],match:[2,5],gmt:4,know:[3,6],nva:[2,6,5,3],python3:4,resid:[2,5],like:[2,6,4,5,3],success:4,nghttp2_pri_lowest:[3,6],nghttp2_flag_end_head:[3,6],necessari:2,tlen:[3,6],page:[2,5],revers:4,nghttp2_session_client_new:[3,6,5],"export":2,nghttp2_session_get_effective_recv_data_length:[3,6],error_html:2,transport:5,lead:[3,6],avoid:[2,6,5,3],octet:[2,5],overlap:[3,6],isxdigit:2,outgo:[2,6,3],nghttp2_session_upgrad:[3,6],delete_http2_stream_data:[2,5],"enum":[0,6,3],usag:[2,6,4,5,3],host:[0,4,5,2],nghttp2_nv_compare_nam:[3,6],about:[2,6,5,3],actual:[2,6,5,3],socket:[2,4,5],nghttp2_gzip:[3,6],chrome:4,fals:4,ssl_tlsext_err_ok:[2,6,5,3],disabl:[3,6,4],own:[3,6],nghttp2_err_invalid_fram:[3,6],ssl_op_no_sslv2:[2,5],warranti:[2,6,5,1],automak:4,merg:[2,6,5,1],val:[2,5],ai_famili:2,transfer:[0,6,4,3],intention:[3,6],much:2,buz:4,unexpect:[3,6],bufferevent_fre:[2,5],overflow:[3,6],highest:[3,6],buf:[2,6,3],count:[3,6],succe:[3,6],nghttp2_stream_clos:[3,6],nghttp2_info:[3,6],googlecod:[3,6],displai:4,asynchron:[3,6],limit:[2,6,5,1],otherwis:[2,1,3,4,5,6],problem:[3,6],sockaddr:2,nghttp2_on_frame_not_send_callback:[3,6],strndup:5,"int":[2,6,5,3],nghttp2_flag_end_stream:[2,6,3],allow:[3,6,4],percent:2,detail:[3,6],other:[2,6,5,1,3],nghttp2_err_invalid_argu:[3,6],rememb:[2,5],outlen_ptr:[3,6],stat:2,err_error_str:[2,5],nghttp2_opt_peer_max_concurrent_stream:[3,6],rel_path:2,proto_str:[3,6],debian:4,session_data:[2,5],sphinx:4,eof:[2,6,3],reliabl:[3,6],indirectli:3,rule:[3,6],nghttp2_no_error:[3,6,5]},objtypes:{"0":"c:member","1":"c:macro","2":"c:type","3":"c:function"},titles:["nghttp2 - HTTP/2.0 C Library","nghttp2ver.h","Tutorial: HTTP/2.0 server","API Reference","nghttp2 - HTTP/2.0 C Library","Tutorial: HTTP/2.0 client","nghttp2.h"],objnames:{"0":["c","member","C member"],"1":["c","macro","C macro"],"2":["c","type","C type"],"3":["c","function","C function"]},filenames:["index","nghttp2ver.h","tutorial-server","apiref","package_README","tutorial-client","nghttp2.h"]})
\ No newline at end of file
+Search.setIndex({objects:{"":{NGHTTP2_ERR_INVALID_STATE:[3,1,1,""],NGHTTP2_ERR_HEADER_COMP:[3,1,1,""],NGHTTP2_SETTINGS_HEADER_TABLE_SIZE:[3,1,1,""],nghttp2_settings_entry:[3,2,1,""],NGHTTP2_INTERNAL_ERROR:[3,1,1,""],NGHTTP2_PRI_LOWEST:[3,1,1,""],nghttp2_on_frame_recv_callback:[3,2,1,""],NGHTTP2_CLIENT_CONNECTION_HEADER_LEN:[3,1,1,""],nghttp2_goaway:[3,2,1,""],nghttp2_ping:[3,2,1,""],NGHTTP2_ERR_INVALID_FRAME:[3,1,1,""],nghttp2_frame_type:[3,2,1,""],NGHTTP2_ERR_INVALID_STREAM_ID:[3,1,1,""],nghttp2_select_next_protocol:[3,3,1,""],NGHTTP2_ERR_INVALID_HEADER_BLOCK:[3,1,1,""],nghttp2_session_callbacks:[3,2,1,""],NGHTTP2_ERR_TOO_MANY_INFLIGHT_SETTINGS:[3,1,1,""],NGHTTP2_ERR_PROTO:[3,1,1,""],NGHTTP2_MAX_HEADER_TABLE_SIZE:[3,1,1,""],nghttp2_submit_window_update:[3,3,1,""],NGHTTP2_ERR_UNSUPPORTED_VERSION:[3,1,1,""],NGHTTP2_SETTINGS_ENABLE_PUSH:[3,1,1,""],nghttp2_window_update:[3,2,1,""],nghttp2_session_client_new2:[3,3,1,""],NGHTTP2_DATA:[3,1,1,""],nghttp2_frame_hd:[3,2,1,""],NGHTTP2_ERR_INVALID_STREAM_STATE:[3,1,1,""],nghttp2_on_header_callback:[3,2,1,""],NGHTTP2_FLAG_ACK:[3,1,1,""],NGHTTP2_STREAM_CLOSED:[3,1,1,""],NGHTTP2_SETTINGS_MAX:[3,1,1,""],NGHTTP2_MAX_WINDOW_SIZE:[3,1,1,""],nghttp2_headers_category:[3,2,1,""],nghttp2_error_code:[3,2,1,""],NGHTTP2_REFUSED_STREAM:[3,1,1,""],nghttp2_on_data_chunk_recv_callback:[3,2,1,""],NGHTTP2_ERR_START_STREAM_NOT_ALLOWED:[3,1,1,""],NGHTTP2_ERR_FLOW_CONTROL:[3,1,1,""],nghttp2_strerror:[3,3,1,""],nghttp2_gzip_inflate_del:[3,3,1,""],NGHTTP2_ERR_FATAL:[3,1,1,""],nghttp2_submit_goaway:[3,3,1,""],nghttp2_error:[3,2,1,""],NGHTTP2_INITIAL_CONNECTION_WINDOW_SIZE:[3,1,1,""],NGHTTP2_ERR_NOMEM:[3,1,1,""],NGHTTP2_ERR_PAUSE:[3,1,1,""],NGHTTP2_ENHANCE_YOUR_CALM:[3,1,1,""],NGHTTP2_NO_ERROR:[3,1,1,""],nghttp2_select_padding_callback:[3,2,1,""],NGHTTP2_OPT_PEER_MAX_CONCURRENT_STREAMS:[3,1,1,""],nghttp2_session_server_new2:[3,3,1,""],NGHTTP2_ERR_DEFERRED:[3,1,1,""],nghttp2_push_promise:[3,2,1,""],NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE:[3,1,1,""],nghttp2_session_get_outbound_queue_size:[3,3,1,""],nghttp2_rst_stream:[3,2,1,""],NGHTTP2_PROTO_VERSION_ID_LEN:[3,1,1,""],NGHTTP2_INITIAL_MAX_CONCURRENT_STREAMS:[3,1,1,""],nghttp2_data_source_read_callback:[3,2,1,""],NGHTTP2_SETTINGS_TIMEOUT:[3,1,1,""],NGHTTP2_ERR_WOULDBLOCK:[3,1,1,""],nghttp2_submit_push_promise:[3,3,1,""],nghttp2_session_resume_data:[3,3,1,""],NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE:[3,1,1,""],NGHTTP2_PRI_DEFAULT:[3,1,1,""],nghttp2_session_server_new:[3,3,1,""],NGHTTP2_CONTINUATION:[3,1,1,""],NGHTTP2_FLAG_END_PUSH_PROMISE:[3,1,1,""],NGHTTP2_ERR_INVALID_ARGUMENT:[3,1,1,""],NGHTTP2_ERR_FRAME_SIZE_ERROR:[3,1,1,""],nghttp2_session_del:[3,3,1,""],nghttp2_session_mem_recv:[3,3,1,""],nghttp2_flag:[3,2,1,""],NGHTTP2_OPT_NO_AUTO_STREAM_WINDOW_UPDATE:[3,1,1,""],NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS:[3,1,1,""],NGHTTP2_HCAT_REQUEST:[3,1,1,""],NGHTTP2_FLAG_END_HEADERS:[3,1,1,""],nghttp2_gzip:[3,2,1,""],NGHTTP2_RST_STREAM:[3,1,1,""],NGHTTP2_ERR_EOF:[3,1,1,""],NGHTTP2_HCAT_HEADERS:[3,1,1,""],NGHTTP2_VERSION_NUM:[3,1,1,""],NGHTTP2_SETTINGS:[3,1,1,""],nghttp2_frame:[3,2,1,""],NGHTTP2_FLAG_END_SEGMENT:[3,1,1,""],NGHTTP2_ERR_DEFERRED_DATA_EXIST:[3,1,1,""],NGHTTP2_CANCEL:[3,1,1,""],nghttp2_send_callback:[3,2,1,""],nghttp2_on_frame_send_callback:[3,2,1,""],NGHTTP2_HEADERS:[3,1,1,""],NGHTTP2_VERSION:[3,1,1,""],nghttp2_opt_set:[3,2,1,""],NGHTTP2_FLAG_PAD_HIGH:[3,1,1,""],nghttp2_session:[3,2,1,""],NGHTTP2_COMPRESSION_ERROR:[3,1,1,""],NGHTTP2_HCAT_PUSH_RESPONSE:[3,1,1,""],nghttp2_submit_rst_stream:[3,3,1,""],nghttp2_submit_headers:[3,3,1,""],nghttp2_recv_callback:[3,2,1,""],nghttp2_session_get_stream_user_data:[3,3,1,""],NGHTTP2_FLAG_PRIORITY:[3,1,1,""],nghttp2_nv:[3,2,1,""],nghttp2_on_invalid_frame_recv_callback:[3,2,1,""],nghttp2_version:[3,3,1,""],nghttp2_on_unknown_frame_recv_callback:[3,2,1,""],NGHTTP2_ERR_STREAM_CLOSED:[3,1,1,""],nghttp2_opt:[3,2,1,""],NGHTTP2_ERR_CALLBACK_FAILURE:[3,1,1,""],NGHTTP2_ERR_GOAWAY_ALREADY_SENT:[3,1,1,""],NGHTTP2_FLOW_CONTROL_ERROR:[3,1,1,""],nghttp2_session_set_stream_user_data:[3,3,1,""],nghttp2_check_header_value:[3,3,1,""],NGHTTP2_ERR_STREAM_CLOSING:[3,1,1,""],NGHTTP2_INADEQUATE_SECURITY:[3,1,1,""],nghttp2_session_client_new:[3,3,1,""],nghttp2_check_header_name:[3,3,1,""],nghttp2_info:[3,2,1,""],NGHTTP2_PROTO_VERSION_ID:[3,1,1,""],nghttp2_settings_id:[3,2,1,""],nghttp2_session_send:[3,3,1,""],NGHTTP2_PROTOCOL_ERROR:[3,1,1,""],nghttp2_gzip_inflate:[3,3,1,""],nghttp2_session_upgrade:[3,3,1,""],nghttp2_on_begin_headers_callback:[3,2,1,""],NGHTTP2_ERR_INSUFF_BUFSIZE:[3,1,1,""],nghttp2_settings:[3,2,1,""],nghttp2_on_frame_not_send_callback:[3,2,1,""],nghttp2_session_get_effective_recv_data_length:[3,3,1,""],nghttp2_submit_data:[3,3,1,""],nghttp2_submit_response:[3,3,1,""],NGHTTP2_CLIENT_CONNECTION_HEADER:[3,1,1,""],NGHTTP2_FLAG_NONE:[3,1,1,""],nghttp2_session_terminate_session:[3,3,1,""],nghttp2_submit_settings:[3,3,1,""],NGHTTP2_HCAT_RESPONSE:[3,1,1,""],NGHTTP2_PING:[3,1,1,""],NGHTTP2_OPT_NO_AUTO_CONNECTION_WINDOW_UPDATE:[3,1,1,""],nghttp2_priority:[3,2,1,""],nghttp2_session_want_read:[3,3,1,""],NGHTTP2_VERSION_AGE:[3,1,1,""],NGHTTP2_ERR_STREAM_ID_NOT_AVAILABLE:[3,1,1,""],NGHTTP2_CONNECT_ERROR:[3,1,1,""],NGHTTP2_FLAG_END_STREAM:[3,1,1,""],nghttp2_on_stream_close_callback:[3,2,1,""],NGHTTP2_PUSH_PROMISE:[3,1,1,""],nghttp2_data_provider:[3,2,1,""],NGHTTP2_ERR_PUSH_DISABLED:[3,1,1,""],nghttp2_session_recv:[3,3,1,""],nghttp2_session_get_effective_local_window_size:[3,3,1,""],NGHTTP2_INITIAL_WINDOW_SIZE:[3,1,1,""],NGHTTP2_WINDOW_UPDATE:[3,1,1,""],nghttp2_session_want_write:[3,3,1,""],nghttp2_submit_priority:[3,3,1,""],nghttp2_session_get_stream_effective_local_window_size:[3,3,1,""],nghttp2_headers:[3,2,1,""],nghttp2_before_frame_send_callback:[3,2,1,""],NGHTTP2_GOAWAY:[3,1,1,""],NGHTTP2_ERR_GZIP:[3,1,1,""],nghttp2_is_fatal:[3,3,1,""],NGHTTP2_FLAG_PAD_LOW:[3,1,1,""],nghttp2_submit_ping:[3,3,1,""],NGHTTP2_FRAME_SIZE_ERROR:[3,1,1,""],nghttp2_data_source:[3,2,1,""],NGHTTP2_ERR_STREAM_SHUT_WR:[3,1,1,""],NGHTTP2_PRIORITY:[3,1,1,""],nghttp2_submit_request:[3,3,1,""],nghttp2_session_get_stream_effective_recv_data_length:[3,3,1,""],nghttp2_pack_settings_payload:[3,3,1,""],nghttp2_data:[3,2,1,""],nghttp2_gzip_inflate_new:[3,3,1,""],nghttp2_nv_compare_name:[3,3,1,""]},nghttp2_session_callbacks:{on_invalid_frame_recv_callback:[3,0,1,""],before_frame_send_callback:[3,0,1,""],on_stream_close_callback:[3,0,1,""],on_data_chunk_recv_callback:[3,0,1,""],on_begin_headers_callback:[3,0,1,""],send_callback:[3,0,1,""],on_unknown_frame_recv_callback:[3,0,1,""],on_header_callback:[3,0,1,""],on_frame_recv_callback:[3,0,1,""],select_padding_callback:[3,0,1,""],on_frame_not_send_callback:[3,0,1,""],on_frame_send_callback:[3,0,1,""],recv_callback:[3,0,1,""]},nghttp2_frame:{push_promise:[3,0,1,""],settings:[3,0,1,""],ping:[3,0,1,""],rst_stream:[3,0,1,""],priority:[3,0,1,""],headers:[3,0,1,""],goaway:[3,0,1,""],window_update:[3,0,1,""],data:[3,0,1,""],hd:[3,0,1,""]},nghttp2_ping:{hd:[3,0,1,""]},nghttp2_data_provider:{source:[3,0,1,""],read_callback:[3,0,1,""]},nghttp2_priority:{pri:[3,0,1,""],hd:[3,0,1,""]},nghttp2_settings_entry:{settings_id:[3,0,1,""],value:[3,0,1,""]},nghttp2_window_update:{hd:[3,0,1,""],window_size_increment:[3,0,1,""]},nghttp2_frame_hd:{stream_id:[3,0,1,""],length:[3,0,1,""],flags:[3,0,1,""],type:[3,0,1,""]},nghttp2_data:{padlen:[3,0,1,""]},nghttp2_info:{age:[3,0,1,""],version_str:[3,0,1,""],version_num:[3,0,1,""],proto_str:[3,0,1,""]},nghttp2_rst_stream:{error_code:[3,0,1,""],hd:[3,0,1,""]},nghttp2_nv:{valuelen:[3,0,1,""],namelen:[3,0,1,""],name:[3,0,1,""],value:[3,0,1,""]},nghttp2_headers:{pri:[3,0,1,""],nvlen:[3,0,1,""],cat:[3,0,1,""],padlen:[3,0,1,""],nva:[3,0,1,""],hd:[3,0,1,""]},nghttp2_opt_set:{no_auto_stream_window_update:[3,0,1,""],peer_max_concurrent_streams:[3,0,1,""],no_auto_connection_window_update:[3,0,1,""]},nghttp2_goaway:{opaque_data:[3,0,1,""],error_code:[3,0,1,""],opaque_data_len:[3,0,1,""],hd:[3,0,1,""],last_stream_id:[3,0,1,""]},nghttp2_data_source:{fd:[3,0,1,""],ptr:[3,0,1,""]},nghttp2_push_promise:{padlen:[3,0,1,""],nvlen:[3,0,1,""],promised_stream_id:[3,0,1,""],hd:[3,0,1,""],nva:[3,0,1,""]},nghttp2_settings:{niv:[3,0,1,""],hd:[3,0,1,""],iv:[3,0,1,""]}},terms:{my_obj:[3,6],nghttp2_io_flag:6,nghttp2_cancel:[3,6],opt_set:[3,6],prefix:[2,6,3],nghttp2_session_get_stream_effective_local_window_s:[3,6],"const":[2,6,5,3],nghttp2_submit_:[2,5],"0x20":[3,6],under:[3,6,4],bufferevent_getfd:5,spec:[3,6],merchant:[2,6,5,1],digit:5,"void":[2,6,5,3],bufferevent_ssl:[2,5],initialize_nghttp2_setup:[2,5],verif:5,nghttp2_settings_initial_window_s:[3,6],warnx:[2,5],on_stream_close_callback:[2,6,5,3],direct:4,ssl_op_no_session_resumption_on_renegoti:[2,5],neg:[3,6],nghttp2_err_insuff_bufs:[3,6],"new":[2,6,4,5,3],tatsuhiro:[0,1,2,4,5,6],nghttp2_session_resume_data:[3,6],ipproto_tcp:[2,5],abov:[2,1,3,4,5,6],initialize_app_context:2,here:[2,6,4,5,3],met:[2,6,5,3],path:[2,4,5],settings_timeout:[3,6],interpret:[3,6],nextprotoneg:[3,6],sslv23_server_method:2,permit:[2,6,5,1],nghttp2_submit_prior:[3,6],aka:[3,6,4],nghttp2_err_gzip:[3,6],nghttp2_frame:[2,6,5,3],bufferevent_ssl_connect:5,substr:2,bev_event_error:[2,5],bufferevent_socket_connect_hostnam:5,total:[3,6],unit:4,describ:[2,6,5,3],would:[3,6],call:[2,6,4,5,3],asset:4,nghttp2_on_invalid_frame_recv_callback:[3,6],nghttp2_version:[3,6,1],type:[0,2,3,4,5,6],tell:[2,6,5,3],relat:[2,5],notic:[2,6,5,1],warn:2,ssl_shutdown:[2,5],herebi:[2,6,5,1],unpack:[3,6],must:[2,6,4,5,3],word:[3,6],err:[2,5],exit_failur:[2,5],setup:[2,5],work:[2,4],lev_opt_close_on_fre:2,nghttp2_flag_ack:[3,6],root:[2,4],syn_repli:[3,6],defer:[2,6,5,3],give:[3,6],indic:[2,6,5,3],want:[2,6,5,3],select_padding_callback:[3,6],unsign:[2,6,5,3],nghttp2_settings_flow_control_opt:[],end:[2,6,5,3],datalen:[2,5],how:[3,6,5],nghttp2_err_fat:[3,6],negoti:4,nghttp2_frame_typ:[3,6],updat:[3,6],nghttp2_msg_more:6,after:[2,6,4,5,3],badli:[3,6],demonstr:5,request_path:2,attempt:[],third:[2,6,5,3],opaqu:[3,6],exclud:[3,6],receiv:[2,6,5,3],first:[2,6,4,5,3],order:[2,6,4,3],frontend:4,over:[2,4,5],becaus:[2,6,5,3],eagain:[2,5],vari:4,fit:[2,6,5,1],fwrite:5,deflate_s:4,hidden:[3,6],them:[2,6,5,3],thei:[2,6,4,5,3],safe:[2,6,3],"break":[2,6,5,3],promis:[3,6],choic:[3,6],ai_addr:2,timeout:[2,5],each:[2,6,4,5,3],debug:[3,6,5],side:[2,6,3],mean:[3,6,4,5],slen:2,protocol_error:[3,6],nghttp2_select_padding_callback:[3,6],http2_stream_data:[2,5],nghttp2_session_server_new2:[3,6],network:[2,5],content:[0,4,2],end_stream:[3,6,4],situat:[2,5],free:[2,6,5,1,3],spdy:[3,6,4],openssl:[2,4,5],nghttp2_version_num:[3,6,1],sigact:[2,5],rang:[3,6,4],restrict:[2,6,5,1],nghttp2_protocol_error:[3,6],alreadi:[2,6,5,3],opaque_data:[3,6,4],payload:[3,6],nghttp2_max_header_table_s:[3,6],too:[2,6,3],memcmp:2,sigpip:[2,5],listen:[2,4],tool:[0,6,4,3],travers:2,compressor:4,target:[3,6,4],provid:[2,1,3,4,5,6],project:[0,4],matter:[3,6],nghttp2_continu:[3,6],increment:[3,6],nghttp2_session_recv:[3,6],nghttp2_session_get_stream_effective_recv_data_length:[3,6],transmit:[3,6,5],sig_ign:[2,5],shall:[2,6,5,1],object:[2,6,4,5,3],writecb:[2,5],nghttp2_settings_timeout:[3,6],simplic:5,don:[2,6,3],hex_to_uint:2,doc:4,flow:[3,6],doe:[2,6,4,5,3],nghttp2_gzip_inflate_new:[3,6],sum:4,on_invalid_frame_recv_callback:[3,6],bev_event_eof:[2,5],pkg:4,identifi:[2,6,5,3],bufferevent_setcb:[2,5],involv:[3,6],explain:5,configur:[3,6,4],apach:4,nghttp2_err_invalid_stream_id:[3,6],busi:[2,5],nghttp2_flag_pad_high:[3,6],oct:[],nghttp2_err_proto:[3,6],authoritylen:5,stop:[2,5],end_head:[3,6,4],evbuffer_drain:[2,5],nghttp2_no_error:[3,6,5],bar:4,ai_pass:2,ietf:[0,6,4,3],baz:4,push_promis:[2,6,3],method:[2,6,4,5,3],nghttp2_strerror:[2,6,5,3],nghttp2_gzip_inflate_del:[3,6],bufferevent_ssl_accept:2,nul:[3,6],result:[2,6,5,3],respons:[2,6,4,5,3],fail:[3,6],key_fil:2,subject:[2,6,5,1],said:[3,6],figur:4,bev_opt_close_on_fre:[2,5],accord:[3,6],extens:[4,5],advertis:[2,5],setsockopt:[2,5],against:[3,6],ssl_ctx_use_certificate_chain_fil:2,header_t:4,logic:2,browser:4,com:[0,6,4,3],int32_t:[2,6,5,3],assum:[3,6],duplic:[3,6],reciev:5,liabil:[2,6,5,1],evbuffer_get_length:[2,5],union:[0,6,3,2],max_deflate_s:4,been:[2,6,5,3],trigger:[3,6],interest:[2,4,5],basic:4,tini:5,life:2,regul:[2,5],ani:[2,1,3,4,5,6],ewouldblock:[2,5],ssl_op_no_compress:[2,5],servic:2,properti:[2,5],nghttp2_on_begin_headers_callback:[3,6,5],bev_event_timeout:[2,5],printabl:5,nghttp2_inadequate_secur:[3,6],nghttp2_set:[3,6],promised_stream_id:[3,6],conf:4,sever:[2,6,4,5,3],perform:[2,6,4,3],make:[2,6,4,3],transpar:[3,6],headlen:[3,6],split:[3,6],version_str:[3,6],nghttp2_on_stream_close_callback:[3,6,5],complet:[2,6,5,3],start_listen:2,bufferevent_openssl_get_ssl:[2,5],nghttp2_err_deferred_data_exist:[3,6],ssl_ctx_new:[2,5],zlib1g:4,ownership:[3,6],niv:[3,6,4],thu:[2,6,3],nghttp2_session_get_effective_local_window_s:[3,6],client:[0,2,3,4,5,6],thi:[0,1,2,3,4,5,6],endif:[2,6,1],gzip:[3,6,4],left:[3,6],protocol:[0,2,3,4,5,6],just:[2,6,4,5,3],"0x01":4,initiate_connect:5,ifdef:[2,6],previous:[3,6],easi:4,els:[2,5],applic:[2,6,4,5,3],initialize_nghttp2_sess:[2,5],specif:[2,6,5,3],arbitrari:[3,6],http2_session_data:[2,5],client_addr:2,manual:4,html:[0,6,4,3,2],tcp_nodelai:[2,5],unnecessari:5,underli:[2,5],www:[3,6],right:[2,6,5,1],deal:[2,6,5,1,3],intern:[3,6],successfulli:[2,6,5,3],transmiss:[2,6,5,3],ni_numerichost:2,bottom:[3,6],nghttp2_data_source_read_callback:[3,6],track:[2,4,5],condit:[2,6,5,1,3],foo:4,localhost:4,sensibl:[3,6],repositori:[2,5],peer:[2,6,5,3],post:[3,6,4],decompressor:4,inlen_ptr:[3,6],nghttp2_submit_data:[3,6],nghttp2_settings_max_concurrent_stream:[2,6,5,3],produc:[3,6],evbuff:[2,5],encod:[2,6,4,3],down:[2,5],pair:[2,6,4,5,3],errx:[2,5],git:[0,6,4,3],session_send:[2,5],wai:[3,6,4],support:[2,6,4,5,3],verbos:4,overhead:4,lowest:[3,6],head:[2,6,3],event_bas:[2,5],offer:4,taken:[3,6],"true":4,reset:5,ssl_ctx_free:[2,5],maximum:[3,6,4],until:[3,6],deafult:4,autoconf:4,emit:[2,6,5,3],nghttp2_initial_window_s:[3,6],featur:4,httpbi:[0,6,4,3],netdb:2,unreleas:4,exist:[3,6,4],ai_flag:2,ends_with:2,check:[2,6,5,3],delete_http2_session_data:[2,5],when:[2,6,4,5,3],role:[2,6,5,3],test:[0,4],send_client_connection_head:5,unlimit:[3,6],intend:2,af_unspec:[2,5],nghttp2_max_window_s:[3,6],technot:[3,6],max_siz:4,evconnlistener_new_bind:2,longer:[2,4],nghttp2_check_header_nam:[3,6],print_head:5,time:[2,6,4,3],push:[3,6,4],skip:[3,6],evbuffer_remov:2,nghttp2_on_frame_recv_callback:[3,6,5],nghttp2ver_h:1,decid:[3,6],create_ssl_ctx:[2,5],depend:[2,5],readabl:5,sourc:[0,6,5,3,2],string:[2,6,4,5,3],nghttp2_settings_enable_push:[3,6],level:[2,6,3],did:[3,6,5],item:4,settings_id:[3,6],conhead:2,upper:[3,6],sign:4,port:[2,4,5],appear:[3,6,4],event_base_fre:[2,5],current:[2,6,4,3],gener:[3,6,4],pad_high:[3,6],address:4,nghttp2_submit_rst_stream:[2,6,3],connect_error:[3,6],queue:[2,6,5,3],behav:[3,6],ourselv:[2,5],nghttp2_err_goaway_already_s:[3,6],regardless:[3,6],extra:[4,5],modul:4,prefer:[3,6],instal:4,hdinflat:4,memori:[2,6,4,5,3],strdup:2,prev:2,reorder:[3,6,5],rst_stream:[2,6,5,3],ctype:2,nghttp2_submit_window_upd:[3,6],prepar:[3,6],stream_user_data:[3,6,5],cat:[2,6,5,3],descriptor:[2,6,3],can:[2,6,4,5,3],http2:[0,6,4,3],purpos:[2,6,5,1],uf_path:5,claim:[2,6,5,1],stream:[2,6,4,5,3],agent:4,critic:[3,6],abort:[3,6],nghttp2_header:[2,6,5,3],occur:[3,6],alwai:[2,6,3],multipl:[2,6,5,3],charset:4,ping:[3,6],write:[2,4,5],opt_set_mask:[3,6],max:5,intrus:2,mai:[2,6,4,5,3],acceptcb:2,data:[2,6,4,5,3],autotool:4,stdin:4,inform:[2,6,4,5,3],"switch":[2,4,5],aaaabaaaagqaaaahaad__w:[],talk:[2,4],nghttp2_err_stream_shut_wr:[3,6],size_t:[2,6,5,3],nghttp2_err_unsupported_vers:[3,6],still:[2,6,4,3],pointer:[2,6,3],entiti:2,disconnect:[2,5],precondit:[3,6],tort:[2,6,5,1],window:[3,6],main:[2,5],non:[2,6,4,5,3],recal:5,initi:[2,6,5,3],nghttp2_submit_head:[3,6],nghttp2_on_header_callback:[2,6,5,3],"0x000400":1,name:[2,6,4,5,3],version_num:[3,6],config:4,no_error:4,drop:[2,6,5,3],replac:[3,6],individu:[3,6],continu:[2,6,5,3],event_base_loop:[2,5],turoti:5,happen:[2,4,5],ai_addrlen:2,space:[3,6,4],output_length:4,nghttp2_flag_end_push_promis:[3,6],earlier:[2,5],event_base_new:[2,5],argv:[2,5],org:[0,6,4,3],"byte":[2,6,4,5,3],argc:[2,5],care:[3,6],nghttp2_opt_no_auto_connection_window_upd:[3,6],nghttp2ver:[0,6,1,3],"88448504252dd5918485":4,befor:[2,6,4,5,3],thing:[2,6,5,3],nghttp2_flag_non:[2,6,5,3],place:[3,6],evdns_base_new:5,oper:[3,6,4],directli:[2,6,5,3],onc:[3,6],arrai:[3,6,4,5],yourself:4,nghttp2_is_fat:[3,6],nghttp2_flow_control_error:[3,6],submit:[3,6,5],on_frame_recv_callback:[2,6,5,3],open:[2,6,4,3],size:[2,6,4,3],avail:[2,6,4,5,3],given:[3,6],necessarili:[3,6],draft:[0,6,4,3],internal_error:[3,6],conveni:[3,6],ssl_ctx:[2,6,5,3],copi:[2,6,5,1,3],specifi:[2,6,4,5,3],"short":[2,5],holder:[2,6,5,1],than:[2,6,4,3],serv:2,wide:2,nghttp2_session_get_outbound_queue_s:[3,6],were:[2,5],posit:[3,6],read_callback:[2,6,3],enhance_your_calm:[3,6],fork:4,sai:[3,6],pri:[3,6],argument:[2,6,4,5,3],deliv:[3,6],sat:4,bitwis:[3,6],form:[3,6],nghttp2_flag_prior:[3,6],destroi:[2,5],payloadlen:[3,6],note:[2,6,4,5,3],take:[2,6,4,5,3],noth:[3,6],begin:5,sure:[2,4,5],normal:[3,6],buffer:[2,6,4,5,3],compress:[0,4],nghttp2_hcat_request:[2,6,5,3],pathlen:5,sublicens:[2,6,5,1],nghttp2_before_frame_send_callback:[3,6,5],http2_select:[3,6],later:[2,6,5,3],gracefulli:5,show:[4,5],unprocess:[2,5],concurr:[2,6,3],permiss:[2,6,5,1],threshold:2,onli:[2,6,4,5,3],end_seg:[3,6,4],state:[2,6,4,3],"4e5535a027780":4,overwritten:[3,6],hddeflat:4,variou:[3,6],get:[2,6,4,5,3],outlen:[3,6,5],ssl:[2,6,4,5,3],cannot:[2,6,3],nghttpd:4,requir:[0,6,4,3],nghttp2_set_stream_user_data:2,multi:4,aris:[2,6,5,1],reserv:[3,6],detect:[3,6,4],"import":4,fcntl:2,pipefd:2,evdns_bas:5,style:4,submit_request:5,region:[3,6],contract:[2,6,5,1],tutori:[0,5,2],deflatehd:4,mani:[3,6],nghttp2_data_provid:[2,6,3],unistd:[2,5],nghttp2_err_too_many_inflight_set:[3,6],cancel:[3,6],damag:[2,6,5,1],header_table_s:4,nghttp2_settings_max:[3,6],"abstract":[2,5],nghttp2_on_unknown_frame_recv_callback:[3,6],nghttp2_opt:[3,6],those:[2,6,5,3],uf_queri:5,hdr:[2,4,5],invok:[2,6,5,3],invoc:[2,6,3],on_data_chunk_recv_callback:[3,6,5],stdout:[4,5],ascii:[3,6],develop:[0,4],author:[2,6,4,5,1],bev_opt_defer_callback:[2,5],alphabet:[3,6],same:[2,6,4,5,3],ssl_library_init:[2,5],binari:5,pac:4,pad:[3,6,4],document:[0,1,2,4,5,6],finish:[2,5],decompress:[3,6,4],handshake_leftlen:2,extern:6,postpon:[3,6],macro:[0,6,1,3],without:[2,1,3,4,5,6],nghttp2_push_promis:[3,6],event2:[2,5],nghttp2_err_def:[3,6],nghttp2_submit_set:[2,6,5,3],execut:4,multiplex:[2,4],struct:[0,6,5,3,2],hint:2,except:[3,6],identif:[3,6],nghttp2_select_next_protocol:[3,6,5],real:5,create_http2_session_data:[2,5],nghttp2_version_ag:[3,6],nghttp2_check_header_valu:[3,6],next_proto_cb:2,integ:[3,6],server:[0,2,3,4,5,6],either:[2,6,3],output:[2,6,4,5,3],manag:[2,6,3],stream_clos:[3,6],ssl_ctx_set_next_protos_advertised_cb:2,handshak:[2,5],nonzero:[2,6,3],easili:5,exit:[2,5],freed:4,base64url:[3,6],inspect:[3,6],found:[2,6,3],getnameinfo:2,src:4,inflater_ptr:[3,6],ack:[3,6,4],dnsbase:5,settings_payload:[3,6],act:[2,5],routin:[2,5],no_auto_stream_window_upd:[3,6],least_vers:[3,6],error_repli:2,adjsut:4,b2a_hex:4,nghttp2_hcat_respons:[3,6,5],hex:[2,4],strict:4,nghttp2_err_stream_clos:[3,6],low:[3,6],lot:[3,6],ipv6:4,strictli:[3,6],next_proto_list:2,nghttp2_proto_version_id_len:[2,6,3],nghttp2_err_invalid_st:[3,6],nghttp2_flag_end_seg:[3,6],possibl:[2,6,5,3],"default":[2,6,4,3],applayerprotoneg:[3,6],hpack:[0,4],err_get_error:[2,5],expect:4,creat:[2,6,4,5,3],mainli:[3,6],decreas:[3,6],file:[2,1,3,4,5,6],nghttp2_err_invalid_header_block:[3,6],fill:2,denot:[3,6,5],functypedef:6,googl:4,field:[2,6,4,5,3],valid:[3,6,4],nghttp2_prioriti:[3,6],ignor:[2,6,3],you:[2,6,4,5,3],intention:[3,6],sequenc:[2,6,4,5,3],reduc:[3,6],cunit:4,directori:[2,4,5],mask:[3,6],represent:[3,1],all:[2,6,5,1,3],on_unknown_frame_recv_callback:[3,6],illustr:4,nghttp2_err_start_stream_not_allow:[3,6],lack:[3,6],follow:[2,1,3,4,5,6],ptr:[2,6,5,3],app_cont:2,uint8_t:[2,6,5,3],readcb:[2,5],program:[0,4,5,2],bufferevent_writ:[2,5],"case":[2,6,4,5,3],far:[2,5],pad_low:[3,6],settings_header_table_s:[3,6],print:[4,5],failur:[3,6],veri:[3,6,5],no_auto_connection_window_upd:[3,6],"__cplusplu":6,list:[2,6,3],nghttp2_headers_categori:[3,6],adjust:[3,6],stderr:[2,4,5],small:[3,6],session_recv:2,zero:[3,6],pass:[3,6,5],further:[2,6,5,3],what:[3,6,4],sub:2,sun:4,section:[3,6],delet:5,version:[0,6,4,1,3],"public":[0,6,4,3],libjansson:4,padlen:[3,6,4],percentage_of_original_s:4,excess:2,modifi:[2,6,4,5,1],valu:[2,6,4,5,3],search:2,ai_addrconfig:2,nghttp2_err_push_dis:[3,6],prior:4,amount:[2,5],action:[2,6,5,1,3],via:[2,6,4,5,3],primit:5,put:[3,6],famili:[2,5],establish:[2,5],select:[3,6,5],regist:2,libev:[0,4,5,2],bev_event_connect:[2,5],minor:[3,1],more:[2,6,4,5,3],tsujikawa:[2,6,5,1],nghttp2_settings_header_table_s:[3,6],nghttp2_pri_default:[3,6,5],flag:[2,6,4,5,3],particular:[2,6,5,1,3],known:[3,6],nghttp2_err_wouldblock:[2,6,5,3],endpoint:[3,6,4],dev:[4,1],remain:[2,6,5,3],share:[3,6,4],accept:[2,6,4,3],minimum:2,ssl_op_al:[2,5],create_ssl:[2,5],strlen:[2,5],huge:[2,5],netinet:[2,5],secur:4,anoth:[3,6],serveraddr:4,reject:[3,6],sec9:[3,6],simpl:[2,6,5,3],resourc:[0,6,4,5,3],referenc:4,variant:[3,6],spdylai:4,associ:[2,1,3,4,5,6],github:[0,4],caus:[3,6],callback:[2,6,5,3],alpn:[3,6,4],authroiti:5,hypertext:[0,4],libcunit1:4,through:[2,4],paramet:[3,6,5],typedef:[0,6,5,3,2],nghttp2_hcat_push_respons:[3,6],pend:[2,6,5,3],nghttp2_err_eof:[3,6],progoram:5,valuelen:[2,6,5,3],tri:[3,6],"return":[2,6,4,5,3],check_path:2,synopsi:[2,5],nghttp2_initial_max_concurrent_stream:[3,6],readlen:2,nghttp2_err_callback_failur:[2,6,5,3],tear:[2,5],achiev:[2,6,3],fulli:2,trailer:[3,6],nghttp2_on_frame_send_callback:[3,6],monoton:5,realli:5,connect:[2,1,3,4,5,6],field_set:5,event:[2,6,5,1],app_ctx:2,publish:[2,6,5,1],primari:[3,6],etag:4,nghttp2_client_connection_header_len:[2,6,5,3],on_frame_not_send_callback:[3,6],proxi:[0,4],differ:[3,6],effect:[3,6],reason:[2,6,3],base:[2,4,5],ask:[3,6],nghttp2_session_mem_recv:[2,6,5,3],nghttp2_flag:[3,6],recv:4,thread:[2,4],omit:[3,6,5],nghttp2_err_invalid_stream_st:[3,6],assign:[2,6,5,3],feed:[2,5],major:[3,1],notifi:2,prevent:[3,6],number:[2,6,1,3],"0x8":[3,6],done:[2,4,5],construct:[3,6],stdlib:6,nghttp2_internal_error:[2,6,3],script:4,data_prd:[2,6,3],nghttp2_session_get_stream_user_data:[2,6,5,3],least:[3,6,4],scheme:[4,5],store:[2,6,5,3],input_length:4,"0x0":[3,6],option:[2,6,4,5,3],similarli:[3,6],nghttp2_client_connection_head:[2,6,5,3],pars:5,kind:[2,6,5,1,3],doubli:2,remot:[2,6,5,3],remov:[2,6,3],bridg:4,ai_next:2,consumpt:[2,5],nghttp2_error:[3,6],window_size_incr:[3,6],lib_error_cod:[3,6],arrlen:[2,5],packag:4,"null":[2,6,5,3],syn_stream:[3,6],sell:[2,6,5,1],outbound:[3,6],equival:[3,6],afram:[3,6],also:[2,6,5,3],build:[0,4,5],nghttp2_err_frame_size_error:[3,6],make_nv:[2,5],distribut:[2,6,5,1],reacb:5,reach:[3,6],chart:[3,6],most:[3,6],vnu:[],charg:[2,6,5,1],addr:2,"01881f3468e5891afcbf83868a3d856659c62e3f":4,o_rdonli:2,awaaagqeaad__w:4,frame_size_error:[3,6],session:[2,6,5,3],nghttp2_submit_push_promis:[3,6],copyright:[2,6,5,1],refused_stream:[3,6],nghttp2_opt_no_auto_stream_window_upd:[3,6],queu:[2,6,5,3],express:[2,6,5,1],window_upd:[3,6],liabl:[2,6,5,1],before_frame_send_callback:[3,6,5],retreiv:5,crt:2,certif:[2,4,5],set:[2,6,4,5,3],seq:4,sep:4,ousid:4,remove_stream:2,nghttp2_submit_goawai:[3,6],arg:[2,6,5,3],close:[2,6,4,5,3],analog:[3,6],strchr:2,someth:[3,6],won:[2,6,3],hold:[3,6],nghttp2_on_data_chunk_recv_callback:[3,6,5],numer:[3,6,1],disallow:4,percent_decod:2,both:[2,6,4,5,3],last:[3,6,4],delimit:4,nghttp2_session_want_writ:[2,6,5,3],tempor:[3,6],context:[2,6,4,5,3],compression_error:[3,6],whole:[3,6],simpli:[2,5],send_server_connection_head:2,header:[0,2,3,4,5,6],shutdown:[2,6,5,3],nghttp2_session_client_new:[3,6,5],nghttp2_session:[2,6,5,3],backend:4,due:[3,6],empti:[2,6,4,5,3],send_respons:2,whom:[2,6,5,1],stdint:6,add_stream:2,flight:[3,6],nghttp2_err_nomem:[3,6],settings_enable_push:[3,6,4],nghttp2_session_terminate_sess:[3,6,5],buflen:[3,6],func:6,next_proto_list_len:2,look:[2,5],"while":[2,6,5,3],behavior:[3,6],error:[2,6,4,5,3],loop:[2,5],malloc:[2,5],nghttp2_session_callback:[2,6,5,3],readi:2,user_data:[2,6,5,3],itself:[2,6,5,3],flow_control_error:[3,6],grant:[2,6,5,1],belong:[3,6],read:[2,6,4,5,3],decod:[2,6,3],uf_schema:5,mytyp:[3,6],inflat:[3,6,4],alert:4,moment:4,user:[3,6,4,5],implement:[0,2,3,4,5,6],nghttp2_h:6,noninfring:[2,6,5,1],entri:[3,6,4],nghttp:4,person:[2,6,5,1],uint32_t:[3,6],self:4,hd_side_request:[],end_push_promis:[3,6],nghttp2_gzip_infl:[3,6],on_frame_send_callback:[3,6],nghttp2_ping:[3,6],input:[2,6,4,5,3],subsequ:[3,6],bin:4,on_begin_headers_callback:[2,6,5,3],format:[2,6,4,5,3],http_parser:5,bit:[3,6,1],strstr:2,signal:[2,6,5,3],lib_error:[3,6],bufferev:[2,5],some:[2,6,5,3],back:[3,6],sampl:4,sizeof:[2,5],libssl:4,lev_opt_reus:2,though:4,per:[3,6],larg:[3,6],make_nv2:5,machin:4,run:[2,6,4,5,3],step:[3,6],from:[0,1,2,3,4,5,6],handshake_readcb:2,idl:[3,6],block:[2,6,4,5,3],nghttp2_err_paus:[3,6],nsm:6,within:4,nghttp2_send_callback:[3,6,5],nghttp2_opt_set:[3,6],occupi:4,inclus:[3,6],errno:2,bodi:[2,6,5,3],"long":[3,6],nghttp2:[0,1,2,3,4,5,6],includ:[0,1,2,3,4,5,6],forward:4,session_ptr:[3,6],link:[2,4],ni_maxhost:2,nghttp2_session_set_stream_user_data:[2,6,3],line:4,concaten:[3,6],utf:4,caller:[2,6,3],nghttpx:4,clear:[3,6],parser:5,repres:[3,6],"char":[2,6,5,3],incomplet:4,sublen:2,titl:2,invalid:[3,6],transport:5,libtool:4,create_http2_stream_data:[2,5],nghttp2_flag_pad_low:[3,6],algorithm:[3,6],nghttp2_submit_request:[3,6,5],namelen:[2,6,5,3],getaddrinfo:2,code:[2,6,4,5,3],queri:5,nghttp2_frame_hd:[3,6],cython:4,privat:2,send:[2,6,4,5,3],http_parser_url:5,lower:[3,6],sens:[3,6],fatal:[2,6,5,3],sent:[2,6,5,3],nghttp2_submit_p:[3,6],untouch:[3,6],relev:[2,5],"0x010203":[3,1],magic:[2,5],http_parser_parse_url:5,"try":4,refer:[0,6,4,3],pleas:[2,6,4,5,3],impli:[2,6,5,1],smaller:4,snprintf:5,"0x2":[3,6],"0x1":[3,6],memset:[2,5],"0x4":[3,6],download:[0,4],index:4,compar:[3,6,5],settings_flow_control_opt:[],access:4,experiment:[0,4],nghttp2_session_server_new:[2,6,3],ssl_ctx_set_opt:[2,5],nghttp2_enhance_your_calm:[3,6],len:[2,6,5,3],closur:[3,6,5],nghttp2_rst_stream:[3,6],ubuntu:4,becom:[2,6,1,3],sinc:[2,6,4,5,3],remark:[0,3],larger:[3,6],host:[0,4,5,2],autoreconf:4,jansson:4,greac:[2,5],chang:[2,6,3],output_wouldblock_threshold:2,appli:[3,6],api:[0,6,3],feb:4,commun:[2,4,5],binascii:4,upgrad:[3,6,4],next:[2,6,5,3],findproxyforurl:4,usr:4,nghttp2_nv:[2,6,5,3],jxck:4,goawai:[2,6,4,5,3],deflat:[3,6,4],account:[3,6,4,5],retriev:[2,6,5,3],tunnel:4,nghttp2_settings_id:[3,6],aliv:[2,6,3],sslv23_client_method:5,control:[3,6],process:[2,6,4,5,3],fprintf:[2,5],onlin:[3,4],serial:[2,6,5,3],evdns_base_fre:5,nghttp2_session_want_read:[2,6,5,3],ssl_ctx_use_privatekey_fil:2,evbas:[2,5],instead:[3,6],nullifi:[3,6],npn:[2,6,4,5,3],max_payloadlen:[3,6],eventcb:[2,5],nghttp2_compression_error:[3,6],alloc:[2,6,3],bind:[0,4],nvlen:[2,6,5,3],correspond:[2,4],element:[2,6,3],issu:[0,6,3],stream_id:[2,6,4,5,3],nghttp2_connect_error:[3,6],ssize_t:[2,6,5,3],furnish:[2,6,5,1],move:[3,6],max_outlen:[3,6],therefor:[3,6,5],nghttp2_session_send:[2,6,5,3],inlen:[3,6,5],recept:[2,6,5,3],crash:3,greater:[3,6],handl:[2,5],nghttp2_goawai:[3,6],handi:5,ssl_op_no_sslv2:[2,5],anyth:5,uf_port:5,mode:4,bump:[3,6],chunk:[3,6,5],nghttp2_err_temporal_callback_failur:[2,6,3],"static":[2,6,4,5,3],our:5,patch:[3,1],out:[2,1,3,4,5,6],variabl:4,req:[3,6],categori:[3,6,5],suitabl:[3,6],rel:2,field_data:5,recv_callback:[3,6],insid:4,releas:[0,1,3],could:[2,6,5,3],keep:[2,6,4,5,3],length:[2,6,4,5,3],outsid:[3,4],retain:[3,6],softwar:[2,6,5,1],addrinfo:2,date:4,prioriti:[3,6,5],start:[2,6,4,5,3],unknown:[2,6,3],system:[2,5],messag:[3,6,5],attach:[2,5],termin:[2,6,4,5,3],ipv4:4,sa_handl:[2,5],enqueu:5,exactli:[2,4],nghttp2_err_header_comp:[3,6],see:[2,6,4,5,3],structur:[2,6,5,3],charact:[2,6,5,3],nghttp2_session_del:[2,6,5,3],bev:[2,5],ssl_new:[2,5],buz:4,bufferevent_get_input:[2,5],corrupt:5,have:[2,6,4,5,3],tabl:[3,6,4],need:[3,6,4,5],ai_socktyp:2,"0x04":4,"0x05":4,"0x00":[3,6,4],nghttp2_err_flow_control:[3,6],nghttp2_refused_stream:[3,6],evbuffer_pullup:[2,5],which:[2,6,4,5,3],zlib:4,singl:[2,6,4,5,3],opaque_data_len:[3,6],unless:[3,6],bufferevent_openssl_socket_new:[2,5],settings_max_concurrent_stream:[2,6,4,5,3],stream_data:[2,5],deploi:4,"class":4,nghttp2_error_cod:[2,6,5,3],nghttp2_err_stream_id_not_avail:[3,6],url:[2,4],request:[2,6,4,5,3],uri:[4,5],pipe:2,determin:4,nghttp2_pack_settings_payload:[3,6],"0x0d":[3,6],"0x0a":[3,6],ssl_load_error_str:[2,5],text:4,bufferevent_get_output:[2,5],redirect:5,locat:5,should:[2,6,4,5,3],local:[3,6],meant:5,familiar:4,memcpi:[2,5],nghttp2_session_client_new2:[3,6],settings_initial_window_s:[3,6,4],nghttp2_data:[2,6,3],increas:[3,6,5],nghttp2_submit_respons:[2,6,3],enabl:4,nghttp2_info:[3,6],stuff:[3,6],contain:[2,6,4,5,3],nghttp2_window_upd:[3,6],frame:[2,6,4,5,3],knowledg:4,temporarili:[3,6],statu:[0,6,4,3,2],wire:[2,4,5],nghttp2_settings_entri:[2,6,5,3],written:[2,6,4,5,3],https_uri:5,nghttp2_initial_connection_window_s:[3,6],kei:[2,6,4,3],supporet:[],entir:[2,6,3],last_stream_id:[3,6,4],addit:[2,6,3],revers:4,nghttp2_proto_version_id:[2,6,5,3],equal:2,etc:[2,4,5],instanc:[3,6],uint16_t:[3,6,5],rfc2616:[3,6],commenc:5,respect:[3,6,5],nghttp2_recv_callback:[3,6],ssl_ctx_set_next_proto_select_cb:[3,6,5],insuffici:[3,6],compon:5,json:4,treat:[2,6,3],nghttp2_err_invalid_argu:[3,6],immedi:[3,6],nghttp2_hcat_head:[3,6],sock_stream:2,evconnlisten:2,on_header_callback:[2,6,5,3],nghttp2_frame_size_error:[3,6],defin:[2,6,5,1,3],eintr:2,inadequate_secur:[3,6],helper:[3,6],on_request_recv:2,libxml2:4,squid:4,select_next_proto_cb:[3,6,5],archiv:[2,5],substanti:[2,6,5,1],incom:[2,6,4,3],let:[2,5],member:[2,6,3],python:[0,4],ifndef:[6,1],dyanmic:4,http:[0,1,2,3,4,5,6],hostnam:4,uf_host:5,dealloc:4,peer_max_concurrent_stream:[3,6],off:5,well:[2,5],app_context:2,"0x10":[3,6],inflatehd:4,exampl:[2,6,4,5,3],command:4,choos:[3,6],error_cod:[2,6,4,5,3],nghttp2_data_sourc:[2,6,3],usual:[3,6],paus:[3,6],less:[3,6],send_callback:[2,6,5,3],half:[3,6],obtain:[2,6,5,1],tcp:[2,5],web:[2,4],cert_fil:2,point:[2,6,5,3],priorit:[3,6],addrlen:2,add:[2,6,3],match:[2,5],gmt:4,nvu:4,know:[3,6],nva:[2,6,5,3],python3:4,resid:[2,5],like:[2,6,4,5,3],success:4,nghttp2_pri_lowest:[3,6],nghttp2_flag_end_head:[3,6],necessari:2,tlen:[3,6],page:[2,5],file_read_callback:2,suppli:[3,6],"export":2,nghttp2_session_get_effective_recv_data_length:[3,6],error_html:2,librari:[0,1,2,3,4,5,6],lead:[3,6],avoid:[2,6,5,3],octet:[2,5],overlap:[3,6],isxdigit:2,outgo:[2,6,3],nghttp2_session_upgrad:[3,6],delete_http2_stream_data:[2,5],"enum":[0,6,3],usag:[2,6,4,5,3],settings_payloadlen:[3,6],nghttp2_nv_compare_nam:[3,6],about:[2,6,5,3],actual:[2,6,5,3],socket:[2,4,5],nghttp2_gzip:[3,6],chrome:4,fals:4,ssl_tlsext_err_ok:[2,6,5,3],disabl:[3,6,4],own:[3,6],nghttp2_err_invalid_fram:[3,6],automat:[3,6],warranti:[2,6,5,1],automak:4,merg:[2,6,5,1],val:[2,5],ai_famili:2,transfer:[0,6,4,3],ssl_filetype_pem:2,much:[2,6,3],"function":[0,2,3,4,5,6],unexpect:[3,6],bufferevent_fre:[2,5],overflow:[3,6],highest:[3,6],buf:[2,6,3],count:[3,6],succe:[3,6],nghttp2_stream_clos:[3,6],whether:[2,6,5,1],googlecod:[3,6],displai:4,asynchron:[3,6],limit:[2,6,5,1],otherwis:[2,6,5,1,3],problem:[3,6],sockaddr:2,nghttp2_on_frame_not_send_callback:[3,6],strndup:5,"int":[2,6,5,3],nghttp2_flag_end_stream:[2,6,3],allow:[3,6,4],percent:2,detail:[3,6],other:[2,6,5,1,3],futur:[3,6],rememb:[2,5],outlen_ptr:[3,6],stat:2,err_error_str:[2,5],nghttp2_opt_peer_max_concurrent_stream:[3,6],rel_path:2,proto_str:[3,6],debian:4,session_data:[2,5],sphinx:4,eof:[2,6,3],reliabl:[3,6],indirectli:3,rule:[3,6],portion:[2,6,5,1,3]},objtypes:{"0":"c:member","1":"c:macro","2":"c:type","3":"c:function"},titles:["nghttp2 - HTTP/2.0 C Library","nghttp2ver.h","Tutorial: HTTP/2.0 server","API Reference","nghttp2 - HTTP/2.0 C Library","Tutorial: HTTP/2.0 client","nghttp2.h"],objnames:{"0":["c","member","C member"],"1":["c","macro","C macro"],"2":["c","type","C type"],"3":["c","function","C function"]},filenames:["index","nghttp2ver.h","tutorial-server","apiref","package_README","tutorial-client","nghttp2.h"]})
\ No newline at end of file