From f6f6dadff43622e81ce7c1833a3b8cfd5312acf5 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Tue, 13 May 2014 23:45:44 +0900 Subject: [PATCH] Update doc --- apiref.html | 99 +++++++- genindex.html | 237 ++++++++++++++++++- index.html | 10 + nghttp2.h.html | 120 +++++++++- nghttp2ver.h.html | 5 + nghttpx-howto.html | 5 + objects.inv | Bin 2506 -> 2798 bytes package_README.html | 5 + py-modindex.html | 212 +++++++++++++++++ python-apiref.html | 539 +++++++++++++++++++++++++++++++++++++++++++ search.html | 5 + searchindex.js | 2 +- tutorial-client.html | 5 + tutorial-server.html | 5 + 14 files changed, 1241 insertions(+), 8 deletions(-) create mode 100644 py-modindex.html create mode 100644 python-apiref.html diff --git a/apiref.html b/apiref.html index 9ac2e9a7..16258cbc 100644 --- a/apiref.html +++ b/apiref.html @@ -53,7 +53,7 @@ - + @@ -121,6 +121,11 @@
  • Functions
  • +
  • Python API Reference +
  • nghttp2.h
  • nghttp2ver.h
  • Source
  • @@ -1955,6 +1960,12 @@ frame.

    this structure are intentionally hidden from the public API.

    +
    +
    +nghttp2_hd_deflater
    +

    HPACK deflater object.

    +
    +
    nghttp2_hd_inflater
    @@ -2977,6 +2988,90 @@ is valid according to character (0x00).

    +
    +
    +int nghttp2_hd_deflate_new(nghttp2_hd_deflater **deflater_ptr, size_t deflate_hd_table_bufsize_max)
    +

    Initializes *deflater_ptr for deflating name/values pairs.

    +

    The deflate_hd_table_bufsize_max is the upper bound of header +table size the deflater will use.

    +

    This function returns 0 if it succeeds, or one of the following +negative error codes:

    +
    +
    NGHTTP2_ERR_NOMEM
    +
    Out of memory.
    +
    +
    + +
    +
    +void nghttp2_hd_deflate_del(nghttp2_hd_deflater *deflater)
    +

    Deallocates any resources allocated for deflater.

    +
    + +
    +
    +void nghttp2_hd_deflate_set_no_refset(nghttp2_hd_deflater *deflater, uint8_t no_refset)
    +

    Sets the availability of reference set in the deflater. If +no_refset is nonzero, the deflater will first emit “Reference Set +Emptying” in the each subsequent invocation of +nghttp2_hd_deflate_hd() to clear up reference set. By default, +the deflater uses reference set.

    +
    + +
    +
    +int nghttp2_hd_deflate_change_table_size(nghttp2_hd_deflater *deflater, size_t settings_hd_table_bufsize_max)
    +

    Changes header table size of the deflater to +settings_hd_table_bufsize_max bytes. This may trigger eviction +in the dynamic table.

    +

    The settings_hd_table_bufsize_max should be the value received in +SETTINGS_HEADER_TABLE_SIZE.

    +

    The deflater never uses more memory than +deflate_hd_table_bufsize_max bytes specified in +nghttp2_hd_deflate_new(). Therefore, if +settings_hd_table_bufsize_max > deflate_hd_table_bufsize_max, +resulting maximum table size becomes +deflate_hd_table_bufsize_max.

    +

    This function returns 0 if it succeeds, or one of the following +negative error codes:

    +
    +
    NGHTTP2_ERR_NOMEM
    +
    Out of memory.
    +
    +
    + +
    +
    +ssize_t nghttp2_hd_deflate_hd(nghttp2_hd_deflater *deflater, uint8_t *buf, size_t buflen, nghttp2_nv *nva, size_t nvlen)
    +

    Deflates the nva, which has the nvlen name/value pairs, into +the buf of length buflen.

    +

    If buf is not large enough to store the deflated header block, +this function fails with NGHTTP2_ERR_INSUFF_BUFSIZE. The +caller should use nghttp2_hd_deflate_bound() to know the upper +bound of buffer size required to deflate given header name/value +pairs.

    +

    Once this function fails, subsequent call of this function always +returns NGHTTP2_ERR_HEADER_COMP.

    +

    After this function returns, it is safe to delete the nva.

    +

    This function returns 0 if it succeeds, or one of the following +negative error codes:

    +
    +
    NGHTTP2_ERR_NOMEM
    +
    Out of memory.
    +
    NGHTTP2_ERR_HEADER_COMP
    +
    Deflation process has failed.
    +
    NGHTTP2_ERR_INSUFF_BUFSIZE
    +
    The provided buflen size is too small to hold the output.
    +
    +
    + +
    +
    +size_t nghttp2_hd_deflate_bound(nghttp2_hd_deflater *deflater, const nghttp2_nv *nva, size_t nvlen)
    +

    Returns an upper bound on the compressed size after deflation of +nva of length nvlen.

    +
    +
    int nghttp2_hd_inflate_new(nghttp2_hd_inflater **inflater_ptr)
    @@ -3101,7 +3196,7 @@ always succeeds.

    diff --git a/nghttp2ver.h.html b/nghttp2ver.h.html index a3eac11b..c88bc302 100644 --- a/nghttp2ver.h.html +++ b/nghttp2ver.h.html @@ -120,6 +120,11 @@
  • Functions
  • +
  • Python API Reference +
  • nghttp2.h
  • nghttp2ver.h
  • Source
  • diff --git a/nghttpx-howto.html b/nghttpx-howto.html index 583ecb6f..721565c7 100644 --- a/nghttpx-howto.html +++ b/nghttpx-howto.html @@ -121,6 +121,11 @@
  • Functions
  • +
  • Python API Reference +
  • nghttp2.h
  • nghttp2ver.h
  • Source
  • diff --git a/objects.inv b/objects.inv index f3fdb4453ae7aeaba20a9657d6eb77b5ce0225d4..df9ba214cba50b1c8ea2c0878138db527f0107d6 100644 GIT binary patch delta 2700 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 GbSu))Haj{1 delta 2405 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 X&tV|Y9OTVo5rU&)W|95_@R$Uj=6az= diff --git a/package_README.html b/package_README.html index 0e21602d..13b87490 100644 --- a/package_README.html +++ b/package_README.html @@ -121,6 +121,11 @@
  • Functions
  • +
  • Python API Reference +
  • nghttp2.h
  • nghttp2ver.h
  • Source
  • diff --git a/py-modindex.html b/py-modindex.html new file mode 100644 index 00000000..901f67f8 --- /dev/null +++ b/py-modindex.html @@ -0,0 +1,212 @@ + + + + + + + + + + Python Module Index — nghttp2 0.4.0-DEV documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/python-apiref.html b/python-apiref.html new file mode 100644 index 00000000..4e1640ce --- /dev/null +++ b/python-apiref.html @@ -0,0 +1,539 @@ + + + + + + + + + + Python API Reference — nghttp2 0.4.0-DEV documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + +
    +
    +
    +
      +
    • Docs »
    • + +
    • Python API Reference
    • +
    • + +
    • +
    +
    +
    +
    + +
    +

    Python API Reference

    +

    nghttp2 offers some high level Python API to C library. The bindings +currently provide HPACK compressor and decompressor classes and HTTP/2 +server class.

    +

    The extension module is called nghttp2.

    +

    make will build the bindings. The target Python version is +determined by configure script. If the detected Python version is not +what you expect, specify a path to Python executable in PYTHON +variable as an argument to configure script (e.g., ./configure +PYTHON=/usr/bin/python3.4).

    +
    +

    HPACK API

    +
    +
    +class nghttp2.HDDeflater(hd_table_bufsize_max=DEFLATE_MAX_HEADER_TABLE_SIZE)
    +

    This class is used to perform header compression. The +hd_table_bufsize_max limits the usage of header table in the +given amount of bytes. The default value is +DEFLATE_MAX_HEADER_TABLE_SIZE. This is necessary +because the deflater and inflater share the same amount of header +table and the inflater decides that number. The deflater may not +want to use all header table size because of limited memory +availability. In that case, hd_table_bufsize_max can be used to +cap the upper limit of table size whatever the header table size is +chosen by the inflater.

    +
    +
    +deflate(headers)
    +

    Deflates the headers. The headers must be sequence of tuple +of name/value pair, which are byte strings (not unicode string).

    +

    This method returns the deflated header block in byte string. +Raises the exception if any error occurs.

    +
    + +
    +
    +set_no_refset(no_refset)
    +

    Tells the deflater not to use reference set if no_refset is +evaluated to True. If that happens, on each subsequent +invocation of deflate(), deflater will clear up +refersent set.

    +
    + +
    +
    +change_table_size(hd_table_bufsize_max)
    +

    Changes header table size to hd_table_bufsize_max byte. if +hd_table_bufsize_max is strictly larger than +hd_table_bufsize_max given in constructor, +hd_table_bufsize_max is used as header table size instead.

    +

    Raises the exception if any error occurs.

    +
    + +
    +
    +get_hd_table()
    +

    Returns copy of current dynamic header table.

    +
    + +
    + +

    The following example shows how to deflate header name/value pairs:

    +
    import binascii, nghttp2
    +
    +deflater = nghttp2.HDDeflater()
    +
    +res = deflater.deflate([(b'foo', b'bar'),
    +                        (b'baz', b'buz')])
    +
    +print(binascii.b2a_hex(res))
    +
    +
    +
    +
    +class nghttp2.HDInflater
    +

    This class is used to perform header decompression.

    +
    +
    +inflate(data)
    +

    Inflates the deflated header block data. The data must be +byte string.

    +

    Raises the exception if any error occurs.

    +
    + +
    +
    +change_table_size(hd_table_bufsize_max)
    +

    Changes header table size to hd_table_bufsize_max byte.

    +

    Raises the exception if any error occurs.

    +
    + +
    +
    +get_hd_table()
    +

    Returns copy of current dynamic header table.

    +
    + +
    + +

    The following example shows how to inflate deflated header block:

    +
    deflater = nghttp2.HDDeflater()
    +
    +data = deflater.deflate([(b'foo', b'bar'),
    +                         (b'baz', b'buz')])
    +
    +inflater = nghttp2.HDInflater()
    +
    +hdrs = inflater.inflate(data)
    +
    +print(hdrs)
    +
    +
    +
    +
    +nghttp2.print_hd_table(hdtable)
    +

    Convenient function to print hdtable to the standard output. The +hdtable is the one retrieved by +HDDeflater.get_hd_table() or +HDInflater.get_hd_table(). This function does not work +if header name/value cannot be decoded using UTF-8 encoding.

    +

    In output, s=N means the entry occupies N bytes in header +table. If r=y, then the entry is in the reference set.

    +
    + +
    +
    +nghttp2.DEFAULT_HEADER_TABLE_SIZE
    +

    The default header table size, which is 4096 as per HTTP/2 +specification.

    +
    + +
    +
    +nghttp2.DEFLATE_MAX_HEADER_TABLE_SIZE
    +

    The default header table size for deflater. The initial value +is 4096.

    +
    + +
    +
    +

    HTTP/2 servers

    +
    +

    Note

    +

    We use asyncio for HTTP/2 server classes. Therefore, +Python 3.4 or later is required to use these objects. To +explicitly configure nghttp2 build to use Python 3.4, specify the +PYTHON variable to the path to Python 3.4 executable when +invoking configure script like this:

    +
    $ ./configure PYTHON=/usr/bin/python3.4
    +
    +
    +
    +
    +
    +class nghttp2.HTTP2Server(address, RequestHandlerClass, ssl=None)
    +

    This class builds on top of the asyncio event loop. On +construction, RequestHandlerClass must be given, which must be a +subclass of BaseRequestHandler class.

    +

    The address must be a tuple of hostname/IP address and port to +bind. If hostname/IP address is None, all interfaces are +assumed.

    +

    To enable SSL/TLS, specify instance of ssl.SSLContext +in ssl. Before passing ssl to +BaseEventLoop.create_server(), ALPN protocol identifiers +are set using ssl.SSLContext.set_npn_protocols().

    +

    To disable SSL/TLS, omit ssl or specify None.

    +
    +
    +serve_forever()
    +

    Runs server and processes incoming requests forever.

    +
    + +
    + +
    +
    +class nghttp2.BaseRequestHandler(http2, stream_id)
    +

    The class is used to handle the single HTTP/2 stream. By default, +it does not nothing. It must be subclassed to handle each event +callback method.

    +

    The first callback method invoked is on_headers(). It is +called when HEADERS frame, which includes request header fields, is +arrived.

    +

    If request has request body, on_data() is invoked for +each chunk of received data chunk.

    +

    When whole request is received, on_request_done() is +invoked.

    +

    When stream is closed, on_close() is called.

    +

    The application can send response using send_response() +method. It can be used in on_headers(), +on_data() or on_request_done().

    +

    The application can push resource using push() method. +It must be used before send_response() call.

    +

    A BaseRequestHandler has the following instance +variables:

    +
    +
    +client_address
    +

    Contains a tuple of the form (host, port) referring to the +client’s address.

    +
    + +
    +
    +stream_id
    +

    Stream ID of this stream

    +
    + +
    +
    +scheme
    +

    Scheme of the request URI. This is a value of :scheme +header field.

    +
    + +
    +
    +method
    +

    Method of this stream. This is a value of :method header +field.

    +
    + +
    +
    +host
    +

    This is a value of :authority or host header field.

    +
    + +
    +
    +path
    +

    This is a value of :path header field.

    +
    + +

    A BaseRequestHandler has the following methods:

    +
    +
    +on_headers()
    +

    Called when request HEADERS is arrived. By default, this method +does nothing.

    +
    + +
    +
    +on_data(data)
    +

    Called when a chunk of request body data is arrived. This +method will be called multiple times until all data are +received. By default, this method does nothing.

    +
    + +
    +
    +on_request_done()
    +

    Called when whole request was received. By default, this method +does nothing.

    +
    + +
    +
    +on_close(error_code)
    +

    Called when stream is about to close. The error_code +indicates the reason of closure. If it is 0, the stream is +going to close without error.

    +
    + +
    +
    +send_response(status=200, headers=None, body=None)
    +

    Send response. The status is HTTP status code. The headers +is additional response headers. The :status header field will +be appended by the library. The body is the response body. +It could be None if response body is empty. Or it must be +instance of either str, bytes or io.IOBase. +If instance of str is specified, it will be encoded using +UTF-8.

    +

    The headers is a list of tuple of the form (name, +value). The name and value can be either byte string +or unicode string. In the latter case, they will be encoded +using UTF-8.

    +

    Raises the exception if any error occurs.

    +
    + +
    +
    +push(path, method='GET', request_headers=None, status=200, headers=None, body=None)
    +

    Push a specified resource. The path is a path portion of +request URI for this resource. The method is a method to +access this resource. The request_headers is additional +request headers to access this resource. The :scheme, +:method, :authority and :path are appended by the +library. The :scheme and :authority are inherited from +request header fields of the associated stream.

    +

    The status is HTTP status code. The headers is additional +response headers. The :status header field is appended by +the library. The body is the response body. It could be +None if response body is empty. Or it must be instance of +either str, bytes or io.IOBase. If instance of +str is specified, it is encoded using UTF-8.

    +

    The headers and request_headers are a list of tuple of the form +(name, value). The name and value can be either byte +string or unicode string. In the latter case, they will be +encoded using UTF-8.

    +

    Returns an instance of RequestHandlerClass specified in +HTTP2Server constructor for the pushed resource.

    +

    Raises the exception if any error occurs.

    +
    + +
    + +

    The following example illustrates HTTP2Server and +BaseRequestHandler usage:

    +
    #!/usr/bin/env python
    +
    +import io, ssl
    +import nghttp2
    +
    +class Handler(nghttp2.BaseRequestHandler):
    +
    +    def on_headers(self):
    +        self.push(path='/css/style.css',
    +                  request_headers = [('content-type', 'text/css')],
    +                  status=200,
    +                  body='body{margin:0;}')
    +
    +        self.send_response(status=200,
    +                           headers = [('content-type', 'text/plain')],
    +                           body=io.BytesIO(b'nghttp2-python FTW'))
    +
    +ctx = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
    +ctx.options = ssl.OP_ALL | ssl.OP_NO_SSLv2
    +ctx.load_cert_chain('server.crt', 'server.key')
    +
    +# give None to ssl to make the server non-SSL/TLS
    +server = nghttp2.HTTP2Server(('127.0.0.1', 8443), Handler, ssl=ctx)
    +server.serve_forever()
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    + +
    + + + + \ No newline at end of file diff --git a/search.html b/search.html index e2aaa73d..26ef4e05 100644 --- a/search.html +++ b/search.html @@ -127,6 +127,11 @@
  • Functions
  • +
  • Python API Reference +
  • nghttp2.h
  • nghttp2ver.h
  • Source
  • diff --git a/searchindex.js b/searchindex.js index daa15b5c..948d9631 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({envversion:42,terms:{my_obj:[3,6],nghttp2_io_flag:6,nghttp2_cancel:[3,6],prefix:[2,6,3],nghttp2_priority_spec_init:[3,6],nghttp2_session_get_stream_effective_local_window_s:[3,6],op_al:4,"const":[2,6,5,3],nghttp2_submit_:[2,5],"0x20":[3,6],under:[3,6,4],bufferevent_getfd:5,spec:[3,6],merchant:[2,6,5,1],digit:5,"void":[2,6,5,3],bufferevent_ssl:[2,5],affect:[3,6],initialize_nghttp2_setup:[2,5],verif:5,servic:[2,4],warnx:[2,5],on_stream_close_callback:[2,6,5,3],direct:4,aggreg:7,even:7,ssl_op_no_session_resumption_on_renegoti:[2,5],neg:[3,6],nghttp2_err_insuff_bufs:[3,6],"new":[2,6,4,3],tatsuhiro:[0,1,2,4,5,6],nghttp2_session_resume_data:[3,6],ipproto_tcp:[2,5],abov:[2,1,3,4,5,6],initialize_app_context:2,here:[2,6,4,5,3],met:[2,6,5,3],"4xx":4,path:[2,4,7,5],settings_timeout:[3,6],interpret:[3,6],nextprotoneg:[3,6],sslv23_server_method:2,permit:[2,6,5,1],nghttp2_submit_prior:[3,6],aka:[3,6,4],nghttp2_frame:[2,6,5,3],bufferevent_ssl_connect:5,substr:2,bev_event_error:[2,5],bufferevent_socket_connect_hostnam:5,total:[3,6,4],unit:4,describ:[2,3,4,5,6,7],would:[3,6],call:[2,3,4,5,6,7],asset:4,recommend:4,nghttp2_on_invalid_frame_recv_callback:[3,6],nghttp2_version:[3,6,1],until:[3,6],relat:[2,5],nghttp2_cleartext_proto_version_id_len:[3,6],warn:2,nghttp2_option_set_peer_max_concurrent_stream:[3,6],ssl_shutdown:[2,5],herebi:[2,6,5,1],unpack:[3,6],must:[2,6,4,7,3],word:[3,6],err:[2,5],exit_failur:[2,5],setup:[2,5],work:[2,4,7],nghttp2_block:[3,6],nghttp2_flag_ack:[3,6],root:[2,4],syn_repli:[3,6],defer:[2,6,5,3],give:[3,6,4],indic:[2,6,5,3],want:[2,6,7,5,3],select_padding_callback:[3,6],unsign:[2,6,5,3],end:[2,6,5,3],thing:[2,6,5,3],datalen:[2,5],how:[],nghttp2_err_fat:[3,6],hop:[3,6],nghttp2_settings_compress_data:[3,6],negoti:4,nghttp2_frame_typ:[3,6],updat:[3,6],nghttp2_msg_more:6,after:[2,6,4,5,3],settings_header_table_s:[3,6],badli:[3,6],demonstr:5,request_path:2,third:[2,6,5,3],opaqu:[3,6,7],bootstrap:4,exclud:[3,6],receiv:[2,6,4,5,3],exclus:[3,6],first:[2,6,4,5,3],order:[2,6,4,3],oper:[3,6,4,7],frontend:[4,7],over:[2,6,4,5,3],becaus:[2,6,5,3],eagain:[2,5],vari:4,fit:[2,6,5,1],nghttp2_session_get_stream_remote_window_s:[3,6],fwrite:[3,6,5],deflate_s:4,hidden:[3,6],them:[2,6,7,5,3],thei:[2,6,4,5,3],fragment:4,safe:2,"break":[2,6,5,3],promis:[3,6],choic:[3,6],ai_addr:2,timeout:[2,5],each:[2,3,4,5,6,7],debug:[3,6,5],side:[2,6,4,3],mean:[3,6,5],slen:2,protocol_error:[3,6],nghttp2_select_padding_callback:[3,6],http2_stream_data:[2,5],nghttp2_session_server_new2:[3,6],network:[2,5],newli:[3,6,5],content:[0,2,3,4,6,7],prioriti:[3,6,4],situat:[2,5],free:[2,6,5,1,3],b127:7,spdy:[3,6,4,7],openssl:[2,4,5],nghttp2_version_num:[3,6,1],sigact:[2,5],rang:[3,6,4],restrict:[2,6,5,1],nghttp2_protocol_error:[3,6],alreadi:[2,6,5,3],primari:[3,6],top:[4,7],too:[2,6,3],similarli:3,draft:[0,6,4,3],listen:[2,4,7],tool:[],lighttpd:4,travers:2,awaaagqeaad__w:4,target:[3,6,4],provid:[2,1,3,4,5,6],zero:[3,6],project:[0,4],matter:[3,6],fashion:7,nghttp2_continu:[3,6],nv_out:[3,6],increment:[3,6],nghttp2_option_set_no_auto_stream_window_upd:[3,6],nghttp2_session_recv:[3,6],nghttp2_session_get_stream_effective_recv_data_length:[3,6],transmit:[3,6,5],sig_ign:[2,5],shall:[2,6,5,1],object:[2,6,4,5,3],writecb:[2,5],nghttp2_settings_timeout:[3,6],bytesio:4,known:7,simplic:5,nghttp2_hd_inflate_end_head:[3,6],hex_to_uint:2,doc:4,flow:[3,6,7],doe:[2,3,4,5,6,7],left:[3,6],section:[3,6],on_invalid_frame_recv_callback:[3,6],bev_event_eof:[2,5],pkg:4,identifi:[2,6,3],bufferevent_setcb:[2,5],involv:[3,6],absolut:7,explain:[7,5],configur:[3,6,4,7],apach:4,nghttp2_err_invalid_stream_id:[3,6],busi:[2,5],nghttp2_flag_pad_high:[3,6],nghttp2_cleartext_proto_version_id:[3,6],nghttp2_err_proto:[3,6],authoritylen:5,stop:[2,6,5,3],end_head:[3,6,4],evbuffer_drain:[2,5],bar:4,ai_pass:2,ietf:[0,6,4,3],baz:4,push_promis:[2,6,3],"public":[],nghttp2_strerror:[2,6,5,3],bufferevent_ssl_accept:2,serve_forev:4,nul:[3,6],result:[2,5],respons:[2,6,4,5,3],fail:[3,6,4,7],key_fil:2,subject:[2,6,5,1],said:[3,6],figur:4,bev_opt_close_on_fre:[2,5],accord:[3,6],pointer:[2,6,3],extens:[4,5],advertis:[2,5],setsockopt:[2,5],nghttp2_default_weight:[3,6],against:[3,6,4],ssl_ctx_use_certificate_chain_fil:2,header_t:4,logic:2,enhance_your_calm:[3,6],com:[0,6,4,7,3],int32_t:[2,6,5,3],assum:[3,6,7],option_ptr:[3,6],duplic:[3,6],reciev:5,liabil:[2,6,5,1],evbuffer_get_length:[2,5],chrome:[4,7],max_deflate_s:4,been:[2,6,5,3],github:[0,4],trigger:[3,6],interest:[2,4,5],basic:4,futur:[3,6],tini:5,life:2,regul:[2,5],worker:7,argument:[2,3,4,5,6,7],ewouldblock:[2,5],load_cert_chain:4,ssl_op_no_compress:[2,5],nghttp2_data_flag_compress:[3,6],nghttp2_settings_initial_window_s:[3,6],zlib:4,publicli:4,nghttp2_on_begin_headers_callback:[3,6,5],bev_event_timeout:[2,5],printabl:5,nghttp2_inadequate_secur:[3,6],nghttp2_set:[3,6],promised_stream_id:[3,6],conf:4,sever:[2,6,4,7,3],on_data:4,perform:[2,6,4,7,3],make:[2,6,4,7,3],transpar:[3,6],headlen:[3,6],split:[3,6],version_str:[3,6],nghttp2_on_stream_close_callback:[3,6,5],complet:[2,6,5,3],start_listen:2,bufferevent_openssl_get_ssl:[2,5],nghttp2_err_deferred_data_exist:[3,6],ssl_ctx_new:[2,5],zlib1g:4,ownership:[3,6],niv:[3,6,4],thu:[2,6,4,7,3],nghttp2_session_get_effective_local_window_s:[3,6],origin_len:[3,6],client:[],thi:[0,1,2,3,4,5,6,7],endif:[2,6,1],gzip:4,opaque_data:[3,6,4],protocol:[0,2,3,4,5,6,7],just:[2,3,4,5,6,7],"0x01":[3,6,4],initiate_connect:5,ifdef:[2,6],yet:[3,6],previous:[3,6],easi:4,settings_hd_table_bufsize_max:[3,6],els:[2,5],applic:[2,6,4,5,3],nghttp2_nv_flag:[3,6],initialize_nghttp2_sess:[2,5],specif:[2,6,5,3],arbitrari:[3,6],http2_session_data:[2,5],client_addr:2,manual:[4,7],html:[0,6,4,3,2],tcp_nodelai:[2,5],unnecessari:[3,6],underli:[2,5],www:[3,6,7],right:[2,6,5,1],deal:[2,6,5,1,3],intern:[3,6],successfulli:[2,6,5,3],transmiss:[2,6,5,3],requesthandlerclass:4,ni_numerichost:2,bottom:[3,6],nghttp2_data_source_read_callback:[3,6],subclass:4,buffer:[2,6,4,5,3],condit:[2,6,5,1,3],foo:4,localhost:[4,7],core:4,particular:[2,6,5,1,3],sensibl:[3,6],insecur:7,repositori:[2,5],peer:[2,6,5,3],post:[3,6,4],nghttp2_submit_data:[3,6],nghttp2_settings_max_concurrent_stream:[2,6,5,3],produc:[3,6],f127:7,evbuff:[2,5],encod:[2,6,4,3],down:[2,5],nghttp2_before_frame_send_callback:[3,6],errx:[2,5],git:[],session_send:[2,5],wai:[3,6,4,7],support:[2,3,4,5,6,7],suppors:7,verbos:4,overhead:4,fork:4,head:[2,6,3],event_bas:[2,5],offer:4,taken:[3,6],heap:4,"true":4,reset:5,ssl_ctx_free:[2,5],maximum:[3,6,4],tell:[2,6,5,3],deafult:4,autoconf:4,emit:[2,6,5,3],nghttp2_initial_window_s:[3,6],featur:4,httpbi:[0,6,4,3],netdb:2,unreleas:4,exist:[3,6,4,7],protocol_id_len:[3,6],ai_flag:2,ends_with:2,check:[2,6,5,3],delete_http2_session_data:[2,5],encrypt:7,when:[2,6,4,5,3],role:[2,6,3],nghttp2_check_header_valu:[3,6],send_client_connection_head:5,unlimit:[3,6],heder:[3,6],intend:[2,7],af_unspec:[2,5],nghttp2_option_new:[3,6],nghttp2_max_window_s:[3,6],technot:[3,6],notic:[2,6,5,1],consid:4,evconnlistener_new_bind:2,longer:[2,4],nghttp2_check_header_nam:[3,6],ignor:[2,6,3],time:[2,6,4,7,3],push:[3,6,4],skip:[3,6],consum:3,nghttp2_on_frame_recv_callback:[3,6,5],nghttp2ver_h:1,decid:[3,6],create_ssl_ctx:[2,5],depend:[2,3,4,5,6,7],readabl:5,sourc:[0,6,5,3,2],string:[2,6,4,5,3],nghttp2_settings_enable_push:[3,6],nghttp2_hd_inflate_new:[3,6],host_len:[3,6],level:[2,6,3],did:[3,6,5],item:4,settings_id:[3,6],conhead:2,upper:[3,6],sign:7,port:[2,3,4,5,6,7],data_flag:[2,6,3],appear:[3,6,4],event_base_fre:[2,5],current:[2,6,4,3],nghttp2_err_data_exist:[3,6],lev_opt_close_on_fre:2,gener:[3,6,4],onli:[2,3,4,5,6,7],nghttp2_hd_inflate_del:[3,6],address:[4,7],connect_error:[3,6],queue:[2,6,5,3],behav:[3,6,7],ourselv:[2,5],nghttp2_err_goaway_already_s:[3,6],regardless:[3,6],extra:[4,5],modul:4,prefer:[3,6],instal:4,hdinflat:4,memori:[2,6,5,3],handler:4,nghttp2_altsvc:[3,6],strdup:2,prev:2,share:[3,6,4],rst_stream:[2,6,5,3],ctype:2,nghttp2_submit_window_upd:[3,6],prepar:[3,6],stream_user_data:[3,6,5],cat:[2,6,5,3],descriptor:[2,6,3],can:[2,3,4,5,6,7],http2:[0,6,4,7,3],purpos:[2,6,5,1],uf_path:5,claim:[2,6,5,1],stream:[2,6,4,5,3],agent:4,critic:[3,6],abort:[3,6],nghttp2_header:[2,6,5,3],occur:[3,6],alwai:[2,6,3],multipl:[2,6,4,7,3],charset:4,ping:[3,6],write:[],sslcontext:4,max:[3,6,5],intrus:2,mai:[2,6,7,5,3],acceptcb:2,data:[2,6,4,5,3],autotool:4,stdin:4,inform:[2,6,4,5,3],"switch":[2,4,5],combin:[3,6],talk:[2,4],nghttp2_err_stream_shut_wr:[3,6],size_t:[2,6,5,3],nghttp2_err_unsupported_vers:[3,6],still:[2,6,4,3],nghttp2_settings_entri:[2,6,5,3],dynam:[3,6,4],entiti:2,disconnect:[2,5],precondit:[3,6],nghttp2_priority_spec:[3,6],tort:[2,6,5,1],window:[3,6],main:[2,5],non:[2,3,4,5,6,7],synopsi:[2,5],env:4,"5xx":4,nghttp2_submit_head:[3,6],nghttp2_on_header_callback:[2,6,5,3],"0x000400":1,name:[2,6,4,5,3],version_num:[3,6],config:4,no_error:4,drop:[2,6,5,3],hd_inflat:[3,6],millisec:4,replac:[3,6],individu:[3,6,7],continu:[2,6,5,3],event_base_loop:[2,5],turoti:5,happen:[2,5],ai_addrlen:2,libjemalloc:4,space:[3,6,4],output_length:4,earlier:[2,5],event_base_new:[2,5],argv:[2,5],org:[0,6,4,3],"byte":[2,6,4,5,3],argc:[2,5],care:[3,6],nghttp2_opt_no_auto_connection_window_upd:[3,6],nghttp2ver:[],"88448504252dd5918485":4,befor:[2,6,4,3],turn:7,nghttp2_flag_non:[2,6,5,3],place:[3,6],evdns_base_new:5,origin:[3,6,7],directli:[2,6,5,3],onc:[3,6],arrai:[3,6,4,5],yourself:4,nghttp2_is_fat:[3,6],nghttp2_flow_control_error:[3,6],submit:[3,6,5],on_frame_recv_callback:[2,6,5,3],open:[2,6,4,3],size:[2,6,4,3],avail:[2,3,4,5,6,7],given:[3,6,4],necessarili:[3,6],sigpip:[2,5],internal_error:[3,6],conveni:[3,6],knowledg:4,copi:[2,6,5,1,3],specifi:[],on_head:4,mostli:4,holder:[2,6,5,1],than:[2,6,4,3],serv:2,wide:2,nghttp2_session_get_outbound_queue_s:[3,6],were:[2,6,5,3],posit:[3,6],read_callback:[2,6,3],nghttp2_min_weight:[3,6],browser:[4,7],sai:[3,6],pri:6,ani:[2,1,3,4,5,6,7],deliv:[3,6],saw:7,sat:4,bitwis:[3,6],form:[3,6,4],nghttp2_flag_prior:[3,6],destroi:[2,5],payloadlen:[3,6],note:[2,3,4,5,6,7],take:[2,6,4,5,3],properti:[2,5],noth:[3,6,4,7],begin:5,sure:[2,4,5],normal:[3,6],track:[2,4,5],compress:[0,6,4,3],nghttp2_hcat_request:[2,6,3],pathlen:5,sublicens:[2,6,5,1],pair:[2,6,4,5,3],http2_select:[3,6],later:[2,6,7,5,3],gracefulli:5,unprocess:[2,5],concurr:[2,6,4,3],permiss:[2,6,5,1],nghttp2_session_set_stream_user_data:[2,6,3],threshold:2,pad_high:[3,6],end_seg:[3,6],written:[2,6,4,5,3],"4e5535a027780":4,overwritten:[3,6],hddeflat:4,variou:[3,6],get:[2,3,4,5,6,7],outlen:[3,6,5],ssl:[],cannot:[2,6,7,3],nghttpd:7,requir:7,nghttp2_set_stream_user_data:2,multi:4,burst:7,nghttp2_flag_compress:[3,6],reserv:[3,6],op_no_sslv2:4,detect:[3,6,4],weighttp:4,nghttp2_hd_inflate_fin:[3,6],between:7,"import":4,fcntl:2,pipefd:2,evdns_bas:5,submit_request:5,region:[3,6],contract:[2,6,5,1],fontend:7,tutori:[],mani:[3,6],nghttp2_data_provid:[2,6,3],inspir:4,nghttp2_err_too_many_inflight_set:[3,6],dispatch:7,cancel:[3,6],damag:[2,6,5,1],http2server:4,header_table_s:4,nghttp2_settings_max:[3,6],"abstract":[2,5],nghttp2_on_unknown_frame_recv_callback:[3,6],nghttp2_err_buffer_error:[3,6],those:[2,6,5,3],uf_queri:5,hdr:[2,4,5],invok:[2,3,4,5,6,7],invoc:[2,6,3],nghttp2_nv_flag_no_index:[3,6],on_data_chunk_recv_callback:[3,6,5],stdout:[4,5],ascii:[3,6],develop:[],author:[2,6,4,5,1],bev_opt_defer_callback:[2,5],alphabet:[3,6],same:[2,6,4,7,3],ssl_library_init:[2,5],binari:5,pac:[4,7],pad:[3,6],document:1,finish:[2,6,4,5,3],decompress:[3,6,4],handshake_leftlen:2,extern:6,postpon:[3,6],ai_next:2,without:[2,1,3,4,5,6,7],evict:[3,6],nghttp2_push_promis:[3,6],on_request_don:4,event2:[2,5],nghttp2_err_def:[3,6],nghttp2_submit_set:[2,6,5,3],execut:4,multiplex:2,hint:2,except:[3,6],identif:[3,6],nghttp2_select_next_protocol:[3,6,5],real:7,unistd:[2,5],read:[],nghttp2_version_ag:[3,6],rfc2616:[3,6],test:7,traffic:4,nghttp2_hd_inflate_change_table_s:[3,6],next_proto_cb:2,integ:[3,6],server:7,either:[2,6,3],output:[2,6,4,5,3],manag:[2,6,3],stream_clos:[3,6],protocol_sslv23:4,ssl_ctx_set_next_protos_advertised_cb:2,handshak:[2,5],nonzero:[2,6,3],easili:5,"2xx":4,exit:[2,5],data_ptr:[3,6],base64url:[3,6],inspect:[3,6],fulli:[2,6,3],getnameinfo:2,src:4,inflater_ptr:[3,6],ack:[3,6,4],settings_payload:[3,6],act:[2,7,5],routin:[2,5],max_siz:4,least_vers:[3,6],error_repli:2,your:4,b2a_hex:4,nghttp2_hcat_respons:[3,6,5],hex:[2,4],start:[2,3,4,5,6,7],nghttp2_err_stream_clos:[3,6],low:[3,6],lot:[3,6],ipv6:4,strictli:[3,6],next_proto_list:2,nghttp2_proto_version_id_len:[2,6,3],tupl:4,nghttp2_err_invalid_st:[3,6],satur:4,nghttp2_flag_end_seg:[3,6],possibl:[2,6,5,3],"default":[],applayerprotoneg:[3,6],hpack:[],expect:4,creat:[2,3,4,5,6,7],decreas:[3,6],file:[2,1,3,4,5,6,7],nghttp2_err_invalid_header_block:[3,6],fill:[2,6,3],denot:[3,6,5],functypedef:6,googl:[4,7],kbyte:4,field:[2,6,4,5,3],valid:[3,6,4,7],nghttp2_prioriti:[3,6],print_head:5,you:[2,3,4,5,6,7],sequenc:[2,6,4,5,3],promised_stream_user_data:[3,6],reduc:[3,6],cunit:4,directori:[2,4,5],represent:[3,1],all:[2,1,3,5,6,7],on_unknown_frame_recv_callback:[3,6],illustr:4,nghttp2_err_start_stream_not_allow:[3,6],follow:[2,1,3,4,5,6,7],alt:4,ptr:[2,6,5,3],app_cont:2,uint8_t:[2,6,5,3],articl:7,readcb:[2,5],program:7,bufferevent_writ:[2,5],"case":[2,3,4,5,6,7],evbuffer_remov:2,fals:4,pad_low:[3,6],nghttp2_option:[3,6],util:7,nghttp2_client_connection_header_len:[3,6],failur:[3,6],veri:[3,6,5],"__cplusplu":6,list:[2,6,3],nghttp2_headers_categori:[3,6],adjust:[3,6,4],stderr:[2,6,4,5,3],small:[3,6],inflate_header_block:[3,6],session_recv:2,rate:[],pass:[3,6,5],further:[2,6,5,3],what:[3,6,4,7],sub:2,sun:4,sum:4,delet:5,version:[],method:[2,6,4,5,3],libjansson:4,padlen:[3,6,4],percentage_of_original_s:4,excess:2,modifi:[2,6,4,5,1],valu:[2,6,4,5,3],search:2,ai_addrconfig:2,nghttp2_err_push_dis:[3,6],on_clos:4,prior:[3,6,4],amount:[2,6,5,3],action:[2,6,5,1,3],via:[2,3,4,5,6,7],primit:5,ask:[3,6],famili:[2,5],establish:[2,5],select:[3,6,7,5],regist:2,libev:4,bev_event_connect:[2,5],minor:[3,1],more:[2,6,4,5,3],tsujikawa:[2,6,5,1],nghttp2_settings_header_table_s:[3,6],flag:[2,6,4,5,3],sens:[3,6],cacert:7,nghttp2_err_wouldblock:[2,6,5,3],cach:7,none:4,endpoint:[3,6,4],dev:[4,1],remain:[2,6,5,3],def:4,emiss:[3,6],accept:[2,6,4,3],minimum:[2,6,3],ssl_op_al:[2,5],nghttp2_submit_altsvc:[3,6],create_ssl:[2,5],strlen:[2,5],huge:[2,5],netinet:[2,5],secur:[4,7],anoth:[3,6,7],serveraddr:[4,7],reject:[3,6],sec9:[3,6],simpl:[2,6,5,3],css:4,resourc:[],referenc:4,variant:[3,6],spdylai:[4,7],nghttp2_client_connection_preface_len:[2,6,5,3],associ:[2,1,3,4,5,6],"short":[2,5],caus:[3,6],callback:[2,6,4,5,3],nghttp2_nv_flag_non:[2,6,5,3],alpn:[3,6,4,7],authroiti:5,max_ag:[3,6],hypertext:[0,4],libcunit1:4,through:[2,4,7],paramet:[3,6,5],style:4,nghttp2_hcat_push_respons:[3,6],pend:[2,6,5,3],nghttp2_err_eof:[3,6],progoram:5,valuelen:[2,6,5,3],"0x010203":[3,1],"return":[2,3,4,5,6,7],check_path:2,nghttp2_initial_max_concurrent_stream:[3,6],readlen:2,nghttp2_err_callback_failur:[2,6,5,3],tear:[2,5],achiev:[2,6,3],found:[2,6,3],trailer:[3,6],nghttp2_on_frame_send_callback:[3,6],weight:[3,6],realli:[7,5],nghttp2_hd_inflate_flag:[3,6],connect:[2,1,3,4,5,6,7],field_set:5,event:[2,6,4,5,1],app_ctx:2,ftw:4,publish:[2,6,5,1],payload:[3,6],etag:4,print:[4,5],on_frame_not_send_callback:[3,6],proxi:[],differ:[3,6,7],effect:[3,6],reason:[2,6,3],base:[2,4],put:[3,6],nghttp2_session_mem_recv:[2,6,5,3],nghttp2_flag:[3,6],recv:4,prefac:[2,6,7,5,3],thread:[2,4,7],omit:[3,6,5],nghttp2_err_invalid_stream_st:[3,6],assign:[2,6,5,3],feed:[2,6,5,3],major:[3,1],notifi:[2,6,3],prevent:[3,6],number:[2,6,1,3],done:[2,3,4,5,6,7],construct:[3,6,4],stdlib:6,nghttp2_internal_error:[2,6,3],script:[4,7],data_prd:[2,6,3],nghttp2_session_get_stream_user_data:[2,6,3],least:[3,6,4],scheme:[4,5],store:[2,6,5,3],input_length:4,"0x0":[3,6],option:[2,3,4,5,6,7],memcmp:2,nghttp2_client_connection_head:[3,6],pars:5,window_upd:[3,6],doubli:2,remot:[2,6,5,3],remov:[2,6,3],bridg:[],consumpt:[2,5],nghttp2_error:[3,6],window_size_incr:[3,6],lib_error_cod:[3,6],arrlen:[2,5],packag:4,"null":[2,6,5,3],syn_stream:[3,6],sell:[2,6,5,1],outbound:[3,6],built:4,equival:[3,6],self:[4,7],also:[2,6,7,5,3],build:[],nghttp2_err_frame_size_error:[3,6],make_nv:[2,5],distribut:[2,6,5,1],reacb:5,reach:[3,6],chart:[3,6],most:[3,6],charg:[2,6,5,1],addr:2,"01881f3468e5891afcbf83868a3d856659c62e3f":4,compar:[3,6],frame_size_error:[3,6],cover:7,h2c:[6,4],pri_spec:[3,6],microsec:4,nghttp2_submit_push_promis:[3,6],copyright:[2,6,5,1],refused_stream:[3,6],nghttp2_opt_no_auto_stream_window_upd:[3,6],queu:[2,6,5,3],express:[2,6,5,1],kind:[2,6,5,1,3],nativ:4,"3xx":4,liabl:[2,6,5,1],before_frame_send_callback:[3,6],retreiv:5,crt:[2,4,7],h2load:4,certif:[],set:[2,6,4,5,3],seq:4,sep:4,ousid:4,remove_stream:2,nghttp2_submit_goawai:[3,6],sec:4,arg:[2,6,5,3],close:[2,6,4,5,3],jemalloc:4,analog:[3,6],strchr:2,someth:[3,6],won:[2,6,3],hold:[3,6],nghttp2_on_data_chunk_recv_callback:[3,6,5],altern:4,numer:[3,6,1],sole:[3,6],succeed:4,percent_decod:2,both:[2,3,4,5,6,7],last:[3,6,4],delimit:4,nghttp2_data_flag_non:[3,6],nghttp2_session_want_writ:[2,6,5,3],tempor:[3,6],context:[2,3,4,5,6,7],compression_error:[3,6],whole:[3,6,4],simpli:[2,5],point:[2,6,5,3],header:[],shutdown:[2,6,5,3],nghttp2_session_client_new:[3,6,5],nghttp2_session:[2,6,5,3],backend:[4,7],due:[3,6],empti:[2,6,4,5,3],send_respons:[2,4],whom:[2,6,5,1],stdint:6,add_stream:2,flight:[3,6],nghttp2_err_nomem:[3,6],settings_enable_push:[3,6,4],nghttp2_session_terminate_sess:[3,6,5],buflen:[3,6],func:6,next_proto_list_len:2,look:[2,5],"while":[2,6,5,3],behavior:[3,6],error:[2,6,4,5,3],loop:[2,4,5],malloc:[2,5],nghttp2_session_callback:[2,6,5,3],readi:2,user_data:[2,6,5,3],itself:[2,6,5,3],flow_control_error:[3,6],grant:[2,6,5,1],belong:[3,6],create_http2_session_data:[2,5],decod:[2,6,3],uf_schema:5,mytyp:[3,6],inflat:[3,6,4],moment:4,user:[3,6,4,7,5],implement:[0,2,3,4,5,6],nghttp2_h:6,noninfring:[2,6,5,1],entri:[3,6,4],nghttp:7,person:[2,6,5,1],uint32_t:[2,6,3],on_frame_send_callback:[3,6],nghttp2_ping:[3,6],input:[2,6,4,5,3],subsequ:[3,6],bin:4,on_begin_headers_callback:[2,6,5,3],obsolet:[3,6],format:[2,3,4,5,6,7],http_parser:5,bit:[3,6,1],strstr:2,foobarbuzz:4,signal:[2,6,5,3],lib_error:[3,6],some:[2,6,7,5,3],back:[3,6],sampl:4,sizeof:[2,5],libssl:4,lev_opt_reus:2,though:7,per:[4,7],pem:7,larg:[3,6],make_nv2:5,settings_compress_data:[3,6],machin:[4,7],run:[2,3,4,5,6,7],step:[3,6],from:[7,1],handshake_readcb:2,nghttp2_hd_inflate_emit:[3,6],commun:[2,4,5],idl:[3,6],block:[2,6,4,5,3],nghttp2_err_paus:[3,6],nsm:6,within:4,nghttp2_send_callback:[3,6,5],chang:[2,6,3],announc:4,occupi:4,inclus:[3,6],errno:2,bodi:[2,6,4,5,3],"long":[3,6,4],nghttp2:[],forward:[3,6,4,7],session_ptr:[3,6],repeatedli:[3,6],link:[2,4,7],translat:7,ni_maxhost:2,don:[2,6,4,3],line:[4,7],mitig:4,concaten:[3,6],utf:4,caller:[2,6,3],nghttpx:[],clear:[3,6],parser:5,repres:[3,6],"char":[2,6,5,3],incomplet:4,sublen:2,curl:7,titl:2,invalid:[3,6],transport:5,nghttp2_default_header_table_s:[3,6],libtool:4,create_http2_stream_data:[2,5],nghttp2_flag_pad_low:[3,6],algorithm:[3,6],svc:4,nghttp2_submit_request:[3,6,5],namelen:[2,6,5,3],far:[2,5],asyncio:4,getaddrinfo:2,code:[2,6,4,5,3],queri:5,nghttp2_frame_hd:[3,6],cython:4,privat:[2,4,7],send:[2,3,4,5,6,7],http_parser_url:5,lower:[3,6,7],aris:[2,6,5,1],fatal:[2,6,5,3],nghttp2_data_flag:[3,6],sent:[2,6,5,3],nghttp2_submit_p:[3,6],untouch:[3,6],relev:[2,5],tri:[3,6,7],magic:[2,5],http_parser_parse_url:5,"try":[3,6,4],session:[2,6,4,5,3],pleas:[2,3,4,5,6,7],impli:[2,6,5,1],smaller:4,snprintf:5,memset:[2,5],download:[0,4],client_address:4,index:[3,6,4],o_rdonli:2,access:[3,6,4,7],experiment:[0,4],nghttp2_session_server_new:[2,6,3],ssl_ctx_set_opt:[2,5],nghttp2_enhance_your_calm:[3,6],len:[2,6,5,3],closur:[3,6,5],nghttp2_rst_stream:[3,6],ubuntu:4,becom:[2,6,1,3],sinc:[2,3,4,5,6,7],larger:[3,6],ctx:4,settings_payloadlen:[3,6],autoreconf:4,jansson:4,greac:[2,5],typic:4,output_wouldblock_threshold:2,appli:[3,6],gatewai:7,bufferev:[2,5],feb:4,dnsbase:5,binascii:4,upgrad:[3,6,4,7],next:[2,6,5,3],findproxyforurl:[4,7],usr:4,nghttp2_nv:[2,6,5,3],nghttp2_option_del:[3,6],goawai:[2,6,4,5,3],benchmark:[],deflat:[3,6,4],in_fin:[3,6],account:[3,6,4,5],retriev:[2,6,5,3],tunnel:4,nghttp2_settings_id:[3,6],about:[2,6,5,3],aliv:[2,6,3],sslv23_client_method:5,control:[3,6,7],process:[2,6,4,5,3],nghttp2_session_get_remote_set:[3,6],fprintf:[2,6,5,3],onlin:[3,4],serial:[2,6,5,3],evdns_base_fre:5,nghttp2_session_want_read:[2,6,5,3],ssl_ctx_use_privatekey_fil:2,evbas:[2,5],instead:[3,6],nullifi:[3,6],npn:[2,3,4,5,6,7],max_payloadlen:[3,6],eventcb:[2,5],nghttp2_compression_error:[3,6],alloc:[2,6,3],bind:[],nvlen:[2,6,5,3],correspond:[2,4],element:[2,6,3],issu:[0,6,4,7,3],stream_id:[2,6,4,5,3],nghttp2_connect_error:[3,6],ssize_t:[2,6,5,3],fallback:7,furnish:[2,6,5,1],move:[3,6],nghttp2_hd_inflate_hd:[3,6],therefor:[3,6,5],nghttp2_session_send:[2,6,5,3],inlen:[3,6,5],recept:[2,6,5,3],crash:3,greater:[3,6],handl:[2,6,4,5,3],nghttp2_goawai:[3,6],ssl_op_no_sslv2:[2,5],nghttp2_session_mem_send:[3,6],anyth:5,uf_port:5,mode:[],bump:[3,6],chunk:[3,6,4,5],ouf:[3,6],nghttp2_err_temporal_callback_failur:[2,6,3],"static":[2,6,4,5,3],our:5,patch:[3,1],out:[2,1,3,4,5,6,7],variabl:4,req:4,n1000:4,categori:[3,6,5],suitabl:[3,6],rel:2,field_data:5,recv_callback:[3,6],insid:4,cleartext:[3,6],releas:[],nghttp2_hd_inflate_non:[3,6],nghttp2_option_set_no_auto_connection_window_upd:[3,6],could:[2,6,5,3],keep:[2,6,4,5,3],length:[2,6,4,5,3],outsid:[3,4],retain:[3,6],softwar:[2,6,5,1],addrinfo:2,date:4,end_stream:[3,6,4],nghttp2_hd_inflat:[3,6],intention:[3,6],unknown:[2,6,3],system:[2,7,5],messag:[3,6,5],attach:[2,5],attack:4,termin:[2,6,4,5,3],"final":[3,6],ipv4:4,request_head:4,sa_handl:[2,5],enqueu:5,exactli:[2,4],nghttp2_err_header_comp:[3,6],see:[2,6,4,5,3],structur:[2,6,5,3],charact:[2,6,5,3],nghttp2_session_del:[2,6,5,3],bev:[2,5],ssl_new:[2,5],unencrypt:7,bufferevent_get_input:[2,5],corrupt:5,have:[2,6,4,5,3],tabl:[3,6,4],need:[3,6,4,7,5],ai_socktyp:2,"0x08":[3,6],"0x09":[3,6],"0x04":[3,6,4],"0x05":[3,6,4],"0x06":[3,6],"0x07":[3,6],"0x00":[3,6,4],nghttp2_err_flow_control:[3,6],"0x02":[3,6],"0x03":[3,6],nghttp2_refused_stream:[3,6],evbuffer_pullup:[2,5],which:[2,3,4,5,6,7],singl:[2,6,4,5,3],opaque_data_len:[3,6],unless:[3,6],bufferevent_openssl_socket_new:[2,5],deploy:7,settings_max_concurrent_stream:[2,6,4,5,3],stream_data:[2,5],deploi:4,"class":4,nghttp2_error_cod:[2,6,5,3],nghttp2_err_stream_id_not_avail:[3,6],url:[2,4,7],request:[2,3,4,5,6,7],uri:[4,7,5],pipe:2,determin:4,nghttp2_pack_settings_payload:[3,6],"0x0d":[3,6],"0x0a":[3,6],"0x0b":[3,6],ssl_load_error_str:[2,5],text:4,bufferevent_get_output:[2,5],redirect:5,nghttp2_submit_rst_stream:[2,6,3],should:[2,6,4,5,3],suppos:7,local:[3,6,7],meant:5,familiar:4,memcpi:[2,5],nghttp2_session_client_new2:[3,6],settings_initial_window_s:[3,6,4],nghttp2_data:[2,6,3],increas:[3,6],portion:[2,6,5,1,3],nghttp2_submit_respons:[2,6,3],enabl:[4,7],whether:[2,6,5,1],contain:[2,3,4,5,6,7],nghttp2_window_upd:[3,6],frame:[2,6,4,5,3],ssl_ctx:[2,6,5,3],temporarili:[3,6],statu:[],wire:[2,4,5],correctli:[3,6],mainli:[3,6],state:[2,6,4,3],https_uri:5,progress:4,nghttp2_initial_connection_window_s:[3,6],kei:[2,6,4,7,3],entir:[2,6,3],last_stream_id:[3,6,4],addit:[],revers:[4,7],nghttp2_proto_version_id:[2,6,5,3],equal:2,etc:[2,4,5],instanc:[3,6,4],uint16_t:[3,6,5],nghttp2_data_flag_eof:[2,6,3],arriv:4,m10:4,commenc:5,respect:[3,6,5],nghttp2_recv_callback:[3,6],ssl_ctx_set_next_proto_select_cb:[3,6,5],insuffici:[3,6],compon:5,json:4,treat:[2,6,3],immedi:[3,6],nghttp2_hcat_head:[3,6],altsvc:[3,6,4],http2jp:4,sock_stream:2,evconnlisten:2,on_header_callback:[2,6,5,3],nghttp2_frame_size_error:[3,6],plain:[4,7],defin:[2,6,5,1,3],eintr:2,inadequate_secur:[3,6],helper:[3,6],on_request_recv:2,libxml2:4,squid:[4,7],select_next_proto_cb:[3,6,5],archiv:[2,5],substanti:[2,6,5,1],incom:[2,6,4,7,3],let:[2,5],member:[2,6,3],python:[],ifndef:[6,1],http:[],hostnam:[4,7],uf_host:5,initi:[2,6,5,3],dealloc:[3,6],inflate_flag:[3,6],off:[7,5],well:[2,5],app_context:2,"0x10":[3,6],exampl:[2,3,4,5,6,7],command:[4,7],choos:[3,6],error_cod:[2,6,4,5,3],nghttp2_data_sourc:[2,6,3],usual:[3,6],paus:[3,6],less:[3,6],send_callback:[2,6,5,3],half:[3,6],obtain:[2,6,5,1],tcp:[2,6,7,5,3],libnghttp2:4,heavili:4,web:[2,4,7],cert_fil:2,send_server_connection_head:2,priorit:[3,6],addrlen:2,add:[2,6,3],c10:4,match:[2,5],gmt:4,nvu:4,know:[3,6,7],nva:[2,6,5,3],python3:4,resid:[2,5],like:[2,3,4,5,6,7],success:[3,6,4],protocol_id:[3,6],nghttp2_flag_end_head:[3,6],nghttp2_priority_spec_check_default:[3,6],necessari:[2,6,3],page:[2,5],file_read_callback:2,suppli:[3,6,7],"export":2,nghttp2_session_get_effective_recv_data_length:[3,6],error_html:2,librari:[],lead:[3,6],avoid:[2,6,4,5,3],octet:[2,5],overlap:[3,6],isxdigit:2,outgo:[2,6,3],nghttp2_session_upgrad:[3,6],delete_http2_stream_data:[2,5],usag:[2,4,5],host:[0,2,3,4,5,6,7],nghttp2_nv_compare_nam:[3,6],err_get_error:[2,5],actual:[2,6,5,3],socket:[2,5],ssl_tlsext_err_ok:[2,6,5,3],disabl:[],nghttp2_client_connection_prefac:[2,6,5,3],own:[3,6],nghttp2_err_invalid_fram:[3,6],automat:[3,6],warranti:[2,6,5,1],automak:4,merg:[2,6,5,1],val:[2,6,5,3],nghttp2_priority_spec_default_init:[3,6],ai_famili:2,transfer:[0,6,4,7,3],ssl_filetype_pem:2,much:2,buz:4,unexpect:[3,6],bufferevent_fre:[2,5],overflow:[3,6],highest:[3,6],buf:[2,6,3],count:[3,6],succe:[3,6],nghttp2_stream_clos:[3,6],nghttp2_info:[3,6],googlecod:[3,6],asynchron:[3,6],limit:1,otherwis:[2,6,5,1,3],problem:[3,6],sockaddr:2,nghttp2_on_frame_not_send_callback:[3,6],strndup:5,"int":[2,6,5,3],baserequesthandl:4,nghttp2_flag_end_stream:[2,6,3],allow:[3,6,4],percent:2,detail:[3,6],other:[2,1,3,5,6,7],nghttp2_err_invalid_argu:[3,6],rememb:2,stat:2,nghttp2_max_weight:[3,6],err_error_str:[2,5],rel_path:2,proto_str:[3,6],debian:4,session_data:[2,5],sphinx:4,eof:[2,6,3],indirectli:3,rule:[3,6],nghttp2_no_error:[3,6,5]},objtypes:{"0":"c:member","1":"c:macro","2":"c:type","3":"c:function"},objnames:{"0":["c","member","C member"],"1":["c","macro","C macro"],"2":["c","type","C type"],"3":["c","function","C function"]},filenames:["index","nghttp2ver.h","tutorial-server","apiref","package_README","tutorial-client","nghttp2.h","nghttpx-howto"],titles:["nghttp2 - HTTP/2 C Library","nghttp2ver.h","Tutorial: HTTP/2 server","API Reference","nghttp2 - HTTP/2 C Library","Tutorial: HTTP/2 client","nghttp2.h","nghttpx - HOW-TO"],objects:{"":{NGHTTP2_ERR_INVALID_STATE:[3,1,1,"c.NGHTTP2_ERR_INVALID_STATE"],nghttp2_hd_inflate_end_headers:[3,3,1,"c.nghttp2_hd_inflate_end_headers"],nghttp2_nv_flag:[3,2,1,"c.nghttp2_nv_flag"],NGHTTP2_ERR_HEADER_COMP:[3,1,1,"c.NGHTTP2_ERR_HEADER_COMP"],NGHTTP2_SETTINGS_HEADER_TABLE_SIZE:[3,1,1,"c.NGHTTP2_SETTINGS_HEADER_TABLE_SIZE"],NGHTTP2_DATA_FLAG_COMPRESSED:[3,1,1,"c.NGHTTP2_DATA_FLAG_COMPRESSED"],nghttp2_settings_entry:[3,2,1,"c.nghttp2_settings_entry"],NGHTTP2_INTERNAL_ERROR:[3,1,1,"c.NGHTTP2_INTERNAL_ERROR"],nghttp2_frame_hd:[3,2,1,"c.nghttp2_frame_hd"],nghttp2_on_frame_recv_callback:[3,2,1,"c.nghttp2_on_frame_recv_callback"],nghttp2_priority_spec_init:[3,3,1,"c.nghttp2_priority_spec_init"],NGHTTP2_CLIENT_CONNECTION_HEADER_LEN:[3,1,1,"c.NGHTTP2_CLIENT_CONNECTION_HEADER_LEN"],nghttp2_goaway:[3,2,1,"c.nghttp2_goaway"],nghttp2_ping:[3,2,1,"c.nghttp2_ping"],NGHTTP2_ERR_INVALID_FRAME:[3,1,1,"c.NGHTTP2_ERR_INVALID_FRAME"],nghttp2_hd_inflate_hd:[3,3,1,"c.nghttp2_hd_inflate_hd"],nghttp2_priority_spec:[3,2,1,"c.nghttp2_priority_spec"],nghttp2_frame_type:[3,2,1,"c.nghttp2_frame_type"],NGHTTP2_ERR_INVALID_STREAM_ID:[3,1,1,"c.NGHTTP2_ERR_INVALID_STREAM_ID"],NGHTTP2_ALTSVC:[3,1,1,"c.NGHTTP2_ALTSVC"],nghttp2_select_next_protocol:[3,3,1,"c.nghttp2_select_next_protocol"],nghttp2_data_flag:[3,2,1,"c.nghttp2_data_flag"],NGHTTP2_ERR_INVALID_HEADER_BLOCK:[3,1,1,"c.NGHTTP2_ERR_INVALID_HEADER_BLOCK"],nghttp2_option_set_no_auto_stream_window_update:[3,3,1,"c.nghttp2_option_set_no_auto_stream_window_update"],nghttp2_session_callbacks:[3,2,1,"c.nghttp2_session_callbacks"],NGHTTP2_NV_FLAG_NO_INDEX:[3,1,1,"c.NGHTTP2_NV_FLAG_NO_INDEX"],NGHTTP2_ERR_TOO_MANY_INFLIGHT_SETTINGS:[3,1,1,"c.NGHTTP2_ERR_TOO_MANY_INFLIGHT_SETTINGS"],NGHTTP2_ERR_PROTO:[3,1,1,"c.NGHTTP2_ERR_PROTO"],nghttp2_submit_window_update:[3,3,1,"c.nghttp2_submit_window_update"],NGHTTP2_ERR_UNSUPPORTED_VERSION:[3,1,1,"c.NGHTTP2_ERR_UNSUPPORTED_VERSION"],nghttp2_option:[3,2,1,"c.nghttp2_option"],NGHTTP2_SETTINGS_ENABLE_PUSH:[3,1,1,"c.NGHTTP2_SETTINGS_ENABLE_PUSH"],NGHTTP2_HD_INFLATE_FINAL:[3,1,1,"c.NGHTTP2_HD_INFLATE_FINAL"],nghttp2_session_client_new2:[3,3,1,"c.nghttp2_session_client_new2"],NGHTTP2_DATA:[3,1,1,"c.NGHTTP2_DATA"],nghttp2_hd_inflate_new:[3,3,1,"c.nghttp2_hd_inflate_new"],NGHTTP2_ERR_INVALID_STREAM_STATE:[3,1,1,"c.NGHTTP2_ERR_INVALID_STREAM_STATE"],nghttp2_on_header_callback:[3,2,1,"c.nghttp2_on_header_callback"],NGHTTP2_FLAG_ACK:[3,1,1,"c.NGHTTP2_FLAG_ACK"],NGHTTP2_STREAM_CLOSED:[3,1,1,"c.NGHTTP2_STREAM_CLOSED"],NGHTTP2_SETTINGS_MAX:[3,1,1,"c.NGHTTP2_SETTINGS_MAX"],NGHTTP2_MAX_WINDOW_SIZE:[3,1,1,"c.NGHTTP2_MAX_WINDOW_SIZE"],nghttp2_headers_category:[3,2,1,"c.nghttp2_headers_category"],nghttp2_session_mem_send:[3,3,1,"c.nghttp2_session_mem_send"],nghttp2_error_code:[3,2,1,"c.nghttp2_error_code"],nghttp2_send_callback:[3,2,1,"c.nghttp2_send_callback"],nghttp2_on_data_chunk_recv_callback:[3,2,1,"c.nghttp2_on_data_chunk_recv_callback"],NGHTTP2_ERR_START_STREAM_NOT_ALLOWED:[3,1,1,"c.NGHTTP2_ERR_START_STREAM_NOT_ALLOWED"],nghttp2_hd_inflate_change_table_size:[3,3,1,"c.nghttp2_hd_inflate_change_table_size"],nghttp2_priority_spec_check_default:[3,3,1,"c.nghttp2_priority_spec_check_default"],nghttp2_strerror:[3,3,1,"c.nghttp2_strerror"],NGHTTP2_ERR_FATAL:[3,1,1,"c.NGHTTP2_ERR_FATAL"],NGHTTP2_FLAG_COMPRESSED:[3,1,1,"c.NGHTTP2_FLAG_COMPRESSED"],nghttp2_submit_goaway:[3,3,1,"c.nghttp2_submit_goaway"],nghttp2_error:[3,2,1,"c.nghttp2_error"],NGHTTP2_INITIAL_CONNECTION_WINDOW_SIZE:[3,1,1,"c.NGHTTP2_INITIAL_CONNECTION_WINDOW_SIZE"],NGHTTP2_ERR_NOMEM:[3,1,1,"c.NGHTTP2_ERR_NOMEM"],NGHTTP2_ERR_PAUSE:[3,1,1,"c.NGHTTP2_ERR_PAUSE"],NGHTTP2_ENHANCE_YOUR_CALM:[3,1,1,"c.NGHTTP2_ENHANCE_YOUR_CALM"],NGHTTP2_ERR_PUSH_DISABLED:[3,1,1,"c.NGHTTP2_ERR_PUSH_DISABLED"],NGHTTP2_NO_ERROR:[3,1,1,"c.NGHTTP2_NO_ERROR"],nghttp2_select_padding_callback:[3,2,1,"c.nghttp2_select_padding_callback"],NGHTTP2_ERR_CALLBACK_FAILURE:[3,1,1,"c.NGHTTP2_ERR_CALLBACK_FAILURE"],nghttp2_session_get_effective_recv_data_length:[3,3,1,"c.nghttp2_session_get_effective_recv_data_length"],nghttp2_blocked:[3,2,1,"c.nghttp2_blocked"],nghttp2_session_server_new2:[3,3,1,"c.nghttp2_session_server_new2"],NGHTTP2_ERR_DEFERRED:[3,1,1,"c.NGHTTP2_ERR_DEFERRED"],nghttp2_push_promise:[3,2,1,"c.nghttp2_push_promise"],NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE:[3,1,1,"c.NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE"],nghttp2_session_get_outbound_queue_size:[3,3,1,"c.nghttp2_session_get_outbound_queue_size"],NGHTTP2_PROTO_VERSION_ID_LEN:[3,1,1,"c.NGHTTP2_PROTO_VERSION_ID_LEN"],NGHTTP2_BLOCKED:[3,1,1,"c.NGHTTP2_BLOCKED"],NGHTTP2_INITIAL_MAX_CONCURRENT_STREAMS:[3,1,1,"c.NGHTTP2_INITIAL_MAX_CONCURRENT_STREAMS"],nghttp2_data_source_read_callback:[3,2,1,"c.nghttp2_data_source_read_callback"],nghttp2_option_del:[3,3,1,"c.nghttp2_option_del"],NGHTTP2_ERR_FLOW_CONTROL:[3,1,1,"c.NGHTTP2_ERR_FLOW_CONTROL"],NGHTTP2_SETTINGS_TIMEOUT:[3,1,1,"c.NGHTTP2_SETTINGS_TIMEOUT"],NGHTTP2_ERR_WOULDBLOCK:[3,1,1,"c.NGHTTP2_ERR_WOULDBLOCK"],nghttp2_session_resume_data:[3,3,1,"c.nghttp2_session_resume_data"],NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE:[3,1,1,"c.NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE"],nghttp2_session_server_new:[3,3,1,"c.nghttp2_session_server_new"],NGHTTP2_ERR_BUFFER_ERROR:[3,1,1,"c.NGHTTP2_ERR_BUFFER_ERROR"],nghttp2_hd_inflate_del:[3,3,1,"c.nghttp2_hd_inflate_del"],NGHTTP2_CONTINUATION:[3,1,1,"c.NGHTTP2_CONTINUATION"],nghttp2_rst_stream:[3,2,1,"c.nghttp2_rst_stream"],NGHTTP2_ERR_INVALID_ARGUMENT:[3,1,1,"c.NGHTTP2_ERR_INVALID_ARGUMENT"],NGHTTP2_ERR_FRAME_SIZE_ERROR:[3,1,1,"c.NGHTTP2_ERR_FRAME_SIZE_ERROR"],nghttp2_session_del:[3,3,1,"c.nghttp2_session_del"],NGHTTP2_CLIENT_CONNECTION_PREFACE_LEN:[3,1,1,"c.NGHTTP2_CLIENT_CONNECTION_PREFACE_LEN"],NGHTTP2_HEADERS:[3,1,1,"c.NGHTTP2_HEADERS"],nghttp2_flag:[3,2,1,"c.nghttp2_flag"],NGHTTP2_DEFAULT_WEIGHT:[3,1,1,"c.NGHTTP2_DEFAULT_WEIGHT"],nghttp2_session_get_remote_settings:[3,3,1,"c.nghttp2_session_get_remote_settings"],nghttp2_priority_spec_default_init:[3,3,1,"c.nghttp2_priority_spec_default_init"],NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS:[3,1,1,"c.NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS"],NGHTTP2_HCAT_REQUEST:[3,1,1,"c.NGHTTP2_HCAT_REQUEST"],NGHTTP2_FLAG_END_HEADERS:[3,1,1,"c.NGHTTP2_FLAG_END_HEADERS"],NGHTTP2_HD_INFLATE_EMIT:[3,1,1,"c.NGHTTP2_HD_INFLATE_EMIT"],NGHTTP2_RST_STREAM:[3,1,1,"c.NGHTTP2_RST_STREAM"],nghttp2_option_set_peer_max_concurrent_streams:[3,3,1,"c.nghttp2_option_set_peer_max_concurrent_streams"],NGHTTP2_ERR_EOF:[3,1,1,"c.NGHTTP2_ERR_EOF"],NGHTTP2_HCAT_HEADERS:[3,1,1,"c.NGHTTP2_HCAT_HEADERS"],NGHTTP2_VERSION_NUM:[3,1,1,"c.NGHTTP2_VERSION_NUM"],NGHTTP2_SETTINGS:[3,1,1,"c.NGHTTP2_SETTINGS"],nghttp2_frame:[3,2,1,"c.nghttp2_frame"],nghttp2_submit_push_promise:[3,3,1,"c.nghttp2_submit_push_promise"],NGHTTP2_ERR_DEFERRED_DATA_EXIST:[3,1,1,"c.NGHTTP2_ERR_DEFERRED_DATA_EXIST"],NGHTTP2_CANCEL:[3,1,1,"c.NGHTTP2_CANCEL"],NGHTTP2_REFUSED_STREAM:[3,1,1,"c.NGHTTP2_REFUSED_STREAM"],nghttp2_on_frame_send_callback:[3,2,1,"c.nghttp2_on_frame_send_callback"],nghttp2_session_mem_recv:[3,3,1,"c.nghttp2_session_mem_recv"],NGHTTP2_VERSION:[3,1,1,"c.NGHTTP2_VERSION"],NGHTTP2_FLAG_PAD_HIGH:[3,1,1,"c.NGHTTP2_FLAG_PAD_HIGH"],nghttp2_session:[3,2,1,"c.nghttp2_session"],NGHTTP2_COMPRESSION_ERROR:[3,1,1,"c.NGHTTP2_COMPRESSION_ERROR"],NGHTTP2_HCAT_PUSH_RESPONSE:[3,1,1,"c.NGHTTP2_HCAT_PUSH_RESPONSE"],NGHTTP2_CLEARTEXT_PROTO_VERSION_ID:[3,1,1,"c.NGHTTP2_CLEARTEXT_PROTO_VERSION_ID"],nghttp2_submit_rst_stream:[3,3,1,"c.nghttp2_submit_rst_stream"],nghttp2_submit_headers:[3,3,1,"c.nghttp2_submit_headers"],nghttp2_recv_callback:[3,2,1,"c.nghttp2_recv_callback"],NGHTTP2_DEFAULT_HEADER_TABLE_SIZE:[3,1,1,"c.NGHTTP2_DEFAULT_HEADER_TABLE_SIZE"],nghttp2_session_get_stream_user_data:[3,3,1,"c.nghttp2_session_get_stream_user_data"],NGHTTP2_FLAG_PRIORITY:[3,1,1,"c.NGHTTP2_FLAG_PRIORITY"],nghttp2_nv:[3,2,1,"c.nghttp2_nv"],nghttp2_altsvc:[3,2,1,"c.nghttp2_altsvc"],nghttp2_on_invalid_frame_recv_callback:[3,2,1,"c.nghttp2_on_invalid_frame_recv_callback"],nghttp2_version:[3,3,1,"c.nghttp2_version"],nghttp2_session_want_write:[3,3,1,"c.nghttp2_session_want_write"],nghttp2_on_unknown_frame_recv_callback:[3,2,1,"c.nghttp2_on_unknown_frame_recv_callback"],NGHTTP2_CLIENT_CONNECTION_PREFACE:[3,1,1,"c.NGHTTP2_CLIENT_CONNECTION_PREFACE"],NGHTTP2_ERR_STREAM_CLOSED:[3,1,1,"c.NGHTTP2_ERR_STREAM_CLOSED"],NGHTTP2_FLAG_END_STREAM:[3,1,1,"c.NGHTTP2_FLAG_END_STREAM"],NGHTTP2_CLEARTEXT_PROTO_VERSION_ID_LEN:[3,1,1,"c.NGHTTP2_CLEARTEXT_PROTO_VERSION_ID_LEN"],NGHTTP2_ERR_GOAWAY_ALREADY_SENT:[3,1,1,"c.NGHTTP2_ERR_GOAWAY_ALREADY_SENT"],NGHTTP2_FLOW_CONTROL_ERROR:[3,1,1,"c.NGHTTP2_FLOW_CONTROL_ERROR"],nghttp2_session_set_stream_user_data:[3,3,1,"c.nghttp2_session_set_stream_user_data"],nghttp2_check_header_value:[3,3,1,"c.nghttp2_check_header_value"],NGHTTP2_ERR_STREAM_CLOSING:[3,1,1,"c.NGHTTP2_ERR_STREAM_CLOSING"],NGHTTP2_INADEQUATE_SECURITY:[3,1,1,"c.NGHTTP2_INADEQUATE_SECURITY"],nghttp2_session_client_new:[3,3,1,"c.nghttp2_session_client_new"],nghttp2_hd_inflater:[3,2,1,"c.nghttp2_hd_inflater"],nghttp2_check_header_name:[3,3,1,"c.nghttp2_check_header_name"],nghttp2_info:[3,2,1,"c.nghttp2_info"],NGHTTP2_PROTO_VERSION_ID:[3,1,1,"c.NGHTTP2_PROTO_VERSION_ID"],nghttp2_settings_id:[3,2,1,"c.nghttp2_settings_id"],NGHTTP2_DATA_FLAG_EOF:[3,1,1,"c.NGHTTP2_DATA_FLAG_EOF"],nghttp2_hd_inflate_flag:[3,2,1,"c.nghttp2_hd_inflate_flag"],nghttp2_session_send:[3,3,1,"c.nghttp2_session_send"],NGHTTP2_PROTOCOL_ERROR:[3,1,1,"c.NGHTTP2_PROTOCOL_ERROR"],nghttp2_session_upgrade:[3,3,1,"c.nghttp2_session_upgrade"],nghttp2_on_begin_headers_callback:[3,2,1,"c.nghttp2_on_begin_headers_callback"],NGHTTP2_ERR_INSUFF_BUFSIZE:[3,1,1,"c.NGHTTP2_ERR_INSUFF_BUFSIZE"],nghttp2_settings:[3,2,1,"c.nghttp2_settings"],nghttp2_on_frame_not_send_callback:[3,2,1,"c.nghttp2_on_frame_not_send_callback"],nghttp2_option_set_no_auto_connection_window_update:[3,3,1,"c.nghttp2_option_set_no_auto_connection_window_update"],nghttp2_window_update:[3,2,1,"c.nghttp2_window_update"],nghttp2_session_get_stream_remote_window_size:[3,3,1,"c.nghttp2_session_get_stream_remote_window_size"],NGHTTP2_CLIENT_CONNECTION_HEADER:[3,1,1,"c.NGHTTP2_CLIENT_CONNECTION_HEADER"],NGHTTP2_FLAG_NONE:[3,1,1,"c.NGHTTP2_FLAG_NONE"],nghttp2_session_terminate_session:[3,3,1,"c.nghttp2_session_terminate_session"],nghttp2_submit_altsvc:[3,3,1,"c.nghttp2_submit_altsvc"],NGHTTP2_DATA_FLAG_NONE:[3,1,1,"c.NGHTTP2_DATA_FLAG_NONE"],NGHTTP2_NV_FLAG_NONE:[3,1,1,"c.NGHTTP2_NV_FLAG_NONE"],nghttp2_submit_settings:[3,3,1,"c.nghttp2_submit_settings"],nghttp2_is_fatal:[3,3,1,"c.nghttp2_is_fatal"],NGHTTP2_PING:[3,1,1,"c.NGHTTP2_PING"],NGHTTP2_MAX_WEIGHT:[3,1,1,"c.NGHTTP2_MAX_WEIGHT"],nghttp2_priority:[3,2,1,"c.nghttp2_priority"],nghttp2_session_want_read:[3,3,1,"c.nghttp2_session_want_read"],NGHTTP2_VERSION_AGE:[3,1,1,"c.NGHTTP2_VERSION_AGE"],NGHTTP2_ERR_STREAM_ID_NOT_AVAILABLE:[3,1,1,"c.NGHTTP2_ERR_STREAM_ID_NOT_AVAILABLE"],NGHTTP2_CONNECT_ERROR:[3,1,1,"c.NGHTTP2_CONNECT_ERROR"],NGHTTP2_HD_INFLATE_NONE:[3,1,1,"c.NGHTTP2_HD_INFLATE_NONE"],nghttp2_submit_data:[3,3,1,"c.nghttp2_submit_data"],nghttp2_on_stream_close_callback:[3,2,1,"c.nghttp2_on_stream_close_callback"],NGHTTP2_PUSH_PROMISE:[3,1,1,"c.NGHTTP2_PUSH_PROMISE"],nghttp2_data_provider:[3,2,1,"c.nghttp2_data_provider"],NGHTTP2_ERR_DATA_EXIST:[3,1,1,"c.NGHTTP2_ERR_DATA_EXIST"],nghttp2_session_recv:[3,3,1,"c.nghttp2_session_recv"],nghttp2_option_new:[3,3,1,"c.nghttp2_option_new"],nghttp2_session_get_effective_local_window_size:[3,3,1,"c.nghttp2_session_get_effective_local_window_size"],NGHTTP2_INITIAL_WINDOW_SIZE:[3,1,1,"c.NGHTTP2_INITIAL_WINDOW_SIZE"],NGHTTP2_SETTINGS_COMPRESS_DATA:[3,1,1,"c.NGHTTP2_SETTINGS_COMPRESS_DATA"],NGHTTP2_WINDOW_UPDATE:[3,1,1,"c.NGHTTP2_WINDOW_UPDATE"],NGHTTP2_FLAG_END_SEGMENT:[3,1,1,"c.NGHTTP2_FLAG_END_SEGMENT"],NGHTTP2_HCAT_RESPONSE:[3,1,1,"c.NGHTTP2_HCAT_RESPONSE"],nghttp2_submit_priority:[3,3,1,"c.nghttp2_submit_priority"],nghttp2_session_get_stream_effective_local_window_size:[3,3,1,"c.nghttp2_session_get_stream_effective_local_window_size"],nghttp2_headers:[3,2,1,"c.nghttp2_headers"],nghttp2_before_frame_send_callback:[3,2,1,"c.nghttp2_before_frame_send_callback"],NGHTTP2_GOAWAY:[3,1,1,"c.NGHTTP2_GOAWAY"],NGHTTP2_MIN_WEIGHT:[3,1,1,"c.NGHTTP2_MIN_WEIGHT"],NGHTTP2_FLAG_PAD_LOW:[3,1,1,"c.NGHTTP2_FLAG_PAD_LOW"],nghttp2_submit_ping:[3,3,1,"c.nghttp2_submit_ping"],NGHTTP2_FRAME_SIZE_ERROR:[3,1,1,"c.NGHTTP2_FRAME_SIZE_ERROR"],NGHTTP2_ERR_STREAM_SHUT_WR:[3,1,1,"c.NGHTTP2_ERR_STREAM_SHUT_WR"],nghttp2_submit_response:[3,3,1,"c.nghttp2_submit_response"],NGHTTP2_PRIORITY:[3,1,1,"c.NGHTTP2_PRIORITY"],nghttp2_submit_request:[3,3,1,"c.nghttp2_submit_request"],nghttp2_session_get_stream_effective_recv_data_length:[3,3,1,"c.nghttp2_session_get_stream_effective_recv_data_length"],nghttp2_pack_settings_payload:[3,3,1,"c.nghttp2_pack_settings_payload"],nghttp2_data:[3,2,1,"c.nghttp2_data"],nghttp2_data_source:[3,2,1,"c.nghttp2_data_source"],nghttp2_nv_compare_name:[3,3,1,"c.nghttp2_nv_compare_name"]},nghttp2_session_callbacks:{on_invalid_frame_recv_callback:[3,0,1,"c.nghttp2_session_callbacks.on_invalid_frame_recv_callback"],before_frame_send_callback:[3,0,1,"c.nghttp2_session_callbacks.before_frame_send_callback"],on_stream_close_callback:[3,0,1,"c.nghttp2_session_callbacks.on_stream_close_callback"],on_data_chunk_recv_callback:[3,0,1,"c.nghttp2_session_callbacks.on_data_chunk_recv_callback"],on_begin_headers_callback:[3,0,1,"c.nghttp2_session_callbacks.on_begin_headers_callback"],send_callback:[3,0,1,"c.nghttp2_session_callbacks.send_callback"],on_unknown_frame_recv_callback:[3,0,1,"c.nghttp2_session_callbacks.on_unknown_frame_recv_callback"],on_header_callback:[3,0,1,"c.nghttp2_session_callbacks.on_header_callback"],on_frame_recv_callback:[3,0,1,"c.nghttp2_session_callbacks.on_frame_recv_callback"],select_padding_callback:[3,0,1,"c.nghttp2_session_callbacks.select_padding_callback"],on_frame_not_send_callback:[3,0,1,"c.nghttp2_session_callbacks.on_frame_not_send_callback"],on_frame_send_callback:[3,0,1,"c.nghttp2_session_callbacks.on_frame_send_callback"],recv_callback:[3,0,1,"c.nghttp2_session_callbacks.recv_callback"]},nghttp2_frame:{push_promise:[3,0,1,"c.nghttp2_frame.push_promise"],settings:[3,0,1,"c.nghttp2_frame.settings"],ping:[3,0,1,"c.nghttp2_frame.ping"],rst_stream:[3,0,1,"c.nghttp2_frame.rst_stream"],priority:[3,0,1,"c.nghttp2_frame.priority"],headers:[3,0,1,"c.nghttp2_frame.headers"],goaway:[3,0,1,"c.nghttp2_frame.goaway"],window_update:[3,0,1,"c.nghttp2_frame.window_update"],blocked:[3,0,1,"c.nghttp2_frame.blocked"],data:[3,0,1,"c.nghttp2_frame.data"],hd:[3,0,1,"c.nghttp2_frame.hd"],altsvc:[3,0,1,"c.nghttp2_frame.altsvc"]},nghttp2_rst_stream:{error_code:[3,0,1,"c.nghttp2_rst_stream.error_code"],hd:[3,0,1,"c.nghttp2_rst_stream.hd"]},nghttp2_data_provider:{source:[3,0,1,"c.nghttp2_data_provider.source"],read_callback:[3,0,1,"c.nghttp2_data_provider.read_callback"]},nghttp2_info:{age:[3,0,1,"c.nghttp2_info.age"],version_str:[3,0,1,"c.nghttp2_info.version_str"],version_num:[3,0,1,"c.nghttp2_info.version_num"],proto_str:[3,0,1,"c.nghttp2_info.proto_str"]},nghttp2_blocked:{hd:[3,0,1,"c.nghttp2_blocked.hd"]},nghttp2_settings_entry:{settings_id:[3,0,1,"c.nghttp2_settings_entry.settings_id"],value:[3,0,1,"c.nghttp2_settings_entry.value"]},nghttp2_window_update:{hd:[3,0,1,"c.nghttp2_window_update.hd"],window_size_increment:[3,0,1,"c.nghttp2_window_update.window_size_increment"]},nghttp2_frame_hd:{stream_id:[3,0,1,"c.nghttp2_frame_hd.stream_id"],length:[3,0,1,"c.nghttp2_frame_hd.length"],type:[3,0,1,"c.nghttp2_frame_hd.type"],flags:[3,0,1,"c.nghttp2_frame_hd.flags"]},nghttp2_priority_spec:{stream_id:[3,0,1,"c.nghttp2_priority_spec.stream_id"],weight:[3,0,1,"c.nghttp2_priority_spec.weight"],exclusive:[3,0,1,"c.nghttp2_priority_spec.exclusive"]},nghttp2_priority:{pri_spec:[3,0,1,"c.nghttp2_priority.pri_spec"],hd:[3,0,1,"c.nghttp2_priority.hd"]},nghttp2_ping:{hd:[3,0,1,"c.nghttp2_ping.hd"]},nghttp2_data:{padlen:[3,0,1,"c.nghttp2_data.padlen"]},nghttp2_nv:{valuelen:[3,0,1,"c.nghttp2_nv.valuelen"],namelen:[3,0,1,"c.nghttp2_nv.namelen"],flags:[3,0,1,"c.nghttp2_nv.flags"],name:[3,0,1,"c.nghttp2_nv.name"],value:[3,0,1,"c.nghttp2_nv.value"]},nghttp2_altsvc:{origin:[3,0,1,"c.nghttp2_altsvc.origin"],max_age:[3,0,1,"c.nghttp2_altsvc.max_age"],protocol_id:[3,0,1,"c.nghttp2_altsvc.protocol_id"],origin_len:[3,0,1,"c.nghttp2_altsvc.origin_len"],host:[3,0,1,"c.nghttp2_altsvc.host"],protocol_id_len:[3,0,1,"c.nghttp2_altsvc.protocol_id_len"],host_len:[3,0,1,"c.nghttp2_altsvc.host_len"],port:[3,0,1,"c.nghttp2_altsvc.port"],hd:[3,0,1,"c.nghttp2_altsvc.hd"]},nghttp2_headers:{pri_spec:[3,0,1,"c.nghttp2_headers.pri_spec"],nvlen:[3,0,1,"c.nghttp2_headers.nvlen"],cat:[3,0,1,"c.nghttp2_headers.cat"],padlen:[3,0,1,"c.nghttp2_headers.padlen"],nva:[3,0,1,"c.nghttp2_headers.nva"],hd:[3,0,1,"c.nghttp2_headers.hd"]},nghttp2_goaway:{opaque_data:[3,0,1,"c.nghttp2_goaway.opaque_data"],error_code:[3,0,1,"c.nghttp2_goaway.error_code"],opaque_data_len:[3,0,1,"c.nghttp2_goaway.opaque_data_len"],hd:[3,0,1,"c.nghttp2_goaway.hd"],last_stream_id:[3,0,1,"c.nghttp2_goaway.last_stream_id"]},nghttp2_data_source:{fd:[3,0,1,"c.nghttp2_data_source.fd"],ptr:[3,0,1,"c.nghttp2_data_source.ptr"]},nghttp2_push_promise:{padlen:[3,0,1,"c.nghttp2_push_promise.padlen"],nvlen:[3,0,1,"c.nghttp2_push_promise.nvlen"],promised_stream_id:[3,0,1,"c.nghttp2_push_promise.promised_stream_id"],hd:[3,0,1,"c.nghttp2_push_promise.hd"],nva:[3,0,1,"c.nghttp2_push_promise.nva"]},nghttp2_settings:{niv:[3,0,1,"c.nghttp2_settings.niv"],hd:[3,0,1,"c.nghttp2_settings.hd"],iv:[3,0,1,"c.nghttp2_settings.iv"]}},titleterms:{certif:7,header:4,rate:7,api:3,http:[0,4,7,5,2],bridg:7,librari:[0,4],statu:4,git:4,from:4,struct:3,union:3,libev:[2,5],client:[4,7,5],write:7,how:7,nghttp2:[0,6,4],version:0,build:4,test:4,limit:7,document:4,type:3,"public":4,includ:3,"function":3,program:4,resourc:0,proxi:[4,7],python:4,remark:3,tool:4,"enum":3,benchmark:4,typedef:3,specifi:7,compressor:4,releas:0,develop:4,decompressor:4,addit:7,nghttp2ver:1,nghttpd:4,ssl:7,read:7,macro:3,nghttp:4,requir:4,server:[2,4],inflatehd:4,"default":7,tutori:[2,5],deflatehd:4,mode:7,hpack:4,bind:4,nghttpx:[4,7],refer:3,disabl:7}}) \ No newline at end of file +Search.setIndex({envversion:42,terms:{my_obj:[4,7],create_serv:1,nghttp2_io_flag:7,nghttp2_cancel:[4,7],prefix:[3,7,4],nghttp2_priority_spec_init:[4,7],nghttp2_session_get_stream_effective_local_window_s:[4,7],op_al:[5,1],"const":[3,7,6,4],nghttp2_submit_:[3,6],"0x20":[4,7],under:[4,7,5],bufferevent_getfd:6,spec:[4,7],merchant:[3,7,6,2],digit:6,"void":[3,7,6,4],bufferevent_ssl:[3,6],affect:[4,7],initialize_nghttp2_setup:[3,6],verif:6,nghttp2_settings_initial_window_s:[4,7],warnx:[3,6],on_stream_close_callback:[3,7,6,4],direct:5,aggreg:8,even:8,ssl_op_no_session_resumption_on_renegoti:[3,6],neg:[4,7],nghttp2_err_insuff_bufs:[4,7],"new":[3,7,5,4],tatsuhiro:[0,2,3,5,6,7],nghttp2_session_resume_data:[4,7],ipproto_tcp:[3,6],abov:[3,2,4,5,6,7],initialize_app_context:3,never:[4,7],here:[3,7,5,6,4],met:[3,7,6,4],"4xx":5,path:[3,5,8,1,6],settings_timeout:[4,7],interpret:[4,7],nextprotoneg:[4,7],sslv23_server_method:3,permit:[3,7,6,2],nghttp2_submit_prior:[4,7],aka:[4,7,5],nghttp2_frame:[3,7,6,4],bufferevent_ssl_connect:6,substr:3,bev_event_error:[3,6],printabl:6,total:[4,7,5],unit:5,describ:[3,4,5,6,7,8],would:[4,7],call:[3,1,4,5,6,7,8],asset:5,recommend:5,nghttp2_on_invalid_frame_recv_callback:[4,7],nghttp2_version:[4,7,2],until:[4,7,1],relat:[3,6],nghttp2_cleartext_proto_version_id_len:[4,7],warn:3,nghttp2_option_set_peer_max_concurrent_stream:[4,7],ssl_shutdown:[3,6],herebi:[3,7,6,2],unpack:[4,7],must:[3,1,4,5,7,8],word:[4,7],err:[3,6],exit_failur:[3,6],setup:[3,6],work:[3,5,8,1],nghttp2_block:[4,7],nghttp2_flag_ack:[4,7],root:[3,5],syn_repli:[4,7],defer:[3,7,6,4],give:[4,7,5,1],indic:[3,7,1,6,4],want:[3,1,4,6,7,8],select_padding_callback:[4,7],unsign:[3,7,6,4],end:[3,7,6,4],thing:[3,7,6,4],datalen:[3,6],how:[],nghttp2_err_fat:[4,7],hop:[4,7],nghttp2_settings_compress_data:[4,7],negoti:5,nghttp2_frame_typ:[4,7],updat:[4,7],nghttp2_msg_more:7,after:[3,7,5,6,4],nghttp2_option:[4,7],badli:[4,7],demonstr:6,request_path:3,third:[3,7,6,4],opaqu:[4,7,8],bootstrap:5,exclud:[4,7],receiv:[3,1,4,5,6,7],exclus:[4,7],first:[3,1,4,5,6,7],order:[3,7,5,4],oper:[4,7,5,8],frontend:[5,8],over:[3,7,5,6,4],becaus:[3,7,1,6,4],eagain:[3,6],vari:5,fit:[3,7,6,2],nghttp2_session_get_stream_remote_window_s:[4,7],fwrite:[4,7,6],deflate_s:5,hidden:[4,7],them:[3,7,8,6,4],nghttp2_hd_deflate_del:[4,7],thei:[3,1,4,5,6,7],fragment:5,safe:[3,7,4],"break":[3,7,6,4],promis:[4,7],choic:[4,7],ai_addr:3,timeout:[3,6],each:[3,1,4,5,6,7,8],debug:[4,7,6],side:[3,7,5,4],mean:[4,7,1,6],slen:3,protocol_error:[4,7],nghttp2_select_padding_callback:[4,7],http2_stream_data:[3,6],nghttp2_session_server_new2:[4,7],deflater_ptr:[4,7],network:[3,6],newli:[4,7,6],content:[0,1,3,4,5,7,8],hd_table_bufsize_max:1,prioriti:[4,7,5],situat:[3,6],free:[3,7,6,2,4],standard:1,b127:8,spdy:[4,7,5,8],openssl:[3,5,6],nghttp2_version_num:[4,7,2],sigact:[3,6],rang:[4,7,5],deflate_max_header_table_s:1,restrict:[3,7,6,2],nghttp2_protocol_error:[4,7],alreadi:[3,7,6,4],payload:[4,7],top:[5,8,1],too:[3,7,4],similarli:4,sigpip:[3,6],listen:[3,5,8],tool:[],lighttpd:5,travers:3,awaaagqeaad__w:5,target:[4,7,5,1],provid:[3,1,2,4,5,6,7],rate:[],project:[0,5],matter:[4,7],fashion:8,nghttp2_continu:[4,7],nv_out:[4,7],increment:[4,7],nghttp2_option_set_no_auto_stream_window_upd:[4,7],nghttp2_session_recv:[4,7],latter:1,nghttp2_session_get_stream_effective_recv_data_length:[4,7],transmit:[4,7,6],sig_ign:[3,6],shall:[3,7,6,2],object:[3,1,4,5,6,7],nghttp2_hd_inflate_emit:[4,7],nghttp2_settings_timeout:[4,7],bytesio:[5,1],simplic:6,nghttp2_hd_inflate_end_head:[4,7],hex_to_uint:3,doc:5,flow:[4,7,8],doe:[3,1,4,5,6,7,8],opaque_data:[4,7,5],sum:5,on_invalid_frame_recv_callback:[4,7],bev_event_eof:[3,6],pkg:5,identifi:[3,7,1,4],bufferevent_setcb:[3,6],involv:[4,7],absolut:8,explain:[8,6],configur:[4,7,5,8,1],apach:5,dnsbase:6,busi:[3,6],nghttp2_flag_pad_high:[4,7],nghttp2_cleartext_proto_version_id:[4,7],nghttp2_err_proto:[4,7],authoritylen:6,stop:[3,7,6,4],end_head:[4,7,5],evbuffer_drain:[3,6],nghttp2_no_error:[4,7,6],bar:[5,1],ai_pass:3,ietf:[0,7,5,4],baz:[5,1],push_promis:[3,7,4],method:[3,1,4,5,6,7],nghttp2_strerror:[3,7,6,4],bufferevent_ssl_accept:3,serve_forev:[5,1],nul:[4,7],result:[3,7,6,4],respons:[3,1,4,5,6,7],fail:[4,7,5,8],key_fil:3,subject:[3,7,6,2],said:[4,7],figur:5,bev_opt_close_on_fre:[3,6],accord:[4,7],extens:[5,1,6],advertis:[3,6],setsockopt:[3,6],bev:[3,6],nghttp2_hd_deflate_hd:[4,7],against:[4,7,5],ssl_ctx_use_certificate_chain_fil:3,header_t:5,logic:3,browser:[5,8],com:[0,7,5,8,4],int32_t:[3,7,6,4],assum:[4,7,8,1],option_ptr:[4,7],duplic:[4,7],reciev:6,liabil:[3,7,6,2],evbuffer_get_length:[3,6],chrome:[5,8],max_deflate_s:5,been:[3,7,6,4],trigger:[4,7],interest:[3,5,6],basic:5,tini:6,life:3,regul:[3,6],worker:8,ani:[3,1,2,4,5,6,7,8],ewouldblock:[3,6],load_cert_chain:[5,1],ssl_op_no_compress:[3,6],nghttp2_data_flag_compress:[4,7],servic:[3,5],properti:[3,6],publicli:5,nghttp2_on_begin_headers_callback:[4,7,6],bev_event_timeout:[3,6],bufferevent_socket_connect_hostnam:6,nghttp2_inadequate_secur:[4,7],nghttp2_set:[4,7],promised_stream_id:[4,7],conf:5,sever:[3,7,5,8,4],on_data:[5,1],perform:[3,1,4,5,7,8],make:[3,1,4,5,7,8],transpar:[4,7],headlen:[4,7],split:[4,7],version_str:[4,7],nghttp2_on_stream_close_callback:[4,7,6],complet:[3,7,6,4],start_listen:3,bufferevent_openssl_get_ssl:[3,6],nghttp2_err_deferred_data_exist:[4,7],rais:1,ssl_ctx_new:[3,6],zlib1g:5,ownership:[4,7],niv:[4,7,5],thu:[3,7,5,8,4],nghttp2_session_get_effective_local_window_s:[4,7],inherit:1,origin_len:[4,7],client:[],thi:[0,1,2,3,4,5,6,7,8],endif:[3,7,2],gzip:5,left:[4,7],protocol:[0,1,3,4,5,6,7,8],just:[3,4,5,6,7,8],initiate_connect:6,ifdef:[3,7],yet:[4,7],previous:[4,7],easi:5,settings_hd_table_bufsize_max:[4,7],els:[3,6],applic:[3,1,4,5,6,7],nghttp2_nv_flag:[4,7],initialize_nghttp2_sess:[3,6],specif:[3,7,1,6,4],arbitrari:[4,7],http2_session_data:[3,6],client_addr:3,manual:[5,8],html:[0,7,5,4,3],tcp_nodelai:[3,6],unnecessari:[4,7],underli:[3,6],www:[4,7,8],right:[3,7,6,2],deal:[3,7,6,2,4],intern:[4,7],successfulli:[3,7,6,4],transmiss:[3,7,6,4],requesthandlerclass:[5,1],ni_numerichost:3,bottom:[4,7],nghttp2_data_source_read_callback:[4,7],subclass:[5,1],track:[3,5,6],condit:[3,7,6,2,4],foo:[5,1],localhost:[5,8],core:5,sensibl:[4,7],insecur:8,repositori:[3,6],peer:[3,7,6,4],post:[4,7,5],cacert:8,nghttp2_submit_data:[4,7],nghttp2_settings_max_concurrent_stream:[3,7,6,4],produc:[4,7],f127:8,evbuff:[3,6],encod:[3,7,5,1,4],bound:[4,7],down:[3,6],pair:[3,1,4,5,6,7],errx:[3,6],git:[],session_send:[3,6],wai:[4,7,5,8],support:[3,4,5,6,7,8],suppors:8,avail:[3,1,4,5,6,7,8],overhead:5,fork:5,head:[3,7,4],form:[4,7,5,1],offer:[5,1],bev_event_connect:[3,6],heap:5,"true":[5,1],hddeflat:[5,1],ssl_ctx_free:[3,6],maximum:[4,7,5],tell:[3,7,1,6,4],deafult:5,autoconf:5,emit:[3,7,6,4],nghttp2_initial_window_s:[4,7],featur:5,httpbi:[0,7,5,4],"abstract":[3,6],unreleas:5,exist:[4,7,5,8],protocol_id_len:[4,7],ai_flag:3,ends_with:3,check:[3,7,6,4],delete_http2_session_data:[3,6],encrypt:8,when:[3,1,4,5,6,7],role:[3,7,4],test:8,send_client_connection_head:6,unlimit:[4,7],heder:[4,7],intend:[3,8],af_unspec:[3,6],nghttp2_option_new:[4,7],nghttp2_max_window_s:[4,7],technot:[4,7],notic:[3,7,6,2],max_siz:5,evconnlistener_new_bind:3,longer:[3,5],nghttp2_check_header_nam:[4,7],ignor:[3,7,4],time:[3,1,4,5,7,8],push:[4,7,5,1],skip:[4,7],consum:4,nghttp2_on_frame_recv_callback:[4,7,6],nghttp2ver_h:2,decid:[4,7,1],create_ssl_ctx:[3,6],depend:[3,4,5,6,7,8],readabl:6,sourc:[0,7,6,4,3],string:[3,1,4,5,6,7],nghttp2_settings_enable_push:[4,7],nghttp2_hd_inflate_new:[4,7],host_len:[4,7],level:[3,7,1,4],did:[4,7,6],item:5,settings_id:[4,7],conhead:3,upper:[4,7,1],nghttp2_hd_deflate_set_no_refset:[4,7],sign:8,port:[3,1,4,5,6,7,8],data_flag:[3,7,4],appear:[4,7,5],event_base_fre:[3,6],current:[3,7,5,1,4],nghttp2_err_data_exist:[4,7],lev_opt_close_on_fre:3,gener:[4,7,5],pad_high:[4,7],nghttp2_hd_inflate_del:[4,7],address:[5,8,1],connect_error:[4,7],queue:[3,7,6,4],behav:[4,7,8],ourselv:[3,6],nghttp2_err_goaway_already_s:[4,7],regardless:[4,7],extra:[5,6],modul:[5,1],prefer:[4,7],instal:5,hdinflat:[5,1],memori:[3,7,1,6,4],bufferevent_get_output:[3,6],handler:[5,1],nghttp2_altsvc:[4,7],strdup:3,prev:3,share:[4,7,5,1],rst_stream:[3,7,6,4],ctype:3,nghttp2_submit_window_upd:[4,7],prepar:[4,7],cap:1,stream_user_data:[4,7,6],cat:[3,7,6,4],descriptor:[3,7,4],whatev:1,http2:[0,1,4,5,7,8],purpos:[3,7,6,2],uf_path:6,claim:[3,7,6,2],stream:[3,1,4,5,6,7],agent:5,critic:[4,7],abort:[4,7],nghttp2_header:[3,7,6,4],occur:[4,7,1],alwai:[3,7,4],multipl:[3,1,4,5,7,8],charset:5,ping:[4,7],write:[],sslcontext:[5,1],max:[4,7,6],intrus:3,mai:[3,1,4,6,7,8],acceptcb:3,data:[3,1,4,5,6,7],autotool:5,stdin:5,inform:[3,7,5,6,4],"switch":[3,5,6],combin:[4,7],talk:[3,5],nghttp2_err_stream_shut_wr:[4,7],size_t:[3,7,6,4],nghttp2_err_unsupported_vers:[4,7],still:[3,7,5,4],nghttp2_settings_entri:[3,7,6,4],dynam:[4,7,5,1],entiti:3,disconnect:[3,6],precondit:[4,7],nghttp2_priority_spec:[4,7],tort:[3,7,6,2],window:[4,7],main:[3,6],non:[3,1,4,5,6,7,8],synopsi:[3,6],env:[5,1],"5xx":5,nghttp2_submit_head:[4,7],nghttp2_on_header_callback:[3,7,6,4],"0x000400":2,name:[3,1,4,5,6,7],version_num:[4,7],config:5,no_error:5,drop:[3,7,6,4],css:[5,1],millisec:5,replac:[4,7],individu:[4,7,8],continu:[3,7,6,4],event_base_loop:[3,6],turoti:6,happen:[3,1,6],ai_addrlen:3,libjemalloc:5,space:[4,7,5],output_length:5,earlier:[3,6],event_base_new:[3,6],ssl_filetype_pem:3,argv:[3,6],org:[0,7,5,4],"byte":[3,1,4,5,6,7],argc:[3,6],care:[4,7],nghttp2_opt_no_auto_connection_window_upd:[4,7],nghttp2_hd_deflate_change_table_s:[4,7],nghttp2ver:[],"88448504252dd5918485":5,befor:[3,7,5,1,4],turn:8,nghttp2_flag_non:[3,7,6,4],place:[4,7],evdns_base_new:6,origin:[4,7,8],directli:[3,7,6,4],onc:[4,7],arrai:[4,7,5,6],yourself:5,nghttp2_is_fat:[4,7],nghttp2_flow_control_error:[4,7],submit:[4,7,6],on_frame_recv_callback:[3,7,6,4],open:[3,7,5,4],size:[3,7,5,1,4],given:[4,7,5,1],necessarili:[4,7],draft:[0,7,5,4],internal_error:[4,7],conveni:[4,7,1],ssl_ctx:[3,7,6,4],copi:[3,1,2,4,6,7],specifi:[],on_head:[5,1],mostli:5,holder:[3,7,6,2],than:[3,7,5,1,4],serv:3,wide:3,nghttp2_session_get_outbound_queue_s:[4,7],were:[3,7,6,4],posit:[4,7],read_callback:[3,7,4],nghttp2_min_weight:[4,7],enhance_your_calm:[4,7],sai:[4,7],pri:7,argument:[3,1,4,5,6,7,8],deliv:[4,7],saw:8,sat:5,bitwis:[4,7],event_bas:[3,6],nghttp2_flag_prior:[4,7],destroi:[3,6],payloadlen:[4,7],note:[3,4,5,6,7,8],take:[3,7,5,6,4],deflate_hd_table_bufsize_max:[4,7],noth:[4,7,5,8,1],begin:6,sure:[3,5,6],normal:[4,7],buffer:[3,7,5,6,4],compress:[0,7,5,1,4],nghttp2_hcat_request:[3,7,4],pathlen:6,sublicens:[3,7,6,2],nghttp2_before_frame_send_callback:[4,7],http2_select:[4,7],later:[3,1,4,6,7,8],gracefulli:6,show:1,unprocess:[3,6],concurr:[3,7,5,4],permiss:[3,7,6,2],nghttp2_session_set_stream_user_data:[3,7,4],threshold:3,print_hd_tabl:1,onli:[3,4,5,6,7,8],explicitli:1,end_seg:[4,7],state:[3,7,5,4],"short":[3,6],"4e5535a027780":5,overwritten:[4,7],reset:6,variou:[4,7],get:[3,1,4,5,6,7,8],outlen:[4,7,6],ssl:[],cannot:[3,7,8,1,4],nghttpd:8,requir:8,nghttp2_set_stream_user_data:3,nghttp2_frame_size_error:[4,7],aris:[3,7,6,2],burst:8,nghttp2_flag_compress:[4,7],reserv:[4,7],op_no_sslv2:[5,1],detect:[4,7,5,1],weighttp:5,nghttp2_hd_inflate_fin:[4,7],enough:[4,7],between:8,"import":[5,1],fcntl:3,pipefd:3,evdns_bas:6,submit_request:6,region:[4,7],contract:[3,7,6,2],fontend:8,tutori:[],mani:[4,7],nghttp2_data_provid:[3,7,4],inspir:5,nghttp2_err_too_many_inflight_set:[4,7],dispatch:8,cancel:[4,7],damag:[3,7,6,2],http2server:[5,1],header_table_s:5,nghttp2_settings_max:[4,7],netdb:3,nghttp2_on_unknown_frame_recv_callback:[4,7],nghttp2_err_buffer_error:[4,7],those:[3,7,6,4],"case":[3,1,4,5,6,7,8],hdr:[3,5,1,6],invok:[3,1,4,5,6,7,8],invoc:[3,7,1,4],margin:1,valuelen:[3,7,6,4],on_data_chunk_recv_callback:[4,7,6],stdout:[5,6],ascii:[4,7],develop:[],author:[3,1,2,5,6,7],bev_opt_defer_callback:[3,6],alphabet:[4,7],same:[3,1,4,5,7,8],ssl_library_init:[3,6],nghttp2_err_flow_control:[4,7],pac:[5,8],pad:[4,7],document:2,finish:[3,7,5,6,4],decompress:[4,7,5,1],handshake_leftlen:3,extern:7,postpon:[4,7],ai_next:3,without:[3,1,2,4,5,6,7,8],evict:[4,7],nghttp2_push_promis:[4,7],on_request_don:[5,1],event2:[3,6],nghttp2_err_def:[4,7],nghttp2_submit_set:[3,7,6,4],execut:[5,1],multiplex:3,hint:3,except:[4,7,1],identif:[4,7],nghttp2_select_next_protocol:[4,7,6],real:8,unistd:[3,6],create_http2_session_data:[3,6],nghttp2_version_ag:[4,7],arriv:[5,1],nghttp2_check_header_valu:[4,7],traffic:5,nghttp2_hd_inflate_change_table_s:[4,7],next_proto_cb:3,integ:[4,7],server:8,either:[3,7,1,4],output:[3,1,4,5,6,7],manag:[3,7,4],stream_clos:[4,7],protocol_sslv23:[5,1],set_no_refset:1,ssl_ctx_set_next_protos_advertised_cb:3,handshak:[3,6],nonzero:[3,7,4],easili:6,"2xx":5,exit:[3,6],data_ptr:[4,7],base64url:[4,7],nghttp2_session_server_new:[3,7,4],found:[3,7,4],getnameinfo:3,refers:1,src:5,deflat:[4,7,5,1],ack:[4,7,5],settings_payload:[4,7],act:[3,8,6],routin:[3,6],consid:5,least_vers:[4,7],error_repli:3,your:5,b2a_hex:[5,1],nghttp2_hcat_respons:[4,7,6],hex:[3,5],start:[3,4,5,6,7,8],nghttp2_err_stream_clos:[4,7],interfac:1,low:[4,7],lot:[4,7],ipv6:5,strictli:[4,7,1],next_proto_list:3,nghttp2_proto_version_id_len:[3,7,4],tupl:[5,1],nghttp2_err_invalid_st:[4,7],satur:5,nghttp2_flag_end_seg:[4,7],possibl:[3,7,6,4],"default":[],applayerprotoneg:[4,7],hpack:[],err_get_error:[3,6],expect:[5,1],creat:[3,4,5,6,7,8],mainli:[4,7],decreas:[4,7],file:[3,2,4,5,6,7,8],nghttp2_err_invalid_header_block:[4,7],fill:[3,7,4],denot:[4,7,6],functypedef:7,googl:[5,8],kbyte:5,field:[3,1,4,5,6,7],valid:[4,7,5,8],nghttp2_prioriti:[4,7],print_head:6,you:[3,1,4,5,6,7,8],sequenc:[3,1,4,5,6,7],promised_stream_user_data:[4,7],reduc:[4,7],cunit:5,directori:[3,5,6],represent:[4,2],all:[3,1,2,4,6,7,8],on_unknown_frame_recv_callback:[4,7],illustr:[5,1],nghttp2_err_start_stream_not_allow:[4,7],follow:[3,1,2,4,5,6,7,8],alt:5,ptr:[3,7,6,4],app_cont:3,uint8_t:[3,7,6,4],articl:8,readcb:[3,6],program:8,bufferevent_writ:[3,6],uf_queri:6,evbuffer_remov:3,fals:5,pad_low:[4,7],settings_header_table_s:[4,7],util:8,nghttp2_client_connection_header_len:[4,7],failur:[4,7],veri:[4,7,6],"__cplusplu":7,list:[3,7,1,4],nghttp2_headers_categori:[4,7],adjust:[4,7,5],stderr:[3,7,5,6,4],small:[4,7],inflate_header_block:[4,7],session_recv:3,zero:[4,7],pass:[4,7,1,6],further:[3,7,6,4],what:[4,7,5,8,1],sub:3,sun:5,section:[4,7],delet:[4,7,6],version:[],"public":[],libjansson:5,padlen:[4,7,5],percentage_of_original_s:5,excess:3,modifi:[3,7,5,6,2],valu:[3,1,4,5,6,7],search:3,ai_addrconfig:3,nghttp2_err_push_dis:[4,7],on_clos:[5,1],prior:[4,7,5],amount:[3,7,1,6,4],action:[3,7,6,2,4],via:[3,4,5,6,7,8],primit:6,put:[4,7],famili:[3,6],establish:[3,6],select:[4,7,8,6],regist:3,libev:5,taken:[4,7],minor:[4,2],more:[3,7,5,6,4],tsujikawa:[3,7,6,2],nghttp2_settings_header_table_s:[4,7],default_header_table_s:1,flag:[3,7,5,6,4],particular:[3,7,6,2,4],known:8,nghttp2_err_wouldblock:[3,7,6,4],cach:8,none:[5,1],endpoint:[4,7,5],dev:[5,2],remain:[3,7,6,4],def:[5,1],emiss:[4,7],accept:[3,7,5,4],minimum:[3,7,4],ssl_op_al:[3,6],nghttp2_submit_altsvc:[4,7],create_ssl:[3,6],strlen:[3,6],huge:[3,6],netinet:[3,6],secur:[5,8],anoth:[4,7,8],serveraddr:[5,8],reject:[4,7],sec9:[4,7],simpl:[3,7,6,4],hd_inflat:[4,7],resourc:[],referenc:5,variant:[4,7],spdylai:[5,8],nghttp2_client_connection_preface_len:[3,7,6,4],associ:[3,1,2,4,5,6,7],github:[0,5],caus:[4,7],callback:[3,1,4,5,6,7],nghttp2_nv_flag_non:[3,7,6,4],alpn:[4,7,5,8,1],authroiti:6,max_ag:[4,7],hypertext:[0,5],libcunit1:5,through:[3,5,8],paramet:[4,7,6],style:[5,1],binari:6,nghttp2_hcat_push_respons:[4,7],pend:[3,7,6,4],nghttp2_err_eof:[4,7],progoram:6,nghttp2_nv_flag_no_index:[4,7],"0x010203":[4,2],"return":[3,1,4,5,6,7,8],check_path:3,nghttp2_initial_max_concurrent_stream:[4,7],readlen:3,nghttp2_err_callback_failur:[3,7,6,4],tear:[3,6],achiev:[3,7,4],fulli:[3,7,4],unicod:1,trailer:[4,7],nghttp2_on_frame_send_callback:[4,7],weight:[4,7],realli:[8,6],nghttp2_hd_inflate_flag:[4,7],connect:[3,2,4,5,6,7,8],field_set:6,event:[3,1,2,5,6,7],app_ctx:3,ftw:[5,1],publish:[3,7,6,2],primari:[4,7],etag:5,print:[5,1,6],on_frame_not_send_callback:[4,7],proxi:[],differ:[4,7,8],uf_host:6,reason:[3,7,1,4],base:[3,5],ask:[4,7],nghttp2_session_mem_recv:[3,7,6,4],nghttp2_flag:[4,7],recv:5,prefac:[3,7,8,6,4],thread:[3,5,8],omit:[4,7,1,6],nghttp2_err_invalid_stream_st:[4,7],assign:[3,7,6,4],feed:[3,7,6,4],major:[4,2],notifi:[3,7,4],prevent:[4,7],number:[3,7,1,2,4],done:[3,4,5,6,7,8],construct:[4,7,5,1],stdlib:7,nghttp2_internal_error:[3,7,4],script:[5,8,1],data_prd:[3,7,4],nghttp2_session_get_stream_user_data:[3,7,4],least:[4,7,5],scheme:[5,1,6],store:[3,7,6,4],input_length:5,memset:[3,6],option:[3,1,4,5,6,7,8],memcmp:3,nghttp2_client_connection_head:[4,7],pars:6,window_upd:[4,7],doubli:3,remot:[3,7,6,4],remov:[3,7,4],bridg:[],str:1,consumpt:[3,6],nghttp2_error:[4,7],window_size_incr:[4,7],lib_error_cod:[4,7],arrlen:[3,6],packag:5,"null":[3,7,6,4],syn_stream:[4,7],sell:[3,7,6,2],outbound:[4,7],built:5,equival:[4,7],self:[5,8,1],also:[3,7,8,6,4],append:1,nghttp2_err_frame_size_error:[4,7],make_nv:[3,6],distribut:[3,7,6,2],reacb:6,reach:[4,7],chart:[4,7],most:[4,7],charg:[3,7,6,2],addr:3,"01881f3468e5891afcbf83868a3d856659c62e3f":5,o_rdonli:3,frame_size_error:[4,7],cover:8,h2c:[7,5],pri_spec:[4,7],hdtabl:1,session:[3,7,5,6,4],nghttp2_submit_push_promis:[4,7],copyright:[3,7,6,2],refused_stream:[4,7],nghttp2_opt_no_auto_stream_window_upd:[4,7],queu:[3,7,6,4],express:[3,7,6,2],kind:[3,7,6,2,4],nativ:5,"3xx":5,liabl:[3,7,6,2],before_frame_send_callback:[4,7],retreiv:6,crt:[3,5,8,1],h2load:5,certif:[],set:[3,1,4,5,6,7],seq:5,sep:5,ousid:5,remove_stream:3,nghttp2_submit_goawai:[4,7],sec:5,arg:[3,7,6,4],close:[3,1,4,5,6,7],jemalloc:5,analog:[4,7],strchr:3,someth:[4,7],won:[3,7,4],hold:[4,7],nghttp2_on_data_chunk_recv_callback:[4,7,6],altern:5,numer:[4,7,2],sole:[4,7],succeed:5,percent_decod:3,both:[3,4,5,6,7,8],last:[4,7,5],delimit:5,nghttp2_data_flag_non:[4,7],nghttp2_session_want_writ:[3,7,6,4],tempor:[4,7],context:[3,4,5,6,7,8],compression_error:[4,7],whole:[4,7,5,1],simpli:[3,6],point:[3,7,6,4],header:[],shutdown:[3,7,6,4],nghttp2_session_client_new:[4,7,6],nghttp2_session:[3,7,6,4],backend:[5,8],due:[4,7],empti:[3,1,4,5,6,7],send_respons:[3,5,1],whom:[3,7,6,2],stdint:7,add_stream:3,flight:[4,7],nghttp2_err_nomem:[4,7],settings_enable_push:[4,7,5],nghttp2_session_terminate_sess:[4,7,6],buflen:[4,7],func:7,next_proto_list_len:3,look:[3,6],"while":[3,7,6,4],behavior:[4,7],error:[3,1,4,5,6,7],loop:[3,5,1,6],malloc:[3,6],nghttp2_session_callback:[3,7,6,4],readi:3,user_data:[3,7,6,4],itself:[3,7,6,4],flow_control_error:[4,7],grant:[3,7,6,2],belong:[4,7],read:[],decod:[3,7,1,4],uf_schema:6,mytyp:[4,7],inflat:[4,7,5,1],moment:5,user:[4,7,5,8,6],implement:[0,3,4,5,6,7],nghttp2_h:7,noninfring:[3,7,6,2],entri:[4,7,5,1],nghttp:8,person:[3,7,6,2],uint32_t:[3,7,4],on_frame_send_callback:[4,7],nghttp2_ping:[4,7],input:[3,7,5,6,4],subsequ:[4,7,1],build:[],bin:[5,1],on_begin_headers_callback:[3,7,6,4],obsolet:[4,7],format:[3,4,5,6,7,8],http_parser:6,bit:[4,7,2],strstr:3,success:[4,7,5],signal:[3,7,6,4],lib_error:[4,7],some:[3,1,4,6,7,8],back:[4,7],sampl:5,sizeof:[3,6],libssl:5,lev_opt_reus:3,though:8,per:[5,8,1],pem:8,larg:[4,7],make_nv2:6,settings_compress_data:[4,7],machin:[5,8],run:[3,1,4,5,6,7,8],step:[4,7],feb:5,handshake_readcb:3,writecb:[3,6],commun:[3,5,6],idl:[4,7],block:[3,1,4,5,6,7],nghttp2_err_paus:[4,7],nsm:7,within:5,nghttp2_send_callback:[4,7,6],chang:[3,7,1,4],announc:5,occupi:[5,1],inclus:[4,7],errno:3,bodi:[3,1,4,5,6,7],"long":[4,7,5],nghttp2:[],forward:[4,7,5,8],change_table_s:1,session_ptr:[4,7],repeatedli:[4,7],link:[3,5,8],translat:8,ni_maxhost:3,don:[3,7,5,4],line:[5,8],mitig:5,concaten:[4,7],utf:[5,1],caller:[3,7,4],nghttpx:[],clear:[4,7,1],parser:6,repres:[4,7],"char":[3,7,6,4],incomplet:5,sublen:3,curl:8,titl:3,invalid:[4,7],librari:[],nghttp2_default_header_table_s:[4,7],libtool:5,create_http2_stream_data:[3,6],nghttp2_flag_pad_low:[4,7],algorithm:[4,7],svc:5,nghttp2_submit_request:[4,7,6],namelen:[3,7,6,4],far:[3,6],avoid:[3,7,5,6,4],asyncio:[5,1],getaddrinfo:3,code:[3,1,4,5,6,7],queri:6,nghttp2_frame_hd:[4,7],cython:5,privat:[3,5,8],send:[3,1,4,5,6,7,8],http_parser_url:6,lower:[4,7,8],sens:[4,7],fatal:[3,7,6,4],nghttp2_data_flag:[4,7],sent:[3,7,6,4],nghttp2_submit_p:[4,7],untouch:[4,7],relev:[3,6],tri:[4,7,8],magic:[3,6],http_parser_parse_url:6,"try":[4,7,5],microsec:5,pleas:[3,4,5,6,7,8],impli:[3,7,6,2],smaller:5,snprintf:6,"0x0":[4,7],download:[0,5],client_address:[5,1],index:[4,7,5],compar:[4,7],access:[4,7,5,8,1],experiment:[0,5],nghttp2_hd_deflate_new:[4,7],can:[3,1,4,5,6,7,8],inspect:[4,7],ssl_ctx_set_opt:[3,6],nghttp2_enhance_your_calm:[4,7],len:[3,7,6,4],closur:[4,7,1,6],nghttp2_rst_stream:[4,7],ubuntu:5,becom:[3,7,2,4],sinc:[3,4,5,6,7,8],larger:[4,7,1],ctx:[5,1],host:[0,1,3,4,5,6,7,8],autoreconf:5,jansson:5,greac:[3,6],typic:5,set_npn_protocol:1,output_wouldblock_threshold:3,appli:[4,7],gatewai:8,bufferev:[3,6],from:[8,2],nghttp2_err_invalid_stream_id:[4,7],binascii:[5,1],upgrad:[4,7,5,8],next:[3,7,6,4],findproxyforurl:[5,8],usr:[5,1],nghttp2_nv:[3,7,6,4],nghttp2_option_del:[4,7],goawai:[3,7,5,6,4],benchmark:[],inflater_ptr:[4,7],in_fin:[4,7],account:[4,7,5,6],retriev:[3,7,1,6,4],tunnel:5,nghttp2_settings_id:[4,7],aliv:[3,7,4],sslv23_client_method:6,control:[4,7,8],process:[3,1,4,5,6,7],nghttp2_session_get_remote_set:[4,7],high:1,fprintf:[3,7,6,4],onlin:[4,5],serial:[3,7,6,4],evdns_base_fre:6,no_refset:[4,7,1],nghttp2_session_want_read:[3,7,6,4],ssl_ctx_use_privatekey_fil:3,evbas:[3,6],instead:[4,7,1],nullifi:[4,7],npn:[3,4,5,6,7,8],max_payloadlen:[4,7],eventcb:[3,6],nghttp2_compression_error:[4,7],alloc:[3,7,4],bind:[],nvlen:[3,7,6,4],correspond:[3,5],element:[3,7,4],issu:[0,7,5,8,4],stream_id:[3,1,4,5,6,7],nghttp2_connect_error:[4,7],ssize_t:[3,7,6,4],fallback:8,furnish:[3,7,6,2],move:[4,7],chosen:1,nghttp2_hd_inflate_hd:[4,7],therefor:[4,7,1,6],nghttp2_session_send:[3,7,6,4],inlen:[4,7,6],recept:[3,7,6,4],crash:4,greater:[4,7],handl:[3,1,4,5,6,7],nghttp2_goawai:[4,7],automat:[4,7],nghttp2_session_mem_send:[4,7],anyth:6,uf_port:6,mode:[],bump:[4,7],chunk:[4,7,5,1,6],ouf:[4,7],nghttp2_err_temporal_callback_failur:[3,7,4],"static":[3,7,5,6,4],our:6,patch:[4,2],out:[3,2,4,5,6,7,8],variabl:[5,1],req:5,n1000:5,categori:[4,7,6],suitabl:[4,7],rel:3,field_data:6,recv_callback:[4,7],insid:5,cleartext:[4,7],releas:[],nghttp2_hd_inflate_non:[4,7],nghttp2_option_set_no_auto_connection_window_upd:[4,7],could:[3,7,1,6,4],keep:[3,7,5,6,4],length:[3,7,5,6,4],outsid:[4,5],retain:[4,7],softwar:[3,7,6,2],addrinfo:3,date:5,end_stream:[4,7,5],nghttp2_hd_inflat:[4,7],unknown:[3,7,4],system:[3,8,6],messag:[4,7,6],attach:[3,6],attack:5,termin:[3,7,5,6,4],"final":[4,7],ipv4:5,request_head:[5,1],sa_handl:[3,6],enqueu:6,exactli:[3,5],nghttp2_err_header_comp:[4,7],see:[3,7,5,6,4],structur:[3,7,6,4],charact:[3,7,6,4],nghttp2_session_del:[3,7,6,4],nghttp2_default_weight:[4,7],ssl_new:[3,6],unencrypt:8,bufferevent_get_input:[3,6],corrupt:6,have:[3,7,5,6,4],tabl:[4,7,5,1],need:[4,7,5,8,6],ai_socktyp:3,"0x08":[4,7],"0x09":[4,7],"0x04":[4,7,5],"0x05":[4,7,5],"0x06":[4,7],"0x07":[4,7],"0x00":[4,7,5],"0x01":[4,7,5],"0x02":[4,7],"0x03":[4,7],nghttp2_refused_stream:[4,7],evbuffer_pullup:[3,6],which:[3,1,4,5,6,7,8],zlib:5,singl:[3,1,4,5,6,7],opaque_data_len:[4,7],unless:[4,7],bufferevent_openssl_socket_new:[3,6],deploy:8,settings_max_concurrent_stream:[3,7,5,6,4],stream_data:[3,6],deploi:5,"class":[5,1],nghttp2_error_cod:[3,7,6,4],nghttp2_err_stream_id_not_avail:[4,7],url:[3,5,8],request:[3,1,4,5,6,7,8],uri:[5,8,1,6],pipe:3,determin:[5,1],nghttp2_pack_settings_payload:[4,7],"0x0d":[4,7],"0x0a":[4,7],"0x0b":[4,7],ssl_load_error_str:[3,6],text:[5,1],verbos:5,redirect:6,nghttp2_submit_rst_stream:[3,7,4],forev:1,should:[3,7,5,6,4],suppos:8,local:[4,7,8],meant:6,familiar:5,memcpi:[3,6],nghttp2_session_client_new2:[4,7],settings_initial_window_s:[4,7,5],nghttp2_data:[3,7,4],increas:[4,7],nghttp2_submit_respons:[3,7,4],enabl:[5,8,1],nghttp2_info:[4,7],contain:[3,1,4,5,6,7,8],nghttp2_window_upd:[4,7],frame:[3,1,4,5,6,7],knowledg:5,nghttp2_hd_deflat:[4,7],temporarili:[4,7],statu:[],wire:[3,5,6],correctli:[4,7],pointer:[3,7,4],written:[3,7,5,6,4],https_uri:6,progress:5,nghttp2_initial_connection_window_s:[4,7],kei:[3,1,4,5,7,8],entir:[3,7,4],last_stream_id:[4,7,5],addit:[],file_read_callback:3,nghttp2_proto_version_id:[3,7,6,4],equal:3,etc:[3,5,6],instanc:[4,7,5,1],uint16_t:[4,7,6],get_hd_tabl:1,nghttp2_data_flag_eof:[3,7,4],rfc2616:[4,7],m10:5,commenc:6,respect:[4,7,6],nghttp2_recv_callback:[4,7],ssl_ctx_set_next_proto_select_cb:[4,7,6],insuffici:[4,7],compon:6,json:5,treat:[3,7,4],nghttp2_err_invalid_argu:[4,7],immedi:[4,7],nghttp2_hcat_head:[4,7],altsvc:[4,7,5],http2jp:5,iobas:1,sock_stream:3,evconnlisten:3,on_header_callback:[3,7,6,4],multi:5,plain:[5,8,1],defin:[3,7,6,2,4],eintr:3,inadequate_secur:[4,7],helper:[4,7],on_request_recv:3,libxml2:5,squid:[5,8],select_next_proto_cb:[4,7,6],archiv:[3,6],substanti:[3,7,6,2],incom:[3,1,4,5,7,8],let:[3,6],member:[3,7,4],python:[],ifndef:[7,2],http:[],hostnam:[5,8,1],effect:[4,7],initi:[3,7,1,6,4],dealloc:[4,7],inflate_flag:[4,7],off:[8,6],well:[3,6],app_context:3,"0x10":[4,7],exampl:[3,1,4,5,6,7,8],command:[5,8],choos:[4,7],error_cod:[3,1,4,5,6,7],nghttp2_data_sourc:[3,7,4],usual:[4,7],paus:[4,7],less:[4,7],send_callback:[3,7,6,4],half:[4,7],obtain:[3,7,6,2],tcp:[3,7,8,6,4],libnghttp2:5,heavili:5,web:[3,5,8],cert_fil:3,send_server_connection_head:3,priorit:[4,7],addrlen:3,add:[3,7,4],c10:5,match:[3,6],gmt:5,nvu:5,know:[4,7,8],nva:[3,7,6,4],python3:[5,1],resid:[3,6],like:[3,1,4,5,6,7,8],foobarbuzz:5,protocol_id:[4,7],nghttp2_flag_end_head:[4,7],nghttp2_priority_spec_check_default:[4,7],necessari:[3,7,1,4],page:[3,6],revers:[5,8],suppli:[4,7,8],"export":3,nghttp2_session_get_effective_recv_data_length:[4,7],error_html:3,transport:6,lead:[4,7],baseeventloop:1,octet:[3,6],overlap:[4,7],isxdigit:3,outgo:[3,7,4],nghttp2_session_upgrad:[4,7],delete_http2_stream_data:[3,6],usag:[3,5,1,6],settings_payloadlen:[4,7],nghttp2_nv_compare_nam:[4,7],about:[3,7,1,6,4],actual:[3,7,6,4],socket:[3,6],constructor:1,ssl_tlsext_err_ok:[3,7,6,4],disabl:[],nghttp2_client_connection_prefac:[3,7,6,4],own:[4,7],nghttp2_err_invalid_fram:[4,7],ssl_op_no_sslv2:[3,6],warranti:[3,7,6,2],automak:5,merg:[3,7,6,2],val:[3,7,6,4],nghttp2_priority_spec_default_init:[4,7],ai_famili:3,transfer:[0,7,5,8,4],intention:[4,7],much:3,buz:[5,1],unexpect:[4,7],nghttp2_hd_deflate_bound:[4,7],bufferevent_fre:[3,6],overflow:[4,7],highest:[4,7],buf:[3,7,4],count:[4,7],succe:[4,7],nghttp2_stream_clos:[4,7],whether:[3,7,6,2],googlecod:[4,7],asynchron:[4,7],limit:2,otherwis:[3,7,6,2,4],problem:[4,7],sockaddr:3,nghttp2_on_frame_not_send_callback:[4,7],evalu:1,strndup:6,"int":[3,7,6,4],baserequesthandl:[5,1],nghttp2_flag_end_stream:[3,7,4],allow:[4,7,5],percent:3,detail:[4,7],other:[3,2,4,6,7,8],futur:[4,7],rememb:3,stat:3,nghttp2_max_weight:[4,7],err_error_str:[3,6],rel_path:3,proto_str:[4,7],debian:5,session_data:[3,6],sphinx:5,eof:[3,7,4],indirectli:4,rule:[4,7],portion:[3,1,2,4,6,7]},objtypes:{"0":"c:member","1":"c:macro","2":"c:type","3":"c:function","4":"py:module","5":"py:method","6":"py:attribute","7":"py:class","8":"py:data","9":"py:function"},objnames:{"0":["c","member","C member"],"1":["c","macro","C macro"],"2":["c","type","C type"],"3":["c","function","C function"],"4":["py","module","Python module"],"5":["py","method","Python method"],"6":["py","attribute","Python attribute"],"7":["py","class","Python class"],"8":["py","data","Python data"],"9":["py","function","Python function"]},filenames:["index","python-apiref","nghttp2ver.h","tutorial-server","apiref","package_README","tutorial-client","nghttp2.h","nghttpx-howto"],titles:["nghttp2 - HTTP/2 C Library","Python API Reference","nghttp2ver.h","Tutorial: HTTP/2 server","API Reference","nghttp2 - HTTP/2 C Library","Tutorial: HTTP/2 client","nghttp2.h","nghttpx - HOW-TO"],objects:{"":{NGHTTP2_ERR_INVALID_STATE:[4,1,1,"c.NGHTTP2_ERR_INVALID_STATE"],nghttp2_hd_inflate_end_headers:[4,3,1,"c.nghttp2_hd_inflate_end_headers"],nghttp2_nv_flag:[4,2,1,"c.nghttp2_nv_flag"],NGHTTP2_ERR_HEADER_COMP:[4,1,1,"c.NGHTTP2_ERR_HEADER_COMP"],NGHTTP2_SETTINGS_HEADER_TABLE_SIZE:[4,1,1,"c.NGHTTP2_SETTINGS_HEADER_TABLE_SIZE"],NGHTTP2_DATA_FLAG_COMPRESSED:[4,1,1,"c.NGHTTP2_DATA_FLAG_COMPRESSED"],nghttp2_settings_entry:[4,2,1,"c.nghttp2_settings_entry"],NGHTTP2_INTERNAL_ERROR:[4,1,1,"c.NGHTTP2_INTERNAL_ERROR"],nghttp2_frame_hd:[4,2,1,"c.nghttp2_frame_hd"],nghttp2_on_frame_recv_callback:[4,2,1,"c.nghttp2_on_frame_recv_callback"],nghttp2_priority_spec_init:[4,3,1,"c.nghttp2_priority_spec_init"],NGHTTP2_CLIENT_CONNECTION_HEADER_LEN:[4,1,1,"c.NGHTTP2_CLIENT_CONNECTION_HEADER_LEN"],nghttp2_goaway:[4,2,1,"c.nghttp2_goaway"],nghttp2_ping:[4,2,1,"c.nghttp2_ping"],NGHTTP2_ERR_INVALID_FRAME:[4,1,1,"c.NGHTTP2_ERR_INVALID_FRAME"],nghttp2_hd_inflate_hd:[4,3,1,"c.nghttp2_hd_inflate_hd"],nghttp2_priority_spec:[4,2,1,"c.nghttp2_priority_spec"],nghttp2_frame_type:[4,2,1,"c.nghttp2_frame_type"],NGHTTP2_ERR_INVALID_STREAM_ID:[4,1,1,"c.NGHTTP2_ERR_INVALID_STREAM_ID"],NGHTTP2_ALTSVC:[4,1,1,"c.NGHTTP2_ALTSVC"],nghttp2_select_next_protocol:[4,3,1,"c.nghttp2_select_next_protocol"],nghttp2_data_flag:[4,2,1,"c.nghttp2_data_flag"],NGHTTP2_ERR_INVALID_HEADER_BLOCK:[4,1,1,"c.NGHTTP2_ERR_INVALID_HEADER_BLOCK"],nghttp2_option_set_no_auto_stream_window_update:[4,3,1,"c.nghttp2_option_set_no_auto_stream_window_update"],nghttp2_session_callbacks:[4,2,1,"c.nghttp2_session_callbacks"],NGHTTP2_NV_FLAG_NO_INDEX:[4,1,1,"c.NGHTTP2_NV_FLAG_NO_INDEX"],NGHTTP2_ERR_TOO_MANY_INFLIGHT_SETTINGS:[4,1,1,"c.NGHTTP2_ERR_TOO_MANY_INFLIGHT_SETTINGS"],NGHTTP2_ERR_PROTO:[4,1,1,"c.NGHTTP2_ERR_PROTO"],nghttp2_hd_deflate_del:[4,3,1,"c.nghttp2_hd_deflate_del"],nghttp2_submit_window_update:[4,3,1,"c.nghttp2_submit_window_update"],NGHTTP2_ERR_UNSUPPORTED_VERSION:[4,1,1,"c.NGHTTP2_ERR_UNSUPPORTED_VERSION"],nghttp2_option:[4,2,1,"c.nghttp2_option"],NGHTTP2_SETTINGS_ENABLE_PUSH:[4,1,1,"c.NGHTTP2_SETTINGS_ENABLE_PUSH"],NGHTTP2_HD_INFLATE_FINAL:[4,1,1,"c.NGHTTP2_HD_INFLATE_FINAL"],nghttp2_session_client_new2:[4,3,1,"c.nghttp2_session_client_new2"],NGHTTP2_DATA:[4,1,1,"c.NGHTTP2_DATA"],nghttp2_hd_inflate_new:[4,3,1,"c.nghttp2_hd_inflate_new"],NGHTTP2_ERR_INVALID_STREAM_STATE:[4,1,1,"c.NGHTTP2_ERR_INVALID_STREAM_STATE"],nghttp2_on_header_callback:[4,2,1,"c.nghttp2_on_header_callback"],NGHTTP2_FLAG_ACK:[4,1,1,"c.NGHTTP2_FLAG_ACK"],NGHTTP2_STREAM_CLOSED:[4,1,1,"c.NGHTTP2_STREAM_CLOSED"],NGHTTP2_SETTINGS_MAX:[4,1,1,"c.NGHTTP2_SETTINGS_MAX"],NGHTTP2_MAX_WINDOW_SIZE:[4,1,1,"c.NGHTTP2_MAX_WINDOW_SIZE"],nghttp2_headers_category:[4,2,1,"c.nghttp2_headers_category"],nghttp2_session_mem_send:[4,3,1,"c.nghttp2_session_mem_send"],nghttp2_error_code:[4,2,1,"c.nghttp2_error_code"],nghttp2_send_callback:[4,2,1,"c.nghttp2_send_callback"],nghttp2_on_data_chunk_recv_callback:[4,2,1,"c.nghttp2_on_data_chunk_recv_callback"],NGHTTP2_ERR_START_STREAM_NOT_ALLOWED:[4,1,1,"c.NGHTTP2_ERR_START_STREAM_NOT_ALLOWED"],nghttp2_hd_inflate_change_table_size:[4,3,1,"c.nghttp2_hd_inflate_change_table_size"],nghttp2_priority_spec_check_default:[4,3,1,"c.nghttp2_priority_spec_check_default"],nghttp2_strerror:[4,3,1,"c.nghttp2_strerror"],NGHTTP2_ERR_FATAL:[4,1,1,"c.NGHTTP2_ERR_FATAL"],NGHTTP2_FLAG_COMPRESSED:[4,1,1,"c.NGHTTP2_FLAG_COMPRESSED"],nghttp2_submit_goaway:[4,3,1,"c.nghttp2_submit_goaway"],nghttp2_error:[4,2,1,"c.nghttp2_error"],NGHTTP2_INITIAL_CONNECTION_WINDOW_SIZE:[4,1,1,"c.NGHTTP2_INITIAL_CONNECTION_WINDOW_SIZE"],NGHTTP2_ERR_NOMEM:[4,1,1,"c.NGHTTP2_ERR_NOMEM"],NGHTTP2_ERR_PAUSE:[4,1,1,"c.NGHTTP2_ERR_PAUSE"],NGHTTP2_ENHANCE_YOUR_CALM:[4,1,1,"c.NGHTTP2_ENHANCE_YOUR_CALM"],nghttp2_hd_deflate_change_table_size:[4,3,1,"c.nghttp2_hd_deflate_change_table_size"],NGHTTP2_NO_ERROR:[4,1,1,"c.NGHTTP2_NO_ERROR"],nghttp2_select_padding_callback:[4,2,1,"c.nghttp2_select_padding_callback"],NGHTTP2_ERR_CALLBACK_FAILURE:[4,1,1,"c.NGHTTP2_ERR_CALLBACK_FAILURE"],nghttp2_session_get_effective_recv_data_length:[4,3,1,"c.nghttp2_session_get_effective_recv_data_length"],nghttp2_blocked:[4,2,1,"c.nghttp2_blocked"],nghttp2_session_server_new2:[4,3,1,"c.nghttp2_session_server_new2"],NGHTTP2_ERR_DEFERRED:[4,1,1,"c.NGHTTP2_ERR_DEFERRED"],nghttp2_push_promise:[4,2,1,"c.nghttp2_push_promise"],NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE:[4,1,1,"c.NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE"],nghttp2_session_get_outbound_queue_size:[4,3,1,"c.nghttp2_session_get_outbound_queue_size"],NGHTTP2_PROTO_VERSION_ID_LEN:[4,1,1,"c.NGHTTP2_PROTO_VERSION_ID_LEN"],NGHTTP2_BLOCKED:[4,1,1,"c.NGHTTP2_BLOCKED"],NGHTTP2_INITIAL_MAX_CONCURRENT_STREAMS:[4,1,1,"c.NGHTTP2_INITIAL_MAX_CONCURRENT_STREAMS"],nghttp2_data_source_read_callback:[4,2,1,"c.nghttp2_data_source_read_callback"],nghttp2_option_del:[4,3,1,"c.nghttp2_option_del"],NGHTTP2_ERR_FLOW_CONTROL:[4,1,1,"c.NGHTTP2_ERR_FLOW_CONTROL"],NGHTTP2_SETTINGS_TIMEOUT:[4,1,1,"c.NGHTTP2_SETTINGS_TIMEOUT"],nghttp2_hd_deflate_new:[4,3,1,"c.nghttp2_hd_deflate_new"],NGHTTP2_ERR_WOULDBLOCK:[4,1,1,"c.NGHTTP2_ERR_WOULDBLOCK"],nghttp2_hd_deflate_set_no_refset:[4,3,1,"c.nghttp2_hd_deflate_set_no_refset"],nghttp2_session_resume_data:[4,3,1,"c.nghttp2_session_resume_data"],NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE:[4,1,1,"c.NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE"],nghttp2_session_server_new:[4,3,1,"c.nghttp2_session_server_new"],NGHTTP2_ERR_BUFFER_ERROR:[4,1,1,"c.NGHTTP2_ERR_BUFFER_ERROR"],nghttp2_hd_inflate_del:[4,3,1,"c.nghttp2_hd_inflate_del"],NGHTTP2_CONTINUATION:[4,1,1,"c.NGHTTP2_CONTINUATION"],nghttp2_rst_stream:[4,2,1,"c.nghttp2_rst_stream"],NGHTTP2_ERR_INVALID_ARGUMENT:[4,1,1,"c.NGHTTP2_ERR_INVALID_ARGUMENT"],NGHTTP2_ERR_FRAME_SIZE_ERROR:[4,1,1,"c.NGHTTP2_ERR_FRAME_SIZE_ERROR"],nghttp2_session_del:[4,3,1,"c.nghttp2_session_del"],NGHTTP2_CLIENT_CONNECTION_PREFACE_LEN:[4,1,1,"c.NGHTTP2_CLIENT_CONNECTION_PREFACE_LEN"],NGHTTP2_HEADERS:[4,1,1,"c.NGHTTP2_HEADERS"],nghttp2_flag:[4,2,1,"c.nghttp2_flag"],NGHTTP2_DEFAULT_WEIGHT:[4,1,1,"c.NGHTTP2_DEFAULT_WEIGHT"],nghttp2_session_get_remote_settings:[4,3,1,"c.nghttp2_session_get_remote_settings"],nghttp2_hd_deflate_hd:[4,3,1,"c.nghttp2_hd_deflate_hd"],nghttp2_priority_spec_default_init:[4,3,1,"c.nghttp2_priority_spec_default_init"],NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS:[4,1,1,"c.NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS"],NGHTTP2_HCAT_REQUEST:[4,1,1,"c.NGHTTP2_HCAT_REQUEST"],NGHTTP2_FLAG_END_HEADERS:[4,1,1,"c.NGHTTP2_FLAG_END_HEADERS"],NGHTTP2_ERR_PUSH_DISABLED:[4,1,1,"c.NGHTTP2_ERR_PUSH_DISABLED"],NGHTTP2_HD_INFLATE_EMIT:[4,1,1,"c.NGHTTP2_HD_INFLATE_EMIT"],NGHTTP2_RST_STREAM:[4,1,1,"c.NGHTTP2_RST_STREAM"],nghttp2_option_set_peer_max_concurrent_streams:[4,3,1,"c.nghttp2_option_set_peer_max_concurrent_streams"],NGHTTP2_ERR_EOF:[4,1,1,"c.NGHTTP2_ERR_EOF"],NGHTTP2_HCAT_HEADERS:[4,1,1,"c.NGHTTP2_HCAT_HEADERS"],NGHTTP2_VERSION_NUM:[4,1,1,"c.NGHTTP2_VERSION_NUM"],NGHTTP2_SETTINGS:[4,1,1,"c.NGHTTP2_SETTINGS"],nghttp2_frame:[4,2,1,"c.nghttp2_frame"],nghttp2_submit_push_promise:[4,3,1,"c.nghttp2_submit_push_promise"],NGHTTP2_ERR_DEFERRED_DATA_EXIST:[4,1,1,"c.NGHTTP2_ERR_DEFERRED_DATA_EXIST"],NGHTTP2_CANCEL:[4,1,1,"c.NGHTTP2_CANCEL"],NGHTTP2_REFUSED_STREAM:[4,1,1,"c.NGHTTP2_REFUSED_STREAM"],nghttp2_on_frame_send_callback:[4,2,1,"c.nghttp2_on_frame_send_callback"],nghttp2_session_mem_recv:[4,3,1,"c.nghttp2_session_mem_recv"],NGHTTP2_VERSION:[4,1,1,"c.NGHTTP2_VERSION"],NGHTTP2_FLAG_PAD_HIGH:[4,1,1,"c.NGHTTP2_FLAG_PAD_HIGH"],nghttp2_session:[4,2,1,"c.nghttp2_session"],NGHTTP2_COMPRESSION_ERROR:[4,1,1,"c.NGHTTP2_COMPRESSION_ERROR"],NGHTTP2_HCAT_PUSH_RESPONSE:[4,1,1,"c.NGHTTP2_HCAT_PUSH_RESPONSE"],NGHTTP2_CLEARTEXT_PROTO_VERSION_ID:[4,1,1,"c.NGHTTP2_CLEARTEXT_PROTO_VERSION_ID"],nghttp2_submit_rst_stream:[4,3,1,"c.nghttp2_submit_rst_stream"],nghttp2_submit_headers:[4,3,1,"c.nghttp2_submit_headers"],nghttp2_recv_callback:[4,2,1,"c.nghttp2_recv_callback"],NGHTTP2_DEFAULT_HEADER_TABLE_SIZE:[4,1,1,"c.NGHTTP2_DEFAULT_HEADER_TABLE_SIZE"],nghttp2_session_get_stream_user_data:[4,3,1,"c.nghttp2_session_get_stream_user_data"],NGHTTP2_FLAG_PRIORITY:[4,1,1,"c.NGHTTP2_FLAG_PRIORITY"],nghttp2:[1,4,0,"-"],nghttp2_nv:[4,2,1,"c.nghttp2_nv"],nghttp2_altsvc:[4,2,1,"c.nghttp2_altsvc"],nghttp2_on_invalid_frame_recv_callback:[4,2,1,"c.nghttp2_on_invalid_frame_recv_callback"],nghttp2_version:[4,3,1,"c.nghttp2_version"],nghttp2_session_want_write:[4,3,1,"c.nghttp2_session_want_write"],nghttp2_on_unknown_frame_recv_callback:[4,2,1,"c.nghttp2_on_unknown_frame_recv_callback"],NGHTTP2_CLIENT_CONNECTION_PREFACE:[4,1,1,"c.NGHTTP2_CLIENT_CONNECTION_PREFACE"],NGHTTP2_ERR_STREAM_CLOSED:[4,1,1,"c.NGHTTP2_ERR_STREAM_CLOSED"],NGHTTP2_FLAG_END_STREAM:[4,1,1,"c.NGHTTP2_FLAG_END_STREAM"],nghttp2_hd_deflate_bound:[4,3,1,"c.nghttp2_hd_deflate_bound"],NGHTTP2_CLEARTEXT_PROTO_VERSION_ID_LEN:[4,1,1,"c.NGHTTP2_CLEARTEXT_PROTO_VERSION_ID_LEN"],NGHTTP2_ERR_GOAWAY_ALREADY_SENT:[4,1,1,"c.NGHTTP2_ERR_GOAWAY_ALREADY_SENT"],NGHTTP2_FLOW_CONTROL_ERROR:[4,1,1,"c.NGHTTP2_FLOW_CONTROL_ERROR"],nghttp2_session_set_stream_user_data:[4,3,1,"c.nghttp2_session_set_stream_user_data"],nghttp2_check_header_value:[4,3,1,"c.nghttp2_check_header_value"],NGHTTP2_ERR_STREAM_CLOSING:[4,1,1,"c.NGHTTP2_ERR_STREAM_CLOSING"],NGHTTP2_INADEQUATE_SECURITY:[4,1,1,"c.NGHTTP2_INADEQUATE_SECURITY"],nghttp2_session_client_new:[4,3,1,"c.nghttp2_session_client_new"],nghttp2_hd_inflater:[4,2,1,"c.nghttp2_hd_inflater"],nghttp2_check_header_name:[4,3,1,"c.nghttp2_check_header_name"],nghttp2_info:[4,2,1,"c.nghttp2_info"],NGHTTP2_PROTO_VERSION_ID:[4,1,1,"c.NGHTTP2_PROTO_VERSION_ID"],nghttp2_settings_id:[4,2,1,"c.nghttp2_settings_id"],NGHTTP2_DATA_FLAG_EOF:[4,1,1,"c.NGHTTP2_DATA_FLAG_EOF"],nghttp2_hd_inflate_flag:[4,2,1,"c.nghttp2_hd_inflate_flag"],nghttp2_session_send:[4,3,1,"c.nghttp2_session_send"],NGHTTP2_PROTOCOL_ERROR:[4,1,1,"c.NGHTTP2_PROTOCOL_ERROR"],nghttp2_hd_deflater:[4,2,1,"c.nghttp2_hd_deflater"],nghttp2_session_upgrade:[4,3,1,"c.nghttp2_session_upgrade"],nghttp2_on_begin_headers_callback:[4,2,1,"c.nghttp2_on_begin_headers_callback"],NGHTTP2_ERR_INSUFF_BUFSIZE:[4,1,1,"c.NGHTTP2_ERR_INSUFF_BUFSIZE"],nghttp2_settings:[4,2,1,"c.nghttp2_settings"],nghttp2_on_frame_not_send_callback:[4,2,1,"c.nghttp2_on_frame_not_send_callback"],nghttp2_option_set_no_auto_connection_window_update:[4,3,1,"c.nghttp2_option_set_no_auto_connection_window_update"],nghttp2_window_update:[4,2,1,"c.nghttp2_window_update"],nghttp2_session_get_stream_remote_window_size:[4,3,1,"c.nghttp2_session_get_stream_remote_window_size"],NGHTTP2_CLIENT_CONNECTION_HEADER:[4,1,1,"c.NGHTTP2_CLIENT_CONNECTION_HEADER"],NGHTTP2_FLAG_NONE:[4,1,1,"c.NGHTTP2_FLAG_NONE"],nghttp2_session_terminate_session:[4,3,1,"c.nghttp2_session_terminate_session"],nghttp2_submit_altsvc:[4,3,1,"c.nghttp2_submit_altsvc"],NGHTTP2_DATA_FLAG_NONE:[4,1,1,"c.NGHTTP2_DATA_FLAG_NONE"],NGHTTP2_NV_FLAG_NONE:[4,1,1,"c.NGHTTP2_NV_FLAG_NONE"],nghttp2_submit_settings:[4,3,1,"c.nghttp2_submit_settings"],nghttp2_is_fatal:[4,3,1,"c.nghttp2_is_fatal"],NGHTTP2_PING:[4,1,1,"c.NGHTTP2_PING"],NGHTTP2_MAX_WEIGHT:[4,1,1,"c.NGHTTP2_MAX_WEIGHT"],nghttp2_priority:[4,2,1,"c.nghttp2_priority"],nghttp2_session_want_read:[4,3,1,"c.nghttp2_session_want_read"],NGHTTP2_VERSION_AGE:[4,1,1,"c.NGHTTP2_VERSION_AGE"],NGHTTP2_ERR_STREAM_ID_NOT_AVAILABLE:[4,1,1,"c.NGHTTP2_ERR_STREAM_ID_NOT_AVAILABLE"],NGHTTP2_CONNECT_ERROR:[4,1,1,"c.NGHTTP2_CONNECT_ERROR"],NGHTTP2_HD_INFLATE_NONE:[4,1,1,"c.NGHTTP2_HD_INFLATE_NONE"],nghttp2_submit_data:[4,3,1,"c.nghttp2_submit_data"],nghttp2_on_stream_close_callback:[4,2,1,"c.nghttp2_on_stream_close_callback"],NGHTTP2_PUSH_PROMISE:[4,1,1,"c.NGHTTP2_PUSH_PROMISE"],nghttp2_data_provider:[4,2,1,"c.nghttp2_data_provider"],NGHTTP2_ERR_DATA_EXIST:[4,1,1,"c.NGHTTP2_ERR_DATA_EXIST"],nghttp2_session_recv:[4,3,1,"c.nghttp2_session_recv"],nghttp2_option_new:[4,3,1,"c.nghttp2_option_new"],nghttp2_session_get_effective_local_window_size:[4,3,1,"c.nghttp2_session_get_effective_local_window_size"],NGHTTP2_INITIAL_WINDOW_SIZE:[4,1,1,"c.NGHTTP2_INITIAL_WINDOW_SIZE"],NGHTTP2_SETTINGS_COMPRESS_DATA:[4,1,1,"c.NGHTTP2_SETTINGS_COMPRESS_DATA"],NGHTTP2_WINDOW_UPDATE:[4,1,1,"c.NGHTTP2_WINDOW_UPDATE"],NGHTTP2_FLAG_END_SEGMENT:[4,1,1,"c.NGHTTP2_FLAG_END_SEGMENT"],NGHTTP2_HCAT_RESPONSE:[4,1,1,"c.NGHTTP2_HCAT_RESPONSE"],nghttp2_submit_priority:[4,3,1,"c.nghttp2_submit_priority"],nghttp2_session_get_stream_effective_local_window_size:[4,3,1,"c.nghttp2_session_get_stream_effective_local_window_size"],nghttp2_headers:[4,2,1,"c.nghttp2_headers"],nghttp2_before_frame_send_callback:[4,2,1,"c.nghttp2_before_frame_send_callback"],NGHTTP2_GOAWAY:[4,1,1,"c.NGHTTP2_GOAWAY"],NGHTTP2_MIN_WEIGHT:[4,1,1,"c.NGHTTP2_MIN_WEIGHT"],NGHTTP2_FLAG_PAD_LOW:[4,1,1,"c.NGHTTP2_FLAG_PAD_LOW"],nghttp2_submit_ping:[4,3,1,"c.nghttp2_submit_ping"],NGHTTP2_FRAME_SIZE_ERROR:[4,1,1,"c.NGHTTP2_FRAME_SIZE_ERROR"],NGHTTP2_ERR_STREAM_SHUT_WR:[4,1,1,"c.NGHTTP2_ERR_STREAM_SHUT_WR"],nghttp2_submit_response:[4,3,1,"c.nghttp2_submit_response"],NGHTTP2_PRIORITY:[4,1,1,"c.NGHTTP2_PRIORITY"],nghttp2_submit_request:[4,3,1,"c.nghttp2_submit_request"],nghttp2_session_get_stream_effective_recv_data_length:[4,3,1,"c.nghttp2_session_get_stream_effective_recv_data_length"],nghttp2_pack_settings_payload:[4,3,1,"c.nghttp2_pack_settings_payload"],nghttp2_data:[4,2,1,"c.nghttp2_data"],nghttp2_data_source:[4,2,1,"c.nghttp2_data_source"],nghttp2_nv_compare_name:[4,3,1,"c.nghttp2_nv_compare_name"]},nghttp2_frame:{push_promise:[4,0,1,"c.nghttp2_frame.push_promise"],settings:[4,0,1,"c.nghttp2_frame.settings"],ping:[4,0,1,"c.nghttp2_frame.ping"],rst_stream:[4,0,1,"c.nghttp2_frame.rst_stream"],priority:[4,0,1,"c.nghttp2_frame.priority"],headers:[4,0,1,"c.nghttp2_frame.headers"],goaway:[4,0,1,"c.nghttp2_frame.goaway"],window_update:[4,0,1,"c.nghttp2_frame.window_update"],blocked:[4,0,1,"c.nghttp2_frame.blocked"],data:[4,0,1,"c.nghttp2_frame.data"],hd:[4,0,1,"c.nghttp2_frame.hd"],altsvc:[4,0,1,"c.nghttp2_frame.altsvc"]},nghttp2_settings_entry:{settings_id:[4,0,1,"c.nghttp2_settings_entry.settings_id"],value:[4,0,1,"c.nghttp2_settings_entry.value"]},nghttp2_window_update:{hd:[4,0,1,"c.nghttp2_window_update.hd"],window_size_increment:[4,0,1,"c.nghttp2_window_update.window_size_increment"]},nghttp2_frame_hd:{stream_id:[4,0,1,"c.nghttp2_frame_hd.stream_id"],length:[4,0,1,"c.nghttp2_frame_hd.length"],type:[4,0,1,"c.nghttp2_frame_hd.type"],flags:[4,0,1,"c.nghttp2_frame_hd.flags"]},nghttp2_blocked:{hd:[4,0,1,"c.nghttp2_blocked.hd"]},nghttp2_push_promise:{padlen:[4,0,1,"c.nghttp2_push_promise.padlen"],nvlen:[4,0,1,"c.nghttp2_push_promise.nvlen"],promised_stream_id:[4,0,1,"c.nghttp2_push_promise.promised_stream_id"],hd:[4,0,1,"c.nghttp2_push_promise.hd"],nva:[4,0,1,"c.nghttp2_push_promise.nva"]},nghttp2_ping:{hd:[4,0,1,"c.nghttp2_ping.hd"]},nghttp2_priority:{pri_spec:[4,0,1,"c.nghttp2_priority.pri_spec"],hd:[4,0,1,"c.nghttp2_priority.hd"]},nghttp2_priority_spec:{stream_id:[4,0,1,"c.nghttp2_priority_spec.stream_id"],weight:[4,0,1,"c.nghttp2_priority_spec.weight"],exclusive:[4,0,1,"c.nghttp2_priority_spec.exclusive"]},nghttp2:{HTTP2Server:[1,7,1,""],HDDeflater:[1,7,1,""],DEFLATE_MAX_HEADER_TABLE_SIZE:[1,8,1,""],DEFAULT_HEADER_TABLE_SIZE:[1,8,1,""],HDInflater:[1,7,1,""],print_hd_table:[1,9,1,""],BaseRequestHandler:[1,7,1,""]},nghttp2_nv:{valuelen:[4,0,1,"c.nghttp2_nv.valuelen"],namelen:[4,0,1,"c.nghttp2_nv.namelen"],flags:[4,0,1,"c.nghttp2_nv.flags"],name:[4,0,1,"c.nghttp2_nv.name"],value:[4,0,1,"c.nghttp2_nv.value"]},nghttp2_altsvc:{origin:[4,0,1,"c.nghttp2_altsvc.origin"],max_age:[4,0,1,"c.nghttp2_altsvc.max_age"],protocol_id:[4,0,1,"c.nghttp2_altsvc.protocol_id"],origin_len:[4,0,1,"c.nghttp2_altsvc.origin_len"],host:[4,0,1,"c.nghttp2_altsvc.host"],protocol_id_len:[4,0,1,"c.nghttp2_altsvc.protocol_id_len"],host_len:[4,0,1,"c.nghttp2_altsvc.host_len"],port:[4,0,1,"c.nghttp2_altsvc.port"],hd:[4,0,1,"c.nghttp2_altsvc.hd"]},nghttp2_session_callbacks:{on_invalid_frame_recv_callback:[4,0,1,"c.nghttp2_session_callbacks.on_invalid_frame_recv_callback"],before_frame_send_callback:[4,0,1,"c.nghttp2_session_callbacks.before_frame_send_callback"],on_stream_close_callback:[4,0,1,"c.nghttp2_session_callbacks.on_stream_close_callback"],on_data_chunk_recv_callback:[4,0,1,"c.nghttp2_session_callbacks.on_data_chunk_recv_callback"],on_begin_headers_callback:[4,0,1,"c.nghttp2_session_callbacks.on_begin_headers_callback"],send_callback:[4,0,1,"c.nghttp2_session_callbacks.send_callback"],on_unknown_frame_recv_callback:[4,0,1,"c.nghttp2_session_callbacks.on_unknown_frame_recv_callback"],on_header_callback:[4,0,1,"c.nghttp2_session_callbacks.on_header_callback"],on_frame_recv_callback:[4,0,1,"c.nghttp2_session_callbacks.on_frame_recv_callback"],select_padding_callback:[4,0,1,"c.nghttp2_session_callbacks.select_padding_callback"],on_frame_not_send_callback:[4,0,1,"c.nghttp2_session_callbacks.on_frame_not_send_callback"],on_frame_send_callback:[4,0,1,"c.nghttp2_session_callbacks.on_frame_send_callback"],recv_callback:[4,0,1,"c.nghttp2_session_callbacks.recv_callback"]},nghttp2_data_provider:{source:[4,0,1,"c.nghttp2_data_provider.source"],read_callback:[4,0,1,"c.nghttp2_data_provider.read_callback"]},nghttp2_rst_stream:{error_code:[4,0,1,"c.nghttp2_rst_stream.error_code"],hd:[4,0,1,"c.nghttp2_rst_stream.hd"]},nghttp2_headers:{pri_spec:[4,0,1,"c.nghttp2_headers.pri_spec"],nvlen:[4,0,1,"c.nghttp2_headers.nvlen"],cat:[4,0,1,"c.nghttp2_headers.cat"],padlen:[4,0,1,"c.nghttp2_headers.padlen"],nva:[4,0,1,"c.nghttp2_headers.nva"],hd:[4,0,1,"c.nghttp2_headers.hd"]},nghttp2_goaway:{opaque_data:[4,0,1,"c.nghttp2_goaway.opaque_data"],error_code:[4,0,1,"c.nghttp2_goaway.error_code"],opaque_data_len:[4,0,1,"c.nghttp2_goaway.opaque_data_len"],hd:[4,0,1,"c.nghttp2_goaway.hd"],last_stream_id:[4,0,1,"c.nghttp2_goaway.last_stream_id"]},"nghttp2.BaseRequestHandler":{on_data:[1,5,1,""],host:[1,6,1,""],on_request_done:[1,5,1,""],on_headers:[1,5,1,""],stream_id:[1,6,1,""],on_close:[1,5,1,""],push:[1,5,1,""],path:[1,6,1,""],method:[1,6,1,""],scheme:[1,6,1,""],send_response:[1,5,1,""],client_address:[1,6,1,""]},nghttp2_info:{age:[4,0,1,"c.nghttp2_info.age"],version_str:[4,0,1,"c.nghttp2_info.version_str"],version_num:[4,0,1,"c.nghttp2_info.version_num"],proto_str:[4,0,1,"c.nghttp2_info.proto_str"]},"nghttp2.HDDeflater":{change_table_size:[1,5,1,""],get_hd_table:[1,5,1,""],set_no_refset:[1,5,1,""],deflate:[1,5,1,""]},"nghttp2.HTTP2Server":{serve_forever:[1,5,1,""]},nghttp2_data:{padlen:[4,0,1,"c.nghttp2_data.padlen"]},"nghttp2.HDInflater":{inflate:[1,5,1,""],get_hd_table:[1,5,1,""],change_table_size:[1,5,1,""]},nghttp2_data_source:{fd:[4,0,1,"c.nghttp2_data_source.fd"],ptr:[4,0,1,"c.nghttp2_data_source.ptr"]},nghttp2_settings:{niv:[4,0,1,"c.nghttp2_settings.niv"],hd:[4,0,1,"c.nghttp2_settings.hd"],iv:[4,0,1,"c.nghttp2_settings.iv"]}},titleterms:{certif:8,version:0,tutori:[3,6],header:5,rate:8,api:[4,1],nghttp2ver:2,resourc:0,librari:[0,5],statu:5,git:5,from:5,struct:4,union:4,libev:[3,6],write:8,how:8,nghttp2:[0,7,5],bridg:8,build:5,test:5,deflatehd:5,document:5,type:4,"public":5,includ:4,"function":4,program:5,http:[0,1,3,5,6,8],proxi:[5,8],python:[5,1],tool:5,"enum":4,benchmark:5,typedef:4,specifi:8,compressor:5,releas:0,develop:5,decompressor:5,addit:8,remark:4,nghttpd:5,ssl:8,read:8,macro:4,nghttp:5,requir:5,server:[3,5,1],inflatehd:5,"default":8,client:[5,8,6],limit:8,mode:8,hpack:[5,1],bind:5,nghttpx:[5,8],refer:[4,1],disabl:8}}) \ No newline at end of file diff --git a/tutorial-client.html b/tutorial-client.html index d2863125..b776695e 100644 --- a/tutorial-client.html +++ b/tutorial-client.html @@ -121,6 +121,11 @@
  • Functions
  • +
  • Python API Reference +
  • nghttp2.h
  • nghttp2ver.h
  • Source
  • diff --git a/tutorial-server.html b/tutorial-server.html index 64687681..8e7c8623 100644 --- a/tutorial-server.html +++ b/tutorial-server.html @@ -121,6 +121,11 @@
  • Functions
  • +
  • Python API Reference +
  • nghttp2.h
  • nghttp2ver.h
  • Source