diff --git a/apiref.html b/apiref.html
index 106da994..a64804c0 100644
--- a/apiref.html
+++ b/apiref.html
@@ -1088,7 +1088,7 @@ int32_t stream_id
The type of this frame. See nghttp2_frame(). The type of this frame. See nghttp2_frame_type(). The error code. See nghttp2_error_code. The error code. See nghttp2_error_code.
@@ -1274,7 +1274,7 @@ size_t nvlen
@@ -1395,7 +1395,7 @@ int32_t last_stream_id
To set this callback to nghttp2_session_callbacks, use +nghttp2_session_callbacks_set_send_callback().
To set this callback to nghttp2_session_callbacks, use +nghttp2_session_callbacks_set_recv_callback().
Only HEADERS and DATA frame can signal the end of incoming data. If frame->hd.flags & NGHTTP2_FLAG_END_STREAM is nonzero, the frame is the last frame from the remote peer in this stream.
+This callback won’t be called for CONTINUATION frames. +HEADERS/PUSH_PROMISE + CONTINUATIONs are treated as single frame.
The implementation of this function must return 0 if it succeeds. If nonzero value is returned, it is treated as fatal error and nghttp2_session_recv() and nghttp2_session_mem_recv() functions immediately return NGHTTP2_ERR_CALLBACK_FAILURE.
+To set this callback to nghttp2_session_callbacks, use +nghttp2_session_callbacks_set_on_frame_recv_callback().
Callback function invoked by nghttp2_session_recv() when an -invalid non-DATA frame is received. The error_code is one of the -nghttp2_error_code and indicates the error. When this -callback function is invoked, the library automatically submits -either RST_STREAM or GOAWAY frame. The user_data pointer is the -third argument passed in to the call to -nghttp2_session_client_new() or nghttp2_session_server_new().
+invalid non-DATA frame is received. The error_code indicates the +error. It is usually one of the nghttp2_error_code but +that is not guaranteed. When this callback function is invoked, +the library automatically submits either RST_STREAM or GOAWAY +frame. The user_data pointer is the third argument passed in to +the call to nghttp2_session_client_new() or +nghttp2_session_server_new().If frame is HEADERS or PUSH_PROMISE, the nva and nvlen member of their data structure are always NULL and 0 respectively.
@@ -1661,6 +1670,8 @@ respectively. If nonzero is returned, it is treated as fatal error and nghttp2_session_recv() and nghttp2_session_send() functions immediately return NGHTTP2_ERR_CALLBACK_FAILURE. +To set this callback to nghttp2_session_callbacks, use +nghttp2_session_callbacks_set_on_invalid_frame_recv_callback().
To set this callback to nghttp2_session_callbacks, use +nghttp2_session_callbacks_set_on_data_chunk_recv_callback().
To set this callback to nghttp2_session_callbacks, use +nghttp2_session_callbacks_set_before_frame_send_callback().
To set this callback to nghttp2_session_callbacks, use +nghttp2_session_callbacks_set_on_frame_send_callback().
To set this callback to nghttp2_session_callbacks, use +nghttp2_session_callbacks_set_on_frame_not_send_callback().
Callback function invoked when the stream stream_id is closed. The reason of closure is indicated by the error_code. The -stream_user_data, which was specified in nghttp2_submit_request() -or nghttp2_submit_headers(), is still available in this function. -The user_data pointer is the third argument passed in to the call -to nghttp2_session_client_new() or +error_code is usually one of nghttp2_error_code, but that +is not guaranteed. The stream_user_data, which was specified in +nghttp2_submit_request() or nghttp2_submit_headers(), is still +available in this function. The user_data pointer is the third +argument passed in to the call to nghttp2_session_client_new() or nghttp2_session_server_new().
This function is also called for a stream in reserved state.
The implementation of this function must return 0 if it succeeds. If nonzero is returned, it is treated as fatal error and nghttp2_session_recv() and nghttp2_session_send() functions immediately return NGHTTP2_ERR_CALLBACK_FAILURE.
-Callback function invoked when the received frame type is unknown. -The head is the pointer to the header of the received frame. The -headlen is the length of the head. According to the spec, the -headlen is always 8. In other words, the head is the first 8 -bytes of the received frame. The payload is the pointer to the -data portion of the received frame. The payloadlen is the length -of the payload. This is the data after the length field. The -user_data pointer is the third argument passed in to the call to -nghttp2_session_client_new() or nghttp2_session_server_new().
-The implementation of this function must return 0 if it succeeds. -If nonzero is returned, it is treated as fatal error and -nghttp2_session_recv() and nghttp2_session_send() functions -immediately return NGHTTP2_ERR_CALLBACK_FAILURE.
+To set this callback to nghttp2_session_callbacks, use +nghttp2_session_callbacks_set_on_stream_close_callback().
To set this callback to nghttp2_session_callbacks, use +nghttp2_session_callbacks_set_on_begin_headers_callback().
To set this callback to nghttp2_session_callbacks, use +nghttp2_session_callbacks_set_on_header_callback().
To set this callback to nghttp2_session_callbacks, use +nghttp2_session_callbacks_set_select_padding_callback().
+Callback function invoked when library wants to get max length of +data to send data to the remote peer. The implementation of this +function should return a value in the following range. [1, +min(session_remote_window_size, stream_remote_window_size, +remote_max_frame_size)]. If a value greater than this range is +returned than the max allow value will be used. Returning a value +smaller than this range is treated as +NGHTTP2_ERR_CALLBACK_FAILURE. The frame_type is provided +for future extensibility and identifies the type of frame (see +nghttp2_frame_type) for which to get the length for. +Currently supported frame types are: NGHTTP2_DATA.
+This callback can be used to control the length in bytes for which +nghttp2_data_source_read_callback is allowed to send to the +remote endpoint. This callback is optional. Returning +NGHTTP2_ERR_CALLBACK_FAILURE will signal the entire session +failure.
+To set this callback to nghttp2_session_callbacks, use +nghttp2_session_callbacks_set_data_source_read_length_callback().
+Callback function invoked when a frame header is received. The +hd points to received frame header.
+Unlike nghttp2_on_frame_recv_callback, this callback will +also be called when frame header of CONTINUATION frame is received.
+If both nghttp2_on_begin_frame_callback and +nghttp2_on_begin_headers_callback are set and HEADERS or +PUSH_PROMISE is received, nghttp2_on_begin_frame_callback +will be called first.
+The implementation of this function must return 0 if it succeeds. +If nonzero value is returned, it is treated as fatal error and +nghttp2_session_recv() and nghttp2_session_mem_recv() functions +immediately return NGHTTP2_ERR_CALLBACK_FAILURE.
+To set this callback to nghttp2_session_callbacks, use +nghttp2_session_callbacks_set_on_begin_frame_callback().
Callback functions.
-Callback function invoked when the session wants to send data -to the remote peer. This callback is not necessary if the -application uses solely nghttp2_session_mem_send() to serialize -data to transmit.
-Callback function invoked when the session wants to receive -data from the remote peer. This callback is not necessary if the -application uses solely nghttp2_session_mem_recv() to process -received data.
-Callback function invoked by nghttp2_session_recv() when a -frame is received.
-Callback function invoked by nghttp2_session_recv() when an -invalid non-DATA frame is received.
-Callback function invoked when a chunk of data in DATA frame is -received.
-Callback function invoked before a non-DATA frame is sent.
-Callback function invoked after a frame is sent.
-The callback function invoked when a non-DATA frame is not sent -because of an error.
-Callback function invoked when the stream is closed.
-Callback function invoked when the received frame type is -unknown.
-Callback function invoked when the reception of header block in -HEADERS or PUSH_PROMISE is started.
-Callback function invoked when a header name/value pair is -received.
-Callback function invoked when the library asks application how -many padding bytes are required for the transmission of the given -frame.
-Callback functions for nghttp2_session. The details of +this structure are intentionally hidden from the public API.
Initializes *callbacks_ptr with NULL values.
+The initialized object can be used when initializing multiple +nghttp2_session objects.
+When the application finished using this object, it can use +nghttp2_session_callbacks_del() to free its memory.
+This function returns 0 if it succeeds, or one of the following +negative error codes:
+Frees any resources allocated for callbacks. If callbacks is +NULL, this function does nothing.
+Sets callback function invoked when a session wants to send data to +the remote peer. This callback is not necessary if the application +uses solely nghttp2_session_mem_send() to serialize data to +transmit.
+Sets callback function invoked when the a session wants to receive +data from the remote peer. This callback is not necessary if the +application uses solely nghttp2_session_mem_recv() to process +received data.
+Sets callback function invoked by nghttp2_session_recv() when a +frame is received.
+Sets callback function invoked by nghttp2_session_recv() when an +invalid non-DATA frame is received.
+Sets callback function invoked when a chunk of data in DATA frame +is received.
+Sets callback function invoked before a non-DATA frame is sent.
+Sets callback function invoked after a frame is sent.
+Sets callback function invoked when a non-DATA frame is not sent +because of an error.
+Sets callback function invoked when the stream is closed.
+Sets callback function invoked when the reception of header block +in HEADERS or PUSH_PROMISE is started.
+Sets callback function invoked when a header name/value pair is +received.
+Sets callback function invoked when the library asks application +how many padding bytes are required for the transmission of the +given frame.
+Sets callback function determine the length allowed in +nghttp2_data_source_read_callback.
+Sets callback function invoked when a frame header is received.
+The nghttp2_send_callback must be specified. If the +application code uses nghttp2_session_recv(), the +nghttp2_recv_callback must be specified. The other members +of callbacks can be NULL.
If this function fails, *session_ptr is left untouched.
This function returns 0 if it succeeds, or one of the following negative error codes:
@@ -2047,10 +2129,10 @@ int nghttp2_session_server_new(nghttp2_session_callbacks.send_callback must be -specified. If the application code uses nghttp2_session_recv(), -the nghttp2_session_callbacks.recv_callback must be -specified. The other members of callbacks can be NULL. +The nghttp2_send_callback must be specified. If the +application code uses nghttp2_session_recv(), the +nghttp2_recv_callback must be specified. The other members +of callbacks can be NULL.
If this function fails, *session_ptr is left untouched.
This function returns 0 if it succeeds, or one of the following negative error codes:
@@ -2112,7 +2194,7 @@ int nghttp2_session_send(nghttp2_session_callbacks.send_callback returns +nghttp2_send_callback returns NGHTTP2_ERR_WOULDBLOCK or the outbound queue becomes empty. This function calls several callback functions which are passed when initializing the session. Here is the simple time chart @@ -2122,22 +2204,18 @@ which tells when each callback is invoked:This function returns 0 if it succeeds, or one of the following negative error codes:
@@ -2154,11 +2232,10 @@ negative error codes: ssize_t nghttp2_session_mem_send(nghttp2_session *session, const uint8_t **data_ptr)¶Returns the serialized data to send.
This function behaves like nghttp2_session_send() except that it -does not use nghttp2_session_callbacks.send_callback to -transmit data. Instead, it assigns the pointer to the serialized -data to the *data_ptr and returns its length. The other -callbacks are called in the same way as they are in -nghttp2_session_send().
+does not use nghttp2_send_callback to transmit data. +Instead, it assigns the pointer to the serialized data to the +*data_ptr and returns its length. The other callbacks are called +in the same way as they are in nghttp2_session_send().If no data is available to send, this function returns 0.
This function may not return all serialized data in one invocation. To get all data, call this function repeatedly until it returns 0 @@ -2181,49 +2258,42 @@ codes:
int nghttp2_session_recv(nghttp2_session *session)¶Receives frames from the remote peer.
This function receives as many frames as possible until the user -callback nghttp2_session_callbacks.recv_callback returns +callback nghttp2_recv_callback returns NGHTTP2_ERR_WOULDBLOCK. This function calls several callback functions which are passed when initializing the session. Here is the simple time chart which tells when each callback is invoked:
In the current implementation, this function always tries to processes all input data unless either an error occurs or NGHTTP2_ERR_PAUSE is returned from -nghttp2_session_callbacks.on_header_callback or -nghttp2_session_callbacks.on_data_chunk_recv_callback. -If NGHTTP2_ERR_PAUSE is used, the return value includes the +nghttp2_on_header_callback or +nghttp2_on_data_chunk_recv_callback. If +NGHTTP2_ERR_PAUSE is used, the return value includes the number of bytes which was used to produce the data or frame for the callback.
This function returns the number of processed bytes, or one of the @@ -2393,12 +2462,23 @@ that and returns effective window size.
Returns the remote window size for a given stream stream_id. -This is the amount of flow-controlled payload (e.g., DATA) that the -local endpoint can send without WINDOW_UPDATE.
+Returns the remote window size for a given stream stream_id.
+This is the amount of flow-controlled payload (e.g., DATA) that the +local endpoint can send without stream level WINDOW_UPDATE. There +is also connection level flow control, so the effective size of +payload that the local endpoint can actually send is +min(nghttp2_session_get_stream_remote_window_size(), +nghttp2_session_get_remote_window_size()).
This function returns -1 if it fails.
Returns the remote window size for a connection.
+This function always succeeds.
+Signals the session so that the connection should be terminated.
The last stream ID is the ID of a stream for which nghttp2_on_frame_recv_callback was called most recently.
-The error_code is the error code of this GOAWAY frame.
+The error_code is the error code of this GOAWAY frame. The +pre-defined error code is one of nghttp2_error_code.
After the transmission, both nghttp2_session_want_read() and nghttp2_session_want_write() return 0.
This function should be called when the connection should be @@ -2435,7 +2516,7 @@ negative error codes:
Signals the session so that the connection should be terminated.
This function behaves like nghttp2_session_terminate_session(), but the last stream ID can be specified by the application for fine @@ -2612,8 +2693,8 @@ reached.
This function returns assigned stream ID if it succeeds. But that stream is not opened yet. The application must not submit frame to that stream ID before -nghttp2_session_callbacks.before_frame_send_callback is -called for this frame.
+nghttp2_before_frame_send_callback is called for this +frame.This function returns assigned stream ID if it succeeds and stream_id is -1. But that stream is not opened yet. The application must not submit frame to that stream ID before -nghttp2_session_callbacks.before_frame_send_callback is -called for this frame.
+nghttp2_before_frame_send_callback is called for this +frame. @@ -2769,9 +2850,10 @@ depend on itself.Submits RST_STREAM frame to cancel/reject the stream stream_id with the error code error_code.
+The pre-defined error code is one of nghttp2_error_code.
The flags is currently ignored and should be NGHTTP2_FLAG_NONE.
This function returns 0 if it succeeds, or one of the following @@ -2856,8 +2938,8 @@ reached.
This function returns assigned promised stream ID if it succeeds. But that stream is not opened yet. The application must not submit frame to that stream ID before -nghttp2_session_callbacks.before_frame_send_callback is -called for this frame.
+nghttp2_before_frame_send_callback is called for this +frame.Submits GOAWAY frame with the last stream ID last_stream_id and the error code error_code.
+The pre-defined error code is one of nghttp2_error_code.
The flags is currently ignored and should be NGHTTP2_FLAG_NONE.
If the opaque_data is not NULL and opaque_data_len is not diff --git a/genindex.html b/genindex.html index 8e93666c..05601439 100644 --- a/genindex.html +++ b/genindex.html @@ -1776,6 +1776,10 @@ +
To enable SPDY protocol in the application program nghttpx and h2load, the following package is required:
To enable -a option (getting linked assets from the downloaded resource) in nghttp, the following package is required:
diff --git a/searchindex.js b/searchindex.js index ea6a74e9..b2017b01 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({envversion:42,terms:{my_obj:[7,11],create_serv:4,nghttp2_cancel:[7,11],prefix:[7,11,15,14],nghttp2_priority_spec_init:[7,11],nghttp2_session_get_stream_effective_local_window_s:[7,11],whose:[7,2,11],op_al:[8,4],"const":[0,7,11,10,14],"535d0eea":8,"0x20":[7,11,8],under:[7,11,8,15],bufferevent_getfd:10,spec:[7,11],merchant:[0,14,11,10,5],digit:10,downstream:6,"void":[0,7,11,10,14],bufferevent_ssl:[14,10],affect:3,initialize_nghttp2_setup:[14,10],verif:10,nghttp2_settings_initial_window_s:[7,11],x86_64:15,on_stream_close_callback:[7,11,10,14],direct:8,protoid:[6,13],second:2,aggreg:12,even:[0,12],rfc7230:[7,11],ssl_op_no_session_resumption_on_renegoti:[14,10],neg:[7,11],nghttp2_err_insuff_bufs:[7,11],"new":[7,11,8,12,14],tatsuhiro:[0,1,3,5,14,8,10,11],nghttp2_session_resume_data:[7,11],ipproto_tcp:[14,10],abov:[0,14,5,7,8,10,11,12],initialize_app_context:14,never:[7,11],here:[0,14,3,7,8,10,11,12,15],met:[7,11,12,10,14],"4xx":[8,3],path:[0,6,4,14,8,10,9,12,15],settings_timeout:[7,11],interpret:[7,11],nextprotoneg:[7,11],sslv23_server_method:14,errorlog:[6,12],credit:8,permit:[0,14,11,10,5],nghttp2_submit_prior:[7,11],aka:[7,11,8],nghttp2_frame:[7,11,10,14],settings_max_frame_s:[7,11],bufferevent_ssl_connect:10,substr:14,bev_event_error:[14,10],printf:0,bufferevent_socket_connect_hostnam:10,total:[7,11,8,3],unit:8,describ:[0,6,14,7,8,10,11,12,15],would:[7,11,14],nghttp2_inadequate_secur:[7,11],call:[0,14,4,7,8,10,11,12],asset:[2,8],recommend:[8,15],nghttp2_on_invalid_frame_recv_callback:[7,11],nghttp2_version:[7,11,5],until:[0,7,11,4],reusabl:8,relat:[14,10],nghttp2_cleartext_proto_version_id_len:[7,11],warn:[6,11,14],nghttp2_option_set_peer_max_concurrent_stream:[7,11],relai:6,ssl_shutdown:[14,10],hold:[7,11],unpack:[7,11,15],must:[0,6,2,4,14,7,8,9,11,12,15],word:[7,11],insignific:0,err:[14,10],exit_failur:[0,14,10],setup:[14,10],work:[6,4,14,8,9,12,15],lev_opt_close_on_fre:14,nghttp2_flag_ack:[7,11],root:[6,8,9,14],could:[7,11,14,4,10],defer:[7,11,10,14],give:[7,11,8,4],indic:[0,6,4,14,7,10,11],want:[6,4,14,7,10,11,12],select_padding_callback:[7,11],unsign:[7,11,10,14],end:[7,2,14,10,11],thing:[7,11,10,14],datalen:[14,10],how:[7,15],hot:1,hop:[7,11],verifi:[6,9],negoti:8,nghttp2_frame_typ:[7,11],updat:[7,11],after:[0,6,2,3,14,7,8,10,11,12,15],settings_header_table_s:[7,11],befor:[14,3,4,7,8,11,15],demonstr:10,request_path:14,third:[7,11,10,14],opaqu:[7,11],bootstrap:8,exclud:[7,11],receiv:[6,2,3,4,14,7,8,9,10,11],environ:[12,15],enter:12,exclus:[7,11],first:[0,6,3,4,14,7,8,10,11,12,13,15],order:[0,6,3,7,8,11,13],oper:[7,11,8,12],frontend:[6,8,12],crumbl:6,over:[6,14,7,8,10,11],becaus:[0,14,4,7,10,11,15],privileg:6,eagain:[14,10],fit:[0,14,11,10,5],nghttp2_session_get_stream_remote_window_s:[7,11],fwrite:[0,7,11,10],"9d33":8,deflate_s:8,"1xx":[7,11],easier:15,them:[14,7,8,10,11,12],nghttp2_hd_deflate_del:[0,7,11],thei:[6,3,4,14,7,8,10,11],fragment:8,safe:[6,11,14,7],"break":[0,7,11,10,14],promis:[7,11],choic:[7,11],openssl_config:[14,10],ai_addr:14,timeout:2,each:[0,6,2,4,14,7,8,10,11,12,13],debug:[6,2,7,9,10,11,13,15],went:15,side:[7,11,8,14],mean:[6,11,4,10,7],slen:14,protocol_error:[7,11],nghttp2_select_padding_callback:[7,11],http2_stream_data:[14,10],nghttp2_session_server_new2:[7,11],deflater_ptr:[0,7,11],network:[14,12,10],cross_compil:15,newli:[7,11,10],content:[1,2,4,6,8,12,14],rewrit:1,android_hom:15,hd_table_bufsize_max:4,end_stream:[7,11,8],written:[7,11,8,10],situat:[3,10],free:[0,14,5,7,10,11],standard:4,b127:12,nghttp2_err_deferred_data_exist:[7,11],spdy:[3,7,11,12,13,15],openssl:[6,8,15,10,14],nghttp2_version_num:[7,11,5],sigact:[14,10],rang:[7,2,8,11],warnx:[14,10],deflate_max_header_table_s:4,restrict:[0,14,11,10,5],nghttp2_protocol_error:[7,11],alreadi:[6,14,7,8,10,11],agre:8,primari:[7,11],top:[8,12,4],sometim:3,necessarili:[7,11],too:[7,2,11,14],similarli:7,draft:[1,11,8,7],listen:[6,8,12,9,14],tool:[7,15],lighttpd:8,travers:14,white:6,target:[7,11,8,4],provid:[0,14,4,5,7,8,10,11],tree:8,zero:[0,7,11],cppflag:15,project:[1,8],matter:[7,11],rfc2616:[7,11],nghttp2_continu:[7,11],nv_out:[0,7,11],manner:[6,3],increment:[7,11],seen:2,nghttp2_session_recv:[7,11],latter:[7,11,4],transmit:[7,11,10],sig_ign:[14,10],settings_max_header_list_s:[7,11],shall:[0,14,11,10,5],object:[0,14,4,7,8,10,11],writecb:[14,10],nghttp2_settings_timeout:[7,11],bytesio:[8,4],simplic:10,don:[6,2,14,7,8,11,15],hex_to_uint:14,doc:[8,9],flow:7,doe:[14,4,7,8,10,9,11,12],opaque_data:[7,11,8],section:[7,11,8],on_invalid_frame_recv_callback:[7,11],bev_event_eof:[14,10],pkg:8,protocol:7,bufferevent_setcb:[14,10],make:[6,4,14,7,8,9,11,12,15],involv:[7,11],absolut:[6,12],libari:8,explain:[12,10],configur:[6,4,7,8,9,11,12,15],dnsbase:10,busi:[14,10],nghttp2_cleartext_proto_version_id:[7,11],nghttp2_err_proto:[7,11],authoritylen:10,stop:[7,11,10,14],end_head:[7,11,8],evbuffer_drain:[14,10],bar:[6,8,4,9],ai_pass:14,ietf:[1,11,8,7],baz:[8,4],push_promis:[7,11,14],"public":[1,11,7],twice:2,nghttp2_strerror:[0,7,11,10,14],bufferevent_ssl_accept:14,serve_forev:[8,4],nul:[7,11],num:6,result:[0,14,3,7,10,11],respons:[0,6,3,4,14,7,8,9,10,11,12],fail:[0,14,3,7,8,10,11,12],key_fil:14,subject:[0,14,11,10,5],said:[7,11],figur:8,certpath:6,bev_opt_close_on_fre:[14,10],accord:[7,11],push_path:9,pointer:[0,7,11,14],extens:[6,4,7,8,10,11],advertis:[6,10,14],setsockopt:[14,10],protect:6,nghttp2_default_weight:[7,11],nghttp2_hd_deflate_hd:[0,7,11],against:[7,11,8],ssl_ctx_use_certificate_chain_fil:14,header_t:8,logic:14,enhance_your_calm:[7,11],com:[1,11,8,12,7],ninflat:0,int32_t:[7,11,10,14],"2nd":[0,13],usr2:12,usr1:[6,12],trust:6,assum:[6,4,7,8,11,12],option_ptr:[7,11],duplic:[7,11],reciev:10,liabil:[0,14,11,10,5],evbuffer_get_length:[14,10],chrome:[8,12],tlsv1:[6,8],max_deflate_s:8,been:[7,11,8,10,14],github:[1,8,3],trigger:[7,11],interest:[14,8,10],futur:[7,11,12],tini:10,life:14,regul:[14,10],worker:[6,12,9],argument:[14,4,7,8,10,11,12],ewouldblock:[14,10],load_cert_chain:[8,4],"0x000600":5,ssl_op_no_compress:[14,10],emploi:3,servic:[6,8,14],zlib:[8,15],employ:8,calcul:3,publicli:8,nghttp2_on_begin_headers_callback:[7,11,10],bev_event_timeout:[14,10],printabl:10,nghttp2_flag_pad:[7,11],nghttp2_set:[7,11],promised_stream_id:[7,11],conf:[6,8,10,14],sever:[6,14,7,8,11,12],on_data:[8,4],perform:[7,2,12,3,11],dhe:[6,8,9],transpar:[0,7,11],headlen:[7,11],split:0,version_str:[7,11],nghttp2_on_stream_close_callback:[7,11,10],complet:[0,14,7,9,10,11],start_listen:14,bufferevent_openssl_get_ssl:[14,10],hand:8,rais:4,ssl_ctx_new:[14,10],zlib1g:8,ownership:[7,11],niv:[7,11,8],nghttp2_flag_end_head:[7,11],pkg_config_libdir:15,kept:14,thu:[6,14,7,8,11,12],nghttp2_session_get_effective_local_window_s:[7,11],inherit:4,"0x04":[7,11,8],client:[1,2,3,7,9,11,13],thi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],endif:[14,11,5],gzip:[0,8,9],everyth:8,left:[6,11,14,7],identifi:[6,4,14,7,11,13],nghttp2_nv_flag:[7,11],just:[0,6,14,7,8,9,10,11,12],"0x01":[7,11,8],initiate_connect:10,ifdef:[14,11],yet:[7,2,8,11],previous:[7,11],easi:8,settings_hd_table_bufsize_max:[7,11],els:[14,10],save:[6,2],applic:[0,14,3,4,7,8,10,11,15],preserv:[0,7,11],deflate_hd_table_bufsize_max:[0,7,11],background:[6,9],initialize_nghttp2_sess:[14,10],daemon:[6,12,9],herebi:[0,14,11,10,5],specif:[14,4,7,10,11,15],filenam:2,http2_session_data:[14,10],client_addr:14,arbitrari:[7,11],manual:[8,12],nghttp2_settings_max_header_list_s:[7,11],tcp_nodelai:[14,10],unnecessari:[7,11],underli:[14,10],www:[7,11,12],right:[0,14,5,8,10,11],deal:[0,14,5,7,10,11],intern:[7,11],freeaddrinfo:14,successfulli:[7,11,10,14],transmiss:[14,2,7,9,10,11],requesthandlerclass:[8,4],insensit:6,bottom:[7,11],nghttp2_data_source_read_callback:[7,11],subclass:[8,4],buffer:[0,14,7,8,10,11],condit:[0,14,5,7,10,11,12],foo:[6,8,4,9],localhost:[12,8,3],core:[6,8,9],plu:3,sensibl:[7,11],insecur:[6,12],repositori:[14,10],peer:[7,2,14,10,11],post:[7,2,8,11],cacert:[6,12],nghttp2_submit_data:[7,11],nghttp2_settings_max_concurrent_stream:[7,11,10,14],produc:[0,7,11],f127:12,evbuff:[14,10],encod:[1,4,6,7,8,11],bound:[0,7,11],libev:[1,8,15,6],down:[14,10],nghttp2_before_frame_send_callback:[7,11],errx:[14,10],git:[1,11,7],session_send:[14,10],wai:[0,7,11,8,15],support:[14,3,7,8,10,11,12,15],closur:[7,11,4,10],suppors:12,avail:[6,4,14,7,8,10,9,11,12,13],overhead:8,fork:[8,12],head:[7,11,14],event_bas:[14,10],offer:[8,4,15],forc:[2,9],bev_event_connect:[14,10],heap:8,"true":[8,4],reset:10,ssl_ctx_free:[14,10],maximum:[6,11,8,7],tell:[0,14,4,7,10,11,12],deafult:8,fundament:0,autoconf:8,emit:[7,11,10,14],nghttp2_initial_window_s:[7,11],featur:[8,12],httpbi:[1,8],netdb:14,decrypt:3,unreleas:8,exist:[7,11,8,12],protocol_id_len:[7,11],ai_flag:14,ends_with:14,sizeof:[0,14,10],delete_http2_session_data:[14,10],encrypt:12,when:[0,6,4,14,7,8,9,10,11,12,13],role:[7,11,14],nghttp2_check_header_valu:[7,11],send_client_connection_head:10,unlimit:[6,2,11,7],heder:[7,11],intend:[6,11,14,12,7],af_unspec:[14,10],nghttp2_option_new:[7,11],nghttp2_max_window_s:[7,11],technot:[7,11],ni_numerichost:14,notic:[0,14,11,10,5],max_siz:8,evconnlistener_new_bind:14,longer:[14,8],htdoc:9,pseudo:[7,11],nghttp2_check_header_nam:[7,11],print_head:10,time:[0,6,2,4,14,7,8,11,12],push:[7,11,8,4,9],skip:[7,11],consum:[7,11],nghttp2_on_frame_recv_callback:[7,11,10],nghttp2ver_h:5,decid:[7,11,4],create_ssl_ctx:[14,10],depend:[14,7,8,10,11,12,15],readabl:10,undon:0,sourc:[0,1,14,7,8,10,11,15],string:[0,6,4,14,7,8,10,11],nghttp2_settings_enable_push:[7,11],nghttp2_hd_inflate_new:[0,7,11],androideabi:15,host_len:[7,11],exact:[7,11],level:[6,2,3,4,14,7,11,13,15],did:[7,11,9,10],item:[8,12],settings_id:[7,11],conhead:14,cooki:6,round:3,dir:15,upper:[0,7,11,4],sign:12,port:[6,3,4,14,7,8,9,10,11,12,13],data_flag:[7,11,14],appear:[8,12],event_base_fre:[14,10],current:[0,6,2,4,14,7,8,9,11,12,15],nghttp2_err_data_exist:[7,11],gener:[0,7,11,8],pad_high:[7,11],nghttp2_hd_inflate_del:[0,7,11],url_remap:12,nghttp2_session_get_stream_local_clos:[7,11],address:[6,8,12,4],locat:1,nghttp2_session_get_stream_remote_clos:[7,11],box:12,connect_error:[7,11],queue:[7,11,10,14],behav:[7,11,12],ourselv:[14,10,15],nghttp2_err_goaway_already_s:[7,11],regardless:[6,11,7],extra:[8,10],modul:[8,4],prefer:[6,11,12,7],"1st":0,instal:[8,15],hdinflat:[8,4],memori:[0,14,4,7,10,11],stylesheet:[0,2],handler:[8,4],strdup:14,prev:14,emiss:[7,11],rst_stream:[7,11,10,14],ctype:14,enhanc:6,nghttp2_submit_window_upd:[7,11],behalf:6,prepar:[7,11,15],cap:4,stream_user_data:[7,11,10],cat:[7,11,10,14],descriptor:[7,11,14],can:[0,6,4,14,7,8,9,10,11,12,13,15],http2:[1,4,6,7,8,11,12],purpos:[0,6,5,14,7,10,11],uf_path:10,claim:[0,14,11,10,5],stream:[0,6,2,3,4,14,7,8,10,11,13],agent:[0,8],critic:[7,11],abort:[7,11],tabl:[0,2,4,7,8,9,11],nghttp2_header:[7,11,10,14],occur:[7,11,4],alwai:[7,11,8,14],differenti:0,multipl:7,ping:[7,11],write:1,actual:[7,11,10,14],nghttp2_hd_deflate_init:0,mar:8,sslcontext:[8,4],max:[6,2,3,7,8,10,11,13],sni:6,mac:8,mai:[0,14,3,4,7,8,10,11,12,15],acceptcb:14,data:[0,14,2,3,4,7,8,10,11],autotool:8,openssl_add_all_algorithm:[14,10],stdio:0,stdin:[2,8],explicit:0,inform:[14,2,7,8,9,10,11,13,15],nghttp2_session_get_stream_effective_recv_data_length:[7,11],preced:12,combin:[6,11,7],talk:[14,8],nghttp2_err_stream_shut_wr:[7,11],size_t:[0,7,11,10,14],nghttp2_err_unsupported_vers:[7,11],still:[7,11,8,14],mainli:[7,11],dynam:[0,7,11,8,4],entiti:14,group:[6,2],nghttp2_err_fat:[7,11],nghttp2_priority_spec:[7,11],tort:[0,14,11,10,5],window:[6,2,3,7,11,12,13],main:[0,14,10],non:[14,3,4,7,8,10,11,12],env:[8,4],"5xx":[8,3],nghttp2_submit_head:[7,11],nghttp2_on_header_callback:[7,11,10,14],now:[7,11],name:7,version_num:[7,11],config:[8,12,15],no_error:8,drop:[6,11,14,10,7],hd_inflat:[7,11],millisec:[8,3],compression_error:[7,11],compil:[8,15],replac:[6,11,12,7],individu:[7,11,12],continu:[0,14,2,7,8,10,11],event_base_loop:[14,10],turoti:10,happen:[0,14,12,4,10],ai_addrlen:14,nghttp2_hd_inflate_init:0,shown:0,libjemalloc:8,space:[0,6,11,8,7],output_length:8,correct:15,earlier:[14,10],nghttp2_option_set_no_auto_window_upd:[7,11],event_base_new:[14,10],argv:[0,14,10],org:[0,1,11,8,7],"byte":[0,6,2,3,4,14,7,8,9,10,11],argc:[0,14,10],care:[7,11],nghttp2_hd_deflate_change_table_s:[7,11],nghttp2ver:[1,11,7],"88448504252dd5918485":8,badli:[7,11],turn:12,nghttp2_flag_non:[7,11,10,14],place:[7,11],evdns_base_new:10,origin:[6,2,7,8,11,12],directli:[7,11,10,14],carri:[7,11],onc:[0,7,11],arrai:[0,7,11,8,10],yourself:8,reopen:6,nghttp2_is_fat:[7,11],nghttp2_flow_control_error:[7,11],submit:[7,11,8,10],on_frame_recv_callback:[7,11,10,14],open:[1,11,7],size:[0,6,2,3,4,14,7,8,9,11,13],given:[0,6,2,3,4,7,8,11,13],capac:[0,11],paramt:0,sigpip:[14,10],averag:6,internal_error:[7,11],conveni:[7,11,4],knowledg:8,copi:[0,14,4,5,7,10,11],specifi:[1,2,3,7,9,11,13,15],on_head:[8,4],mostli:8,holder:[0,14,11,10,5],than:[0,14,3,4,7,8,9,11,13],png:9,serv:[14,12],wide:[6,14],nghttp2_session_get_outbound_queue_s:[7,11],were:[7,11,10,14],posit:[7,11],read_callback:[7,11,14],nghttp2_min_weight:[7,11],browser:[8,12],sai:[7,11],pri:11,ani:[0,6,4,5,14,7,8,10,11,12],deliv:[7,11],saw:12,sat:8,bitwis:[7,11],form:[6,11,8,4,7],nghttp2_flag_prior:[7,11],destroi:[14,10],payloadlen:[7,11],note:[0,6,3,14,7,8,10,11,12],take:[7,11,8,10,14],properti:[14,10],noth:[7,11,8,12,4],ndeflat:0,begin:10,sure:[14,8,10],trace:8,normal:[7,11],multipli:2,compress:[0,1,4,7,8,11],nghttp2_hcat_request:[7,11,14],pathlen:10,sublicens:[0,14,11,10,5],pair:[14,2,4,7,8,10,9,11],renam:12,http2_select:[7,11],later:[0,14,3,4,7,10,11,12],gracefulli:[7,11,12,10],show:[12,4],unprocess:[14,10],concurr:[6,2,3,14,7,8,11,13],permiss:[0,14,11,10,5],nghttp2_session_set_stream_user_data:[7,11,14],threshold:14,help:[6,2,9,13],print_hd_tabl:4,onli:[6,2,14,7,8,10,11,12],explicitli:[6,4],ratio:0,behind:6,overwritten:[7,11],hddeflat:[8,4],variou:[7,11],get:[14,2,4,7,8,10,11,12],clang:8,outlen:[0,7,11,10],ssl:[1,3,7,9,11,13],cannot:[0,14,4,7,11,12],nghttpd:[1,2,13],ssl_ctx_set_opt:[14,10],requir:[1,6,7,9,11,12,15],nghttp2_set_stream_user_data:14,where:[6,15],burst:[6,12],op_no_sslv2:[8,4],detect:[7,11,8,4],weighttp:8,nghttp2_hd_inflate_fin:[0,7,11],enough:[0,7,2,11],between:12,"import":[0,8,4,15],fcntl:14,awaaagqeaad__wuaaaab:8,pipefd:14,evdns_bas:10,come:[6,15,3,14],submit_request:10,region:[7,11],contract:[0,14,11,10,5],fontend:12,tutori:1,bufferevent_fre:[14,10],mani:[7,11],nghttp2_ext_frame_typ:[7,11],nghttp2_data_provid:[7,11,14],among:14,color:[2,9],inspir:8,nghttp2_err_too_many_inflight_set:[7,11],dispatch:12,cancel:[7,11],damag:[0,14,11,10,5],http2server:[8,4],header_table_s:8,"abstract":[14,10],nghttp2_on_unknown_frame_recv_callback:[7,11],nghttp2_err_buffer_error:[7,11],hidden:[7,11],those:[0,14,3,7,8,10,11,13],"case":[6,4,14,7,8,10,11,12],hdr:[14,8,4,10],progoram:10,invok:[14,4,7,8,10,11,12],invoc:[7,11,4,14],margin:4,edch:8,nghttp2_nv_flag_no_index:[0,7,11],on_data_chunk_recv_callback:[7,11,10],stdout:[0,8,10],ascii:[7,11],develop:1,author:[0,14,4,5,8,10,11,12],bev_opt_defer_callback:[14,10],alphabet:[7,11],same:[0,14,2,4,7,8,11,12],ssl_library_init:[14,10],nghttp2_err_flow_control:[7,11],html:[1,2,14,7,8,11],pad:[6,2,11,9,7],document:[1,11,12,9,5],finish:[14,3,7,8,10,11],decompress:[7,11,8,3,4],handshake_leftlen:14,extern:11,postpon:[7,11],ai_next:14,without:[0,6,4,5,14,7,8,9,10,11,12,13,15],evict:[7,11],nghttp2_push_promis:[7,11],on_request_don:[8,4],event2:[14,10],nghttp2_err_def:[7,11],nghttp2_submit_set:[7,11,10,14],execut:[8,12,4],rest:3,multiplex:14,hint:14,except:[7,11,4],param:[6,9],identif:[7,11],nghttp2_select_next_protocol:[7,11,10],nghttp2_ext_altsvc:[7,11],real:[8,12],unistd:[14,10],read:[1,2,11,7],nghttp2_version_ag:[7,11],sheme:3,test:[1,2,12],traffic:[12,8,3],nghttp2_hd_inflate_change_table_s:[7,11],next_proto_cb:14,integ:[7,11],server:[1,2,6,7,9,11,12,13],either:[7,11,4,14],output:[0,6,2,4,14,7,8,9,10,11,13],manag:[7,11,14],stream_clos:[7,11],protocol_sslv23:[8,4],set_no_refset:4,ssl_ctx_set_next_protos_advertised_cb:14,handshak:[6,14,9,10],nonzero:[0,7,11,14],easili:10,"2xx":[8,3],exit:[0,6,2,14,9,10,12,13,15],data_ptr:[7,11],power:8,base64url:[7,11],nghttp2_session_server_new:[7,11,14],fulli:[7,11,14],getnameinfo:14,refers:4,src:[8,15],inflater_ptr:[0,7,11],ack:[7,11,8],settings_payload:[7,11],act:[14,12,10],routin:[14,10],consid:8,"0x0fu":0,ssl_ctx_set_next_proto_select_cb:[7,11,10],error_repli:14,strip:15,your:[14,8],b2a_hex:[8,4],nghttp2_hcat_respons:[7,11,10],hex:[14,8],start:[14,3,7,8,9,10,11,12],nghttp2_err_stream_clos:[7,11],interfac:4,low:[7,11],lot:[7,11],ipv6:[6,8],strictli:[7,11,3,4,13],next_proto_list:14,nghttp2_proto_version_id_len:[7,11,14],tupl:[8,4],nghttp2_err_invalid_st:[7,11],satur:8,categor:[6,11,7],possibl:[7,11,8,10],"default":[1,2,3,7,9,11,13],applayerprotoneg:[7,11],hpack:[1,11,7],expect:[8,4],creat:[14,7,8,10,11,12,15],decreas:[7,11],file:[1,2,5,7,9,11,15],nghttp2_err_invalid_header_block:[7,11],fill:[7,11,14],denot:[6,11,10,7],functypedef:11,googl:[8,12],todo:[7,11],kbyte:[8,3],field:[1,2,11,7],valid:[7,2,8,12,11],nghttp2_prioriti:[7,11],ignor:[6,2,3,14,7,11,13],you:[0,6,4,14,7,8,10,11,12,15],intention:[7,11],architectur:15,sequenc:[0,14,4,7,8,10,11],promised_stream_user_data:[7,11],briefli:[0,15],track:[14,8,10],reduc:[7,11],cunit:8,directori:[6,2,14,8,9,10,15],represent:[7,5],all:[0,6,4,5,14,7,10,11,12,13,15],on_unknown_frame_recv_callback:[7,11],illustr:[8,4],nghttp2_err_start_stream_not_allow:[7,11],follow:[0,6,3,4,5,14,7,8,10,11,12,15],alt:[1,8,6],ptr:[7,11,10,14],app_cont:14,uint8_t:[0,7,11,10,14],articl:[12,15],readcb:[14,10],program:[1,12,6],bufferevent_writ:[14,10],introduc:15,uf_queri:10,evbuffer_remov:14,fals:8,pad_low:[7,11],nghttp2_option:[7,11],util:12,nghttp2_client_connection_header_len:[7,11],failur:[7,11],veri:[0,7,11,10],bottleneck:3,unalt:6,"__cplusplu":11,list:[6,11,14,4,7],nghttp2_headers_categori:[7,11],adjust:[0,7,11,8,3],stderr:[0,6,14,7,8,10,11],small:[7,11],inflate_header_block:[0,7,11],session_recv:14,syslog:6,rate:1,pass:[0,6,4,7,10,11],further:[0,7,11,10,14],what:[7,11,8,12,4],sub:14,sun:8,sum:[0,8,3],delet:[0,7,11,10],version:[7,15,13],method:[14,2,4,7,8,10,11],full:8,libjansson:8,varnish:8,padlen:[7,11,8],percentage_of_original_s:8,excess:14,modifi:[0,14,5,8,10,11],valu:[0,6,2,4,14,7,8,9,10,11,12],search:14,ai_addrconfig:14,nghttp2_err_push_dis:[7,11],on_clos:[8,4],prior:8,amount:[7,11,14,4,10],action:[0,14,5,7,10,11],via:[6,14,7,8,10,11,12],primit:10,ask:[7,11],famili:[14,10],establish:[14,10],select:7,regist:14,two:14,taken:[7,11],minor:[7,5],more:[0,14,7,8,10,11],tsujikawa:[0,14,11,10,5],desir:[6,11,12,7],nghttp2_settings_header_table_s:[7,11],default_header_table_s:4,select_next_proto_cb:[7,11,10],flag:[0,14,7,8,10,11,15],particular:[0,14,5,7,10,11],known:0,nghttp2_err_wouldblock:[7,11,10,14],cach:[8,12],none:[6,8,4],endpoint:[7,2,8,11],dev:[6,8,5],remain:[7,11,10,14],learn:14,def:[8,4],share:[0,8,4,15],accept:[0,6,14,7,8,11,12],minimum:[7,11,12,14],ssl_op_al:[14,10],nghttp2_submit_altsvc:[7,11],create_ssl:[14,10],strlen:[14,10],huge:[14,10],netinet:[14,10],secur:[0,6,8,12],rather:9,anoth:[7,11,12],serveraddr:[8,12],reject:[7,11],sec9:[7,11],simpl:[7,11,10,14],css:[0,8,4,9],resourc:7,referenc:8,variant:[7,11],spdylai:[12,8,3,15],nghttp2_client_connection_preface_len:[7,11,10,14],associ:[0,14,4,5,7,8,10,11],keypath:6,"short":[14,10],proto:[6,13],caus:[7,11],callback:[14,4,7,8,10,11],nghttp2_nv_flag_non:[0,7,11,10,14],alpn:[6,4,7,8,11,12,13],authroiti:10,rotat:12,max_ag:[7,11],hypertext:[1,8],libcunit1:8,through:[6,8,12,14],paramet:[0,6,7,9,10,11],style:[0,8,4],nghttp2_hcat_push_respons:[7,11],pend:[7,11,10,14],nghttp2_err_eof:[7,11],alter:[6,8],valuelen:[0,7,11,10,14],"0x010203":[7,5],"return":[0,14,3,4,7,8,9,10,11,12],check_path:14,nghttp2_initial_max_concurrent_stream:[7,11],readlen:[14,10],nghttp2_err_callback_failur:[7,11,10,14],authent:6,tear:[14,10],achiev:[7,11,14],found:[7,11,14],unicod:4,trailer:[7,11],nghttp2_on_frame_send_callback:[7,11],weight:[7,2,11],realli:[12,10],nghttp2_hd_inflate_flag:[7,11],connect:[2,3,5,7,11,12,13],field_set:10,event:[0,14,4,5,8,10,11],ftw:[8,4],publish:[0,14,11,10,5],payload:[6,2,3,7,9,11],etag:8,print:[6,2,4,8,10,9],on_frame_not_send_callback:[7,11],proxi:1,advanc:12,nghttp2_internal_error:[7,11,14],effect:[7,11],reason:[0,7,11,4,14],base:[6,8,14],put:[7,11,8],nghttp2_session_mem_recv:[7,11,10,14],nghttp2_flag:[7,11],recv:8,prefac:[7,11,12,10,14],omit:[7,11,4,10],nghttp2_err_invalid_stream_st:[7,11],assign:[0,14,7,8,10,11],feed:[7,11,10,14],major:[7,5],notifi:[7,11,14],prevent:[7,11,8],number:[0,6,3,4,5,14,7,9,11,13],pkgconfig:15,done:[6,3,14,8,10,12],construct:[7,11,8,4],stdlib:11,differ:[7,11,12],script:[2,8,12,4,15],interact:6,data_prd:[7,11,14],nghttp2_session_get_stream_user_data:[7,11,14],least:[7,11,8],scheme:[0,2,4,8,10,12,13],store:[0,7,11,10,14],input_length:8,option:[7,3],memcmp:14,nghttp2_client_connection_head:[7,11],part:[6,3],pars:10,consult:12,dpkg:15,window_upd:[7,11,8],doubli:14,remot:[7,2,14,10,11],remov:[7,11,15],bridg:1,str:4,consumpt:10,nghttp2_error:[7,11],libspdylai:15,window_size_incr:[7,11,8],lib_error_cod:[7,11],arrlen:[14,10],packag:8,"null":[0,14,2,7,10,11],syn_stream:[7,11],sell:[0,14,11,10,5],outbound:[7,11],built:[8,3,15],equival:[7,11],check:[7,11,10,14],self:[8,12,4],also:[7,3,15],append:[6,4],nghttp2_err_frame_size_error:[7,11],make_nv:[0,14,10],distribut:[0,14,11,10,5],reacb:10,passwd:6,reach:[7,11,14],chart:[7,11],most:[6,2,11,9,7],private_kei:[6,9],charg:[0,14,11,10,5],addr:14,"01881f3468e5891afcbf83868a3d856659c62e3f":8,compar:[7,11],clear:7,cover:[8,12],ext:[7,11],h2c:[13,11,8],pri_spec:[7,11],nghttp2_settings_max_frame_s:[7,11],hdtabl:4,rtt:[7,11],microsec:[8,3],fine:[7,11],nghttp2_submit_push_promis:[7,11],copyright:[0,14,5,8,10,11],refused_stream:[7,11],queu:[7,11,10,14],remedi:3,express:[0,14,11,10,5],kind:[0,14,5,7,10,11],nativ:[13,8,3],"3xx":[8,3],liabl:[0,14,11,10,5],before_frame_send_callback:[7,11],subcert:6,retreiv:10,crt:[14,8,12,4],statist:2,h2load:15,certif:[1,2,9],set:[0,6,2,3,4,14,7,8,9,10,11,12,13,15],dump:6,creator:8,ousid:8,remove_stream:14,startup:6,nghttp2_submit_goawai:[7,11],sec:[6,8,3],arg:[7,11,10,14],close:[14,4,7,8,10,11],jemalloc:8,arm:15,analog:[7,11],strchr:14,someth:[7,11,12],won:[6,11,14,7],nghttp2_on_data_chunk_recv_callback:[7,11,10],altern:[6,8],numer:[7,11,5],sole:[7,11,13],writelen:14,succeed:[8,3],percent_decod:14,verbos:[13,2,8,9],both:[6,3,14,7,8,10,11,12],last:[7,11,8],delimit:[0,6,8],nghttp2_data_flag_non:[7,11],nghttp2_session_want_writ:[7,11,10,14],tempor:[7,11],context:[7,11,8,10,14],nghttp2_rst_stream:[7,11],whole:[0,7,11,8,4],load:[6,8],simpli:[14,10],send_server_connection_head:14,header:[1,2,3,7,9,11],platform:[8,15],shutdown:[7,11,12,10,14],nghttp2_session_client_new:[7,11,10],nghttp2_session:[7,11,10,14],backend:[6,8,12],due:[0,7,11],empti:[6,4,14,7,8,10,11,12],send_respons:[14,8,4],whom:[0,14,11,10,5],stdint:11,add_stream:14,flight:[7,11],nghttp2_err_nomem:[7,11],settings_enable_push:[7,11],nghttp2_session_terminate_sess:[7,11,10],imag:2,func:11,next_proto_list_len:14,look:[0,14,3,10],"while":[7,11,10,14],behavior:[7,11],error:[0,6,3,4,14,7,8,9,10,11],robin:3,loop:[14,8,4,10],earli:9,malloc:[0,14,10],nghttp2_session_callback:[7,11,10,14],readi:[7,11,14],user_data:[7,11,10,14],itself:[7,11,3,10,14],flow_control_error:[7,11],grant:[0,14,11,10,5],libcurl:8,belong:[7,11],create_http2_session_data:[14,10],decod:[1,2,4,7,8,9,11],mytyp:[7,11],inflat:[1,11,8,4,7],moment:8,user:[0,6,7,8,10,11,12,15],chang:[6,3,4,14,7,8,9,11],recent:[7,11],nghttp2_h:11,noninfring:[0,14,11,10,5],lib:15,entri:[7,11,8,4],nghttp:[1,13],person:[0,14,11,10,5],uint32_t:[7,11,14],qdeb_build_gnu_typ:15,on_frame_send_callback:[7,11],nghttp2_ping:[7,11],input:[0,14,7,8,10,11],subsequ:[0,7,11,4,13],bin:[8,4,15],on_begin_headers_callback:[7,11,10,14],obsolet:[7,11],format:[6,2,14,7,8,9,10,11,12],http_parser:10,nginx:8,bit:[6,2,5,7,11,13],strstr:14,success:[0,7,11,8],signal:[6,14,7,10,11,12],lib_error:[7,11],resolv:6,some:[0,14,4,7,10,11,12],back:[7,11,8,14],sampl:8,reverse_proxi:12,libssl:8,lev_opt_reus:14,per:[6,3,4,8,12,13],pem:[6,2,12,9],retri:12,larg:[7,2,8,11],make_nv2:10,settings_compress_data:8,machin:[8,12],run:[6,4,14,7,8,10,9,11,12,15],step:[7,11,12],prerequisit:15,handshake_readcb:14,nghttp2_hd_inflate_emit:[0,7,11],commun:[6,8,10,14],idl:[7,11],regular:[7,11],dialog:12,block:[6,3,4,14,7,8,10,11],nghttp2_err_paus:[7,11],nsm:11,within:8,nghttp2_send_callback:[7,11,10],announc:8,occupi:[8,4],inclus:[7,2,11],errno:14,"long":[7,11,8,14],nghttp2:[7,15],sslv3:6,suit:[6,8,9],forward:[6,11,8,12,7],change_table_s:4,properli:6,session_ptr:[7,11],repeatedli:[0,7,11,9],link:[6,2,8,12,14],translat:12,ni_maxhost:14,nghttp2_hd_inflate_end_head:[0,7,11],line:[6,12,8,3,15],mitig:8,info:6,concaten:0,utf:4,caller:[0,7,11,14],nghttpx:[1,2,15,9,13],frame_size_error:[7,11],parser:10,repres:[7,11],"char":[0,7,11,10,14],incomplet:8,sublen:14,curl:[8,12],titl:14,invalid:[7,11],librari:[7,3,15],llvm:15,nghttp2_default_header_table_s:[7,11],meaning:6,libtool:8,create_http2_stream_data:[14,10],algorithm:[7,11],svc:[1,8,6],nghttp2_submit_request:[7,11,10],namelen:[0,7,11,10,14],far:[0,14,8,10],avoid:[7,11,8,10,14],asyncio:[8,4],getaddrinfo:14,code:[0,14,3,4,7,8,10,11],examin:0,queri:10,nghttp2_frame_hd:[7,11],cython:8,privat:[6,2,14,8,9,12,15],send:[6,2,4,14,7,8,9,10,11,12],http_parser_url:10,lower:[7,11],outgo:[7,11,14],aris:[0,14,11,10,5],fatal:[6,11,14,10,7],nghttp2_data_flag:[7,11],sent:[0,6,14,7,10,11],nghttp2_submit_p:[7,11],untouch:[7,11],relev:10,tri:[7,11,12],magic:[14,10],button:12,http_parser_parse_url:10,"try":[7,11,8],session:[6,14,7,8,10,11,13],pleas:[14,3,7,8,10,11,12],impli:[0,14,11,10,5],smaller:8,snprintf:10,memset:[14,10],download:[1,2,8],c100:3,click:12,client_address:[8,4],index:[7,2,8,11],o_rdonli:14,access:[6,2,4,7,8,11,12,13],experiment:[1,2,9,6],nghttp2_hd_deflate_new:[0,7,11],whatev:[8,4],inspect:[7,11],uf_schema:10,nghttp2_enhance_your_calm:[7,11],len:[7,11,10,14],bodi:[14,3,4,7,8,10,11],app_ctx:14,ubuntu:8,becom:[7,11,3,5,14],sinc:[7,11,8,10,14],convert:6,larger:[7,11,4],ctx:[8,4],settings_payloadlen:[7,11],autoreconf:8,jansson:8,cert:[6,2,9],greac:[14,10],typic:8,set_npn_protocol:4,firefox:12,output_wouldblock_threshold:14,apr:8,appli:[7,11],gatewai:12,bufferev:[14,10],from:[1,2,5,6,7,11,12,15],nghttp2_err_invalid_stream_id:[7,11],doubl:0,binascii:[8,4],upgrad:[6,2,7,8,11,12],next:[7,11,10,14],implic:12,doubt:0,findproxyforurl:[8,12],usr:[8,4,15],nghttp2_nv:[0,7,11,10,14],nghttp2_option_del:[7,11],sort:6,goawai:[7,11,8,10,14],deflat:[1,11,8,4,7],in_fin:[0,7,11],account:[7,11,8,10],retriev:[7,11,14,4,10],tunnel:[6,8],nghttp2_settings_id:[7,11],pac:[8,12],about:[7,11,14,4,10],aliv:[6,11,14,7],sslv23_client_method:10,control:7,process:[0,14,4,7,8,10,11,12],nghttp2_session_get_remote_set:[7,11],high:4,fprintf:[0,7,11,10,14],tab:12,onlin:[7,8],serial:[7,11,10,14],evdns_base_fre:10,no_refset:4,gcc:8,filepath:6,nghttp2_session_want_read:[7,11,10,14],gcm:8,ssl_ctx_use_privatekey_fil:14,evbas:[14,10],instead:[6,3,4,7,11,13],nullifi:[7,11],npn:[6,14,7,8,10,11,12],max_payloadlen:[7,11],eventcb:[14,10],nghttp2_compression_error:[7,11],alloc:[0,7,11,14],bind:1,nvlen:[0,7,11,10,14],correspond:[14,8],element:[7,11,14],issu:[1,3,7,8,11,12,13],stream_id:[14,4,7,8,10,11],nghttp2_connect_error:[7,11],ssize_t:[0,7,11,10,14],fallback:12,furnish:[0,14,11,10,5],"02f":0,nva2:0,nva1:0,move:[7,11],comma:6,"02x":0,chosen:4,nghttp2_hd_inflate_hd:[0,7,11],suppli:[7,11,12],therefor:[0,4,7,10,9,11],least_vers:[7,11],inlen:[0,7,11,10],recept:[14,2,7,9,10,11],crash:[7,8],greater:[7,11],python:1,auto:[13,3],nghttp2_goawai:[7,11],automat:[7,11,12],warranti:[0,14,11,10,5],nghttp2_session_mem_send:[7,11],anyth:[6,10],edit:[12,15],uf_port:10,mode:1,ndk:15,ssl_filetype_pem:14,chunk:[7,11,8,4,10],ouf:[7,11],nghttp2_err_temporal_callback_failur:[7,11,14],"static":[0,14,7,8,10,11,15],our:10,patch:[7,8,5],out:[0,14,2,5,7,8,10,11,12],variabl:[8,12,4,15],accesslog:[6,12],req:[8,3],n1000:8,categori:[7,11,10],suitabl:[6,11,7],rel:[0,14,9],field_data:10,recv_callback:[7,11],insid:8,cleartext:[7,11],standalon:15,releas:7,nghttp2_hd_inflate_non:[7,11],remap_requir:12,log:[1,2,9],syn_repli:[7,11,3],keep:[6,14,7,8,10,11],length:[0,14,2,7,8,10,11],outsid:[6,8,7],retain:[7,11],softwar:[0,14,11,10,5],addrinfo:14,echo:15,date:8,facil:6,prioriti:[7,2,11],seq:8,nghttp2_hd_inflat:[0,7,11],strict:8,unknown:[7,11,14],licens:8,system:[6,15,12,10,14],messag:[7,11,10],attach:[14,10],attack:8,termin:[14,7,8,9,10,11],"final":[0,7,11],ipv4:[6,8],request_head:[8,4],proclen:0,sa_handl:[14,10],enqueu:10,exactli:[14,8],nghttp2_err_header_comp:[7,11],see:7,structur:[7,11,10,14],charact:[7,11,10,14],sens:[7,11],nghttp2_session_del:[7,11,10,14],"08zx":0,bev:[14,10],ssl_new:[14,10],unencrypt:12,bufferevent_get_input:[14,10],nghttp2_inbound_num_iv:11,corrupt:10,have:[0,14,7,8,10,11,15],reserv:[7,11],need:[0,7,8,10,11,12,15],ai_socktyp:14,"0x08":[7,11],"0x09":[7,11],origin_len:[7,11],"0x05":[7,11,8],"0x06":[7,11],"0x07":[7,11],"0x00":[0,7,11,8],"switch":[14,8,10],"0x02":[7,11],"0x03":[7,11],nghttp2_refused_stream:[7,11],evbuffer_pullup:[14,10],which:[0,14,3,4,7,8,10,11,12,15],singl:[0,6,4,14,7,8,10,11],opaque_data_len:[7,11],unless:[6,11,8,9,7],bufferevent_openssl_socket_new:[14,10],deploy:[12,15],who:8,settings_max_concurrent_stream:[14,2,7,8,10,11],cipher:[6,8,9],stream_data:[14,10],noind:8,deploi:1,"class":[8,4],nghttp2_error_cod:[7,11,10,14],nghttp2_err_stream_id_not_avail:[7,11],url:[14,8,12],request:[0,6,2,3,4,14,7,8,9,10,11,12,13],pipe:14,determin:[7,11,8,4],nghttp2_pack_settings_payload:[7,11],"0x0d":[7,11],"0x0a":[7,11],"0x0b":[7,11],"0x0c":[7,11],ssl_load_error_str:[14,10],bufferevent_get_output:[14,10],redirect:10,nghttp2_submit_rst_stream:[7,11,14],forev:4,should:[0,14,7,8,10,11,15],suppos:12,local:[7,11,12,15],meant:[6,10],contribut:1,familiar:8,memcpi:[14,10],nghttp2_session_client_new2:[7,11],nghttp2_session_terminate_session2:[7,11],settings_initial_window_s:[7,11,8],nghttp2_data:[7,11,14],increas:[7,11],tbd:[7,11],portion:[0,14,4,5,7,10,11],nghttp2_submit_respons:[7,11,14],enabl:[6,4,7,8,11,12,15],whether:[0,14,11,10,5],contain:[0,6,4,14,7,8,9,10,11,12],nghttp2_window_upd:[7,11],frame:[0,6,2,4,14,7,8,9,10,11],ssl_ctx:[7,11,10,14],nghttp2_hd_deflat:[0,7,11],temporarili:[7,11],statu:[1,11,3,7],wire:[14,8,10],correctli:[7,11],nghttp2_settings_entri:[7,11,10,14],state:[0,7,11,8,14],https_uri:10,progress:8,nghttp2_initial_connection_window_s:[7,11],kei:[6,2,4,14,7,8,9,11,12],entir:[7,11,14],n100000:3,last_stream_id:[7,11,8],disconnect:[14,10],addit:[1,11,15,7],revers:[6,8,12],nghttp2_proto_version_id:[7,11,10,14],equal:14,etc:[6,8,10,14],instanc:[7,11,8,4],grain:[7,11],freeli:15,uint16_t:[7,11,10],get_hd_tabl:4,nghttp2_data_flag_eof:[7,11,14],arriv:[8,4],precondit:[7,11],m10:[8,3],commenc:10,respect:[7,11,10],chromium:12,quit:12,nghttp2_recv_callback:[7,11],compos:8,insuffici:[7,11],compon:[12,10],json:8,treat:[6,11,14,7],immedi:[7,11],nghttp2_hcat_head:[7,11],altsvc:[6,11,8,7],http2jp:8,iobas:4,sock_stream:14,evconnlisten:14,present:[0,13],on_header_callback:[7,11,10,14],nghttp2_frame_size_error:[7,11],plain:[8,12,4],nghttp2_session_send:[7,11,10,14],defin:[0,14,5,7,10,11],eintr:14,nghttp2_flag_end_stream:[7,11,14],inadequate_secur:[7,11],layer:8,helper:[7,11],on_request_recv:14,libxml2:[8,15],squid:[8,12],site:8,archiv:[14,10],substanti:[0,14,11,10,5],incom:[6,4,14,7,8,11,12],let:[14,10,15],welcom:8,dereiv:2,satisfi:12,cross:15,member:[0,7,11,14],handl:[14,4,7,8,10,11],ifndef:[11,5],nightli:12,http:7,hostnam:[6,8,12,4],uf_host:10,initi:[0,6,2,3,4,14,7,10,11,13],dealloc:[7,11],inflate_flag:[0,7,11],off:[14,12,10],well:[14,11,10,15],app_context:14,exampl:[0,6,4,14,7,8,9,10,11,12,15],command:[12,8,3,15],choos:[6,11,15,7],error_cod:[14,4,7,8,10,11],nghttp2_data_sourc:[7,11,14],usual:[7,11],paus:[7,11],less:[0,7,11,3,13],send_callback:[7,11,10,14],half:[7,11],obtain:[0,14,11,10,5],tcp:[7,11,12,10,14],libnghttp2:[0,8],heavili:8,simultan:6,web:[14,8,12],wed:8,cert_fil:14,point:[14,7,10,11,12,15],priorit:[7,11],addrlen:14,add:[6,2,7,9,11,15],c10:8,match:[6,12,10,14],gmt:8,nvu:8,five:14,know:[0,7,11,12],nva:[0,7,11,10,14],password:6,python3:[8,4],insert:0,resid:[14,10],like:[0,6,3,4,14,7,8,10,11,12],foobarbuzz:8,protocol_id:[7,11,8],ldflag:15,nghttp2_priority_spec_check_default:[7,11],necessari:[7,11,4,14],page:[14,10],backlog:6,file_read_callback:14,linux:15,"export":[14,15],nghttp2_session_get_effective_recv_data_length:[7,11],error_html:14,transport:[8,10],lead:[7,11],baseeventloop:4,octet:[14,10],overlap:[7,11],isxdigit:14,estim:0,nghttp2_session_upgrad:[7,11],delete_http2_stream_data:[14,10],host:[1,3,4,6,7,8,10,11,12,13,14,15],nghttp2_nv_compare_nam:[7,11],nghttp2_extens:[7,11],err_get_error:[14,10],toolchain:15,socket:[14,10],constructor:4,discard:2,ssl_tlsext_err_ok:[7,11,10,14],disabl:[1,2,7,9,11,15],nghttp2_client_connection_prefac:[7,11,10,14],own:[7,11,8],nghttp2_err_invalid_fram:[7,11],ssl_op_no_sslv2:[14,10],nghttp2_session_consum:[7,11],automak:8,merg:[0,14,11,10,5],val:[7,11,10,14],nghttp2_priority_spec_default_init:[7,11],ai_famili:14,transfer:[1,11,8,12,7],bump:[7,11],much:14,buz:[8,4],unexpect:[7,11],nghttp2_hd_deflate_bound:[0,7,11],gain:0,overflow:[7,11],highest:[7,11],buf:[0,7,11,14],count:[7,11],succe:[7,11],made:8,nghttp2_stream_clos:[7,11],nghttp2_info:[7,11],googlecod:[7,11],displai:[13,2,9],asynchron:[7,11],limit:[1,11,5],otherwis:[0,14,3,5,7,8,10,11,13],problem:[7,11],sockaddr:14,nghttp2_on_frame_not_send_callback:[7,11],evalu:4,strndup:10,"int":[0,14,7,10,11,12],baserequesthandl:[8,4],pid:6,implement:[1,2,14,7,8,10,11],allow:[6,11,8,7],percent:[6,14],detail:[7,11],other:[0,14,5,7,10,11,12],nghttp2_err_invalid_argu:[7,11],rememb:14,nghttp2_submit_:[14,10],buflen:[0,7,11],stat:[14,2],nghttp2_max_weight:[7,11],err_error_str:[14,10],rel_path:14,proto_str:[7,11],debian:15,session_data:[14,10],sphinx:8,eof:[7,11,14],indirectli:7,rule:[7,11],nghttp2_no_error:[7,11,10]},objtypes:{"0":"std:option","1":"c:macro","2":"c:member","3":"c:function","4":"c:type","5":"py:module","6":"py:attribute","7":"py:method","8":"py:class","9":"py:data","10":"py:function"},objnames:{"0":["std","option","option"],"1":["c","macro","C macro"],"2":["c","member","C member"],"3":["c","function","C function"],"4":["c","type","C type"],"5":["py","module","Python module"],"6":["py","attribute","Python attribute"],"7":["py","method","Python method"],"8":["py","class","Python class"],"9":["py","data","Python data"],"10":["py","function","Python function"]},filenames:["tutorial-hpack","index","nghttp.1","h2load-howto","python-apiref","nghttp2ver.h","nghttpx.1","apiref","package_README","nghttpd.1","tutorial-client","nghttp2.h","nghttpx-howto","h2load.1","tutorial-server","building-android-binary"],titles:["Tutorial: HPACK API","nghttp2 - HTTP/2 C Library","nghttp(1)","h2load - HTTP/2 benchmarking tool - HOW-TO","Python API Reference","nghttp2ver.h","nghttpx(1)","API Reference","nghttp2 - HTTP/2 C Library","nghttpd(1)","Tutorial: HTTP/2 client","nghttp2.h","nghttpx - HTTP/2 proxy - HOW-TO","h2load(1)","Tutorial: HTTP/2 server","Building Android binary"],objects:{"":{"-D":[9,0,1,"cmdoption-nghttpd-D"],"--worker-read-rate":[6,0,1,"cmdoption-nghttpx--worker-read-rate"],"--frontend-no-tls":[6,0,1,"cmdoption-nghttpx--frontend-no-tls"],NGHTTP2_ERR_GOAWAY_ALREADY_SENT:[7,1,1,"c.NGHTTP2_ERR_GOAWAY_ALREADY_SENT"],nghttp2_nv_flag:[7,4,1,"c.nghttp2_nv_flag"],nghttp2_session_server_new2:[7,3,1,"c.nghttp2_session_server_new2"],"-M":[2,0,1,"cmdoption-nghttp-M"],"--frontend-http2-dump-response-header":[6,0,1,"cmdoption-nghttpx--frontend-http2-dump-response-header"],"-O":[2,0,1,"cmdoption-nghttp-O"],nghttp2_on_header_callback:[7,4,1,"c.nghttp2_on_header_callback"],nghttp2_settings_entry:[7,4,1,"c.nghttp2_settings_entry"],"-H":[2,0,1,"cmdoption-nghttp-H"],nghttp2_frame_hd:[7,4,1,"c.nghttp2_frame_hd"],"--verify-client-cacert":[6,0,1,"cmdoption-nghttpx--verify-client-cacert"],NGHTTP2_FLAG_ACK:[7,1,1,"c.NGHTTP2_FLAG_ACK"],"-W":[2,0,1,"cmdoption-nghttp-W"],"-V":[9,0,1,"cmdoption-nghttpd-V"],NGHTTP2_FLAG_PADDED:[7,1,1,"c.NGHTTP2_FLAG_PADDED"],nghttp2_priority_spec_init:[7,3,1,"c.nghttp2_priority_spec_init"],NGHTTP2_CLIENT_CONNECTION_HEADER_LEN:[7,1,1,"c.NGHTTP2_CLIENT_CONNECTION_HEADER_LEN"],NGHTTP2_SETTINGS_MAX_FRAME_SIZE:[7,1,1,"c.NGHTTP2_SETTINGS_MAX_FRAME_SIZE"],nghttp2_option_set_no_auto_window_update:[7,3,1,"c.nghttp2_option_set_no_auto_window_update"],NGHTTP2_STREAM_CLOSED:[7,1,1,"c.NGHTTP2_STREAM_CLOSED"],NGHTTP2_EXT_ALTSVC:[7,1,1,"c.NGHTTP2_EXT_ALTSVC"],"-e":[9,0,1,"cmdoption-nghttpd-e"],"-d":[2,0,1,"cmdoption-nghttp-d"],"-f":[6,0,1,"cmdoption-nghttpx-f"],"-a":[2,0,1,"cmdoption-nghttp-a"],"-c":[13,0,1,"cmdoption-h2load-c"],"-b":[6,0,1,"cmdoption-nghttpx-b"],"-m":[2,0,1,"cmdoption-nghttp-m"],"-o":[6,0,1,"cmdoption-nghttpx-o"],"-n":[13,0,1,"cmdoption-h2load-n"],"-h":[6,0,1,"cmdoption-nghttpx-h"],"-k":[6,0,1,"cmdoption-nghttpx-k"],nghttp2_priority_spec:[7,4,1,"c.nghttp2_priority_spec"],"-u":[2,0,1,"cmdoption-nghttp-u"],"-t":[13,0,1,"cmdoption-h2load-t"],"-w":[2,0,1,"cmdoption-nghttp-w"],"-v":[2,0,1,"cmdoption-nghttp-v"],nghttp2_data:[7,4,1,"c.nghttp2_data"],"-p":[2,0,1,"cmdoption-nghttp-p"],"-s":[6,0,1,"cmdoption-nghttpx-s"],"-L":[6,0,1,"cmdoption-nghttpx-L"],"--no-tls":[9,0,1,"cmdoption-nghttpd--no-tls"],nghttp2_data_flag:[7,4,1,"c.nghttp2_data_flag"],NGHTTP2_SETTINGS_HEADER_TABLE_SIZE:[7,1,1,"c.NGHTTP2_SETTINGS_HEADER_TABLE_SIZE"],"--worker-write-burst":[6,0,1,"cmdoption-nghttpx--worker-write-burst"],"--connection-window-bits":[2,0,1,"cmdoption-nghttp--connection-window-bits"],"--npn-list":[6,0,1,"cmdoption-nghttpx--npn-list"],NGHTTP2_ERR_TOO_MANY_INFLIGHT_SETTINGS:[7,1,1,"c.NGHTTP2_ERR_TOO_MANY_INFLIGHT_SETTINGS"],NGHTTP2_ERR_PROTO:[7,1,1,"c.NGHTTP2_ERR_PROTO"],nghttp2_hd_deflate_del:[7,3,1,"c.nghttp2_hd_deflate_del"],NGHTTP2_HD_INFLATE_NONE:[7,1,1,"c.NGHTTP2_HD_INFLATE_NONE"],nghttp2_headers_category:[7,4,1,"c.nghttp2_headers_category"],nghttp2_submit_window_update:[7,3,1,"c.nghttp2_submit_window_update"],NGHTTP2_ERR_UNSUPPORTED_VERSION:[7,1,1,"c.NGHTTP2_ERR_UNSUPPORTED_VERSION"],nghttp2_session_get_stream_user_data:[7,3,1,"c.nghttp2_session_get_stream_user_data"],URI:[2,0,1,"cmdoption-nghttp-arg-URI"],NGHTTP2_SETTINGS_ENABLE_PUSH:[7,1,1,"c.NGHTTP2_SETTINGS_ENABLE_PUSH"],NGHTTP2_HD_INFLATE_FINAL:[7,1,1,"c.NGHTTP2_HD_INFLATE_FINAL"],nghttp2_ping:[7,4,1,"c.nghttp2_ping"],nghttp2_check_header_name:[7,3,1,"c.nghttp2_check_header_name"],NGHTTP2_DATA:[7,1,1,"c.NGHTTP2_DATA"],nghttp2_hd_inflate_new:[7,3,1,"c.nghttp2_hd_inflate_new"],NGHTTP2_ERR_INVALID_STREAM_STATE:[7,1,1,"c.NGHTTP2_ERR_INVALID_STREAM_STATE"],"--clients":[13,0,1,"cmdoption-h2load--clients"],"--stream-read-timeout":[6,0,1,"cmdoption-nghttpx--stream-read-timeout"],nghttp2_goaway:[7,4,1,"c.nghttp2_goaway"],"--max-concurrent-streams":[13,0,1,"cmdoption-h2load--max-concurrent-streams"],NGHTTP2_MAX_WINDOW_SIZE:[7,1,1,"c.NGHTTP2_MAX_WINDOW_SIZE"],nghttp2_on_frame_recv_callback:[7,4,1,"c.nghttp2_on_frame_recv_callback"],nghttp2_session_mem_send:[7,3,1,"c.nghttp2_session_mem_send"],nghttp2_error_code:[7,4,1,"c.nghttp2_error_code"],NGHTTP2_REFUSED_STREAM:[7,1,1,"c.NGHTTP2_REFUSED_STREAM"],nghttp2_on_data_chunk_recv_callback:[7,4,1,"c.nghttp2_on_data_chunk_recv_callback"],nghttp2_session_terminate_session:[7,3,1,"c.nghttp2_session_terminate_session"],nghttp2_nv_compare_name:[7,3,1,"c.nghttp2_nv_compare_name"],NGHTTP2_ERR_START_STREAM_NOT_ALLOWED:[7,1,1,"c.NGHTTP2_ERR_START_STREAM_NOT_ALLOWED"],nghttp2_hd_inflate_change_table_size:[7,3,1,"c.nghttp2_hd_inflate_change_table_size"],nghttp2_info:[7,4,1,"c.nghttp2_info"],NGHTTP2_ERR_FLOW_CONTROL:[7,1,1,"c.NGHTTP2_ERR_FLOW_CONTROL"],nghttp2_strerror:[7,3,1,"c.nghttp2_strerror"],"--accesslog-syslog":[6,0,1,"cmdoption-nghttpx--accesslog-syslog"],"--stat":[2,0,1,"cmdoption-nghttp--stat"],"--frontend-http2-read-timeout":[6,0,1,"cmdoption-nghttpx--frontend-http2-read-timeout"],nghttp2_settings_id:[7,4,1,"c.nghttp2_settings_id"],NGHTTP2_ERR_FATAL:[7,1,1,"c.NGHTTP2_ERR_FATAL"],"--frontend-http2-connection-window-bits":[6,0,1,"cmdoption-nghttpx--frontend-http2-connection-window-bits"],nghttp2_submit_goaway:[7,3,1,"c.nghttp2_submit_goaway"],nghttp2_error:[7,4,1,"c.nghttp2_error"],NGHTTP2_INITIAL_CONNECTION_WINDOW_SIZE:[7,1,1,"c.NGHTTP2_INITIAL_CONNECTION_WINDOW_SIZE"],NGHTTP2_ERR_NOMEM:[7,1,1,"c.NGHTTP2_ERR_NOMEM"],NGHTTP2_ERR_PAUSE:[7,1,1,"c.NGHTTP2_ERR_PAUSE"],nghttp2_ext_frame_type:[7,4,1,"c.nghttp2_ext_frame_type"],NGHTTP2_ENHANCE_YOUR_CALM:[7,1,1,"c.NGHTTP2_ENHANCE_YOUR_CALM"],nghttp2_session_resume_data:[7,3,1,"c.nghttp2_session_resume_data"],"--ciphers":[6,0,1,"cmdoption-nghttpx--ciphers"],nghttp2_submit_response:[7,3,1,"c.nghttp2_submit_response"],NGHTTP2_NO_ERROR:[7,1,1,"c.NGHTTP2_NO_ERROR"],nghttp2_select_padding_callback:[7,4,1,"c.nghttp2_select_padding_callback"],nghttp2_submit_ping:[7,3,1,"c.nghttp2_submit_ping"],"--daemon":[9,0,1,"cmdoption-nghttpd--daemon"],NGHTTP2_CLIENT_CONNECTION_HEADER:[7,1,1,"c.NGHTTP2_CLIENT_CONNECTION_HEADER"],"--backlog":[6,0,1,"cmdoption-nghttpx--backlog"],PORT:[9,0,1,"cmdoption-nghttpd-arg-PORT"],nghttp2_push_promise:[7,4,1,"c.nghttp2_push_promise"],NGHTTP2_ERR_INVALID_STATE:[7,1,1,"c.NGHTTP2_ERR_INVALID_STATE"],nghttp2_session_get_outbound_queue_size:[7,3,1,"c.nghttp2_session_get_outbound_queue_size"],NGHTTP2_PROTO_VERSION_ID_LEN:[7,1,1,"c.NGHTTP2_PROTO_VERSION_ID_LEN"],nghttp2_session_get_stream_local_close:[7,3,1,"c.nghttp2_session_get_stream_local_close"],NGHTTP2_PROTOCOL_ERROR:[7,1,1,"c.NGHTTP2_PROTOCOL_ERROR"],NGHTTP2_INITIAL_MAX_CONCURRENT_STREAMS:[7,1,1,"c.NGHTTP2_INITIAL_MAX_CONCURRENT_STREAMS"],"--requests":[13,0,1,"cmdoption-h2load--requests"],NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE:[7,1,1,"c.NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE"],nghttp2_option_del:[7,3,1,"c.nghttp2_option_del"],nghttp2_priority_spec_check_default:[7,3,1,"c.nghttp2_priority_spec_check_default"],nghttp2_submit_request:[7,3,1,"c.nghttp2_submit_request"],NGHTTP2_ERR_PUSH_DISABLED:[7,1,1,"c.NGHTTP2_ERR_PUSH_DISABLED"],NGHTTP2_SETTINGS_TIMEOUT:[7,1,1,"c.NGHTTP2_SETTINGS_TIMEOUT"],NGHTTP2_HD_INFLATE_EMIT:[7,1,1,"c.NGHTTP2_HD_INFLATE_EMIT"],"--no-via":[6,0,1,"cmdoption-nghttpx--no-via"],nghttp2_hd_deflate_new:[7,3,1,"c.nghttp2_hd_deflate_new"],nghttp2_headers:[7,4,1,"c.nghttp2_headers"],NGHTTP2_ERR_WOULDBLOCK:[7,1,1,"c.NGHTTP2_ERR_WOULDBLOCK"],nghttp2_hd_deflate_change_table_size:[7,3,1,"c.nghttp2_hd_deflate_change_table_size"],"--backend-write-timeout":[6,0,1,"cmdoption-nghttpx--backend-write-timeout"],"--client":[6,0,1,"cmdoption-nghttpx--client"],"--timeout":[2,0,1,"cmdoption-nghttp--timeout"],nghttp2_session_server_new:[7,3,1,"c.nghttp2_session_server_new"],"--data":[2,0,1,"cmdoption-nghttp--data"],NGHTTP2_ERR_BUFFER_ERROR:[7,1,1,"c.NGHTTP2_ERR_BUFFER_ERROR"],"--no-content-length":[2,0,1,"cmdoption-nghttp--no-content-length"],nghttp2_hd_inflate_del:[7,3,1,"c.nghttp2_hd_inflate_del"],NGHTTP2_CONTINUATION:[7,1,1,"c.NGHTTP2_CONTINUATION"],nghttp2_rst_stream:[7,4,1,"c.nghttp2_rst_stream"],NGHTTP2_ERR_INVALID_ARGUMENT:[7,1,1,"c.NGHTTP2_ERR_INVALID_ARGUMENT"],"--http2-no-cookie-crumbling":[6,0,1,"cmdoption-nghttpx--http2-no-cookie-crumbling"],nghttp2_on_begin_headers_callback:[7,4,1,"c.nghttp2_on_begin_headers_callback"],NGHTTP2_CLIENT_CONNECTION_PREFACE_LEN:[7,1,1,"c.NGHTTP2_CLIENT_CONNECTION_PREFACE_LEN"],"--backend-http2-connection-window-bits":[6,0,1,"cmdoption-nghttpx--backend-http2-connection-window-bits"],nghttp2_flag:[7,4,1,"c.nghttp2_flag"],"--worker-read-burst":[6,0,1,"cmdoption-nghttpx--worker-read-burst"],NGHTTP2_DEFAULT_WEIGHT:[7,1,1,"c.NGHTTP2_DEFAULT_WEIGHT"],"--client-proxy":[6,0,1,"cmdoption-nghttpx--client-proxy"],nghttp2_session_get_remote_settings:[7,3,1,"c.nghttp2_session_get_remote_settings"],"--http2-bridge":[6,0,1,"cmdoption-nghttpx--http2-bridge"],nghttp2_session_client_new2:[7,3,1,"c.nghttp2_session_client_new2"],"--errorlog-syslog":[6,0,1,"cmdoption-nghttpx--errorlog-syslog"],nghttp2_hd_deflate_hd:[7,3,1,"c.nghttp2_hd_deflate_hd"],nghttp2_recv_callback:[7,4,1,"c.nghttp2_recv_callback"],NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS:[7,1,1,"c.NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS"],"--errorlog-file":[6,0,1,"cmdoption-nghttpx--errorlog-file"],"--help":[6,0,1,"cmdoption-nghttpx--help"],nghttp2_submit_push_promise:[7,3,1,"c.nghttp2_submit_push_promise"],"--multiply":[2,0,1,"cmdoption-nghttp--multiply"],"--http2-max-concurrent-streams":[6,0,1,"cmdoption-nghttpx--http2-max-concurrent-streams"],NGHTTP2_RST_STREAM:[7,1,1,"c.NGHTTP2_RST_STREAM"],"--frontend-write-timeout":[6,0,1,"cmdoption-nghttpx--frontend-write-timeout"],NGHTTP2_DEFAULT_HEADER_TABLE_SIZE:[7,1,1,"c.NGHTTP2_DEFAULT_HEADER_TABLE_SIZE"],NGHTTP2_NV_FLAG_NO_INDEX:[7,1,1,"c.NGHTTP2_NV_FLAG_NO_INDEX"],NGHTTP2_HCAT_HEADERS:[7,1,1,"c.NGHTTP2_HCAT_HEADERS"],"--backend-ipv4":[6,0,1,"cmdoption-nghttpx--backend-ipv4"],NGHTTP2_ERR_INVALID_FRAME:[7,1,1,"c.NGHTTP2_ERR_INVALID_FRAME"],"--backend-ipv6":[6,0,1,"cmdoption-nghttpx--backend-ipv6"],"--backend":[6,0,1,"cmdoption-nghttpx--backend"],nghttp2_frame:[7,4,1,"c.nghttp2_frame"],NGHTTP2_ERR_FRAME_SIZE_ERROR:[7,1,1,"c.NGHTTP2_ERR_FRAME_SIZE_ERROR"],"--insecure":[6,0,1,"cmdoption-nghttpx--insecure"],"--htdocs":[9,0,1,"cmdoption-nghttpd--htdocs"],nghttp2_session_mem_recv:[7,3,1,"c.nghttp2_session_mem_recv"],NGHTTP2_ERR_DEFERRED_DATA_EXIST:[7,1,1,"c.NGHTTP2_ERR_DEFERRED_DATA_EXIST"],NGHTTP2_CANCEL:[7,1,1,"c.NGHTTP2_CANCEL"],nghttp2_send_callback:[7,4,1,"c.nghttp2_send_callback"],"--log-level":[6,0,1,"cmdoption-nghttpx--log-level"],nghttp2_hd_inflate_hd:[7,3,1,"c.nghttp2_hd_inflate_hd"],nghttp2_on_frame_send_callback:[7,4,1,"c.nghttp2_on_frame_send_callback"],NGHTTP2_HEADERS:[7,1,1,"c.NGHTTP2_HEADERS"],NGHTTP2_VERSION:[7,1,1,"c.NGHTTP2_VERSION"],nghttp2_on_frame_not_send_callback:[7,4,1,"c.nghttp2_on_frame_not_send_callback"],nghttp2_session:[7,4,1,"c.nghttp2_session"],NGHTTP2_COMPRESSION_ERROR:[7,1,1,"c.NGHTTP2_COMPRESSION_ERROR"],NGHTTP2_HCAT_PUSH_RESPONSE:[7,1,1,"c.NGHTTP2_HCAT_PUSH_RESPONSE"],NGHTTP2_CLEARTEXT_PROTO_VERSION_ID:[7,1,1,"c.NGHTTP2_CLEARTEXT_PROTO_VERSION_ID"],nghttp2_submit_rst_stream:[7,3,1,"c.nghttp2_submit_rst_stream"],NGHTTP2_ERR_DEFERRED:[7,1,1,"c.NGHTTP2_ERR_DEFERRED"],nghttp2_frame_type:[7,4,1,"c.nghttp2_frame_type"],NGHTTP2_INADEQUATE_SECURITY:[7,1,1,"c.NGHTTP2_INADEQUATE_SECURITY"],"--push":[9,0,1,"cmdoption-nghttpd--push"],nghttp2_submit_headers:[7,3,1,"c.nghttp2_submit_headers"],NGHTTP2_ERR_HEADER_COMP:[7,1,1,"c.NGHTTP2_ERR_HEADER_COMP"],NGHTTP2_ERR_INVALID_STREAM_ID:[7,1,1,"c.NGHTTP2_ERR_INVALID_STREAM_ID"],"--tls-proto-list":[6,0,1,"cmdoption-nghttpx--tls-proto-list"],NGHTTP2_WINDOW_UPDATE:[7,1,1,"c.NGHTTP2_WINDOW_UPDATE"],"--conf":[6,0,1,"cmdoption-nghttpx--conf"],NGHTTP2_FLAG_PRIORITY:[7,1,1,"c.NGHTTP2_FLAG_PRIORITY"],nghttp2:[4,5,0,"-"],"--dh-param-file":[9,0,1,"cmdoption-nghttpd--dh-param-file"],nghttp2_nv:[7,4,1,"c.nghttp2_nv"],"--worker-frontend-connections":[6,0,1,"cmdoption-nghttpx--worker-frontend-connections"],nghttp2_version:[7,3,1,"c.nghttp2_version"],nghttp2_session_want_write:[7,3,1,"c.nghttp2_session_want_write"],NGHTTP2_MAX_WEIGHT:[7,1,1,"c.NGHTTP2_MAX_WEIGHT"],nghttp2_on_unknown_frame_recv_callback:[7,4,1,"c.nghttp2_on_unknown_frame_recv_callback"],nghttp2_session_consume:[7,3,1,"c.nghttp2_session_consume"],"--peer-max-concurrent-streams":[2,0,1,"cmdoption-nghttp--peer-max-concurrent-streams"],"--syslog-facility":[6,0,1,"cmdoption-nghttpx--syslog-facility"],NGHTTP2_ERR_STREAM_CLOSED:[7,1,1,"c.NGHTTP2_ERR_STREAM_CLOSED"],"--no-location-rewrite":[6,0,1,"cmdoption-nghttpx--no-location-rewrite"],NGHTTP2_FLAG_END_STREAM:[7,1,1,"c.NGHTTP2_FLAG_END_STREAM"],nghttp2_hd_deflate_bound:[7,3,1,"c.nghttp2_hd_deflate_bound"],NGHTTP2_ERR_CALLBACK_FAILURE:[7,1,1,"c.NGHTTP2_ERR_CALLBACK_FAILURE"],"--user":[6,0,1,"cmdoption-nghttpx--user"],nghttp2_hd_inflate_end_headers:[7,3,1,"c.nghttp2_hd_inflate_end_headers"],nghttp2_on_invalid_frame_recv_callback:[7,4,1,"c.nghttp2_on_invalid_frame_recv_callback"],NGHTTP2_FLOW_CONTROL_ERROR:[7,1,1,"c.NGHTTP2_FLOW_CONTROL_ERROR"],NGHTTP2_SETTINGS:[7,1,1,"c.NGHTTP2_SETTINGS"],NGHTTP2_CLEARTEXT_PROTO_VERSION_ID_LEN:[7,1,1,"c.NGHTTP2_CLEARTEXT_PROTO_VERSION_ID_LEN"],nghttp2_session_set_stream_user_data:[7,3,1,"c.nghttp2_session_set_stream_user_data"],"--workers":[9,0,1,"cmdoption-nghttpd--workers"],nghttp2_check_header_value:[7,3,1,"c.nghttp2_check_header_value"],"--early-response":[9,0,1,"cmdoption-nghttpd--early-response"],NGHTTP2_ERR_STREAM_CLOSING:[7,1,1,"c.NGHTTP2_ERR_STREAM_CLOSING"],"--remote-name":[2,0,1,"cmdoption-nghttp--remote-name"],nghttp2_session_client_new:[7,3,1,"c.nghttp2_session_client_new"],nghttp2_hd_inflater:[7,4,1,"c.nghttp2_hd_inflater"],nghttp2_select_next_protocol:[7,3,1,"c.nghttp2_select_next_protocol"],"--frontend-http2-window-bits":[6,0,1,"cmdoption-nghttpx--frontend-http2-window-bits"],nghttp2_data_source:[7,4,1,"c.nghttp2_data_source"],NGHTTP2_INTERNAL_ERROR:[7,1,1,"c.NGHTTP2_INTERNAL_ERROR"],NGHTTP2_PROTO_VERSION_ID:[7,1,1,"c.NGHTTP2_PROTO_VERSION_ID"],"--weight":[2,0,1,"cmdoption-nghttp--weight"],NGHTTP2_DATA_FLAG_EOF:[7,1,1,"c.NGHTTP2_DATA_FLAG_EOF"],PRIVATE_KEY:[9,0,1,"cmdoption-nghttpd-arg-PRIVATE_KEY"],nghttp2_hd_inflate_flag:[7,4,1,"c.nghttp2_hd_inflate_flag"],"--worker-write-rate":[6,0,1,"cmdoption-nghttpx--worker-write-rate"],NGHTTP2_ERR_INVALID_HEADER_BLOCK:[7,1,1,"c.NGHTTP2_ERR_INVALID_HEADER_BLOCK"],"--backend-tls-sni-field":[6,0,1,"cmdoption-nghttpx--backend-tls-sni-field"],"--key":[2,0,1,"cmdoption-nghttp--key"],"--subcert":[6,0,1,"cmdoption-nghttpx--subcert"],NGHTTP2_FRAME_SIZE_ERROR:[7,1,1,"c.NGHTTP2_FRAME_SIZE_ERROR"],nghttp2_hd_deflater:[7,4,1,"c.nghttp2_hd_deflater"],"--window-bits":[13,0,1,"cmdoption-h2load--window-bits"],nghttp2_session_del:[7,3,1,"c.nghttp2_session_del"],NGHTTP2_ERR_INSUFF_BUFSIZE:[7,1,1,"c.NGHTTP2_ERR_INSUFF_BUFSIZE"],nghttp2_ext_altsvc:[7,4,1,"c.nghttp2_ext_altsvc"],"--header":[2,0,1,"cmdoption-nghttp--header"],"--frontend-frame-debug":[6,0,1,"cmdoption-nghttpx--frontend-frame-debug"],nghttp2_settings:[7,4,1,"c.nghttp2_settings"],nghttp2_session_callbacks:[7,4,1,"c.nghttp2_session_callbacks"],"--pid-file":[6,0,1,"cmdoption-nghttpx--pid-file"],"--frontend-http2-dump-request-header":[6,0,1,"cmdoption-nghttpx--frontend-http2-dump-request-header"],"--private-key-passwd-file":[6,0,1,"cmdoption-nghttpx--private-key-passwd-file"],"--altsvc":[6,0,1,"cmdoption-nghttpx--altsvc"],nghttp2_submit_data:[7,3,1,"c.nghttp2_submit_data"],nghttp2_window_update:[7,4,1,"c.nghttp2_window_update"],"--verbose":[9,0,1,"cmdoption-nghttpd--verbose"],nghttp2_option:[7,4,1,"c.nghttp2_option"],nghttp2_session_get_stream_remote_window_size:[7,3,1,"c.nghttp2_session_get_stream_remote_window_size"],"--add-x-forwarded-for":[6,0,1,"cmdoption-nghttpx--add-x-forwarded-for"],nghttp2_priority_spec_default_init:[7,3,1,"c.nghttp2_priority_spec_default_init"],NGHTTP2_FLAG_NONE:[7,1,1,"c.NGHTTP2_FLAG_NONE"],"--get-assets":[2,0,1,"cmdoption-nghttp--get-assets"],NGHTTP2_HCAT_REQUEST:[7,1,1,"c.NGHTTP2_HCAT_REQUEST"],nghttp2_submit_altsvc:[7,3,1,"c.nghttp2_submit_altsvc"],"--no-tls-proto":[13,0,1,"cmdoption-h2load--no-tls-proto"],NGHTTP2_CLIENT_CONNECTION_PREFACE:[7,1,1,"c.NGHTTP2_CLIENT_CONNECTION_PREFACE"],"--frontend-read-timeout":[6,0,1,"cmdoption-nghttpx--frontend-read-timeout"],NGHTTP2_FLAG_END_HEADERS:[7,1,1,"c.NGHTTP2_FLAG_END_HEADERS"],"--backend-keep-alive-timeout":[6,0,1,"cmdoption-nghttpx--backend-keep-alive-timeout"],NGHTTP2_NV_FLAG_NONE:[7,1,1,"c.NGHTTP2_NV_FLAG_NONE"],nghttp2_submit_settings:[7,3,1,"c.nghttp2_submit_settings"],"--error-gzip":[9,0,1,"cmdoption-nghttpd--error-gzip"],nghttp2_is_fatal:[7,3,1,"c.nghttp2_is_fatal"],NGHTTP2_PING:[7,1,1,"c.NGHTTP2_PING"],nghttp2_extension:[7,4,1,"c.nghttp2_extension"],"--backend-http2-window-bits":[6,0,1,"cmdoption-nghttpx--backend-http2-window-bits"],"--header-table-size":[2,0,1,"cmdoption-nghttp--header-table-size"],nghttp2_priority:[7,4,1,"c.nghttp2_priority"],nghttp2_session_want_read:[7,3,1,"c.nghttp2_session_want_read"],NGHTTP2_VERSION_AGE:[7,1,1,"c.NGHTTP2_VERSION_AGE"],"--padding":[2,0,1,"cmdoption-nghttp--padding"],nghttp2_session_get_stream_effective_recv_data_length:[7,3,1,"c.nghttp2_session_get_stream_effective_recv_data_length"],"--backend-http-proxy-uri":[6,0,1,"cmdoption-nghttpx--backend-http-proxy-uri"],NGHTTP2_ERR_STREAM_ID_NOT_AVAILABLE:[7,1,1,"c.NGHTTP2_ERR_STREAM_ID_NOT_AVAILABLE"],NGHTTP2_CONNECT_ERROR:[7,1,1,"c.NGHTTP2_CONNECT_ERROR"],nghttp2_session_get_effective_recv_data_length:[7,3,1,"c.nghttp2_session_get_effective_recv_data_length"],"--stream-write-timeout":[6,0,1,"cmdoption-nghttpx--stream-write-timeout"],"--continuation":[2,0,1,"cmdoption-nghttp--continuation"],nghttp2_on_stream_close_callback:[7,4,1,"c.nghttp2_on_stream_close_callback"],"--cacert":[6,0,1,"cmdoption-nghttpx--cacert"],NGHTTP2_PUSH_PROMISE:[7,1,1,"c.NGHTTP2_PUSH_PROMISE"],"--threads":[13,0,1,"cmdoption-h2load--threads"],nghttp2_data_provider:[7,4,1,"c.nghttp2_data_provider"],NGHTTP2_ERR_DATA_EXIST:[7,1,1,"c.NGHTTP2_ERR_DATA_EXIST"],nghttp2_session_recv:[7,3,1,"c.nghttp2_session_recv"],nghttp2_option_set_peer_max_concurrent_streams:[7,3,1,"c.nghttp2_option_set_peer_max_concurrent_streams"],nghttp2_option_new:[7,3,1,"c.nghttp2_option_new"],nghttp2_session_get_effective_local_window_size:[7,3,1,"c.nghttp2_session_get_effective_local_window_size"],NGHTTP2_INITIAL_WINDOW_SIZE:[7,1,1,"c.NGHTTP2_INITIAL_WINDOW_SIZE"],NGHTTP2_ERR_EOF:[7,1,1,"c.NGHTTP2_ERR_EOF"],NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE:[7,1,1,"c.NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE"],"--version":[6,0,1,"cmdoption-nghttpx--version"],"--add-response-header":[6,0,1,"cmdoption-nghttpx--add-response-header"],NGHTTP2_HCAT_RESPONSE:[7,1,1,"c.NGHTTP2_HCAT_RESPONSE"],nghttp2_submit_priority:[7,3,1,"c.nghttp2_submit_priority"],nghttp2_session_get_stream_effective_local_window_size:[7,3,1,"c.nghttp2_session_get_stream_effective_local_window_size"],"--backend-read-timeout":[6,0,1,"cmdoption-nghttpx--backend-read-timeout"],nghttp2_before_frame_send_callback:[7,4,1,"c.nghttp2_before_frame_send_callback"],NGHTTP2_GOAWAY:[7,1,1,"c.NGHTTP2_GOAWAY"],nghttp2_session_terminate_session2:[7,3,1,"c.nghttp2_session_terminate_session2"],"--color":[9,0,1,"cmdoption-nghttpd--color"],NGHTTP2_MIN_WEIGHT:[7,1,1,"c.NGHTTP2_MIN_WEIGHT"],"--cert":[2,0,1,"cmdoption-nghttp--cert"],NGHTTP2_DATA_FLAG_NONE:[7,1,1,"c.NGHTTP2_DATA_FLAG_NONE"],"--frontend":[6,0,1,"cmdoption-nghttpx--frontend"],"--accesslog-file":[6,0,1,"cmdoption-nghttpx--accesslog-file"],"--http2-proxy":[6,0,1,"cmdoption-nghttpx--http2-proxy"],"--upgrade":[2,0,1,"cmdoption-nghttp--upgrade"],NGHTTP2_ERR_STREAM_SHUT_WR:[7,1,1,"c.NGHTTP2_ERR_STREAM_SHUT_WR"],"--backend-no-tls":[6,0,1,"cmdoption-nghttpx--backend-no-tls"],"--client-private-key-file":[6,0,1,"cmdoption-nghttpx--client-private-key-file"],NGHTTP2_PRIORITY:[7,1,1,"c.NGHTTP2_PRIORITY"],"--client-cert-file":[6,0,1,"cmdoption-nghttpx--client-cert-file"],NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE:[7,1,1,"c.NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE"],nghttp2_session_send:[7,3,1,"c.nghttp2_session_send"],CERT:[9,0,1,"cmdoption-nghttpd-arg-CERT"],nghttp2_session_get_stream_remote_close:[7,3,1,"c.nghttp2_session_get_stream_remote_close"],"--null-out":[2,0,1,"cmdoption-nghttp--null-out"],NGHTTP2_VERSION_NUM:[7,1,1,"c.NGHTTP2_VERSION_NUM"],nghttp2_pack_settings_payload:[7,3,1,"c.nghttp2_pack_settings_payload"],"--verify-client":[9,0,1,"cmdoption-nghttpd--verify-client"],nghttp2_session_upgrade:[7,3,1,"c.nghttp2_session_upgrade"],"--backend-connections-per-frontend":[6,0,1,"cmdoption-nghttpx--backend-connections-per-frontend"],nghttp2_data_source_read_callback:[7,4,1,"c.nghttp2_data_source_read_callback"]},nghttp2_frame:{push_promise:[7,2,1,"c.nghttp2_frame.push_promise"],settings:[7,2,1,"c.nghttp2_frame.settings"],ping:[7,2,1,"c.nghttp2_frame.ping"],rst_stream:[7,2,1,"c.nghttp2_frame.rst_stream"],ext:[7,2,1,"c.nghttp2_frame.ext"],priority:[7,2,1,"c.nghttp2_frame.priority"],headers:[7,2,1,"c.nghttp2_frame.headers"],goaway:[7,2,1,"c.nghttp2_frame.goaway"],window_update:[7,2,1,"c.nghttp2_frame.window_update"],data:[7,2,1,"c.nghttp2_frame.data"],hd:[7,2,1,"c.nghttp2_frame.hd"]},nghttp2_settings_entry:{settings_id:[7,2,1,"c.nghttp2_settings_entry.settings_id"],value:[7,2,1,"c.nghttp2_settings_entry.value"]},nghttp2_window_update:{hd:[7,2,1,"c.nghttp2_window_update.hd"],window_size_increment:[7,2,1,"c.nghttp2_window_update.window_size_increment"]},nghttp2_frame_hd:{stream_id:[7,2,1,"c.nghttp2_frame_hd.stream_id"],length:[7,2,1,"c.nghttp2_frame_hd.length"],flags:[7,2,1,"c.nghttp2_frame_hd.flags"],type:[7,2,1,"c.nghttp2_frame_hd.type"]},nghttp2_push_promise:{padlen:[7,2,1,"c.nghttp2_push_promise.padlen"],nvlen:[7,2,1,"c.nghttp2_push_promise.nvlen"],promised_stream_id:[7,2,1,"c.nghttp2_push_promise.promised_stream_id"],hd:[7,2,1,"c.nghttp2_push_promise.hd"],nva:[7,2,1,"c.nghttp2_push_promise.nva"]},nghttp2_ping:{hd:[7,2,1,"c.nghttp2_ping.hd"]},nghttp2_priority:{pri_spec:[7,2,1,"c.nghttp2_priority.pri_spec"],hd:[7,2,1,"c.nghttp2_priority.hd"]},nghttp2_priority_spec:{stream_id:[7,2,1,"c.nghttp2_priority_spec.stream_id"],weight:[7,2,1,"c.nghttp2_priority_spec.weight"],exclusive:[7,2,1,"c.nghttp2_priority_spec.exclusive"]},nghttp2:{HTTP2Server:[4,8,1,""],HDDeflater:[4,8,1,""],DEFLATE_MAX_HEADER_TABLE_SIZE:[4,9,1,""],DEFAULT_HEADER_TABLE_SIZE:[4,9,1,""],HDInflater:[4,8,1,""],print_hd_table:[4,10,1,""],BaseRequestHandler:[4,8,1,""]},nghttp2_nv:{valuelen:[7,2,1,"c.nghttp2_nv.valuelen"],namelen:[7,2,1,"c.nghttp2_nv.namelen"],flags:[7,2,1,"c.nghttp2_nv.flags"],name:[7,2,1,"c.nghttp2_nv.name"],value:[7,2,1,"c.nghttp2_nv.value"]},nghttp2_ext_altsvc:{origin:[7,2,1,"c.nghttp2_ext_altsvc.origin"],max_age:[7,2,1,"c.nghttp2_ext_altsvc.max_age"],protocol_id:[7,2,1,"c.nghttp2_ext_altsvc.protocol_id"],origin_len:[7,2,1,"c.nghttp2_ext_altsvc.origin_len"],host:[7,2,1,"c.nghttp2_ext_altsvc.host"],protocol_id_len:[7,2,1,"c.nghttp2_ext_altsvc.protocol_id_len"],host_len:[7,2,1,"c.nghttp2_ext_altsvc.host_len"],port:[7,2,1,"c.nghttp2_ext_altsvc.port"]},nghttp2_session_callbacks:{on_invalid_frame_recv_callback:[7,2,1,"c.nghttp2_session_callbacks.on_invalid_frame_recv_callback"],before_frame_send_callback:[7,2,1,"c.nghttp2_session_callbacks.before_frame_send_callback"],on_stream_close_callback:[7,2,1,"c.nghttp2_session_callbacks.on_stream_close_callback"],on_data_chunk_recv_callback:[7,2,1,"c.nghttp2_session_callbacks.on_data_chunk_recv_callback"],on_begin_headers_callback:[7,2,1,"c.nghttp2_session_callbacks.on_begin_headers_callback"],send_callback:[7,2,1,"c.nghttp2_session_callbacks.send_callback"],on_unknown_frame_recv_callback:[7,2,1,"c.nghttp2_session_callbacks.on_unknown_frame_recv_callback"],on_header_callback:[7,2,1,"c.nghttp2_session_callbacks.on_header_callback"],on_frame_recv_callback:[7,2,1,"c.nghttp2_session_callbacks.on_frame_recv_callback"],select_padding_callback:[7,2,1,"c.nghttp2_session_callbacks.select_padding_callback"],on_frame_not_send_callback:[7,2,1,"c.nghttp2_session_callbacks.on_frame_not_send_callback"],on_frame_send_callback:[7,2,1,"c.nghttp2_session_callbacks.on_frame_send_callback"],recv_callback:[7,2,1,"c.nghttp2_session_callbacks.recv_callback"]},nghttp2_data_provider:{source:[7,2,1,"c.nghttp2_data_provider.source"],read_callback:[7,2,1,"c.nghttp2_data_provider.read_callback"]},nghttp2_rst_stream:{error_code:[7,2,1,"c.nghttp2_rst_stream.error_code"],hd:[7,2,1,"c.nghttp2_rst_stream.hd"]},nghttp2_headers:{pri_spec:[7,2,1,"c.nghttp2_headers.pri_spec"],nvlen:[7,2,1,"c.nghttp2_headers.nvlen"],cat:[7,2,1,"c.nghttp2_headers.cat"],padlen:[7,2,1,"c.nghttp2_headers.padlen"],nva:[7,2,1,"c.nghttp2_headers.nva"],hd:[7,2,1,"c.nghttp2_headers.hd"]},nghttp2_goaway:{opaque_data:[7,2,1,"c.nghttp2_goaway.opaque_data"],error_code:[7,2,1,"c.nghttp2_goaway.error_code"],opaque_data_len:[7,2,1,"c.nghttp2_goaway.opaque_data_len"],hd:[7,2,1,"c.nghttp2_goaway.hd"],last_stream_id:[7,2,1,"c.nghttp2_goaway.last_stream_id"]},"nghttp2.BaseRequestHandler":{on_data:[4,7,1,""],on_close:[4,7,1,""],method:[4,6,1,""],on_headers:[4,7,1,""],stream_id:[4,6,1,""],host:[4,6,1,""],on_request_done:[4,7,1,""],push:[4,7,1,""],path:[4,6,1,""],scheme:[4,6,1,""],send_response:[4,7,1,""],client_address:[4,6,1,""]},nghttp2_info:{age:[7,2,1,"c.nghttp2_info.age"],version_str:[7,2,1,"c.nghttp2_info.version_str"],version_num:[7,2,1,"c.nghttp2_info.version_num"],proto_str:[7,2,1,"c.nghttp2_info.proto_str"]},"nghttp2.HDDeflater":{change_table_size:[4,7,1,""],get_hd_table:[4,7,1,""],deflate:[4,7,1,""],set_no_refset:[4,7,1,""]},"nghttp2.HTTP2Server":{serve_forever:[4,7,1,""]},nghttp2_data:{padlen:[7,2,1,"c.nghttp2_data.padlen"]},"nghttp2.HDInflater":{change_table_size:[4,7,1,""],inflate:[4,7,1,""],get_hd_table:[4,7,1,""]},nghttp2_data_source:{fd:[7,2,1,"c.nghttp2_data_source.fd"],ptr:[7,2,1,"c.nghttp2_data_source.ptr"]},nghttp2_extension:{payload:[7,2,1,"c.nghttp2_extension.payload"],hd:[7,2,1,"c.nghttp2_extension.hd"]},nghttp2_settings:{niv:[7,2,1,"c.nghttp2_settings.niv"],hd:[7,2,1,"c.nghttp2_settings.hd"],iv:[7,2,1,"c.nghttp2_settings.iv"]}},titleterms:{protocol:3,text:3,typedef:7,locat:12,struct:7,field:12,program:8,synopsi:[6,2,9,13],contribut:8,python:[8,4],misc:6,ssl:[6,12],requir:8,name:[6,2,9,13],server:[14,8,4],mode:[6,12],timeout:6,h2load:[13,3],certif:12,see:[6,2,9,13],connect:6,resourc:1,librari:[1,8],statu:8,rewrit:12,version:1,"public":8,refer:[7,4],proxi:[8,12],"enum":7,usag:3,releas:1,decompressor:8,addit:12,spdy:6,remark:7,thread:3,tutori:[0,14,10],deflatehd:8,disabl:12,encod:0,header:[0,8,12],api:[0,7,4],open:12,select:3,git:8,from:8,log:[6,12],union:7,libev:[14,10],binari:15,nghttp2:[1,11,8],includ:7,basic:3,type:7,"function":7,option:[6,2,9,13],tool:[8,3],benchmark:[8,3],nghttp2ver:5,specifi:12,compressor:8,also:[6,2,9,13],multi:3,nghttpd:[8,9],"default":12,rate:12,bridg:12,limit:12,hpack:[0,8,4],macro:7,nghttpx:[6,8,12],control:3,descript:[6,2,9,13],file:12,multipl:3,perform:6,write:12,how:[12,3],hot:12,decod:0,build:[8,15],test:8,android:15,document:8,http:[1,3,4,6,8,10,12,14],inflat:0,deploi:12,develop:8,read:12,bind:8,clear:3,nghttp:[2,8],flow:3,uri:3,inflatehd:8,client:[8,12,10],deflat:0}}) \ No newline at end of file +Search.setIndex({envversion:42,terms:{my_obj:[7,11],create_serv:4,nghttp2_cancel:[7,11],prefix:[7,11,15,14],nghttp2_priority_spec_init:[7,11],nghttp2_session_get_stream_effective_local_window_s:[7,11],whose:[7,2,11],op_al:[8,4],"const":[0,7,11,10,14],"535d0eea":8,"0x20":[7,11,8],under:[7,11,8,15],bufferevent_getfd:10,spec:[7,11],merchant:[0,14,11,10,5],digit:10,downstream:6,"void":[0,7,11,10,14],bufferevent_ssl:[14,10],affect:3,initialize_nghttp2_setup:[14,10],verif:10,nghttp2_settings_initial_window_s:[7,11],x86_64:15,on_stream_close_callback:[7,11,10,14],direct:8,protoid:[6,13],second:2,aggreg:12,even:[0,12],rfc7230:[7,11],ssl_op_no_session_resumption_on_renegoti:[14,10],neg:[7,11],nghttp2_err_insuff_bufs:[7,11],"new":[7,11,8,12,14],tatsuhiro:[0,1,3,5,14,8,10,11],nghttp2_session_resume_data:[7,11],ipproto_tcp:[14,10],abov:[0,14,5,7,8,10,11,12],initialize_app_context:14,never:[7,11],here:[0,14,3,7,8,10,11,12,15],met:[7,11,12,10,14],"4xx":[8,3],path:[0,6,4,14,8,10,9,12,15],settings_timeout:[7,11],interpret:[7,11],nextprotoneg:[7,11],sslv23_server_method:14,errorlog:[6,12],credit:8,permit:[0,14,11,10,5],nghttp2_submit_prior:[7,11],aka:[7,11,8],nghttp2_frame:[7,11,10,14],settings_max_frame_s:[7,11],bufferevent_ssl_connect:10,substr:14,bev_event_error:[14,10],printf:0,bufferevent_socket_connect_hostnam:10,total:[7,11,8,3],unit:8,describ:[0,6,14,7,8,10,11,12,15],would:[7,11,14],nghttp2_inadequate_secur:[7,11],call:[0,14,4,7,8,10,11,12],asset:[2,8],recommend:[8,15],nghttp2_on_invalid_frame_recv_callback:[7,11],nghttp2_version:[7,11,5],until:[0,7,11,4],reusabl:8,relat:[14,10],nghttp2_cleartext_proto_version_id_len:[7,11],warn:[6,11,14],nghttp2_option_set_peer_max_concurrent_stream:[7,11],relai:6,ssl_shutdown:[14,10],hold:[7,11],unpack:[7,11,15],must:[0,6,2,4,14,7,8,9,11,12,15],word:[7,11],insignific:0,err:[14,10],exit_failur:[0,14,10],setup:[14,10],work:[6,4,14,8,9,12,15],lev_opt_close_on_fre:14,nghttp2_flag_ack:[7,11],root:[6,8,9,14],could:[7,11,14,4,10],defer:[7,11,10,14],give:[7,11,8,4],indic:[0,6,4,14,7,10,11],want:[6,4,14,7,10,11,12],select_padding_callback:[7,11],unsign:[7,11,10,14],end:[7,2,14,10,11],thing:[7,11,10,14],datalen:[14,10],how:[7,15],hot:1,hop:[7,11],verifi:[6,9],negoti:8,nghttp2_frame_typ:[7,11],updat:[7,11],after:[0,6,2,3,14,7,8,10,11,12,15],settings_header_table_s:[7,11],befor:[14,3,4,7,8,11,15],demonstr:10,request_path:14,third:[7,11,10,14],opaqu:[7,11],bootstrap:8,exclud:[7,11],perform:[7,2,12,3,11],environ:[12,15],enter:12,exclus:[7,11],first:[0,6,3,4,14,7,8,10,11,12,13,15],order:[0,6,3,7,8,11,13],oper:[7,11,8,12],frontend:[6,8,12],crumbl:6,over:[6,14,7,8,10,11],becaus:[0,14,4,7,10,11,15],privileg:6,eagain:[14,10],fit:[0,14,11,10,5],nghttp2_session_get_stream_remote_window_s:[7,11],fwrite:[0,7,11,10],"9d33":8,deflate_s:8,"1xx":[7,11],easier:15,them:[14,7,8,10,11,12],nghttp2_hd_deflate_del:[0,7,11],thei:[6,3,4,14,7,8,10,11],fragment:8,safe:[6,11,14,7],"break":[0,7,11,10,14],promis:[7,11],choic:[7,11],openssl_config:[14,10],nghttp2_session_callbacks_set_select_padding_callback:[7,11],ai_addr:14,timeout:2,each:[0,6,2,4,14,7,8,10,11,12,13],debug:[6,2,7,9,10,11,13,15],went:15,side:[7,11,8,14],mean:[6,11,4,10,7],slen:14,protocol_error:[7,11],nghttp2_select_padding_callback:[7,11],http2_stream_data:[14,10],nghttp2_session_server_new2:[7,11],deflater_ptr:[0,7,11],network:[14,12,10],stream_remote_window_s:[7,11],cross_compil:15,newli:[7,11,10],content:[1,2,4,6,8,12,14],rewrit:1,android_hom:15,hd_table_bufsize_max:4,end_stream:[7,11,8],written:[7,11,8,10],situat:[3,10],free:[0,14,5,7,10,11],standard:4,b127:12,hand:8,spdy:[3,7,11,12,13,15],openssl:[6,8,15,10,14],nghttp2_version_num:[7,11,5],sigact:[14,10],rang:[7,2,8,11],warnx:[14,10],deflate_max_header_table_s:4,restrict:[0,14,11,10,5],nghttp2_protocol_error:[7,11],unlik:[7,11],alreadi:[6,14,7,8,10,11],agre:8,primari:[7,11],top:[8,12,4],sometim:3,necessarili:[7,11],too:[7,2,11,14],similarli:7,draft:[1,11,8,7],listen:[6,8,12,9,14],tool:[7,15],lighttpd:8,travers:14,white:6,target:[7,11,8,4],provid:[0,14,4,5,7,8,10,11],tree:8,zero:[0,7,11],cppflag:15,project:[1,8],matter:[7,11],rfc2616:[7,11],nghttp2_continu:[7,11],nv_out:[0,7,11],manner:[6,3],increment:[7,11],seen:2,nghttp2_session_recv:[7,11],latter:[7,11,4],nghttp2_session_callbacks_set_on_begin_frame_callback:[7,11],transmit:[7,11,10],sig_ign:[14,10],settings_max_header_list_s:[7,11],shall:[0,14,11,10,5],object:[0,14,4,7,8,10,11],writecb:[14,10],nghttp2_settings_timeout:[7,11],bytesio:[8,4],simplic:10,don:[6,2,14,7,8,11,15],hex_to_uint:14,doc:[8,9],flow:7,doe:[14,4,7,8,10,9,11,12],opaque_data:[7,11,8],section:[7,11,8],on_invalid_frame_recv_callback:[7,11],bev_event_eof:[14,10],pkg:8,protocol:7,bufferevent_setcb:[14,10],make:[6,4,14,7,8,9,11,12,15],involv:[7,11],absolut:[6,12],libari:8,explain:[12,10],configur:[6,4,7,8,9,11,12,15],nghttp2_err_invalid_stream_id:[7,11],busi:[14,10],nghttp2_cleartext_proto_version_id:[7,11],nghttp2_err_proto:[7,11],authoritylen:10,stop:[7,11,10,14],end_head:[7,11,8],evbuffer_drain:[14,10],bar:[6,8,4,9],ai_pass:14,ietf:[1,11,8,7],baz:[8,4],push_promis:[7,11,14],"public":[1,11,7],twice:2,nghttp2_strerror:[0,7,11,10,14],bufferevent_ssl_accept:14,serve_forev:[8,4],nul:[7,11],num:6,result:[0,14,3,7,10,11],respons:[0,6,3,4,14,7,8,9,10,11,12],fail:[0,14,3,7,8,10,11,12],key_fil:14,subject:[0,14,11,10,5],said:[7,11],figur:8,certpath:6,bev_opt_close_on_fre:[14,10],accord:[7,11],nghttp2_session_callbacks_set_on_data_chunk_recv_callback:[7,11,10],push_path:9,pointer:[0,7,11,14],extens:[6,4,7,8,10,11],advertis:[6,10,14],setsockopt:[14,10],protect:6,nghttp2_default_weight:[7,11],nghttp2_hd_deflate_hd:[0,7,11],against:[7,11,8],ssl_ctx_use_certificate_chain_fil:14,header_t:8,logic:14,enhance_your_calm:[7,11],com:[1,11,8,12,7],ninflat:0,int32_t:[7,11,10,14],"2nd":[0,13],usr2:12,usr1:[6,12],trust:6,assum:[6,4,7,8,11,12],option_ptr:[7,11],duplic:[7,11],reciev:10,liabil:[0,14,11,10,5],evbuffer_get_length:[14,10],chrome:[8,12],tlsv1:[6,8],max_deflate_s:8,been:[7,11,8,10,14],github:[1,8,3],trigger:[7,11],interest:[14,8,10],futur:[7,11,12],tini:10,life:14,regul:[14,10],data_source_read_length_callback:[7,11],worker:[6,12,9],argument:[14,4,7,8,10,11,12],ewouldblock:[14,10],load_cert_chain:[8,4],"0x000600":5,ssl_op_no_compress:[14,10],emploi:3,servic:[6,8,14],zlib:[8,15],employ:8,calcul:3,publicli:8,nghttp2_on_begin_headers_callback:[7,11,10],bev_event_timeout:[14,10],printabl:10,nghttp2_flag_pad:[7,11],nghttp2_set:[7,11],promised_stream_id:[7,11],conf:[6,8,10,14],sever:[6,14,7,8,11,12],on_data:[8,4],nghttp2_session_callbacks_set_on_frame_send_callback:[7,11],receiv:[6,2,3,4,14,7,8,9,10,11],dhe:[6,8,9],transpar:[0,7,11],split:0,version_str:[7,11],nghttp2_on_stream_close_callback:[7,11,10],complet:[0,14,7,9,10,11],start_listen:14,bufferevent_openssl_get_ssl:[14,10],nghttp2_err_deferred_data_exist:[7,11],rais:4,ssl_ctx_new:[14,10],zlib1g:8,ownership:[7,11],niv:[7,11,8],nghttp2_flag_end_head:[7,11],pkg_config_libdir:15,kept:14,thu:[6,14,7,8,11,12],nghttp2_session_get_effective_local_window_s:[7,11],inherit:4,"0x04":[7,11,8],client:[1,2,3,7,9,11,13],thi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],endif:[14,11,5],gzip:[0,8,9],everyth:8,left:[6,11,14,7],identifi:[6,4,14,7,11,13],nghttp2_nv_flag:[7,11],just:[0,6,14,7,8,9,10,11,12],"0x01":[7,11,8],initiate_connect:10,ifdef:[14,11],nghttp2_session_callbacks_set_on_stream_close_callback:[7,11,10,14],yet:[7,2,8,11],previous:[7,11],easi:8,settings_hd_table_bufsize_max:[7,11],els:[14,10],save:[6,2],applic:[0,14,3,4,7,8,10,11,15],preserv:[0,7,11],deflate_hd_table_bufsize_max:[0,7,11],background:[6,9],initialize_nghttp2_sess:[14,10],daemon:[6,12,9],herebi:[0,14,11,10,5],specif:[14,4,7,10,11,15],filenam:2,http2_session_data:[14,10],client_addr:14,arbitrari:[7,11],manual:[8,12],nghttp2_settings_max_header_list_s:[7,11],tcp_nodelai:[14,10],unnecessari:[7,11],underli:[14,10],www:[7,11,12],right:[0,14,5,8,10,11],deal:[0,14,5,7,10,11],intern:[7,11],freeaddrinfo:14,successfulli:[7,11,10,14],transmiss:[14,2,7,9,10,11],requesthandlerclass:[8,4],insensit:6,bottom:[7,11],nghttp2_data_source_read_callback:[7,11],subclass:[8,4],buffer:[0,14,7,8,10,11],condit:[0,14,5,7,10,11,12],foo:[6,8,4,9],localhost:[12,8,3],core:[6,8,9],plu:3,sensibl:[7,11],insecur:[6,12],repositori:[14,10],peer:[7,2,14,10,11],post:[7,2,8,11],cacert:[6,12],nghttp2_submit_data:[7,11],nghttp2_settings_max_concurrent_stream:[7,11,10,14],produc:[0,7,11],f127:12,evbuff:[14,10],encod:[1,4,6,7,8,11],bound:[0,7,11],libev:[1,8,15,6],down:[14,10],nghttp2_before_frame_send_callback:[7,11],errx:[14,10],git:[1,11,7],session_send:[14,10],wai:[0,7,11,8,15],support:[14,3,7,8,10,11,12,15],closur:[7,11,4,10],suppors:12,avail:[6,4,14,7,8,10,9,11,12,13],overhead:8,on_begin_frame_callback:[7,11],fork:[8,12],head:14,event_bas:[14,10],offer:[8,4,15],forc:[2,9],bev_event_connect:[14,10],heap:8,"true":[8,4],reset:10,ssl_ctx_free:[14,10],maximum:[6,11,8,7],tell:[0,14,4,7,10,11,12],deafult:8,fundament:0,autoconf:8,emit:[7,11,10,14],nghttp2_initial_window_s:[7,11],featur:[8,12],httpbi:[1,8],netdb:14,decrypt:3,unreleas:8,nghttp2_session_callbacks_new:[7,11,10,14],exist:[7,11,8,12],protocol_id_len:[7,11],ai_flag:14,ends_with:14,sizeof:[0,14,10],delete_http2_session_data:[14,10],encrypt:12,when:[0,6,4,14,7,8,9,10,11,12,13],role:[7,11,14],nghttp2_check_header_valu:[7,11],send_client_connection_head:10,unlimit:[6,2,11,7],heder:[7,11],intend:[6,11,14,12,7],af_unspec:[14,10],nghttp2_option_new:[7,11],nghttp2_max_window_s:[7,11],technot:[7,11],ni_numerichost:14,notic:[0,14,11,10,5],max_siz:8,evconnlistener_new_bind:14,longer:[14,8],htdoc:9,pseudo:[7,11],nghttp2_check_header_nam:[7,11],print_head:10,time:[0,6,2,4,14,7,8,11,12],push:[7,11,8,4,9],skip:[7,11],consum:[7,11],nghttp2_on_frame_recv_callback:[7,11,10],nghttp2ver_h:5,decid:[7,11,4],create_ssl_ctx:[14,10],depend:[14,7,8,10,11,12,15],readabl:10,nghttp2_session_callbacks_set_send_callback:[7,11,10,14],undon:0,sourc:[0,1,14,7,8,10,11,15],string:[0,6,4,14,7,8,10,11],nghttp2_settings_enable_push:[7,11],nghttp2_hd_inflate_new:[0,7,11],androideabi:15,host_len:[7,11],exact:[7,11],level:[6,2,3,4,14,7,11,13,15],did:[7,11,9,10],item:[8,12],settings_id:[7,11],conhead:14,cooki:6,round:3,dir:15,upper:[0,7,11,4],sign:12,port:[6,3,4,14,7,8,9,10,11,12,13],data_flag:[7,11,14],appear:[8,12],event_base_fre:[14,10],current:[0,6,2,4,14,7,8,9,11,12,15],nghttp2_err_data_exist:[7,11],gener:[0,7,11,8],pad_high:[7,11],nghttp2_hd_inflate_del:[0,7,11],url_remap:12,nghttp2_session_get_stream_local_clos:[7,11],address:[6,8,12,4],locat:1,nghttp2_session_get_stream_remote_clos:[7,11],box:12,nghttp2_session_callbacks_set_on_begin_headers_callback:[7,11,10,14],connect_error:[7,11],queue:[7,11,10,14],behav:[7,11,12],ourselv:[14,10,15],nghttp2_err_goaway_already_s:[7,11],regardless:[6,11,7],extra:[8,10],modul:[8,4],prefer:[6,11,12,7],"1st":0,instal:[8,15],hdinflat:[8,4],memori:[0,14,4,7,10,11],stylesheet:[0,2],handler:[8,4],strdup:14,prev:14,emiss:[7,11],rst_stream:[7,11,10,14],ctype:14,enhanc:6,nghttp2_submit_window_upd:[7,11],behalf:6,prepar:[7,11,15],cap:4,stream_user_data:[7,11,10],cat:[7,11,10,14],descriptor:[7,11,14],can:[0,6,4,14,7,8,9,10,11,12,13,15],http2:[1,4,6,7,8,11,12],purpos:[0,6,5,14,7,10,11],uf_path:10,claim:[0,14,11,10,5],stream:[0,6,2,3,4,14,7,8,10,11,13],agent:[0,8],critic:[7,11],abort:[7,11],tabl:[0,2,4,7,8,9,11],nghttp2_header:[7,11,10,14],occur:[7,11,4],alwai:[7,11,8,14],differenti:0,multipl:7,ping:[7,11],write:1,actual:[7,11,10,14],nghttp2_hd_deflate_init:0,mar:8,sslcontext:[8,4],max:[6,2,3,7,8,10,11,13],sni:6,mac:8,mai:[0,14,3,4,7,8,10,11,12,15],acceptcb:14,data:[0,14,2,3,4,7,8,10,11],autotool:8,openssl_add_all_algorithm:[14,10],stdio:0,stdin:[2,8],explicit:0,inform:[14,2,7,8,9,10,11,13,15],nghttp2_session_get_stream_effective_recv_data_length:[7,11],preced:12,combin:[6,11,7],talk:[14,8],nghttp2_err_stream_shut_wr:[7,11],size_t:[0,7,11,10,14],nghttp2_err_unsupported_vers:[7,11],still:[7,11,8,14],mainli:[7,11],dynam:[0,7,11,8,4],entiti:14,group:[6,2],nghttp2_err_fat:[7,11],nghttp2_priority_spec:[7,11],platform:[8,15],window:[6,2,3,7,11,12,13],main:[0,14,10],non:[14,3,4,7,8,10,11,12],env:[8,4],"5xx":[8,3],nghttp2_submit_head:[7,11],nghttp2_on_header_callback:[7,11,10,14],now:[7,11],name:7,version_num:[7,11],config:[8,12,15],no_error:8,drop:[6,11,14,10,7],hd_inflat:[7,11],millisec:[8,3],compression_error:[7,11],compil:[8,15],replac:[6,11,12,7],individu:[7,11,12],continu:[0,14,2,7,8,10,11],event_base_loop:[14,10],turoti:10,happen:[0,14,12,4,10],ai_addrlen:14,nghttp2_hd_inflate_init:0,shown:0,libjemalloc:8,space:[0,6,11,8,7],output_length:8,correct:15,earlier:[14,10],nghttp2_option_set_no_auto_window_upd:[7,11],event_base_new:[14,10],argv:[0,14,10],org:[0,1,11,8,7],"byte":[0,6,2,3,4,14,7,8,9,10,11],argc:[0,14,10],care:[7,11],nghttp2_hd_deflate_change_table_s:[7,11],nghttp2ver:[1,11,7],"88448504252dd5918485":8,badli:[7,11],nghttp2_session_callbacks_set_on_frame_not_send_callback:[7,11],turn:12,nghttp2_flag_non:[7,11,10,14],place:[7,11],evdns_base_new:10,origin:[6,2,7,8,11,12],directli:[7,11,10,14],carri:[7,11],onc:[0,7,11],arrai:[0,7,11,8,10],yourself:8,reopen:6,nghttp2_is_fat:[7,11],nghttp2_flow_control_error:[7,11],submit:[7,11,8,10],on_frame_recv_callback:[7,11,10,14],open:[1,11,7],size:[0,6,2,3,4,14,7,8,9,11,13],given:[0,6,2,3,4,7,8,11,13],capac:[0,11],paramt:0,sigpip:[14,10],averag:6,internal_error:[7,11],conveni:[7,11,4],ssl_ctx:[7,11,10,14],copi:[0,14,4,5,7,10,11],specifi:[1,2,3,7,9,11,13,15],on_head:[8,4],mostli:8,holder:[0,14,11,10,5],than:[0,14,3,4,7,8,9,11,13],png:9,serv:[14,12],wide:[6,14],nghttp2_session_get_outbound_queue_s:[7,11],nghttp2_session_callbacks_set_data_source_read_length_callback:[7,11],were:[7,11,10,14],posit:[7,11],read_callback:[7,11,14],nghttp2_min_weight:[7,11],browser:[8,12],pre:[7,11],sai:[7,11],pri:11,ani:[0,6,4,5,14,7,8,10,11,12],deliv:[7,11],saw:12,sat:8,bitwis:[7,11],form:[6,11,8,4,7],nghttp2_flag_prior:[7,11],destroi:[14,10],note:[0,6,3,14,7,8,10,11,12],take:[7,11,8,10,14],properti:[14,10],noth:[7,11,8,12,4],ndeflat:0,begin:10,sure:[14,8,10],trace:8,normal:[7,11],multipli:2,compress:[0,1,4,7,8,11],nghttp2_hcat_request:[7,11,14],pathlen:10,sublicens:[0,14,11,10,5],pair:[14,2,4,7,8,10,9,11],renam:12,http2_select:[7,11],later:[0,14,3,4,7,10,11,12],gracefulli:[7,11,12,10],show:[12,4],unprocess:[14,10],concurr:[6,2,3,14,7,8,11,13],permiss:[0,14,11,10,5],nghttp2_session_set_stream_user_data:[7,11,14],threshold:14,help:[6,2,9,13],print_hd_tabl:4,onli:[6,2,14,7,8,10,11,12],explicitli:[6,4],ratio:0,behind:6,overwritten:[7,11],hddeflat:[8,4],variou:[7,11],get:[14,2,4,7,8,10,11,12],clang:8,outlen:[0,7,11,10],ssl:[1,3,7,9,11,13],cannot:[0,14,4,7,11,12],nghttpd:[1,2,13],ssl_ctx_set_opt:[14,10],requir:[1,6,7,9,11,12,15],nghttp2_set_stream_user_data:14,where:[6,15],burst:[6,12],nghttp2_session_callbacks_set_before_frame_send_callback:[7,11],op_no_sslv2:[8,4],detect:[7,11,8,4],weighttp:8,nghttp2_hd_inflate_fin:[0,7,11],enough:[0,7,2,11],between:12,"import":[0,8,4,15],fcntl:14,awaaagqeaad__wuaaaab:8,pipefd:14,evdns_bas:10,come:[6,15,3,14],submit_request:10,region:[7,11],contract:[0,14,11,10,5],fontend:12,tutori:1,bufferevent_fre:[14,10],mani:[7,11],nghttp2_ext_frame_typ:[7,11],nghttp2_data_provid:[7,11,14],among:14,color:[2,9],inspir:8,nghttp2_err_too_many_inflight_set:[7,11],dispatch:12,cancel:[7,11],damag:[0,14,11,10,5],http2server:[8,4],header_table_s:8,"abstract":[14,10],nghttp2_err_buffer_error:[7,11],hidden:[7,11],those:[0,14,3,7,8,10,11,13],"case":[6,4,14,7,8,10,11,12],hdr:[14,8,4,10],progoram:10,invok:[14,4,7,8,10,11,12],invoc:[7,11,4,14],margin:4,edch:8,nghttp2_nv_flag_no_index:[0,7,11],on_data_chunk_recv_callback:[7,11,10],stdout:[0,8,10],ascii:[7,11],develop:1,author:[0,14,4,5,8,10,11,12],bev_opt_defer_callback:[14,10],alphabet:[7,11],same:[0,14,2,4,7,8,11,12],ssl_library_init:[14,10],nghttp2_err_flow_control:[7,11],html:[1,2,14,7,8,11],pad:[6,2,11,9,7],document:[1,11,12,9,5],finish:[14,3,7,8,10,11],decompress:[7,11,8,3,4],handshake_leftlen:14,extern:11,postpon:[7,11],nghttp2_initial_max_concurrent_stream:[7,11],ai_next:14,without:[0,6,4,5,14,7,8,9,10,11,12,13,15],evict:[7,11],nghttp2_push_promis:[7,11],on_request_don:[8,4],event2:[14,10],nghttp2_err_def:[7,11],nghttp2_submit_set:[7,11,10,14],execut:[8,12,4],rest:3,multiplex:14,hint:14,except:[7,11,4],param:[6,9],identif:[7,11],nghttp2_select_next_protocol:[7,11,10],nghttp2_ext_altsvc:[7,11],real:[8,12],unistd:[14,10],read:[1,2,11,7],nghttp2_version_ag:[7,11],sheme:3,test:[1,2,12],traffic:[12,8,3],nghttp2_hd_inflate_change_table_s:[7,11],next_proto_cb:14,integ:[7,11],server:[1,2,6,7,9,11,12,13],either:[7,11,4,14],output:[0,6,2,4,14,7,8,9,10,11,13],manag:[7,11,14],stream_clos:[7,11],protocol_sslv23:[8,4],set_no_refset:4,ssl_ctx_set_next_protos_advertised_cb:14,handshak:[6,14,9,10],nonzero:[0,7,11,14],easili:10,"2xx":[8,3],exit:[0,6,2,14,9,10,12,13,15],data_ptr:[7,11],power:8,base64url:[7,11],nghttp2_session_server_new:[7,11,14],fulli:[7,11,14],getnameinfo:14,refers:4,src:[8,15],inflater_ptr:[0,7,11],ack:[7,11,8],nghttp2_recv_callback:[7,11],settings_payload:[7,11],act:[14,12,10],routin:[14,10],consid:8,"0x0fu":0,ssl_ctx_set_next_proto_select_cb:[7,11,10],error_repli:14,strip:15,your:[14,8],b2a_hex:[8,4],nghttp2_hcat_respons:[7,11,10],hex:[14,8],start:[14,3,7,8,9,10,11,12],nghttp2_err_stream_clos:[7,11],interfac:4,ipv4:[6,8],lot:[7,11],ipv6:[6,8],strictli:[7,11,3,4,13],next_proto_list:14,nghttp2_proto_version_id_len:[7,11,14],tupl:[8,4],nghttp2_err_invalid_st:[7,11],satur:8,categor:[6,11,7],possibl:[7,11,8,10],"default":[1,2,3,7,9,11,13],applayerprotoneg:[7,11],hpack:[1,11,7],expect:[8,4],creat:[14,7,8,10,11,12,15],decreas:[7,11],file:[1,2,5,7,9,11,15],nghttp2_err_invalid_header_block:[7,11],fill:[7,11,14],denot:[6,11,10,7],functypedef:11,googl:[8,12],todo:[7,11],kbyte:[8,3],field:[1,2,11,7],valid:[7,2,8,12,11],nghttp2_prioriti:[7,11],ignor:[6,2,3,14,7,11,13],you:[0,6,4,14,7,8,10,11,12,15],intention:[7,11],architectur:15,nghttp2_data_source_read_length_callback:[7,11],sequenc:[0,14,4,7,8,10,11],promised_stream_user_data:[7,11],briefli:[0,15],track:[14,8,10],reduc:[7,11],cunit:8,directori:[6,2,14,8,9,10,15],represent:[7,5],all:[0,6,4,5,14,7,10,11,12,13,15],illustr:[8,4],nghttp2_err_start_stream_not_allow:[7,11],follow:[0,6,3,4,5,14,7,8,10,11,12,15],alt:[1,8,6],ptr:[7,11,10,14],app_cont:14,uint8_t:[0,7,11,10,14],articl:[12,15],readcb:[14,10],program:[1,12,6],bufferevent_writ:[14,10],introduc:15,uf_queri:10,evbuffer_remov:14,fals:8,pad_low:[7,11],nghttp2_option:[7,11],util:12,nghttp2_client_connection_header_len:[7,11],failur:[7,11],veri:[0,7,11,10],bottleneck:3,unalt:6,"__cplusplu":11,list:[6,11,14,4,7],nghttp2_headers_categori:[7,11],adjust:[0,7,11,8,3],stderr:[0,6,14,7,8,10,11],small:[7,11],inflate_header_block:[0,7,11],session_recv:14,syslog:6,rate:1,pass:[0,6,4,7,10,11],further:[0,7,11,10,14],what:[7,11,8,12,4],sub:14,sun:8,sum:[0,8,3],delet:[0,7,11,10],version:[7,15,13],method:[14,2,4,7,8,10,11],full:8,libjansson:8,varnish:8,padlen:[7,11,8],percentage_of_original_s:8,excess:14,modifi:[0,14,5,8,10,11],valu:[0,6,2,4,14,7,8,9,10,11,12],search:14,ai_addrconfig:14,nghttp2_err_push_dis:[7,11],on_clos:[8,4],prior:8,amount:[7,11,14,4,10],action:[0,14,5,7,10,11],via:[6,14,7,8,10,11,12],primit:10,ask:[7,11],famili:[14,10],establish:[14,10],select:7,regist:14,two:14,nghttp2_session_get_remote_window_s:[7,11],taken:[7,11],minor:[7,5],more:[0,14,7,8,10,11],tsujikawa:[0,14,11,10,5],desir:[6,11,12,7],nghttp2_settings_header_table_s:[7,11],default_header_table_s:4,select_next_proto_cb:[7,11,10],flag:[0,14,7,8,10,11,15],particular:[0,14,5,7,10,11],known:0,nghttp2_err_wouldblock:[7,11,10,14],cach:[8,12],none:[6,8,4],endpoint:[7,2,8,11],dev:[6,8,5],remain:[7,11,10,14],learn:14,def:[8,4],share:[0,8,4,15],accept:[0,6,14,7,8,11,12],minimum:[7,11,12,14],ssl_op_al:[14,10],nghttp2_submit_altsvc:[7,11],create_ssl:[14,10],strlen:[14,10],huge:[14,10],netinet:[14,10],secur:[0,6,8,12],rather:9,anoth:[7,11,12],serveraddr:[8,12],reject:[7,11],sec9:[7,11],simpl:[7,11,10,14],css:[0,8,4,9],resourc:7,referenc:8,variant:[7,11],spdylai:[12,8,3,15],nghttp2_client_connection_preface_len:[7,11,10,14],associ:[0,14,4,5,7,8,10,11],keypath:6,"short":[14,10],proto:[6,13],caus:[7,11],callback:[14,4,7,8,10,11],nghttp2_nv_flag_non:[0,7,11,10,14],alpn:[6,4,7,8,11,12,13],authroiti:10,rotat:12,max_ag:[7,11],hypertext:[1,8],libcunit1:8,through:[6,8,12,14],paramet:[0,6,7,9,10,11],style:[0,8,4],nghttp2_hcat_push_respons:[7,11],pend:[7,11,10,14],nghttp2_err_eof:[7,11],alter:[6,8],valuelen:[0,7,11,10,14],"0x010203":[7,5],"return":[0,14,3,4,7,8,9,10,11,12],check_path:14,nghttp2_session_callbacks_set_on_invalid_frame_recv_callback:[7,11],readlen:[14,10],nghttp2_err_callback_failur:[7,11,10,14],authent:6,tear:[14,10],achiev:[7,11,14],found:[7,11,14],unicod:4,trailer:[7,11],nghttp2_on_frame_send_callback:[7,11],weight:[7,2,11],realli:[12,10],nghttp2_hd_inflate_flag:[7,11],connect:[2,3,5,7,11,12,13],field_set:10,event:[0,14,4,5,8,10,11],ftw:[8,4],publish:[0,14,11,10,5],payload:[6,2,3,7,9,11],etag:8,print:[6,2,4,8,10,9],on_frame_not_send_callback:[7,11],proxi:1,advanc:12,nghttp2_internal_error:[7,11,14],effect:[7,11],reason:[0,7,11,4,14],base:[6,8,14],put:[7,11,8],nghttp2_session_mem_recv:[7,11,10,14],nghttp2_flag:[7,11],recv:8,prefac:[7,11,12,10,14],omit:[7,11,4,10],nghttp2_err_invalid_stream_st:[7,11],assign:[0,14,7,8,10,11],feed:[7,11,10,14],major:[7,5],notifi:[7,11,14],prevent:[7,11,8],number:[0,6,3,4,5,14,7,9,11,13],pkgconfig:15,done:[6,3,14,8,10,12],construct:[7,11,8,4],stdlib:11,differ:[7,11,12],script:[2,8,12,4,15],interact:6,data_prd:[7,11,14],nghttp2_session_get_stream_user_data:[7,11,14],least:[7,11,8],scheme:[0,2,4,8,10,12,13],store:[0,7,11,10,14],input_length:8,option:[7,3],memcmp:14,nghttp2_client_connection_head:[7,11],part:[6,3],pars:10,consult:12,dpkg:15,window_upd:[7,11,8],doubli:14,remot:[7,2,14,10,11],remov:[7,11,15],bridg:1,callbacks_ptr:[7,11],str:4,consumpt:10,nghttp2_error:[7,11],libspdylai:15,window_size_incr:[7,11,8],lib_error_cod:[7,11],arrlen:[14,10],packag:8,"null":[0,14,2,7,10,11],syn_stream:[7,11],sell:[0,14,11,10,5],outbound:[7,11],built:[8,3,15],equival:[7,11],check:[7,11,10,14],self:[8,12,4],also:[7,3,15],append:[6,4],nghttp2_err_frame_size_error:[7,11],make_nv:[0,14,10],distribut:[0,14,11,10,5],reacb:10,passwd:6,reach:[7,11,14],chart:[7,11],most:[6,2,11,9,7],private_kei:[6,9],charg:[0,14,11,10,5],addr:14,"01881f3468e5891afcbf83868a3d856659c62e3f":8,compar:[7,11],clear:7,cover:[8,12],ext:[7,11],h2c:[13,11,8],pri_spec:[7,11],nghttp2_settings_max_frame_s:[7,11],hdtabl:4,rtt:[7,11],session:[6,14,7,8,10,11,13],fine:[7,11],nghttp2_submit_push_promis:[7,11],copyright:[0,14,5,8,10,11],refused_stream:[7,11],queu:[7,11,10,14],remedi:3,express:[0,14,11,10,5],kind:[0,14,5,7,10,11],nativ:[13,8,3],"3xx":[8,3],liabl:[0,14,11,10,5],before_frame_send_callback:[7,11],subcert:6,retreiv:10,crt:[14,8,12,4],statist:2,h2load:15,certif:[1,2,9],set:[0,6,2,3,4,14,7,8,9,10,11,12,13,15],dump:6,creator:8,ousid:8,remove_stream:14,startup:6,nghttp2_submit_goawai:[7,11],sec:[6,8,3],arg:[7,11,10,14],close:[14,4,7,8,10,11],jemalloc:8,arm:15,analog:[7,11],strchr:14,someth:[7,11,12],won:[6,11,14,7],nghttp2_on_data_chunk_recv_callback:[7,11,10],altern:[6,8],numer:[7,11,5],sole:[7,11,13],writelen:14,succeed:[8,3],percent_decod:14,verbos:[13,2,8,9],both:[6,3,14,7,8,10,11,12],last:[7,11,8],delimit:[0,6,8],nghttp2_data_flag_non:[7,11],nghttp2_session_want_writ:[7,11,10,14],tempor:[7,11],context:[7,11,8,10,14],nghttp2_rst_stream:[7,11],whole:[0,7,11,8,4],load:[6,8],simpli:[14,10],send_server_connection_head:14,header:[1,2,3,7,9,11],shutdown:[7,11,12,10,14],nghttp2_session_client_new:[7,11,10],nghttp2_session:[7,11,10,14],backend:[6,8,12],frame_typ:[7,11],due:[0,7,11],empti:[6,4,14,7,8,10,11,12],send_respons:[14,8,4],whom:[0,14,11,10,5],stdint:11,add_stream:14,flight:[7,11],nghttp2_err_nomem:[7,11],settings_enable_push:[7,11],nghttp2_session_terminate_sess:[7,11,10],imag:2,func:11,next_proto_list_len:14,look:[0,14,3,10],"while":[7,11,10,14],behavior:[7,11],error:[0,6,3,4,14,7,8,9,10,11],robin:3,loop:[14,8,4,10],earli:9,malloc:[0,14,10],nghttp2_session_callback:[7,11,10,14],readi:[7,11,14],user_data:[7,11,10,14],itself:[7,11,3,10,14],flow_control_error:[7,11],grant:[0,14,11,10,5],libcurl:8,belong:[7,11],nghttp2_session_callbacks_set_on_header_callback:[7,11,10,14],create_http2_session_data:[14,10],decod:[1,2,4,7,8,9,11],mytyp:[7,11],inflat:[1,11,8,4,7],moment:8,user:[0,6,7,8,10,11,12,15],chang:[6,3,4,14,7,8,9,11],recent:[7,11],nghttp2_h:11,noninfring:[0,14,11,10,5],lib:15,entri:[7,11,8,4],nghttp:[1,13],person:[0,14,11,10,5],uint32_t:[7,11,14],qdeb_build_gnu_typ:15,on_frame_send_callback:[7,11],nghttp2_ping:[7,11],input:[0,14,7,8,10,11],subsequ:[0,7,11,4,13],bin:[8,4,15],on_begin_headers_callback:[7,11,10,14],obsolet:[7,11],format:[6,2,14,7,8,9,10,11,12],http_parser:10,nginx:8,bit:[6,2,5,7,11,13],strstr:14,success:[0,7,11,8],signal:[6,14,7,10,11,12],lib_error:[7,11],resolv:6,some:[0,14,4,7,10,11,12],back:[7,11,8,14],sampl:8,reverse_proxi:12,libssl:8,lev_opt_reus:14,per:[6,3,4,8,12,13],pem:[6,2,12,9],retri:12,larg:[7,2,8,11],make_nv2:10,nghttp2_session_callbacks_set_recv_callback:[7,11],settings_compress_data:8,machin:[8,12],run:[6,4,14,7,8,10,9,11,12,15],step:[7,11,12],prerequisit:15,handshake_readcb:14,nghttp2_hd_inflate_emit:[0,7,11],commun:[6,8,10,14],idl:[7,11],regular:[7,11],dialog:12,block:[6,3,4,14,7,8,10,11],nghttp2_err_paus:[7,11],nsm:11,within:8,nghttp2_send_callback:[7,11,10,14],announc:8,occupi:[8,4],inclus:[7,2,11],errno:14,"long":[7,11,8,14],nghttp2:[7,15],sslv3:6,suit:[6,8,9],forward:[6,11,8,12,7],change_table_s:4,properli:6,session_ptr:[7,11],repeatedli:[0,7,11,9],link:[6,2,8,12,14],translat:12,ni_maxhost:14,nghttp2_hd_inflate_end_head:[0,7,11],line:[6,12,8,3,15],mitig:8,info:6,concaten:0,utf:4,caller:[0,7,11,14],nghttpx:[1,2,15,9,13],frame_size_error:[7,11],parser:10,repres:[7,11],"char":[0,7,11,10,14],incomplet:8,sublen:14,curl:[8,12],titl:14,invalid:[7,11],librari:[7,3,15],llvm:15,nghttp2_default_header_table_s:[7,11],meaning:6,libtool:8,create_http2_stream_data:[14,10],algorithm:[7,11],svc:[1,8,6],nghttp2_submit_request:[7,11,10],namelen:[0,7,11,10,14],far:[0,14,8,10],avoid:[7,11,8,10,14],asyncio:[8,4],getaddrinfo:14,code:[0,14,3,4,7,8,10,11],examin:0,queri:10,nghttp2_frame_hd:[7,11],cython:8,privat:[6,2,14,8,9,12,15],send:[6,2,4,14,7,8,9,10,11,12],http_parser_url:10,lower:[7,11],outgo:[7,11,14],aris:[0,14,11,10,5],fatal:[6,11,14,10,7],nghttp2_data_flag:[7,11],sent:[0,6,14,7,10,11],nghttp2_submit_p:[7,11],untouch:[7,11],relev:10,tri:[7,11,12],magic:[14,10],button:12,http_parser_parse_url:10,"try":[7,11,8],microsec:[8,3],pleas:[14,3,7,8,10,11,12],impli:[0,14,11,10,5],smaller:[7,11,8],snprintf:10,memset:[14,10],download:[1,2,8],c100:3,click:12,client_address:[8,4],index:[7,2,8,11],o_rdonli:14,access:[6,2,4,7,8,11,12,13],experiment:[1,2,9,6],nghttp2_hd_deflate_new:[0,7,11],whatev:[8,4],inspect:[7,11],uf_schema:10,nghttp2_enhance_your_calm:[7,11],len:[7,11,10,14],bodi:[14,3,4,7,8,10,11],app_ctx:14,ubuntu:8,becom:[7,11,3,5,14],sinc:[7,11,8,10,14],convert:6,larger:[7,11,4],ctx:[8,4],settings_payloadlen:[7,11],autoreconf:8,jansson:8,cert:[6,2,9],greac:[14,10],typic:8,set_npn_protocol:4,firefox:12,output_wouldblock_threshold:14,apr:8,appli:[7,11],gatewai:12,bufferev:[14,10],from:[1,2,5,6,7,11,12,15],dnsbase:10,doubl:0,binascii:[8,4],upgrad:[6,2,7,8,11,12],next:[7,11,10,14],implic:12,doubt:0,findproxyforurl:[8,12],usr:[8,4,15],nghttp2_nv:[0,7,11,10,14],nghttp2_option_del:[7,11],sort:6,goawai:[7,11,8,10,14],deflat:[1,11,8,4,7],in_fin:[0,7,11],account:[7,11,8,10],retriev:[7,11,14,4,10],tunnel:[6,8],nghttp2_settings_id:[7,11],pac:[8,12],about:[7,11,14,4,10],aliv:[6,11,14,7],sslv23_client_method:10,control:7,process:[0,14,4,7,8,10,11,12],nghttp2_session_get_remote_set:[7,11],high:4,fprintf:[0,7,11,10,14],tab:12,onlin:[7,8],serial:[7,11,10,14],evdns_base_fre:10,no_refset:4,gcc:8,filepath:6,nghttp2_session_want_read:[7,11,10,14],gcm:8,ssl_ctx_use_privatekey_fil:14,evbas:[14,10],instead:[6,3,4,7,11,13],nullifi:[7,11],npn:[6,14,7,8,10,11,12],max_payloadlen:[7,11],eventcb:[14,10],nghttp2_compression_error:[7,11],alloc:[0,7,11,14],bind:1,nvlen:[0,7,11,10,14],correspond:[14,8],element:[7,11,14],issu:[1,3,7,8,11,12,13],stream_id:[14,4,7,8,10,11],nghttp2_connect_error:[7,11],ssize_t:[0,7,11,10,14],fallback:12,furnish:[0,14,11,10,5],"02f":0,nva2:0,nva1:0,move:[7,11],comma:6,"02x":0,chosen:4,nghttp2_hd_inflate_hd:[0,7,11],suppli:[7,11,12],therefor:[0,4,7,10,9,11],least_vers:[7,11],inlen:[0,7,11,10],recept:[14,2,7,9,10,11],crash:[7,8],greater:[7,11],python:1,auto:[13,3],nghttp2_goawai:[7,11],automat:[7,11,12],warranti:[0,14,11,10,5],nghttp2_session_mem_send:[7,11],anyth:[6,10],edit:[12,15],uf_port:10,mode:1,ndk:15,ssl_filetype_pem:14,chunk:[7,11,8,4,10],ouf:[7,11],nghttp2_err_temporal_callback_failur:[7,11,14],"static":[0,14,7,8,10,11,15],our:10,patch:[7,8,5],out:[0,14,2,5,7,8,10,11,12],variabl:[8,12,4,15],accesslog:[6,12],req:[8,3],n1000:8,categori:[7,11,10],suitabl:[6,11,7],rel:[0,14,9],field_data:10,recv_callback:[7,11],insid:8,cleartext:[7,11],standalon:15,releas:7,nghttp2_session_callbacks_set_on_frame_recv_callback:[7,11,10,14],nghttp2_hd_inflate_non:[7,11],remap_requir:12,log:[1,2,9],syn_repli:[7,11,3],keep:[6,14,7,8,10,11],length:[0,14,2,7,8,10,11],outsid:[6,8,7],retain:[7,11],softwar:[0,14,11,10,5],addrinfo:14,remote_max_frame_s:[7,11],echo:15,date:8,facil:6,prioriti:[7,2,11],seq:8,nghttp2_hd_inflat:[0,7,11],strict:8,unknown:14,licens:8,system:[6,15,12,10,14],messag:[7,11,10],attach:[14,10],attack:8,termin:[14,7,8,9,10,11],"final":[0,7,11],low:[7,11],request_head:[8,4],proclen:0,sa_handl:[14,10],enqueu:10,exactli:[14,8],nghttp2_err_header_comp:[7,11],see:7,structur:[7,11,10,14],charact:[7,11,10,14],sens:[7,11],nghttp2_session_del:[7,11,10,14],"08zx":0,bev:[14,10],session_remote_window_s:[7,11],ssl_new:[14,10],unencrypt:12,bufferevent_get_input:[14,10],nghttp2_inbound_num_iv:11,corrupt:10,have:[0,14,7,8,10,11,15],reserv:[7,11],need:[0,7,8,10,11,12,15],ai_socktyp:14,"0x08":[7,11],"0x09":[7,11],min:[7,11],origin_len:[7,11],"0x05":[7,11,8],"0x06":[7,11],"0x07":[7,11],"0x00":[0,7,11,8],"switch":[14,8,10],"0x02":[7,11],"0x03":[7,11],nghttp2_refused_stream:[7,11],evbuffer_pullup:[14,10],which:[0,14,3,4,7,8,10,11,12,15],singl:[0,6,4,14,7,8,10,11],opaque_data_len:[7,11],unless:[6,11,8,9,7],bufferevent_openssl_socket_new:[14,10],deploy:[12,15],who:8,settings_max_concurrent_stream:[14,2,7,8,10,11],cipher:[6,8,9],stream_data:[14,10],noind:8,deploi:1,"class":[8,4],nghttp2_error_cod:[7,11,10,14],nghttp2_err_stream_id_not_avail:[7,11],url:[14,8,12],request:[0,6,2,3,4,14,7,8,9,10,11,12,13],pipe:14,determin:[7,11,8,4],nghttp2_pack_settings_payload:[7,11],"0x0d":[7,11],"0x0a":[7,11],"0x0b":[7,11],"0x0c":[7,11],ssl_load_error_str:[14,10],bufferevent_get_output:[14,10],redirect:10,nghttp2_submit_rst_stream:[7,11,14],forev:4,should:[0,14,7,8,10,11,15],suppos:12,local:[7,11,12,15],meant:[6,10],contribut:1,familiar:8,memcpi:[14,10],nghttp2_session_client_new2:[7,11],nghttp2_session_terminate_session2:[7,11],settings_initial_window_s:[7,11,8],nghttp2_data:[7,11,14],increas:[7,11],tbd:[7,11],portion:[0,14,4,5,10,11],nghttp2_submit_respons:[7,11,14],enabl:[6,4,7,8,11,12,15],whether:[0,14,11,10,5],contain:[0,6,4,14,7,8,9,10,11,12],nghttp2_window_upd:[7,11],frame:[0,6,2,4,14,7,8,9,10,11],knowledg:8,nghttp2_hd_deflat:[0,7,11],temporarili:[7,11],statu:[1,11,3,7],wire:[14,8,10],correctli:[7,11],nghttp2_settings_entri:[7,11,10,14],state:[0,7,11,8,14],https_uri:10,progress:8,nghttp2_initial_connection_window_s:[7,11],kei:[6,2,4,14,7,8,9,11,12],entir:[7,11,14],n100000:3,last_stream_id:[7,11,8],disconnect:[14,10],addit:[1,11,15,7],revers:[6,8,12],nghttp2_proto_version_id:[7,11,10,14],equal:14,etc:[6,8,10,14],instanc:[7,11,8,4],grain:[7,11],freeli:15,uint16_t:[7,11,10],get_hd_tabl:4,nghttp2_data_flag_eof:[7,11,14],arriv:[8,4],precondit:[7,11],m10:[8,3],commenc:10,respect:[7,11,10],chromium:12,quit:12,tort:[0,14,11,10,5],compos:8,insuffici:[7,11],compon:[12,10],json:8,treat:[6,11,14,7],immedi:[7,11],nghttp2_hcat_head:[7,11],altsvc:[6,11,8,7],http2jp:8,iobas:4,sock_stream:14,evconnlisten:14,present:[0,13],on_header_callback:[7,11,10,14],nghttp2_frame_size_error:[7,11],plain:[8,12,4],nghttp2_session_send:[7,11,10,14],defin:[0,14,5,7,10,11],eintr:14,nghttp2_flag_end_stream:[7,11,14],inadequate_secur:[7,11],layer:8,helper:[7,11],on_request_recv:14,libxml2:[8,15],squid:[8,12],site:8,archiv:[14,10],substanti:[0,14,11,10,5],incom:[6,4,14,7,8,11,12],let:[14,10,15],welcom:8,dereiv:2,satisfi:12,cross:15,member:[0,7,11,14],handl:[14,4,7,8,10,11],ifndef:[11,5],nightli:12,http:7,hostnam:[6,8,12,4],uf_host:10,initi:[0,6,2,3,4,14,7,10,11,13],dealloc:[7,11],inflate_flag:[0,7,11],off:[14,12,10],well:[14,11,10,15],app_context:14,exampl:[0,6,4,14,7,8,9,10,11,12,15],command:[12,8,3,15],nghttp2_session_callbacks_del:[7,11,10,14],choos:[6,11,15,7],error_cod:[14,4,7,8,10,11],nghttp2_data_sourc:[7,11,14],usual:[7,11],paus:[7,11],less:[0,7,11,3,13],send_callback:[7,11,10,14],half:[7,11],obtain:[0,14,11,10,5],tcp:[7,11,12,10,14],libnghttp2:[0,8],heavili:8,simultan:6,web:[14,8,12],wed:8,cert_fil:14,point:[14,7,10,11,12,15],priorit:[7,11],addrlen:14,add:[6,2,7,9,11,15],nghttp2_on_begin_frame_callback:[7,11],c10:8,match:[6,12,10,14],gmt:8,nvu:8,five:14,know:[0,7,11,12],nva:[0,7,11,10,14],password:6,python3:[8,4],insert:0,resid:[14,10],like:[0,6,3,4,14,7,8,10,11,12],foobarbuzz:8,protocol_id:[7,11,8],ldflag:15,nghttp2_priority_spec_check_default:[7,11],necessari:[7,11,4,14],page:[14,10],backlog:6,file_read_callback:14,linux:15,"export":[14,15],nghttp2_session_get_effective_recv_data_length:[7,11],error_html:14,guarante:[7,11],transport:[8,10],lead:[7,11],baseeventloop:4,octet:[14,10],overlap:[7,11],isxdigit:14,estim:0,nghttp2_session_upgrad:[7,11],delete_http2_stream_data:[14,10],host:[1,3,4,6,7,8,10,11,12,13,14,15],nghttp2_nv_compare_nam:[7,11],nghttp2_extens:[7,11],err_get_error:[14,10],toolchain:15,socket:[14,10],constructor:4,discard:2,ssl_tlsext_err_ok:[7,11,10,14],disabl:[1,2,7,9,11,15],nghttp2_client_connection_prefac:[7,11,10,14],own:[7,11,8],nghttp2_err_invalid_fram:[7,11],ssl_op_no_sslv2:[14,10],nghttp2_session_consum:[7,11],automak:8,merg:[0,14,11,10,5],val:[7,11,10,14],nghttp2_priority_spec_default_init:[7,11],ai_famili:14,transfer:[1,11,8,12,7],bump:[7,11],much:14,buz:[8,4],unexpect:[7,11],nghttp2_hd_deflate_bound:[0,7,11],gain:0,overflow:[7,11],highest:[7,11],buf:[0,7,11,14],count:[7,11],succe:[7,11],made:8,nghttp2_stream_clos:[7,11],nghttp2_info:[7,11],googlecod:[7,11],displai:[13,2,9],asynchron:[7,11],limit:[1,11,5],otherwis:[0,14,3,5,7,8,10,11,13],problem:[7,11],sockaddr:14,nghttp2_on_frame_not_send_callback:[7,11],evalu:4,strndup:10,"int":[0,14,7,10,11,12],baserequesthandl:[8,4],pid:6,implement:[1,2,14,7,8,10,11],allow:[6,11,8,7],percent:[6,14],detail:[7,11],other:[0,14,5,7,10,11,12],nghttp2_err_invalid_argu:[7,11],rememb:14,nghttp2_submit_:[14,10],buflen:[0,7,11],stat:[14,2],nghttp2_max_weight:[7,11],err_error_str:[14,10],rel_path:14,proto_str:[7,11],debian:15,session_data:[14,10],sphinx:8,eof:[7,11,14],indirectli:7,rule:[7,11],nghttp2_no_error:[7,11,10]},objtypes:{"0":"std:option","1":"c:macro","2":"c:member","3":"c:function","4":"c:type","5":"py:module","6":"py:attribute","7":"py:method","8":"py:class","9":"py:data","10":"py:function"},objnames:{"0":["std","option","option"],"1":["c","macro","C macro"],"2":["c","member","C member"],"3":["c","function","C function"],"4":["c","type","C type"],"5":["py","module","Python module"],"6":["py","attribute","Python attribute"],"7":["py","method","Python method"],"8":["py","class","Python class"],"9":["py","data","Python data"],"10":["py","function","Python function"]},filenames:["tutorial-hpack","index","nghttp.1","h2load-howto","python-apiref","nghttp2ver.h","nghttpx.1","apiref","package_README","nghttpd.1","tutorial-client","nghttp2.h","nghttpx-howto","h2load.1","tutorial-server","building-android-binary"],titles:["Tutorial: HPACK API","nghttp2 - HTTP/2 C Library","nghttp(1)","h2load - HTTP/2 benchmarking tool - HOW-TO","Python API Reference","nghttp2ver.h","nghttpx(1)","API Reference","nghttp2 - HTTP/2 C Library","nghttpd(1)","Tutorial: HTTP/2 client","nghttp2.h","nghttpx - HTTP/2 proxy - HOW-TO","h2load(1)","Tutorial: HTTP/2 server","Building Android binary"],objects:{"":{"-D":[9,0,1,"cmdoption-nghttpd-D"],"-M":[2,0,1,"cmdoption-nghttp-M"],"-L":[6,0,1,"cmdoption-nghttpx-L"],"-O":[2,0,1,"cmdoption-nghttp-O"],"-H":[2,0,1,"cmdoption-nghttp-H"],nghttp2_frame_hd:[7,4,1,"c.nghttp2_frame_hd"],nghttp2_on_frame_recv_callback:[7,4,1,"c.nghttp2_on_frame_recv_callback"],"-W":[2,0,1,"cmdoption-nghttp-W"],"-V":[9,0,1,"cmdoption-nghttpd-V"],nghttp2_priority_spec_init:[7,3,1,"c.nghttp2_priority_spec_init"],"-e":[9,0,1,"cmdoption-nghttpd-e"],"-d":[2,0,1,"cmdoption-nghttp-d"],"-f":[6,0,1,"cmdoption-nghttpx-f"],"-a":[2,0,1,"cmdoption-nghttp-a"],"-c":[13,0,1,"cmdoption-h2load-c"],"-b":[6,0,1,"cmdoption-nghttpx-b"],"-m":[2,0,1,"cmdoption-nghttp-m"],"-o":[6,0,1,"cmdoption-nghttpx-o"],"-n":[13,0,1,"cmdoption-h2load-n"],"-h":[6,0,1,"cmdoption-nghttpx-h"],"-k":[6,0,1,"cmdoption-nghttpx-k"],"-u":[2,0,1,"cmdoption-nghttp-u"],"-t":[13,0,1,"cmdoption-h2load-t"],"-w":[2,0,1,"cmdoption-nghttp-w"],"-v":[2,0,1,"cmdoption-nghttp-v"],"-p":[2,0,1,"cmdoption-nghttp-p"],"-s":[6,0,1,"cmdoption-nghttpx-s"],nghttp2_data_flag:[7,4,1,"c.nghttp2_data_flag"],NGHTTP2_ERR_INVALID_HEADER_BLOCK:[7,1,1,"c.NGHTTP2_ERR_INVALID_HEADER_BLOCK"],nghttp2_session_callbacks_set_send_callback:[7,3,1,"c.nghttp2_session_callbacks_set_send_callback"],"--connection-window-bits":[2,0,1,"cmdoption-nghttp--connection-window-bits"],nghttp2_submit_window_update:[7,3,1,"c.nghttp2_submit_window_update"],nghttp2_option:[7,4,1,"c.nghttp2_option"],NGHTTP2_HD_INFLATE_FINAL:[7,1,1,"c.NGHTTP2_HD_INFLATE_FINAL"],nghttp2_hd_inflate_new:[7,3,1,"c.nghttp2_hd_inflate_new"],NGHTTP2_FLAG_ACK:[7,1,1,"c.NGHTTP2_FLAG_ACK"],nghttp2_headers_category:[7,4,1,"c.nghttp2_headers_category"],NGHTTP2_ERR_WOULDBLOCK:[7,1,1,"c.NGHTTP2_ERR_WOULDBLOCK"],NGHTTP2_ERR_START_STREAM_NOT_ALLOWED:[7,1,1,"c.NGHTTP2_ERR_START_STREAM_NOT_ALLOWED"],"--frontend-http2-read-timeout":[6,0,1,"cmdoption-nghttpx--frontend-http2-read-timeout"],NGHTTP2_ERR_FATAL:[7,1,1,"c.NGHTTP2_ERR_FATAL"],"--frontend-http2-connection-window-bits":[6,0,1,"cmdoption-nghttpx--frontend-http2-connection-window-bits"],nghttp2_submit_response:[7,3,1,"c.nghttp2_submit_response"],"--backlog":[6,0,1,"cmdoption-nghttpx--backlog"],"--client":[6,0,1,"cmdoption-nghttpx--client"],NGHTTP2_SETTINGS_TIMEOUT:[7,1,1,"c.NGHTTP2_SETTINGS_TIMEOUT"],nghttp2_hd_deflate_new:[7,3,1,"c.nghttp2_hd_deflate_new"],nghttp2_version:[7,3,1,"c.nghttp2_version"],nghttp2_session_resume_data:[7,3,1,"c.nghttp2_session_resume_data"],"--timeout":[2,0,1,"cmdoption-nghttp--timeout"],nghttp2_hd_inflate_del:[7,3,1,"c.nghttp2_hd_inflate_del"],nghttp2_rst_stream:[7,4,1,"c.nghttp2_rst_stream"],"--client-proxy":[6,0,1,"cmdoption-nghttpx--client-proxy"],NGHTTP2_HCAT_REQUEST:[7,1,1,"c.NGHTTP2_HCAT_REQUEST"],"--http2-max-concurrent-streams":[6,0,1,"cmdoption-nghttpx--http2-max-concurrent-streams"],NGHTTP2_RST_STREAM:[7,1,1,"c.NGHTTP2_RST_STREAM"],nghttp2_headers:[7,4,1,"c.nghttp2_headers"],NGHTTP2_VERSION_NUM:[7,1,1,"c.NGHTTP2_VERSION_NUM"],nghttp2_frame:[7,4,1,"c.nghttp2_frame"],nghttp2_submit_push_promise:[7,3,1,"c.nghttp2_submit_push_promise"],"--insecure":[6,0,1,"cmdoption-nghttpx--insecure"],nghttp2_session_mem_recv:[7,3,1,"c.nghttp2_session_mem_recv"],NGHTTP2_REFUSED_STREAM:[7,1,1,"c.NGHTTP2_REFUSED_STREAM"],NGHTTP2_ENHANCE_YOUR_CALM:[7,1,1,"c.NGHTTP2_ENHANCE_YOUR_CALM"],NGHTTP2_HCAT_PUSH_RESPONSE:[7,1,1,"c.NGHTTP2_HCAT_PUSH_RESPONSE"],nghttp2_session_callbacks_set_on_begin_frame_callback:[7,3,1,"c.nghttp2_session_callbacks_set_on_begin_frame_callback"],nghttp2_nv:[7,4,1,"c.nghttp2_nv"],nghttp2_on_invalid_frame_recv_callback:[7,4,1,"c.nghttp2_on_invalid_frame_recv_callback"],nghttp2_option_del:[7,3,1,"c.nghttp2_option_del"],"--peer-max-concurrent-streams":[2,0,1,"cmdoption-nghttp--peer-max-concurrent-streams"],"--no-location-rewrite":[6,0,1,"cmdoption-nghttpx--no-location-rewrite"],"--verbose":[9,0,1,"cmdoption-nghttpd--verbose"],nghttp2_check_header_value:[7,3,1,"c.nghttp2_check_header_value"],"--frontend-http2-window-bits":[6,0,1,"cmdoption-nghttpx--frontend-http2-window-bits"],NGHTTP2_PROTO_VERSION_ID:[7,1,1,"c.NGHTTP2_PROTO_VERSION_ID"],nghttp2_settings_id:[7,4,1,"c.nghttp2_settings_id"],nghttp2_window_update:[7,4,1,"c.nghttp2_window_update"],NGHTTP2_FLAG_NONE:[7,1,1,"c.NGHTTP2_FLAG_NONE"],nghttp2_session_terminate_session:[7,3,1,"c.nghttp2_session_terminate_session"],nghttp2_submit_altsvc:[7,3,1,"c.nghttp2_submit_altsvc"],"--no-tls-proto":[13,0,1,"cmdoption-h2load--no-tls-proto"],nghttp2_session_want_read:[7,3,1,"c.nghttp2_session_want_read"],nghttp2_submit_data:[7,3,1,"c.nghttp2_submit_data"],"--threads":[13,0,1,"cmdoption-h2load--threads"],nghttp2_data_provider:[7,4,1,"c.nghttp2_data_provider"],nghttp2_session_get_effective_local_window_size:[7,3,1,"c.nghttp2_session_get_effective_local_window_size"],NGHTTP2_INITIAL_WINDOW_SIZE:[7,1,1,"c.NGHTTP2_INITIAL_WINDOW_SIZE"],nghttp2_session_callbacks_set_before_frame_send_callback:[7,3,1,"c.nghttp2_session_callbacks_set_before_frame_send_callback"],NGHTTP2_HCAT_RESPONSE:[7,1,1,"c.NGHTTP2_HCAT_RESPONSE"],nghttp2_session:[7,4,1,"c.nghttp2_session"],"--cert":[2,0,1,"cmdoption-nghttp--cert"],"--accesslog-file":[6,0,1,"cmdoption-nghttpx--accesslog-file"],NGHTTP2_PRIORITY:[7,1,1,"c.NGHTTP2_PRIORITY"],"--header-table-size":[2,0,1,"cmdoption-nghttp--header-table-size"],CERT:[9,0,1,"cmdoption-nghttpd-arg-CERT"],"--verify-client":[9,0,1,"cmdoption-nghttpd--verify-client"],"--worker-read-rate":[6,0,1,"cmdoption-nghttpx--worker-read-rate"],"--frontend-no-tls":[6,0,1,"cmdoption-nghttpx--frontend-no-tls"],"--frontend-http2-dump-response-header":[6,0,1,"cmdoption-nghttpx--frontend-http2-dump-response-header"],nghttp2_settings_entry:[7,4,1,"c.nghttp2_settings_entry"],"--stream-read-timeout":[6,0,1,"cmdoption-nghttpx--stream-read-timeout"],NGHTTP2_FLAG_PADDED:[7,1,1,"c.NGHTTP2_FLAG_PADDED"],NGHTTP2_CLIENT_CONNECTION_HEADER_LEN:[7,1,1,"c.NGHTTP2_CLIENT_CONNECTION_HEADER_LEN"],"--backend-http2-connection-window-bits":[6,0,1,"cmdoption-nghttpx--backend-http2-connection-window-bits"],nghttp2_hd_inflate_hd:[7,3,1,"c.nghttp2_hd_inflate_hd"],nghttp2_priority_spec:[7,4,1,"c.nghttp2_priority_spec"],nghttp2_frame_type:[7,4,1,"c.nghttp2_frame_type"],NGHTTP2_ERR_INVALID_STREAM_ID:[7,1,1,"c.NGHTTP2_ERR_INVALID_STREAM_ID"],nghttp2_session_send:[7,3,1,"c.nghttp2_session_send"],nghttp2_session_callbacks:[7,4,1,"c.nghttp2_session_callbacks"],NGHTTP2_ERR_PROTO:[7,1,1,"c.NGHTTP2_ERR_PROTO"],nghttp2_hd_deflate_del:[7,3,1,"c.nghttp2_hd_deflate_del"],URI:[2,0,1,"cmdoption-nghttp-arg-URI"],nghttp2_session_callbacks_set_on_invalid_frame_recv_callback:[7,3,1,"c.nghttp2_session_callbacks_set_on_invalid_frame_recv_callback"],NGHTTP2_DATA:[7,1,1,"c.NGHTTP2_DATA"],nghttp2_on_header_callback:[7,4,1,"c.nghttp2_on_header_callback"],nghttp2_goaway:[7,4,1,"c.nghttp2_goaway"],nghttp2_session_mem_send:[7,3,1,"c.nghttp2_session_mem_send"],nghttp2_error_code:[7,4,1,"c.nghttp2_error_code"],nghttp2_session_callbacks_set_select_padding_callback:[7,3,1,"c.nghttp2_session_callbacks_set_select_padding_callback"],"--cacert":[6,0,1,"cmdoption-nghttpx--cacert"],nghttp2_hd_inflate_change_table_size:[7,3,1,"c.nghttp2_hd_inflate_change_table_size"],"--stat":[2,0,1,"cmdoption-nghttp--stat"],nghttp2_ext_frame_type:[7,4,1,"c.nghttp2_ext_frame_type"],nghttp2_hd_inflate_flag:[7,4,1,"c.nghttp2_hd_inflate_flag"],nghttp2_select_padding_callback:[7,4,1,"c.nghttp2_select_padding_callback"],"--daemon":[9,0,1,"cmdoption-nghttpd--daemon"],nghttp2_session_server_new2:[7,3,1,"c.nghttp2_session_server_new2"],NGHTTP2_PROTO_VERSION_ID_LEN:[7,1,1,"c.NGHTTP2_PROTO_VERSION_ID_LEN"],"--requests":[13,0,1,"cmdoption-h2load--requests"],"--backend-write-timeout":[6,0,1,"cmdoption-nghttpx--backend-write-timeout"],NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE:[7,1,1,"c.NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE"],NGHTTP2_CONTINUATION:[7,1,1,"c.NGHTTP2_CONTINUATION"],"--http2-no-cookie-crumbling":[6,0,1,"cmdoption-nghttpx--http2-no-cookie-crumbling"],NGHTTP2_CLIENT_CONNECTION_PREFACE_LEN:[7,1,1,"c.NGHTTP2_CLIENT_CONNECTION_PREFACE_LEN"],nghttp2_session_callbacks_set_on_frame_recv_callback:[7,3,1,"c.nghttp2_session_callbacks_set_on_frame_recv_callback"],nghttp2_flag:[7,4,1,"c.nghttp2_flag"],"--worker-read-burst":[6,0,1,"cmdoption-nghttpx--worker-read-burst"],NGHTTP2_DEFAULT_WEIGHT:[7,1,1,"c.NGHTTP2_DEFAULT_WEIGHT"],nghttp2_session_consume:[7,3,1,"c.nghttp2_session_consume"],"--errorlog-file":[6,0,1,"cmdoption-nghttpx--errorlog-file"],NGHTTP2_SETTINGS_MAX_FRAME_SIZE:[7,1,1,"c.NGHTTP2_SETTINGS_MAX_FRAME_SIZE"],NGHTTP2_ERR_EOF:[7,1,1,"c.NGHTTP2_ERR_EOF"],NGHTTP2_SETTINGS:[7,1,1,"c.NGHTTP2_SETTINGS"],"--htdocs":[9,0,1,"cmdoption-nghttpd--htdocs"],nghttp2_data_source:[7,4,1,"c.nghttp2_data_source"],nghttp2_on_frame_send_callback:[7,4,1,"c.nghttp2_on_frame_send_callback"],nghttp2_session_get_remote_settings:[7,3,1,"c.nghttp2_session_get_remote_settings"],nghttp2_session_get_stream_user_data:[7,3,1,"c.nghttp2_session_get_stream_user_data"],NGHTTP2_FLAG_PRIORITY:[7,1,1,"c.NGHTTP2_FLAG_PRIORITY"],"--worker-frontend-connections":[6,0,1,"cmdoption-nghttpx--worker-frontend-connections"],NGHTTP2_CLEARTEXT_PROTO_VERSION_ID_LEN:[7,1,1,"c.NGHTTP2_CLEARTEXT_PROTO_VERSION_ID_LEN"],NGHTTP2_FLOW_CONTROL_ERROR:[7,1,1,"c.NGHTTP2_FLOW_CONTROL_ERROR"],"--early-response":[9,0,1,"cmdoption-nghttpd--early-response"],"--backend-tls-sni-field":[6,0,1,"cmdoption-nghttpx--backend-tls-sni-field"],nghttp2_hd_deflater:[7,4,1,"c.nghttp2_hd_deflater"],NGHTTP2_ERR_GOAWAY_ALREADY_SENT:[7,1,1,"c.NGHTTP2_ERR_GOAWAY_ALREADY_SENT"],"--help":[6,0,1,"cmdoption-nghttpx--help"],"--frontend-frame-debug":[6,0,1,"cmdoption-nghttpx--frontend-frame-debug"],nghttp2_error:[7,4,1,"c.nghttp2_error"],NGHTTP2_CLIENT_CONNECTION_HEADER:[7,1,1,"c.NGHTTP2_CLIENT_CONNECTION_HEADER"],"--get-assets":[2,0,1,"cmdoption-nghttp--get-assets"],NGHTTP2_DATA_FLAG_NONE:[7,1,1,"c.NGHTTP2_DATA_FLAG_NONE"],nghttp2_session_recv:[7,3,1,"c.nghttp2_session_recv"],nghttp2_session_want_write:[7,3,1,"c.nghttp2_session_want_write"],NGHTTP2_VERSION_AGE:[7,1,1,"c.NGHTTP2_VERSION_AGE"],nghttp2_session_get_stream_effective_recv_data_length:[7,3,1,"c.nghttp2_session_get_stream_effective_recv_data_length"],PORT:[9,0,1,"cmdoption-nghttpd-arg-PORT"],NGHTTP2_CONNECT_ERROR:[7,1,1,"c.NGHTTP2_CONNECT_ERROR"],NGHTTP2_ERR_DATA_EXIST:[7,1,1,"c.NGHTTP2_ERR_DATA_EXIST"],nghttp2_session_get_stream_effective_local_window_size:[7,3,1,"c.nghttp2_session_get_stream_effective_local_window_size"],nghttp2_before_frame_send_callback:[7,4,1,"c.nghttp2_before_frame_send_callback"],"--color":[9,0,1,"cmdoption-nghttpd--color"],NGHTTP2_FRAME_SIZE_ERROR:[7,1,1,"c.NGHTTP2_FRAME_SIZE_ERROR"],NGHTTP2_ERR_STREAM_SHUT_WR:[7,1,1,"c.NGHTTP2_ERR_STREAM_SHUT_WR"],"--client-cert-file":[6,0,1,"cmdoption-nghttpx--client-cert-file"],"--null-out":[2,0,1,"cmdoption-nghttp--null-out"],nghttp2_pack_settings_payload:[7,3,1,"c.nghttp2_pack_settings_payload"],"--backend-connections-per-frontend":[6,0,1,"cmdoption-nghttpx--backend-connections-per-frontend"],NGHTTP2_ERR_INVALID_STATE:[7,1,1,"c.NGHTTP2_ERR_INVALID_STATE"],NGHTTP2_SETTINGS_HEADER_TABLE_SIZE:[7,1,1,"c.NGHTTP2_SETTINGS_HEADER_TABLE_SIZE"],"--verify-client-cacert":[6,0,1,"cmdoption-nghttpx--verify-client-cacert"],NGHTTP2_EXT_ALTSVC:[7,1,1,"c.NGHTTP2_EXT_ALTSVC"],nghttp2_submit_rst_stream:[7,3,1,"c.nghttp2_submit_rst_stream"],"--multiply":[2,0,1,"cmdoption-nghttp--multiply"],NGHTTP2_ERR_INVALID_FRAME:[7,1,1,"c.NGHTTP2_ERR_INVALID_FRAME"],"--no-tls":[9,0,1,"cmdoption-nghttpd--no-tls"],"--worker-write-burst":[6,0,1,"cmdoption-nghttpx--worker-write-burst"],NGHTTP2_ERR_TOO_MANY_INFLIGHT_SETTINGS:[7,1,1,"c.NGHTTP2_ERR_TOO_MANY_INFLIGHT_SETTINGS"],nghttp2_session_client_new2:[7,3,1,"c.nghttp2_session_client_new2"],nghttp2_session_terminate_session2:[7,3,1,"c.nghttp2_session_terminate_session2"],nghttp2_data:[7,4,1,"c.nghttp2_data"],"--max-concurrent-streams":[13,0,1,"cmdoption-h2load--max-concurrent-streams"],NGHTTP2_MAX_WINDOW_SIZE:[7,1,1,"c.NGHTTP2_MAX_WINDOW_SIZE"],nghttp2_strerror:[7,3,1,"c.nghttp2_strerror"],"--accesslog-syslog":[6,0,1,"cmdoption-nghttpx--accesslog-syslog"],nghttp2_submit_goaway:[7,3,1,"c.nghttp2_submit_goaway"],NGHTTP2_ERR_PAUSE:[7,1,1,"c.NGHTTP2_ERR_PAUSE"],nghttp2_hd_deflate_change_table_size:[7,3,1,"c.nghttp2_hd_deflate_change_table_size"],"--backend-keep-alive-timeout":[6,0,1,"cmdoption-nghttpx--backend-keep-alive-timeout"],nghttp2_session_get_remote_window_size:[7,3,1,"c.nghttp2_session_get_remote_window_size"],nghttp2_push_promise:[7,4,1,"c.nghttp2_push_promise"],NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE:[7,1,1,"c.NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE"],nghttp2_session_callbacks_set_data_source_read_length_callback:[7,3,1,"c.nghttp2_session_callbacks_set_data_source_read_length_callback"],NGHTTP2_INITIAL_MAX_CONCURRENT_STREAMS:[7,1,1,"c.NGHTTP2_INITIAL_MAX_CONCURRENT_STREAMS"],nghttp2_on_data_chunk_recv_callback:[7,4,1,"c.nghttp2_on_data_chunk_recv_callback"],nghttp2_session_callbacks_set_on_data_chunk_recv_callback:[7,3,1,"c.nghttp2_session_callbacks_set_on_data_chunk_recv_callback"],nghttp2_session_upgrade:[7,3,1,"c.nghttp2_session_upgrade"],"--data":[2,0,1,"cmdoption-nghttp--data"],NGHTTP2_ERR_INVALID_ARGUMENT:[7,1,1,"c.NGHTTP2_ERR_INVALID_ARGUMENT"],NGHTTP2_ERR_FRAME_SIZE_ERROR:[7,1,1,"c.NGHTTP2_ERR_FRAME_SIZE_ERROR"],nghttp2_session_del:[7,3,1,"c.nghttp2_session_del"],NGHTTP2_HEADERS:[7,1,1,"c.NGHTTP2_HEADERS"],"--dh-param-file":[9,0,1,"cmdoption-nghttpd--dh-param-file"],"--errorlog-syslog":[6,0,1,"cmdoption-nghttpx--errorlog-syslog"],nghttp2_hd_deflate_hd:[7,3,1,"c.nghttp2_hd_deflate_hd"],NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS:[7,1,1,"c.NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS"],NGHTTP2_FLAG_END_HEADERS:[7,1,1,"c.NGHTTP2_FLAG_END_HEADERS"],nghttp2_option_set_peer_max_concurrent_streams:[7,3,1,"c.nghttp2_option_set_peer_max_concurrent_streams"],"--backend-ipv4":[6,0,1,"cmdoption-nghttpx--backend-ipv4"],"--backend-ipv6":[6,0,1,"cmdoption-nghttpx--backend-ipv6"],"--backend":[6,0,1,"cmdoption-nghttpx--backend"],NGHTTP2_CANCEL:[7,1,1,"c.NGHTTP2_CANCEL"],"--log-level":[6,0,1,"cmdoption-nghttpx--log-level"],nghttp2_session_client_new:[7,3,1,"c.nghttp2_session_client_new"],"--frontend-http2-dump-request-header":[6,0,1,"cmdoption-nghttpx--frontend-http2-dump-request-header"],NGHTTP2_VERSION:[7,1,1,"c.NGHTTP2_VERSION"],"--push":[9,0,1,"cmdoption-nghttpd--push"],nghttp2_submit_headers:[7,3,1,"c.nghttp2_submit_headers"],nghttp2_recv_callback:[7,4,1,"c.nghttp2_recv_callback"],NGHTTP2_DEFAULT_HEADER_TABLE_SIZE:[7,1,1,"c.NGHTTP2_DEFAULT_HEADER_TABLE_SIZE"],PRIVATE_KEY:[9,0,1,"cmdoption-nghttpd-arg-PRIVATE_KEY"],"--syslog-facility":[6,0,1,"cmdoption-nghttpx--syslog-facility"],NGHTTP2_ERR_CALLBACK_FAILURE:[7,1,1,"c.NGHTTP2_ERR_CALLBACK_FAILURE"],"--workers":[9,0,1,"cmdoption-nghttpd--workers"],NGHTTP2_ERR_STREAM_CLOSING:[7,1,1,"c.NGHTTP2_ERR_STREAM_CLOSING"],"--remote-name":[2,0,1,"cmdoption-nghttp--remote-name"],NGHTTP2_DATA_FLAG_EOF:[7,1,1,"c.NGHTTP2_DATA_FLAG_EOF"],NGHTTP2_PROTOCOL_ERROR:[7,1,1,"c.NGHTTP2_PROTOCOL_ERROR"],nghttp2_on_begin_headers_callback:[7,4,1,"c.nghttp2_on_begin_headers_callback"],"--user":[6,0,1,"cmdoption-nghttpx--user"],nghttp2_session_get_stream_remote_window_size:[7,3,1,"c.nghttp2_session_get_stream_remote_window_size"],"--frontend-read-timeout":[6,0,1,"cmdoption-nghttpx--frontend-read-timeout"],nghttp2_option_set_no_auto_window_update:[7,3,1,"c.nghttp2_option_set_no_auto_window_update"],nghttp2_submit_settings:[7,3,1,"c.nghttp2_submit_settings"],"--error-gzip":[9,0,1,"cmdoption-nghttpd--error-gzip"],nghttp2_session_callbacks_set_on_frame_send_callback:[7,3,1,"c.nghttp2_session_callbacks_set_on_frame_send_callback"],"--backend-http2-window-bits":[6,0,1,"cmdoption-nghttpx--backend-http2-window-bits"],NGHTTP2_MAX_WEIGHT:[7,1,1,"c.NGHTTP2_MAX_WEIGHT"],"--padding":[2,0,1,"cmdoption-nghttp--padding"],nghttp2_session_callbacks_set_on_header_callback:[7,3,1,"c.nghttp2_session_callbacks_set_on_header_callback"],NGHTTP2_HD_INFLATE_NONE:[7,1,1,"c.NGHTTP2_HD_INFLATE_NONE"],nghttp2_on_stream_close_callback:[7,4,1,"c.nghttp2_on_stream_close_callback"],NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE:[7,1,1,"c.NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE"],NGHTTP2_PUSH_PROMISE:[7,1,1,"c.NGHTTP2_PUSH_PROMISE"],NGHTTP2_ERR_PUSH_DISABLED:[7,1,1,"c.NGHTTP2_ERR_PUSH_DISABLED"],"--version":[6,0,1,"cmdoption-nghttpx--version"],nghttp2_submit_priority:[7,3,1,"c.nghttp2_submit_priority"],NGHTTP2_MIN_WEIGHT:[7,1,1,"c.NGHTTP2_MIN_WEIGHT"],"--http2-proxy":[6,0,1,"cmdoption-nghttpx--http2-proxy"],"--client-private-key-file":[6,0,1,"cmdoption-nghttpx--client-private-key-file"],nghttp2_extension:[7,4,1,"c.nghttp2_extension"],nghttp2_session_callbacks_del:[7,3,1,"c.nghttp2_session_callbacks_del"],NGHTTP2_INTERNAL_ERROR:[7,1,1,"c.NGHTTP2_INTERNAL_ERROR"],nghttp2_hd_inflate_end_headers:[7,3,1,"c.nghttp2_hd_inflate_end_headers"],NGHTTP2_ERR_INVALID_STREAM_STATE:[7,1,1,"c.NGHTTP2_ERR_INVALID_STREAM_STATE"],NGHTTP2_ERR_HEADER_COMP:[7,1,1,"c.NGHTTP2_ERR_HEADER_COMP"],"--clients":[13,0,1,"cmdoption-h2load--clients"],nghttp2_session_callbacks_set_on_stream_close_callback:[7,3,1,"c.nghttp2_session_callbacks_set_on_stream_close_callback"],nghttp2_ping:[7,4,1,"c.nghttp2_ping"],"--conf":[6,0,1,"cmdoption-nghttpx--conf"],nghttp2_on_begin_frame_callback:[7,4,1,"c.nghttp2_on_begin_frame_callback"],nghttp2_select_next_protocol:[7,3,1,"c.nghttp2_select_next_protocol"],nghttp2_ext_altsvc:[7,4,1,"c.nghttp2_ext_altsvc"],"--npn-list":[6,0,1,"cmdoption-nghttpx--npn-list"],NGHTTP2_ERR_UNSUPPORTED_VERSION:[7,1,1,"c.NGHTTP2_ERR_UNSUPPORTED_VERSION"],NGHTTP2_SETTINGS_ENABLE_PUSH:[7,1,1,"c.NGHTTP2_SETTINGS_ENABLE_PUSH"],nghttp2_nv_flag:[7,4,1,"c.nghttp2_nv_flag"],"--continuation":[2,0,1,"cmdoption-nghttp--continuation"],NGHTTP2_STREAM_CLOSED:[7,1,1,"c.NGHTTP2_STREAM_CLOSED"],NGHTTP2_NV_FLAG_NO_INDEX:[7,1,1,"c.NGHTTP2_NV_FLAG_NO_INDEX"],nghttp2_session_callbacks_set_on_begin_headers_callback:[7,3,1,"c.nghttp2_session_callbacks_set_on_begin_headers_callback"],NGHTTP2_ERR_FLOW_CONTROL:[7,1,1,"c.NGHTTP2_ERR_FLOW_CONTROL"],NGHTTP2_INITIAL_CONNECTION_WINDOW_SIZE:[7,1,1,"c.NGHTTP2_INITIAL_CONNECTION_WINDOW_SIZE"],NGHTTP2_ERR_NOMEM:[7,1,1,"c.NGHTTP2_ERR_NOMEM"],"--ciphers":[6,0,1,"cmdoption-nghttpx--ciphers"],NGHTTP2_NO_ERROR:[7,1,1,"c.NGHTTP2_NO_ERROR"],nghttp2_session_get_stream_local_close:[7,3,1,"c.nghttp2_session_get_stream_local_close"],nghttp2_session_get_effective_recv_data_length:[7,3,1,"c.nghttp2_session_get_effective_recv_data_length"],NGHTTP2_ERR_DEFERRED:[7,1,1,"c.NGHTTP2_ERR_DEFERRED"],nghttp2_session_get_outbound_queue_size:[7,3,1,"c.nghttp2_session_get_outbound_queue_size"],nghttp2_data_source_read_callback:[7,4,1,"c.nghttp2_data_source_read_callback"],nghttp2_priority_spec_check_default:[7,3,1,"c.nghttp2_priority_spec_check_default"],"--no-via":[6,0,1,"cmdoption-nghttpx--no-via"],nghttp2_session_callbacks_set_on_frame_not_send_callback:[7,3,1,"c.nghttp2_session_callbacks_set_on_frame_not_send_callback"],nghttp2_session_callbacks_set_recv_callback:[7,3,1,"c.nghttp2_session_callbacks_set_recv_callback"],nghttp2_session_server_new:[7,3,1,"c.nghttp2_session_server_new"],NGHTTP2_ERR_BUFFER_ERROR:[7,1,1,"c.NGHTTP2_ERR_BUFFER_ERROR"],"--no-content-length":[2,0,1,"cmdoption-nghttp--no-content-length"],"--http2-bridge":[6,0,1,"cmdoption-nghttpx--http2-bridge"],NGHTTP2_HD_INFLATE_EMIT:[7,1,1,"c.NGHTTP2_HD_INFLATE_EMIT"],NGHTTP2_FLAG_END_STREAM:[7,1,1,"c.NGHTTP2_FLAG_END_STREAM"],"--frontend-write-timeout":[6,0,1,"cmdoption-nghttpx--frontend-write-timeout"],"--tls-proto-list":[6,0,1,"cmdoption-nghttpx--tls-proto-list"],NGHTTP2_HCAT_HEADERS:[7,1,1,"c.NGHTTP2_HCAT_HEADERS"],NGHTTP2_ERR_DEFERRED_DATA_EXIST:[7,1,1,"c.NGHTTP2_ERR_DEFERRED_DATA_EXIST"],nghttp2_send_callback:[7,4,1,"c.nghttp2_send_callback"],NGHTTP2_COMPRESSION_ERROR:[7,1,1,"c.NGHTTP2_COMPRESSION_ERROR"],NGHTTP2_CLEARTEXT_PROTO_VERSION_ID:[7,1,1,"c.NGHTTP2_CLEARTEXT_PROTO_VERSION_ID"],nghttp2_priority_spec_default_init:[7,3,1,"c.nghttp2_priority_spec_default_init"],nghttp2:[4,5,0,"-"],"--frontend":[6,0,1,"cmdoption-nghttpx--frontend"],NGHTTP2_CLIENT_CONNECTION_PREFACE:[7,1,1,"c.NGHTTP2_CLIENT_CONNECTION_PREFACE"],NGHTTP2_ERR_STREAM_CLOSED:[7,1,1,"c.NGHTTP2_ERR_STREAM_CLOSED"],nghttp2_hd_deflate_bound:[7,3,1,"c.nghttp2_hd_deflate_bound"],nghttp2_session_set_stream_user_data:[7,3,1,"c.nghttp2_session_set_stream_user_data"],NGHTTP2_INADEQUATE_SECURITY:[7,1,1,"c.NGHTTP2_INADEQUATE_SECURITY"],nghttp2_hd_inflater:[7,4,1,"c.nghttp2_hd_inflater"],nghttp2_check_header_name:[7,3,1,"c.nghttp2_check_header_name"],nghttp2_info:[7,4,1,"c.nghttp2_info"],"--weight":[2,0,1,"cmdoption-nghttp--weight"],"--worker-write-rate":[6,0,1,"cmdoption-nghttpx--worker-write-rate"],"--key":[2,0,1,"cmdoption-nghttp--key"],"--subcert":[6,0,1,"cmdoption-nghttpx--subcert"],"--window-bits":[13,0,1,"cmdoption-h2load--window-bits"],NGHTTP2_ERR_INSUFF_BUFSIZE:[7,1,1,"c.NGHTTP2_ERR_INSUFF_BUFSIZE"],"--header":[2,0,1,"cmdoption-nghttp--header"],nghttp2_settings:[7,4,1,"c.nghttp2_settings"],"--pid-file":[6,0,1,"cmdoption-nghttpx--pid-file"],nghttp2_on_frame_not_send_callback:[7,4,1,"c.nghttp2_on_frame_not_send_callback"],"--private-key-passwd-file":[6,0,1,"cmdoption-nghttpx--private-key-passwd-file"],"--altsvc":[6,0,1,"cmdoption-nghttpx--altsvc"],"--add-x-forwarded-for":[6,0,1,"cmdoption-nghttpx--add-x-forwarded-for"],nghttp2_session_callbacks_new:[7,3,1,"c.nghttp2_session_callbacks_new"],NGHTTP2_NV_FLAG_NONE:[7,1,1,"c.NGHTTP2_NV_FLAG_NONE"],nghttp2_is_fatal:[7,3,1,"c.nghttp2_is_fatal"],NGHTTP2_PING:[7,1,1,"c.NGHTTP2_PING"],nghttp2_priority:[7,4,1,"c.nghttp2_priority"],"--backend-http-proxy-uri":[6,0,1,"cmdoption-nghttpx--backend-http-proxy-uri"],"--stream-write-timeout":[6,0,1,"cmdoption-nghttpx--stream-write-timeout"],NGHTTP2_ERR_STREAM_ID_NOT_AVAILABLE:[7,1,1,"c.NGHTTP2_ERR_STREAM_ID_NOT_AVAILABLE"],nghttp2_data_source_read_length_callback:[7,4,1,"c.nghttp2_data_source_read_length_callback"],nghttp2_option_new:[7,3,1,"c.nghttp2_option_new"],NGHTTP2_WINDOW_UPDATE:[7,1,1,"c.NGHTTP2_WINDOW_UPDATE"],"--backend-read-timeout":[6,0,1,"cmdoption-nghttpx--backend-read-timeout"],NGHTTP2_GOAWAY:[7,1,1,"c.NGHTTP2_GOAWAY"],nghttp2_submit_ping:[7,3,1,"c.nghttp2_submit_ping"],"--upgrade":[2,0,1,"cmdoption-nghttp--upgrade"],"--backend-no-tls":[6,0,1,"cmdoption-nghttpx--backend-no-tls"],nghttp2_submit_request:[7,3,1,"c.nghttp2_submit_request"],nghttp2_session_get_stream_remote_close:[7,3,1,"c.nghttp2_session_get_stream_remote_close"],"--add-response-header":[6,0,1,"cmdoption-nghttpx--add-response-header"],nghttp2_nv_compare_name:[7,3,1,"c.nghttp2_nv_compare_name"]},nghttp2_frame:{push_promise:[7,2,1,"c.nghttp2_frame.push_promise"],settings:[7,2,1,"c.nghttp2_frame.settings"],ping:[7,2,1,"c.nghttp2_frame.ping"],rst_stream:[7,2,1,"c.nghttp2_frame.rst_stream"],ext:[7,2,1,"c.nghttp2_frame.ext"],priority:[7,2,1,"c.nghttp2_frame.priority"],headers:[7,2,1,"c.nghttp2_frame.headers"],goaway:[7,2,1,"c.nghttp2_frame.goaway"],window_update:[7,2,1,"c.nghttp2_frame.window_update"],data:[7,2,1,"c.nghttp2_frame.data"],hd:[7,2,1,"c.nghttp2_frame.hd"]},nghttp2_settings_entry:{settings_id:[7,2,1,"c.nghttp2_settings_entry.settings_id"],value:[7,2,1,"c.nghttp2_settings_entry.value"]},nghttp2_window_update:{hd:[7,2,1,"c.nghttp2_window_update.hd"],window_size_increment:[7,2,1,"c.nghttp2_window_update.window_size_increment"]},nghttp2_frame_hd:{stream_id:[7,2,1,"c.nghttp2_frame_hd.stream_id"],length:[7,2,1,"c.nghttp2_frame_hd.length"],flags:[7,2,1,"c.nghttp2_frame_hd.flags"],type:[7,2,1,"c.nghttp2_frame_hd.type"]},nghttp2_push_promise:{padlen:[7,2,1,"c.nghttp2_push_promise.padlen"],nvlen:[7,2,1,"c.nghttp2_push_promise.nvlen"],promised_stream_id:[7,2,1,"c.nghttp2_push_promise.promised_stream_id"],hd:[7,2,1,"c.nghttp2_push_promise.hd"],nva:[7,2,1,"c.nghttp2_push_promise.nva"]},nghttp2_ping:{hd:[7,2,1,"c.nghttp2_ping.hd"]},nghttp2_priority:{pri_spec:[7,2,1,"c.nghttp2_priority.pri_spec"],hd:[7,2,1,"c.nghttp2_priority.hd"]},nghttp2_priority_spec:{stream_id:[7,2,1,"c.nghttp2_priority_spec.stream_id"],weight:[7,2,1,"c.nghttp2_priority_spec.weight"],exclusive:[7,2,1,"c.nghttp2_priority_spec.exclusive"]},nghttp2:{HTTP2Server:[4,8,1,""],HDDeflater:[4,8,1,""],DEFLATE_MAX_HEADER_TABLE_SIZE:[4,9,1,""],DEFAULT_HEADER_TABLE_SIZE:[4,9,1,""],HDInflater:[4,8,1,""],print_hd_table:[4,10,1,""],BaseRequestHandler:[4,8,1,""]},nghttp2_nv:{valuelen:[7,2,1,"c.nghttp2_nv.valuelen"],namelen:[7,2,1,"c.nghttp2_nv.namelen"],flags:[7,2,1,"c.nghttp2_nv.flags"],name:[7,2,1,"c.nghttp2_nv.name"],value:[7,2,1,"c.nghttp2_nv.value"]},nghttp2_ext_altsvc:{origin:[7,2,1,"c.nghttp2_ext_altsvc.origin"],max_age:[7,2,1,"c.nghttp2_ext_altsvc.max_age"],protocol_id:[7,2,1,"c.nghttp2_ext_altsvc.protocol_id"],origin_len:[7,2,1,"c.nghttp2_ext_altsvc.origin_len"],host:[7,2,1,"c.nghttp2_ext_altsvc.host"],protocol_id_len:[7,2,1,"c.nghttp2_ext_altsvc.protocol_id_len"],host_len:[7,2,1,"c.nghttp2_ext_altsvc.host_len"],port:[7,2,1,"c.nghttp2_ext_altsvc.port"]},nghttp2_data_provider:{source:[7,2,1,"c.nghttp2_data_provider.source"],read_callback:[7,2,1,"c.nghttp2_data_provider.read_callback"]},nghttp2_rst_stream:{error_code:[7,2,1,"c.nghttp2_rst_stream.error_code"],hd:[7,2,1,"c.nghttp2_rst_stream.hd"]},nghttp2_headers:{pri_spec:[7,2,1,"c.nghttp2_headers.pri_spec"],nvlen:[7,2,1,"c.nghttp2_headers.nvlen"],cat:[7,2,1,"c.nghttp2_headers.cat"],padlen:[7,2,1,"c.nghttp2_headers.padlen"],nva:[7,2,1,"c.nghttp2_headers.nva"],hd:[7,2,1,"c.nghttp2_headers.hd"]},nghttp2_goaway:{opaque_data:[7,2,1,"c.nghttp2_goaway.opaque_data"],error_code:[7,2,1,"c.nghttp2_goaway.error_code"],opaque_data_len:[7,2,1,"c.nghttp2_goaway.opaque_data_len"],hd:[7,2,1,"c.nghttp2_goaway.hd"],last_stream_id:[7,2,1,"c.nghttp2_goaway.last_stream_id"]},"nghttp2.BaseRequestHandler":{on_data:[4,7,1,""],on_close:[4,7,1,""],method:[4,6,1,""],on_headers:[4,7,1,""],stream_id:[4,6,1,""],host:[4,6,1,""],on_request_done:[4,7,1,""],push:[4,7,1,""],path:[4,6,1,""],scheme:[4,6,1,""],send_response:[4,7,1,""],client_address:[4,6,1,""]},nghttp2_info:{age:[7,2,1,"c.nghttp2_info.age"],version_str:[7,2,1,"c.nghttp2_info.version_str"],version_num:[7,2,1,"c.nghttp2_info.version_num"],proto_str:[7,2,1,"c.nghttp2_info.proto_str"]},"nghttp2.HDDeflater":{change_table_size:[4,7,1,""],get_hd_table:[4,7,1,""],deflate:[4,7,1,""],set_no_refset:[4,7,1,""]},"nghttp2.HTTP2Server":{serve_forever:[4,7,1,""]},nghttp2_data:{padlen:[7,2,1,"c.nghttp2_data.padlen"]},"nghttp2.HDInflater":{change_table_size:[4,7,1,""],inflate:[4,7,1,""],get_hd_table:[4,7,1,""]},nghttp2_data_source:{fd:[7,2,1,"c.nghttp2_data_source.fd"],ptr:[7,2,1,"c.nghttp2_data_source.ptr"]},nghttp2_extension:{payload:[7,2,1,"c.nghttp2_extension.payload"],hd:[7,2,1,"c.nghttp2_extension.hd"]},nghttp2_settings:{niv:[7,2,1,"c.nghttp2_settings.niv"],hd:[7,2,1,"c.nghttp2_settings.hd"],iv:[7,2,1,"c.nghttp2_settings.iv"]}},titleterms:{protocol:3,text:3,typedef:7,locat:12,struct:7,field:12,program:8,synopsi:[6,2,9,13],contribut:8,python:[8,4],misc:6,ssl:[6,12],requir:8,name:[6,2,9,13],server:[14,8,4],mode:[6,12],timeout:6,h2load:[13,3],certif:12,see:[6,2,9,13],connect:6,resourc:1,librari:[1,8],statu:8,rewrit:12,version:1,"public":8,refer:[7,4],proxi:[8,12],"enum":7,usag:3,releas:1,decompressor:8,addit:12,spdy:6,remark:7,thread:3,tutori:[0,14,10],deflatehd:8,disabl:12,encod:0,header:[0,8,12],api:[0,7,4],open:12,select:3,git:8,from:8,log:[6,12],union:7,libev:[14,10],binari:15,nghttp2:[1,11,8],includ:7,basic:3,type:7,"function":7,option:[6,2,9,13],tool:[8,3],benchmark:[8,3],nghttp2ver:5,specifi:12,compressor:8,also:[6,2,9,13],multi:3,nghttpd:[8,9],"default":12,rate:12,bridg:12,limit:12,hpack:[0,8,4],macro:7,nghttpx:[6,8,12],control:3,descript:[6,2,9,13],file:12,multipl:3,perform:6,write:12,how:[12,3],hot:12,decod:0,build:[8,15],test:8,android:15,document:8,http:[1,3,4,6,8,10,12,14],inflat:0,deploi:12,develop:8,read:12,bind:8,clear:3,nghttp:[2,8],flow:3,uri:3,inflatehd:8,client:[8,12,10],deflat:0}}) \ No newline at end of file diff --git a/tutorial-client.html b/tutorial-client.html index a1d66506..2063fe22 100644 --- a/tutorial-client.html +++ b/tutorial-client.html @@ -342,15 +342,30 @@ finished successfully. We first initialize nghttp2 session object in initialize_nghttp2_session() function:static void initialize_nghttp2_session(http2_session_data *session_data)
{
- nghttp2_session_callbacks callbacks = {0};
+ nghttp2_session_callbacks *callbacks;
- callbacks.send_callback = send_callback;
- callbacks.on_frame_recv_callback = on_frame_recv_callback;
- callbacks.on_data_chunk_recv_callback = on_data_chunk_recv_callback;
- callbacks.on_stream_close_callback = on_stream_close_callback;
- callbacks.on_header_callback = on_header_callback;
- callbacks.on_begin_headers_callback = on_begin_headers_callback;
- nghttp2_session_client_new(&session_data->session, &callbacks, session_data);
+ nghttp2_session_callbacks_new(&callbacks);
+
+ nghttp2_session_callbacks_set_send_callback(callbacks, send_callback);
+
+ nghttp2_session_callbacks_set_on_frame_recv_callback
+ (callbacks, on_frame_recv_callback);
+
+ nghttp2_session_callbacks_set_on_data_chunk_recv_callback
+ (callbacks, on_data_chunk_recv_callback);
+
+ nghttp2_session_callbacks_set_on_stream_close_callback
+ (callbacks, on_stream_close_callback);
+
+ nghttp2_session_callbacks_set_on_header_callback
+ (callbacks, on_header_callback);
+
+ nghttp2_session_callbacks_set_on_begin_headers_callback
+ (callbacks, on_begin_headers_callback);
+
+ nghttp2_session_client_new(&session_data->session, callbacks, session_data);
+
+ nghttp2_session_callbacks_del(callbacks);
}
The nghttp2_session_send() function serializes the frame into wire -format and call nghttp2_session_callbacks.send_callback with -it. We set send_callback() function to -nghttp2_session_callbacks.send_callback in -initialize_nghttp2_session() function described earlier. It is -defined as follows:
+format and call send_callback() function of type +nghttp2_send_callback. The send_callback() is defined as +follows:static ssize_t send_callback(nghttp2_session *session,
const uint8_t *data, size_t length,
int flags, void *user_data)
@@ -494,15 +507,14 @@ defined as follows:
data to the bufferevent object. Note that nghttp2_session_send()
continues to write all frames queued so far. If we were writing the
data to the non-blocking socket directly using write() system call
-in the nghttp2_session_callbacks.send_callback, we will
-surely get EAGAIN or EWOULDBLOCK since the socket has limited
-send buffer. If that happens, we can return
-NGHTTP2_ERR_WOULDBLOCK to signal the nghttp2 library to stop
-sending further data. But writing to the bufferevent, we have to
-regulate the amount data to be buffered by ourselves to avoid possible
-huge memory consumption. In this example client, we do not limit
-anything. To see how to regulate the amount of buffered data, see the
-send_callback() in the server tutorial.
+in the send_callback(), we will surely get EAGAIN or
+EWOULDBLOCK since the socket has limited send buffer. If that
+happens, we can return NGHTTP2_ERR_WOULDBLOCK to signal the
+nghttp2 library to stop sending further data. But writing to the
+bufferevent, we have to regulate the amount data to be buffered by
+ourselves to avoid possible huge memory consumption. In this example
+client, we do not limit anything. To see how to regulate the amount of
+buffered data, see the send_callback() in the server tutorial.
The third bufferevent callback is writecb(), which is invoked when
all data written in the bufferevent output buffer have been sent:
static void writecb(struct bufferevent *bev, void *ptr)
@@ -961,17 +973,30 @@ here.
static void initialize_nghttp2_session(http2_session_data *session_data)
{
- nghttp2_session_callbacks callbacks;
+ nghttp2_session_callbacks *callbacks;
- memset(&callbacks, 0, sizeof(callbacks));
+ nghttp2_session_callbacks_new(&callbacks);
- callbacks.send_callback = send_callback;
- callbacks.on_frame_recv_callback = on_frame_recv_callback;
- callbacks.on_data_chunk_recv_callback = on_data_chunk_recv_callback;
- callbacks.on_stream_close_callback = on_stream_close_callback;
- callbacks.on_header_callback = on_header_callback;
- callbacks.on_begin_headers_callback = on_begin_headers_callback;
- nghttp2_session_client_new(&session_data->session, &callbacks, session_data);
+ nghttp2_session_callbacks_set_send_callback(callbacks, send_callback);
+
+ nghttp2_session_callbacks_set_on_frame_recv_callback
+ (callbacks, on_frame_recv_callback);
+
+ nghttp2_session_callbacks_set_on_data_chunk_recv_callback
+ (callbacks, on_data_chunk_recv_callback);
+
+ nghttp2_session_callbacks_set_on_stream_close_callback
+ (callbacks, on_stream_close_callback);
+
+ nghttp2_session_callbacks_set_on_header_callback
+ (callbacks, on_header_callback);
+
+ nghttp2_session_callbacks_set_on_begin_headers_callback
+ (callbacks, on_begin_headers_callback);
+
+ nghttp2_session_client_new(&session_data->session, callbacks, session_data);
+
+ nghttp2_session_callbacks_del(callbacks);
}
static void send_client_connection_header(http2_session_data *session_data)
diff --git a/tutorial-server.html b/tutorial-server.html
index 4ebb0412..421b2586 100644
--- a/tutorial-server.html
+++ b/tutorial-server.html
@@ -412,14 +412,27 @@ HTTP/2 communication. These two functions are described later.
initialize_nghttp2_session():
static void initialize_nghttp2_session(http2_session_data *session_data)
{
- nghttp2_session_callbacks callbacks = {0};
+ nghttp2_session_callbacks *callbacks;
- callbacks.send_callback = send_callback;
- callbacks.on_frame_recv_callback = on_frame_recv_callback;
- callbacks.on_stream_close_callback = on_stream_close_callback;
- callbacks.on_header_callback = on_header_callback;
- callbacks.on_begin_headers_callback = on_begin_headers_callback;
- nghttp2_session_server_new(&session_data->session, &callbacks, session_data);
+ nghttp2_session_callbacks_new(&callbacks);
+
+ nghttp2_session_callbacks_set_send_callback(callbacks, send_callback);
+
+ nghttp2_session_callbacks_set_on_frame_recv_callback
+ (callbacks, on_frame_recv_callback);
+
+ nghttp2_session_callbacks_set_on_stream_close_callback
+ (callbacks, on_stream_close_callback);
+
+ nghttp2_session_callbacks_set_on_header_callback
+ (callbacks, on_header_callback);
+
+ nghttp2_session_callbacks_set_on_begin_headers_callback
+ (callbacks, on_begin_headers_callback);
+
+ nghttp2_session_server_new(&session_data->session, callbacks, session_data);
+
+ nghttp2_session_callbacks_del(callbacks);
}
@@ -499,11 +512,9 @@ frames. The session_send()
The nghttp2_session_send() function serializes the frame into wire
-format and calls nghttp2_session_callbacks.send_callback with
-it. We set the send_callback() function to
-nghttp2_session_callbacks.send_callback in
-initialize_nghttp2_session() function described earlier. It is
-defined as follows:
+format and calls send_callback() of type
+nghttp2_send_callback. The send_callback() is defined as
+follows:
static ssize_t send_callback(nghttp2_session *session,
const uint8_t *data, size_t length,
int flags, void *user_data)
@@ -520,20 +531,20 @@ defined as follows:
}
-Since we use bufferevent to abstract network I/O, we just write the data to
-the bufferevent object. Note that nghttp2_session_send() continues to write
-all frames queued so far. If we were writing the data to a non-blocking socket
-directly using write() system call in the
-nghttp2_session_callbacks.send_callback, we would surely get
-EAGAIN or EWOULDBLOCK back since the socket has limited send
-buffer. If that happens, we can return NGHTTP2_ERR_WOULDBLOCK to
-signal the nghttp2 library to stop sending further data. But when writing to
-the bufferevent, we have to regulate the amount data to get buffered ourselves
-to avoid using huge amounts of memory. To achieve this, we check the size of
-the output buffer and if it reaches more than or equal to
-OUTPUT_WOULDBLOCK_THRESHOLD bytes, we stop writing data and return
-NGHTTP2_ERR_WOULDBLOCK to tell the library to stop calling
-send_callback.
+Since we use bufferevent to abstract network I/O, we just write the
+data to the bufferevent object. Note that nghttp2_session_send()
+continues to write all frames queued so far. If we were writing the
+data to a non-blocking socket directly using write() system call
+in the send_callback(), we would surely get EAGAIN or
+EWOULDBLOCK back since the socket has limited send buffer. If that
+happens, we can return NGHTTP2_ERR_WOULDBLOCK to signal the
+nghttp2 library to stop sending further data. But when writing to the
+bufferevent, we have to regulate the amount data to get buffered
+ourselves to avoid using huge amounts of memory. To achieve this, we
+check the size of the output buffer and if it reaches more than or
+equal to OUTPUT_WOULDBLOCK_THRESHOLD bytes, we stop writing data
+and return NGHTTP2_ERR_WOULDBLOCK to tell the library to stop
+calling send_callback.
The next bufferevent callback is readcb(), which is invoked when
data is available to read in the bufferevent input buffer:
static void readcb(struct bufferevent *bev, void *ptr)
@@ -1315,16 +1326,27 @@ is about to close and we no longer use that object.
static void initialize_nghttp2_session(http2_session_data *session_data)
{
- nghttp2_session_callbacks callbacks;
+ nghttp2_session_callbacks *callbacks;
- memset(&callbacks, 0, sizeof(callbacks));
+ nghttp2_session_callbacks_new(&callbacks);
- callbacks.send_callback = send_callback;
- callbacks.on_frame_recv_callback = on_frame_recv_callback;
- callbacks.on_stream_close_callback = on_stream_close_callback;
- callbacks.on_header_callback = on_header_callback;
- callbacks.on_begin_headers_callback = on_begin_headers_callback;
- nghttp2_session_server_new(&session_data->session, &callbacks, session_data);
+ nghttp2_session_callbacks_set_send_callback(callbacks, send_callback);
+
+ nghttp2_session_callbacks_set_on_frame_recv_callback
+ (callbacks, on_frame_recv_callback);
+
+ nghttp2_session_callbacks_set_on_stream_close_callback
+ (callbacks, on_stream_close_callback);
+
+ nghttp2_session_callbacks_set_on_header_callback
+ (callbacks, on_header_callback);
+
+ nghttp2_session_callbacks_set_on_begin_headers_callback
+ (callbacks, on_begin_headers_callback);
+
+ nghttp2_session_server_new(&session_data->session, callbacks, session_data);
+
+ nghttp2_session_callbacks_del(callbacks);
}
/* Send HTTP/2 client connection header, which includes 24 bytes