Update doc

This commit is contained in:
Tatsuhiro Tsujikawa 2014-04-25 01:41:11 +09:00
parent 597e7a5500
commit b7e21b0cd2
6 changed files with 257 additions and 319 deletions

View File

@ -228,19 +228,19 @@ TCP.</p>
<dl class="macro">
<dt id="c.NGHTTP2_DEFAULT_WEIGHT">
<tt class="descname">NGHTTP2_DEFAULT_WEIGHT</tt><a class="headerlink" href="#c.NGHTTP2_DEFAULT_WEIGHT" title="Permalink to this definition"></a></dt>
<dd><p>The default weight of priority group.</p>
<dd><p>The default weight of stream dependency.</p>
</dd></dl>
<dl class="macro">
<dt id="c.NGHTTP2_MAX_WEIGHT">
<tt class="descname">NGHTTP2_MAX_WEIGHT</tt><a class="headerlink" href="#c.NGHTTP2_MAX_WEIGHT" title="Permalink to this definition"></a></dt>
<dd><p>The maximum weight of priority group.</p>
<dd><p>The maximum weight of stream dependency.</p>
</dd></dl>
<dl class="macro">
<dt id="c.NGHTTP2_MIN_WEIGHT">
<tt class="descname">NGHTTP2_MIN_WEIGHT</tt><a class="headerlink" href="#c.NGHTTP2_MIN_WEIGHT" title="Permalink to this definition"></a></dt>
<dd><p>The minimum weight of priority group.</p>
<dd><p>The minimum weight of stream dependency.</p>
</dd></dl>
<dl class="macro">
@ -648,6 +648,13 @@ The CONTINUATION frame.</p>
The ALTSVC frame.</p>
</dd></dl>
<dl class="macro">
<dt id="c.NGHTTP2_BLOCKED">
<tt class="descname">NGHTTP2_BLOCKED</tt><a class="headerlink" href="#c.NGHTTP2_BLOCKED" title="Permalink to this definition"></a></dt>
<dd><p>(<tt class="docutils literal"><span class="pre">0x0b</span></tt>)
The BLOCKED frame.</p>
</dd></dl>
</dd></dl>
<dl class="type">
@ -705,17 +712,17 @@ The PAD_HIGH flag.</p>
</dd></dl>
<dl class="macro">
<dt id="c.NGHTTP2_FLAG_PRIORITY_GROUP">
<tt class="descname">NGHTTP2_FLAG_PRIORITY_GROUP</tt><a class="headerlink" href="#c.NGHTTP2_FLAG_PRIORITY_GROUP" title="Permalink to this definition"></a></dt>
<dt id="c.NGHTTP2_FLAG_PRIORITY">
<tt class="descname">NGHTTP2_FLAG_PRIORITY</tt><a class="headerlink" href="#c.NGHTTP2_FLAG_PRIORITY" title="Permalink to this definition"></a></dt>
<dd><p>(<tt class="docutils literal"><span class="pre">0x20</span></tt>)
The PRIORITY_GROUP flag.</p>
The PRIORITY flag.</p>
</dd></dl>
<dl class="macro">
<dt id="c.NGHTTP2_FLAG_PRIORITY_DEPENDENCY">
<tt class="descname">NGHTTP2_FLAG_PRIORITY_DEPENDENCY</tt><a class="headerlink" href="#c.NGHTTP2_FLAG_PRIORITY_DEPENDENCY" title="Permalink to this definition"></a></dt>
<dd><p>(<tt class="docutils literal"><span class="pre">0x40</span></tt>)
The PRIORITY_DEPENDENCY flag.</p>
<dt id="c.NGHTTP2_FLAG_COMPRESSED">
<tt class="descname">NGHTTP2_FLAG_COMPRESSED</tt><a class="headerlink" href="#c.NGHTTP2_FLAG_COMPRESSED" title="Permalink to this definition"></a></dt>
<dd><p>(<tt class="docutils literal"><span class="pre">0x20</span></tt>)
THE COMPRESSED flag.</p>
</dd></dl>
</dd></dl>
@ -752,10 +759,17 @@ SETTINGS_MAX_CONCURRENT_STREAMS</p>
SETTINGS_INITIAL_WINDOW_SIZE</p>
</dd></dl>
<dl class="macro">
<dt id="c.NGHTTP2_SETTINGS_COMPRESS_DATA">
<tt class="descname">NGHTTP2_SETTINGS_COMPRESS_DATA</tt><a class="headerlink" href="#c.NGHTTP2_SETTINGS_COMPRESS_DATA" title="Permalink to this definition"></a></dt>
<dd><p>(<tt class="docutils literal"><span class="pre">5</span></tt>)
SETTINGS_COMPRESS_DATA</p>
</dd></dl>
<dl class="macro">
<dt id="c.NGHTTP2_SETTINGS_MAX">
<tt class="descname">NGHTTP2_SETTINGS_MAX</tt><a class="headerlink" href="#c.NGHTTP2_SETTINGS_MAX" title="Permalink to this definition"></a></dt>
<dd><p>(<tt class="docutils literal"><span class="pre">4</span></tt>)
<dd><p>(<tt class="docutils literal"><span class="pre">5</span></tt>)
Maximum ID of <a class="reference internal" href="#c.nghttp2_settings_id" title="nghttp2_settings_id"><tt class="xref c c-type docutils literal"><span class="pre">nghttp2_settings_id</span></tt></a>.</p>
</dd></dl>
@ -877,6 +891,13 @@ No flag set.</p>
Indicates EOF was sensed.</p>
</dd></dl>
<dl class="macro">
<dt id="c.NGHTTP2_DATA_FLAG_COMPRESSED">
<tt class="descname">NGHTTP2_DATA_FLAG_COMPRESSED</tt><a class="headerlink" href="#c.NGHTTP2_DATA_FLAG_COMPRESSED" title="Permalink to this definition"></a></dt>
<dd><p>(<tt class="docutils literal"><span class="pre">0x02</span></tt>)
Indicates data was compressed by application.</p>
</dd></dl>
</dd></dl>
<dl class="type">
@ -921,34 +942,6 @@ which is analogous to HEADERS in SPDY.</p>
</dd></dl>
<dl class="type">
<dt id="c.nghttp2_priority_type">
<tt class="descname">nghttp2_priority_type</tt><a class="headerlink" href="#c.nghttp2_priority_type" title="Permalink to this definition"></a></dt>
<dd><p>The type of priority specified in <a class="reference internal" href="#c.nghttp2_priority_spec" title="nghttp2_priority_spec"><tt class="xref c c-type docutils literal"><span class="pre">nghttp2_priority_spec</span></tt></a>.</p>
<dl class="macro">
<dt id="c.NGHTTP2_PRIORITY_TYPE_NONE">
<tt class="descname">NGHTTP2_PRIORITY_TYPE_NONE</tt><a class="headerlink" href="#c.NGHTTP2_PRIORITY_TYPE_NONE" title="Permalink to this definition"></a></dt>
<dd><p>(<tt class="docutils literal"><span class="pre">0</span></tt>)
No priority is given. The default priority will be used.</p>
</dd></dl>
<dl class="macro">
<dt id="c.NGHTTP2_PRIORITY_TYPE_GROUP">
<tt class="descname">NGHTTP2_PRIORITY_TYPE_GROUP</tt><a class="headerlink" href="#c.NGHTTP2_PRIORITY_TYPE_GROUP" title="Permalink to this definition"></a></dt>
<dd><p>(<tt class="docutils literal"><span class="pre">1</span></tt>)
Priority group ID and its weight are specified.</p>
</dd></dl>
<dl class="macro">
<dt id="c.NGHTTP2_PRIORITY_TYPE_DEP">
<tt class="descname">NGHTTP2_PRIORITY_TYPE_DEP</tt><a class="headerlink" href="#c.NGHTTP2_PRIORITY_TYPE_DEP" title="Permalink to this definition"></a></dt>
<dd><p>(<tt class="docutils literal"><span class="pre">2</span></tt>)
The stream ID of a stream to depend on and its exclusive flag is
specified.</p>
</dd></dl>
</dd></dl>
</div>
<div class="section" id="types-structs-unions-and-typedefs">
<h2>Types (structs, unions and typedefs)<a class="headerlink" href="#types-structs-unions-and-typedefs" title="Permalink to this headline"></a></h2>
@ -1089,8 +1082,12 @@ the <em>source</em>. The read data is sent in the stream <em>stream_id</em>.
The implementation of this function must read at most <em>length</em>
bytes of data from <em>source</em> (or possibly other places) and store
them in <em>buf</em> and return number of data stored in <em>buf</em>. If EOF is
reached, set <a class="reference internal" href="#c.NGHTTP2_DATA_FLAG_EOF" title="NGHTTP2_DATA_FLAG_EOF"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_DATA_FLAG_EOF</span></tt></a> flag in <em>*data_falgs</em>.
If the application wants to postpone DATA frames (e.g.,
reached, set <a class="reference internal" href="#c.NGHTTP2_DATA_FLAG_EOF" title="NGHTTP2_DATA_FLAG_EOF"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_DATA_FLAG_EOF</span></tt></a> flag in <em>*data_flags</em>.</p>
<p>To send compressed data payload without affecting content-length,
set <a class="reference internal" href="#c.NGHTTP2_DATA_FLAG_COMPRESSED" title="NGHTTP2_DATA_FLAG_COMPRESSED"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_DATA_FLAG_COMPRESSED</span></tt></a> flag in <em>*data_flags</em>.
Compression must be done by application prior to fill data in
<em>buf</em>.</p>
<p>If the application wants to postpone DATA frames (e.g.,
asynchronous I/O, or reading data blocks for long time), it is
achieved by returning <a class="reference internal" href="#c.NGHTTP2_ERR_DEFERRED" title="NGHTTP2_ERR_DEFERRED"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_ERR_DEFERRED</span></tt></a> without reading
any data in this invocation. The library removes DATA frame from
@ -1136,75 +1133,27 @@ and PAD_LOW.</p>
</dd></dl>
<dl class="type">
<dt id="c.nghttp2_priority_group">
<tt class="descname">nghttp2_priority_group</tt><a class="headerlink" href="#c.nghttp2_priority_group" title="Permalink to this definition"></a></dt>
<dd><p>This structure stores priority group ID and its weight.</p>
<dl class="member">
<dt id="c.nghttp2_priority_group.pri_group_id">
int32_t <tt class="descname">pri_group_id</tt><a class="headerlink" href="#c.nghttp2_priority_group.pri_group_id" title="Permalink to this definition"></a></dt>
<dd><p>The priority group ID</p>
</dd></dl>
<dl class="member">
<dt id="c.nghttp2_priority_group.weight">
int32_t <tt class="descname">weight</tt><a class="headerlink" href="#c.nghttp2_priority_group.weight" title="Permalink to this definition"></a></dt>
<dd><p>The weight of the priority group</p>
</dd></dl>
</dd></dl>
<dl class="type">
<dt id="c.nghttp2_priority_dep">
<tt class="descname">nghttp2_priority_dep</tt><a class="headerlink" href="#c.nghttp2_priority_dep" title="Permalink to this definition"></a></dt>
<dd><p>This structure stores stream ID of the stream to depend on and its
dependency is exclusive or not.</p>
<dl class="member">
<dt id="c.nghttp2_priority_dep.stream_id">
int32_t <tt class="descname">stream_id</tt><a class="headerlink" href="#c.nghttp2_priority_dep.stream_id" title="Permalink to this definition"></a></dt>
<dd><p>The stream ID of the stream to depend on.</p>
</dd></dl>
<dl class="member">
<dt id="c.nghttp2_priority_dep.exclusive">
uint8_t <tt class="descname">exclusive</tt><a class="headerlink" href="#c.nghttp2_priority_dep.exclusive" title="Permalink to this definition"></a></dt>
<dd><p>nonzero means exclusive dependency</p>
</dd></dl>
</dd></dl>
<dl class="type">
<dt id="c.nghttp2_priority_spec">
<tt class="descname">nghttp2_priority_spec</tt><a class="headerlink" href="#c.nghttp2_priority_spec" title="Permalink to this definition"></a></dt>
<dd><p>The structure to specify stream dependency. To specify stream
dependency, specify <em>pri_type</em> and fill the <em>group</em> or <em>dep</em> member
according to <em>pri_type</em>.</p>
<dd><p>The structure to specify stream dependency.</p>
<dl class="member">
<dt id="c.nghttp2_priority_spec.pri_type">
<a class="reference internal" href="#c.nghttp2_priority_type" title="nghttp2_priority_type">nghttp2_priority_type</a> <tt class="descname">pri_type</tt><a class="headerlink" href="#c.nghttp2_priority_spec.pri_type" title="Permalink to this definition"></a></dt>
<dd><p>Type of priority specification. If <em>pri_type</em> is
<a class="reference internal" href="#c.NGHTTP2_PRIORITY_TYPE_GROUP" title="NGHTTP2_PRIORITY_TYPE_GROUP"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_PRIORITY_TYPE_GROUP</span></tt></a>, fill <em>group</em>. If <em>pri_type</em>
is <a class="reference internal" href="#c.NGHTTP2_PRIORITY_TYPE_DEP" title="NGHTTP2_PRIORITY_TYPE_DEP"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_PRIORITY_TYPE_DEP</span></tt></a>, fill <em>dep</em>. If <em>pri_type</em>
is <a class="reference internal" href="#c.NGHTTP2_PRIORITY_TYPE_NONE" title="NGHTTP2_PRIORITY_TYPE_NONE"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_PRIORITY_TYPE_NONE</span></tt></a>, the other data members are
ignored and it means that default priority group ID (which is
same as the stream ID) and default weight
<a class="reference internal" href="#c.NGHTTP2_DEFAULT_WEIGHT" title="NGHTTP2_DEFAULT_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_DEFAULT_WEIGHT</span></tt></a> are specified.</p>
<dt id="c.nghttp2_priority_spec.stream_id">
int32_t <tt class="descname">stream_id</tt><a class="headerlink" href="#c.nghttp2_priority_spec.stream_id" title="Permalink to this definition"></a></dt>
<dd><p>The stream ID of the stream to depend on. Specifying 0 makes
stream not depend any other stream.</p>
</dd></dl>
<dl class="member">
<dt id="c.nghttp2_priority_spec.group">
<a class="reference internal" href="#c.nghttp2_priority_group" title="nghttp2_priority_group">nghttp2_priority_group</a> <tt class="descname">group</tt><a class="headerlink" href="#c.nghttp2_priority_spec.group" title="Permalink to this definition"></a></dt>
<dd><p>Specify priority group ID and its weight. This field is
interpreted only when <em>pri_type</em> member is
<a class="reference internal" href="#c.NGHTTP2_PRIORITY_TYPE_GROUP" title="NGHTTP2_PRIORITY_TYPE_GROUP"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_PRIORITY_TYPE_GROUP</span></tt></a>.</p>
<dt id="c.nghttp2_priority_spec.weight">
int32_t <tt class="descname">weight</tt><a class="headerlink" href="#c.nghttp2_priority_spec.weight" title="Permalink to this definition"></a></dt>
<dd><p>The weight of this dependency.</p>
</dd></dl>
<dl class="member">
<dt id="c.nghttp2_priority_spec.dep">
<a class="reference internal" href="#c.nghttp2_priority_dep" title="nghttp2_priority_dep">nghttp2_priority_dep</a> <tt class="descname">dep</tt><a class="headerlink" href="#c.nghttp2_priority_spec.dep" title="Permalink to this definition"></a></dt>
<dd><p>Specify stream ID of a stream to depend on and exclusive flag.
This field is interpreted only when <em>pri_type</em> member is
<a class="reference internal" href="#c.NGHTTP2_PRIORITY_TYPE_DEP" title="NGHTTP2_PRIORITY_TYPE_DEP"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_PRIORITY_TYPE_DEP</span></tt></a>.</p>
<dt id="c.nghttp2_priority_spec.exclusive">
uint8_t <tt class="descname">exclusive</tt><a class="headerlink" href="#c.nghttp2_priority_spec.exclusive" title="Permalink to this definition"></a></dt>
<dd><p>nonzero means exclusive dependency</p>
</dd></dl>
</dd></dl>
@ -1499,6 +1448,18 @@ uint16_t <tt class="descname">port</tt><a class="headerlink" href="#c.nghttp2_al
</dd></dl>
<dl class="type">
<dt id="c.nghttp2_blocked">
<tt class="descname">nghttp2_blocked</tt><a class="headerlink" href="#c.nghttp2_blocked" title="Permalink to this definition"></a></dt>
<dd><p>The BLOCKED frame. It has following members:</p>
<dl class="member">
<dt id="c.nghttp2_blocked.hd">
<a class="reference internal" href="#c.nghttp2_frame_hd" title="nghttp2_frame_hd">nghttp2_frame_hd</a> <tt class="descname">hd</tt><a class="headerlink" href="#c.nghttp2_blocked.hd" title="Permalink to this definition"></a></dt>
<dd><p>The frame header.</p>
</dd></dl>
</dd></dl>
<dl class="type">
<dt id="c.nghttp2_frame">
<tt class="descname">nghttp2_frame</tt><a class="headerlink" href="#c.nghttp2_frame" title="Permalink to this definition"></a></dt>
@ -1571,6 +1532,12 @@ from here because the library deals with it internally.</p>
<dd><p>The ALTSVC frame.</p>
</dd></dl>
<dl class="member">
<dt id="c.nghttp2_frame.blocked">
<a class="reference internal" href="#c.nghttp2_blocked" title="nghttp2_blocked">nghttp2_blocked</a> <tt class="descname">blocked</tt><a class="headerlink" href="#c.nghttp2_frame.blocked" title="Permalink to this definition"></a></dt>
<dd><p>The BLOCKED frame.</p>
</dd></dl>
</dd></dl>
<dl class="type">
@ -2490,27 +2457,27 @@ const char* <tt class="descname">nghttp2_strerror</tt><big>(</big>int<em>&nbsp;l
</dd></dl>
<dl class="function">
<dt id="c.nghttp2_priority_spec_group_init">
void <tt class="descname">nghttp2_priority_spec_group_init</tt><big>(</big><a class="reference internal" href="#c.nghttp2_priority_spec" title="nghttp2_priority_spec">nghttp2_priority_spec</a><em>&nbsp;*pri_spec</em>, int32_t<em>&nbsp;pri_group_id</em>, int32_t<em>&nbsp;weight</em><big>)</big><a class="headerlink" href="#c.nghttp2_priority_spec_group_init" title="Permalink to this definition"></a></dt>
<dd><p>Initializes <em>pri_spec</em> with priority group ID <em>pri_group_id</em> and
its weight <em>weight</em>.</p>
<dt id="c.nghttp2_priority_spec_init">
void <tt class="descname">nghttp2_priority_spec_init</tt><big>(</big><a class="reference internal" href="#c.nghttp2_priority_spec" title="nghttp2_priority_spec">nghttp2_priority_spec</a><em>&nbsp;*pri_spec</em>, int32_t<em>&nbsp;stream_id</em>, int32_t<em>&nbsp;weight</em>, int<em>&nbsp;exclusive</em><big>)</big><a class="headerlink" href="#c.nghttp2_priority_spec_init" title="Permalink to this definition"></a></dt>
<dd><p>Initializes <em>pri_spec</em> with the <em>stream_id</em> of the stream to depend
on with <em>weight</em> and its exclusive flag. If <em>exclusive</em> is
nonzero, exclusive flag is set.</p>
<p>The <em>weight</em> must be in [<a class="reference internal" href="#c.NGHTTP2_MIN_WEIGHT" title="NGHTTP2_MIN_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MIN_WEIGHT</span></tt></a>,
<a class="reference internal" href="#c.NGHTTP2_MAX_WEIGHT" title="NGHTTP2_MAX_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MAX_WEIGHT</span></tt></a>], inclusive. If <em>weight</em> is strictly
less than <a class="reference internal" href="#c.NGHTTP2_MIN_WEIGHT" title="NGHTTP2_MIN_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MIN_WEIGHT</span></tt></a>, it becomes
<a class="reference internal" href="#c.NGHTTP2_MIN_WEIGHT" title="NGHTTP2_MIN_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MIN_WEIGHT</span></tt></a>. If it is strictly greater than
<a class="reference internal" href="#c.NGHTTP2_MAX_WEIGHT" title="NGHTTP2_MAX_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MAX_WEIGHT</span></tt></a>, it becomes <a class="reference internal" href="#c.NGHTTP2_MAX_WEIGHT" title="NGHTTP2_MAX_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MAX_WEIGHT</span></tt></a>.</p>
<p>To specify weight for the default priority group (which is the same
as the stream ID of the stream) in <a class="reference internal" href="#c.nghttp2_submit_request" title="nghttp2_submit_request"><tt class="xref c c-func docutils literal"><span class="pre">nghttp2_submit_request()</span></tt></a> and
<a class="reference internal" href="#c.nghttp2_submit_headers" title="nghttp2_submit_headers"><tt class="xref c c-func docutils literal"><span class="pre">nghttp2_submit_headers()</span></tt></a> and its stream ID is not known in
advance, specify -1 to <em>pri_group_id</em>.</p>
<a class="reference internal" href="#c.NGHTTP2_MAX_WEIGHT" title="NGHTTP2_MAX_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MAX_WEIGHT</span></tt></a>], inclusive.</p>
</dd></dl>
<dl class="function">
<dt id="c.nghttp2_priority_spec_dep_init">
void <tt class="descname">nghttp2_priority_spec_dep_init</tt><big>(</big><a class="reference internal" href="#c.nghttp2_priority_spec" title="nghttp2_priority_spec">nghttp2_priority_spec</a><em>&nbsp;*pri_spec</em>, int32_t<em>&nbsp;stream_id</em>, int<em>&nbsp;exclusive</em><big>)</big><a class="headerlink" href="#c.nghttp2_priority_spec_dep_init" title="Permalink to this definition"></a></dt>
<dd><p>Initializes <em>pri_spec</em> with the <em>stream_id</em> of the stream to depend
on and its exclusive flag. If <em>exclusive</em> is nonzero, exclusive
flag is set.</p>
<dt id="c.nghttp2_priority_spec_default_init">
void <tt class="descname">nghttp2_priority_spec_default_init</tt><big>(</big><a class="reference internal" href="#c.nghttp2_priority_spec" title="nghttp2_priority_spec">nghttp2_priority_spec</a><em>&nbsp;*pri_spec</em><big>)</big><a class="headerlink" href="#c.nghttp2_priority_spec_default_init" title="Permalink to this definition"></a></dt>
<dd><p>Initializes <em>pri_spec</em> with the default values. The default values
are: stream_id = 0, weight = <a class="reference internal" href="#c.NGHTTP2_DEFAULT_WEIGHT" title="NGHTTP2_DEFAULT_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_DEFAULT_WEIGHT</span></tt></a> and
exclusive = 0.</p>
</dd></dl>
<dl class="function">
<dt id="c.nghttp2_priority_spec_check_default">
int <tt class="descname">nghttp2_priority_spec_check_default</tt><big>(</big>const <a class="reference internal" href="#c.nghttp2_priority_spec" title="nghttp2_priority_spec">nghttp2_priority_spec</a><em>&nbsp;*pri_spec</em><big>)</big><a class="headerlink" href="#c.nghttp2_priority_spec_check_default" title="Permalink to this definition"></a></dt>
<dd><p>Returns nonzero if the <em>pri_spec</em> is filled with default values.</p>
</dd></dl>
<dl class="function">
@ -2518,11 +2485,15 @@ flag is set.</p>
int <tt class="descname">nghttp2_submit_request</tt><big>(</big><a class="reference internal" href="#c.nghttp2_session" title="nghttp2_session">nghttp2_session</a><em>&nbsp;*session</em>, const <a class="reference internal" href="#c.nghttp2_priority_spec" title="nghttp2_priority_spec">nghttp2_priority_spec</a><em>&nbsp;*pri_spec</em>, const <a class="reference internal" href="#c.nghttp2_nv" title="nghttp2_nv">nghttp2_nv</a><em>&nbsp;*nva</em>, size_t<em>&nbsp;nvlen</em>, const <a class="reference internal" href="#c.nghttp2_data_provider" title="nghttp2_data_provider">nghttp2_data_provider</a><em>&nbsp;*data_prd</em>, void<em>&nbsp;*stream_user_data</em><big>)</big><a class="headerlink" href="#c.nghttp2_submit_request" title="Permalink to this definition"></a></dt>
<dd><p>Submits HEADERS frame and optionally one or more DATA frames.</p>
<p>The <em>pri_spec</em> is priority specification of this request. <tt class="docutils literal"><span class="pre">NULL</span></tt>
means the default priority (priority group ID becomes its stream ID
and weight is <a class="reference internal" href="#c.NGHTTP2_DEFAULT_WEIGHT" title="NGHTTP2_DEFAULT_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_DEFAULT_WEIGHT</span></tt></a>). To specify the
priority, use either <a class="reference internal" href="#c.nghttp2_priority_spec_group_init" title="nghttp2_priority_spec_group_init"><tt class="xref c c-func docutils literal"><span class="pre">nghttp2_priority_spec_group_init()</span></tt></a> or
<a class="reference internal" href="#c.nghttp2_priority_spec_dep_init" title="nghttp2_priority_spec_dep_init"><tt class="xref c c-func docutils literal"><span class="pre">nghttp2_priority_spec_dep_init()</span></tt></a>. If <em>pri_spec</em> is not <tt class="docutils literal"><span class="pre">NULL</span></tt>,
means the default priority (see
<a class="reference internal" href="#c.nghttp2_priority_spec_default_init" title="nghttp2_priority_spec_default_init"><tt class="xref c c-func docutils literal"><span class="pre">nghttp2_priority_spec_default_init()</span></tt></a>). To specify the priority,
use <a class="reference internal" href="#c.nghttp2_priority_spec_init" title="nghttp2_priority_spec_init"><tt class="xref c c-func docutils literal"><span class="pre">nghttp2_priority_spec_init()</span></tt></a>. If <em>pri_spec</em> is not <tt class="docutils literal"><span class="pre">NULL</span></tt>,
this function will copy its data members.</p>
<p>The <tt class="xref c c-func docutils literal"><span class="pre">pri_spec-&gt;weight()</span></tt> must be in [<a class="reference internal" href="#c.NGHTTP2_MIN_WEIGHT" title="NGHTTP2_MIN_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MIN_WEIGHT</span></tt></a>,
<a class="reference internal" href="#c.NGHTTP2_MAX_WEIGHT" title="NGHTTP2_MAX_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MAX_WEIGHT</span></tt></a>], inclusive. If <tt class="xref c c-func docutils literal"><span class="pre">pri_spec-&gt;weight()</span></tt> is
strictly less than <a class="reference internal" href="#c.NGHTTP2_MIN_WEIGHT" title="NGHTTP2_MIN_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MIN_WEIGHT</span></tt></a>, it becomes
<a class="reference internal" href="#c.NGHTTP2_MIN_WEIGHT" title="NGHTTP2_MIN_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MIN_WEIGHT</span></tt></a>. If it is strictly greater than
<a class="reference internal" href="#c.NGHTTP2_MAX_WEIGHT" title="NGHTTP2_MAX_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MAX_WEIGHT</span></tt></a>, it becomes <a class="reference internal" href="#c.NGHTTP2_MAX_WEIGHT" title="NGHTTP2_MAX_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MAX_WEIGHT</span></tt></a>.</p>
<p>The <em>nva</em> is an array of name/value pair <a class="reference internal" href="#c.nghttp2_nv" title="nghttp2_nv"><tt class="xref c c-type docutils literal"><span class="pre">nghttp2_nv</span></tt></a> with
<em>nvlen</em> elements. The value is opaque sequence of bytes and
therefore can contain NULL byte (0x0). If the application requires
@ -2560,8 +2531,6 @@ negative error codes:</p>
<dl class="docutils">
<dt><a class="reference internal" href="#c.NGHTTP2_ERR_NOMEM" title="NGHTTP2_ERR_NOMEM"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_ERR_NOMEM</span></tt></a></dt>
<dd>Out of memory.</dd>
<dt><a class="reference internal" href="#c.NGHTTP2_ERR_INVALID_ARGUMENT" title="NGHTTP2_ERR_INVALID_ARGUMENT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_ERR_INVALID_ARGUMENT</span></tt></a></dt>
<dd>The <em>pri_spec-&gt;pri_type</em> is invalid.</dd>
</dl>
</dd></dl>
@ -2616,11 +2585,15 @@ request HEADERS frame which opens new stream). In this case, the
actual stream ID is assigned just before the frame is sent. For
response, specify stream ID in <em>stream_id</em>.</p>
<p>The <em>pri_spec</em> is priority specification of this request. <tt class="docutils literal"><span class="pre">NULL</span></tt>
means the default priority (priority group ID becomes its stream ID
and weight is <a class="reference internal" href="#c.NGHTTP2_DEFAULT_WEIGHT" title="NGHTTP2_DEFAULT_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_DEFAULT_WEIGHT</span></tt></a>). To specify the
priority, use either <a class="reference internal" href="#c.nghttp2_priority_spec_group_init" title="nghttp2_priority_spec_group_init"><tt class="xref c c-func docutils literal"><span class="pre">nghttp2_priority_spec_group_init()</span></tt></a> or
<a class="reference internal" href="#c.nghttp2_priority_spec_dep_init" title="nghttp2_priority_spec_dep_init"><tt class="xref c c-func docutils literal"><span class="pre">nghttp2_priority_spec_dep_init()</span></tt></a>. If <em>pri_spec</em> is not <tt class="docutils literal"><span class="pre">NULL</span></tt>,
means the default priority (see
<a class="reference internal" href="#c.nghttp2_priority_spec_default_init" title="nghttp2_priority_spec_default_init"><tt class="xref c c-func docutils literal"><span class="pre">nghttp2_priority_spec_default_init()</span></tt></a>). To specify the priority,
use <a class="reference internal" href="#c.nghttp2_priority_spec_init" title="nghttp2_priority_spec_init"><tt class="xref c c-func docutils literal"><span class="pre">nghttp2_priority_spec_init()</span></tt></a>. If <em>pri_spec</em> is not <tt class="docutils literal"><span class="pre">NULL</span></tt>,
this function will copy its data members.</p>
<p>The <tt class="xref c c-func docutils literal"><span class="pre">pri_spec-&gt;weight()</span></tt> must be in [<a class="reference internal" href="#c.NGHTTP2_MIN_WEIGHT" title="NGHTTP2_MIN_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MIN_WEIGHT</span></tt></a>,
<a class="reference internal" href="#c.NGHTTP2_MAX_WEIGHT" title="NGHTTP2_MAX_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MAX_WEIGHT</span></tt></a>], inclusive. If <tt class="xref c c-func docutils literal"><span class="pre">pri_spec-&gt;weight()</span></tt> is
strictly less than <a class="reference internal" href="#c.NGHTTP2_MIN_WEIGHT" title="NGHTTP2_MIN_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MIN_WEIGHT</span></tt></a>, it becomes
<a class="reference internal" href="#c.NGHTTP2_MIN_WEIGHT" title="NGHTTP2_MIN_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MIN_WEIGHT</span></tt></a>. If it is strictly greater than
<a class="reference internal" href="#c.NGHTTP2_MAX_WEIGHT" title="NGHTTP2_MAX_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MAX_WEIGHT</span></tt></a>, it becomes <a class="reference internal" href="#c.NGHTTP2_MAX_WEIGHT" title="NGHTTP2_MAX_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MAX_WEIGHT</span></tt></a>.</p>
<p>The <em>nva</em> is an array of name/value pair <a class="reference internal" href="#c.nghttp2_nv" title="nghttp2_nv"><tt class="xref c c-type docutils literal"><span class="pre">nghttp2_nv</span></tt></a> with
<em>nvlen</em> elements. The value is opaque sequence of bytes and
therefore can contain NULL byte (0x0). If the application requires
@ -2641,8 +2614,6 @@ negative error codes:</p>
<dl class="docutils">
<dt><a class="reference internal" href="#c.NGHTTP2_ERR_NOMEM" title="NGHTTP2_ERR_NOMEM"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_ERR_NOMEM</span></tt></a></dt>
<dd>Out of memory.</dd>
<dt><a class="reference internal" href="#c.NGHTTP2_ERR_INVALID_ARGUMENT" title="NGHTTP2_ERR_INVALID_ARGUMENT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_ERR_INVALID_ARGUMENT</span></tt></a></dt>
<dd>The <em>pri_spec-&gt;pri_type</em> is invalid.</dd>
</dl>
</dd></dl>
@ -2675,17 +2646,20 @@ to the priority specification <em>pri_spec</em>.</p>
<a class="reference internal" href="#c.NGHTTP2_FLAG_NONE" title="NGHTTP2_FLAG_NONE"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_FLAG_NONE</span></tt></a>.</p>
<p>The <em>pri_spec</em> is priority specification of this request. <tt class="docutils literal"><span class="pre">NULL</span></tt>
is not allowed for this function. To specify the priority, use
either <a class="reference internal" href="#c.nghttp2_priority_spec_group_init" title="nghttp2_priority_spec_group_init"><tt class="xref c c-func docutils literal"><span class="pre">nghttp2_priority_spec_group_init()</span></tt></a> or
<a class="reference internal" href="#c.nghttp2_priority_spec_dep_init" title="nghttp2_priority_spec_dep_init"><tt class="xref c c-func docutils literal"><span class="pre">nghttp2_priority_spec_dep_init()</span></tt></a>. This function will copy its
data members.</p>
<a class="reference internal" href="#c.nghttp2_priority_spec_init" title="nghttp2_priority_spec_init"><tt class="xref c c-func docutils literal"><span class="pre">nghttp2_priority_spec_init()</span></tt></a>. This function will copy its data
members.</p>
<p>The <tt class="xref c c-func docutils literal"><span class="pre">pri_spec-&gt;weight()</span></tt> must be in [<a class="reference internal" href="#c.NGHTTP2_MIN_WEIGHT" title="NGHTTP2_MIN_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MIN_WEIGHT</span></tt></a>,
<a class="reference internal" href="#c.NGHTTP2_MAX_WEIGHT" title="NGHTTP2_MAX_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MAX_WEIGHT</span></tt></a>], inclusive. If <tt class="xref c c-func docutils literal"><span class="pre">pri_spec-&gt;weight()</span></tt> is
strictly less than <a class="reference internal" href="#c.NGHTTP2_MIN_WEIGHT" title="NGHTTP2_MIN_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MIN_WEIGHT</span></tt></a>, it becomes
<a class="reference internal" href="#c.NGHTTP2_MIN_WEIGHT" title="NGHTTP2_MIN_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MIN_WEIGHT</span></tt></a>. If it is strictly greater than
<a class="reference internal" href="#c.NGHTTP2_MAX_WEIGHT" title="NGHTTP2_MAX_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MAX_WEIGHT</span></tt></a>, it becomes <a class="reference internal" href="#c.NGHTTP2_MAX_WEIGHT" title="NGHTTP2_MAX_WEIGHT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_MAX_WEIGHT</span></tt></a>.</p>
<p>This function returns 0 if it succeeds, or one of the following
negative error codes:</p>
<dl class="docutils">
<dt><a class="reference internal" href="#c.NGHTTP2_ERR_NOMEM" title="NGHTTP2_ERR_NOMEM"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_ERR_NOMEM</span></tt></a></dt>
<dd>Out of memory.</dd>
<dt><a class="reference internal" href="#c.NGHTTP2_ERR_INVALID_ARGUMENT" title="NGHTTP2_ERR_INVALID_ARGUMENT"><tt class="xref c c-macro docutils literal"><span class="pre">NGHTTP2_ERR_INVALID_ARGUMENT</span></tt></a></dt>
<dd>The <em>pri_spec</em> is NULL; or the <em>pri_spec-&gt;pri_type</em> is invalid;
or trying to depend on itself.</dd>
<dd>The <em>pri_spec</em> is NULL; or trying to depend on itself.</dd>
</dl>
</dd></dl>

View File

@ -215,6 +215,18 @@
</dt>
<dt><a href="apiref.html#c.NGHTTP2_BLOCKED">NGHTTP2_BLOCKED (C macro)</a>
</dt>
<dt><a href="apiref.html#c.nghttp2_blocked">nghttp2_blocked (C type)</a>
</dt>
<dt><a href="apiref.html#c.nghttp2_blocked.hd">nghttp2_blocked.hd (C member)</a>
</dt>
<dt><a href="apiref.html#c.NGHTTP2_CANCEL">NGHTTP2_CANCEL (C macro)</a>
</dt>
@ -279,6 +291,10 @@
</dt>
<dt><a href="apiref.html#c.NGHTTP2_DATA_FLAG_COMPRESSED">NGHTTP2_DATA_FLAG_COMPRESSED (C macro)</a>
</dt>
<dt><a href="apiref.html#c.NGHTTP2_DATA_FLAG_EOF">NGHTTP2_DATA_FLAG_EOF (C macro)</a>
</dt>
@ -463,6 +479,10 @@
</dt>
<dt><a href="apiref.html#c.NGHTTP2_FLAG_COMPRESSED">NGHTTP2_FLAG_COMPRESSED (C macro)</a>
</dt>
<dt><a href="apiref.html#c.NGHTTP2_FLAG_END_HEADERS">NGHTTP2_FLAG_END_HEADERS (C macro)</a>
</dt>
@ -487,11 +507,7 @@
</dt>
<dt><a href="apiref.html#c.NGHTTP2_FLAG_PRIORITY_DEPENDENCY">NGHTTP2_FLAG_PRIORITY_DEPENDENCY (C macro)</a>
</dt>
<dt><a href="apiref.html#c.NGHTTP2_FLAG_PRIORITY_GROUP">NGHTTP2_FLAG_PRIORITY_GROUP (C macro)</a>
<dt><a href="apiref.html#c.NGHTTP2_FLAG_PRIORITY">NGHTTP2_FLAG_PRIORITY (C macro)</a>
</dt>
@ -507,6 +523,10 @@
</dt>
<dt><a href="apiref.html#c.nghttp2_frame.blocked">nghttp2_frame.blocked (C member)</a>
</dt>
<dt><a href="apiref.html#c.nghttp2_frame.data">nghttp2_frame.data (C member)</a>
</dt>
@ -710,6 +730,8 @@
<dt><a href="apiref.html#c.NGHTTP2_INTERNAL_ERROR">NGHTTP2_INTERNAL_ERROR (C macro)</a>
</dt>
</dl></td>
<td style="width: 33%" valign="top"><dl>
<dt><a href="apiref.html#c.nghttp2_is_fatal">nghttp2_is_fatal (C function)</a>
</dt>
@ -734,8 +756,6 @@
<dt><a href="apiref.html#c.NGHTTP2_NO_ERROR">NGHTTP2_NO_ERROR (C macro)</a>
</dt>
</dl></td>
<td style="width: 33%" valign="top"><dl>
<dt><a href="apiref.html#c.nghttp2_nv">nghttp2_nv (C type)</a>
</dt>
@ -869,67 +889,31 @@
</dt>
<dt><a href="apiref.html#c.nghttp2_priority_dep">nghttp2_priority_dep (C type)</a>
</dt>
<dt><a href="apiref.html#c.nghttp2_priority_dep.exclusive">nghttp2_priority_dep.exclusive (C member)</a>
</dt>
<dt><a href="apiref.html#c.nghttp2_priority_dep.stream_id">nghttp2_priority_dep.stream_id (C member)</a>
</dt>
<dt><a href="apiref.html#c.nghttp2_priority_group">nghttp2_priority_group (C type)</a>
</dt>
<dt><a href="apiref.html#c.nghttp2_priority_group.pri_group_id">nghttp2_priority_group.pri_group_id (C member)</a>
</dt>
<dt><a href="apiref.html#c.nghttp2_priority_group.weight">nghttp2_priority_group.weight (C member)</a>
</dt>
<dt><a href="apiref.html#c.nghttp2_priority_spec">nghttp2_priority_spec (C type)</a>
</dt>
<dt><a href="apiref.html#c.nghttp2_priority_spec.dep">nghttp2_priority_spec.dep (C member)</a>
<dt><a href="apiref.html#c.nghttp2_priority_spec.exclusive">nghttp2_priority_spec.exclusive (C member)</a>
</dt>
<dt><a href="apiref.html#c.nghttp2_priority_spec.group">nghttp2_priority_spec.group (C member)</a>
<dt><a href="apiref.html#c.nghttp2_priority_spec.stream_id">nghttp2_priority_spec.stream_id (C member)</a>
</dt>
<dt><a href="apiref.html#c.nghttp2_priority_spec.pri_type">nghttp2_priority_spec.pri_type (C member)</a>
<dt><a href="apiref.html#c.nghttp2_priority_spec.weight">nghttp2_priority_spec.weight (C member)</a>
</dt>
<dt><a href="apiref.html#c.nghttp2_priority_spec_dep_init">nghttp2_priority_spec_dep_init (C function)</a>
<dt><a href="apiref.html#c.nghttp2_priority_spec_check_default">nghttp2_priority_spec_check_default (C function)</a>
</dt>
<dt><a href="apiref.html#c.nghttp2_priority_spec_group_init">nghttp2_priority_spec_group_init (C function)</a>
<dt><a href="apiref.html#c.nghttp2_priority_spec_default_init">nghttp2_priority_spec_default_init (C function)</a>
</dt>
<dt><a href="apiref.html#c.nghttp2_priority_type">nghttp2_priority_type (C type)</a>
</dt>
<dt><a href="apiref.html#c.NGHTTP2_PRIORITY_TYPE_DEP">NGHTTP2_PRIORITY_TYPE_DEP (C macro)</a>
</dt>
<dt><a href="apiref.html#c.NGHTTP2_PRIORITY_TYPE_GROUP">NGHTTP2_PRIORITY_TYPE_GROUP (C macro)</a>
</dt>
<dt><a href="apiref.html#c.NGHTTP2_PRIORITY_TYPE_NONE">NGHTTP2_PRIORITY_TYPE_NONE (C macro)</a>
<dt><a href="apiref.html#c.nghttp2_priority_spec_init">nghttp2_priority_spec_init (C function)</a>
</dt>
@ -1177,6 +1161,10 @@
</dt>
<dt><a href="apiref.html#c.NGHTTP2_SETTINGS_COMPRESS_DATA">NGHTTP2_SETTINGS_COMPRESS_DATA (C macro)</a>
</dt>
<dt><a href="apiref.html#c.NGHTTP2_SETTINGS_ENABLE_PUSH">NGHTTP2_SETTINGS_ENABLE_PUSH (C macro)</a>
</dt>

View File

@ -202,7 +202,7 @@
<span class="cm"> * The protocol version identification string of this library</span>
<span class="cm"> * supports. This identifier is used if HTTP/2 is used over TLS.</span>
<span class="cm"> */</span>
<span class="cp">#define NGHTTP2_PROTO_VERSION_ID &quot;h2-11&quot;</span>
<span class="cp">#define NGHTTP2_PROTO_VERSION_ID &quot;h2-12&quot;</span>
<span class="cm">/**</span>
<span class="cm"> * @macro</span>
<span class="cm"> *</span>
@ -217,7 +217,7 @@
<span class="cm"> * supports. This identifier is used if HTTP/2 is used over cleartext</span>
<span class="cm"> * TCP.</span>
<span class="cm"> */</span>
<span class="cp">#define NGHTTP2_CLEARTEXT_PROTO_VERSION_ID &quot;h2c-11&quot;</span>
<span class="cp">#define NGHTTP2_CLEARTEXT_PROTO_VERSION_ID &quot;h2c-12&quot;</span>
<span class="cm">/**</span>
<span class="cm"> * @macro</span>
@ -275,21 +275,21 @@
<span class="cm">/**</span>
<span class="cm"> * @macro</span>
<span class="cm"> *</span>
<span class="cm"> * The default weight of priority group.</span>
<span class="cm"> * The default weight of stream dependency.</span>
<span class="cm"> */</span>
<span class="cp">#define NGHTTP2_DEFAULT_WEIGHT 16</span>
<span class="cm">/**</span>
<span class="cm"> * @macro</span>
<span class="cm"> *</span>
<span class="cm"> * The maximum weight of priority group.</span>
<span class="cm"> * The maximum weight of stream dependency.</span>
<span class="cm"> */</span>
<span class="cp">#define NGHTTP2_MAX_WEIGHT 256</span>
<span class="cm">/**</span>
<span class="cm"> * @macro</span>
<span class="cm"> *</span>
<span class="cm"> * The minimum weight of priority group.</span>
<span class="cm"> * The minimum weight of stream dependency.</span>
<span class="cm"> */</span>
<span class="cp">#define NGHTTP2_MIN_WEIGHT 1</span>
@ -604,7 +604,11 @@
<span class="cm">/**</span>
<span class="cm"> * The ALTSVC frame.</span>
<span class="cm"> */</span>
<span class="n">NGHTTP2_ALTSVC</span> <span class="o">=</span> <span class="mh">0x0a</span>
<span class="n">NGHTTP2_ALTSVC</span> <span class="o">=</span> <span class="mh">0x0a</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * The BLOCKED frame.</span>
<span class="cm"> */</span>
<span class="n">NGHTTP2_BLOCKED</span> <span class="o">=</span> <span class="mh">0x0b</span>
<span class="p">}</span> <span class="n">nghttp2_frame_type</span><span class="p">;</span>
<span class="cm">/**</span>
@ -643,13 +647,13 @@
<span class="cm"> */</span>
<span class="n">NGHTTP2_FLAG_PAD_HIGH</span> <span class="o">=</span> <span class="mh">0x10</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * The PRIORITY_GROUP flag.</span>
<span class="cm"> * The PRIORITY flag.</span>
<span class="cm"> */</span>
<span class="n">NGHTTP2_FLAG_PRIORITY_GROUP</span> <span class="o">=</span> <span class="mh">0x20</span><span class="p">,</span>
<span class="n">NGHTTP2_FLAG_PRIORITY</span> <span class="o">=</span> <span class="mh">0x20</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * The PRIORITY_DEPENDENCY flag.</span>
<span class="cm"> * THE COMPRESSED flag.</span>
<span class="cm"> */</span>
<span class="n">NGHTTP2_FLAG_PRIORITY_DEPENDENCY</span> <span class="o">=</span> <span class="mh">0x40</span>
<span class="n">NGHTTP2_FLAG_COMPRESSED</span> <span class="o">=</span> <span class="mh">0x20</span>
<span class="p">}</span> <span class="n">nghttp2_flag</span><span class="p">;</span>
<span class="cm">/**</span>
@ -674,9 +678,13 @@
<span class="cm"> */</span>
<span class="n">NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE</span> <span class="o">=</span> <span class="mi">4</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * SETTINGS_COMPRESS_DATA</span>
<span class="cm"> */</span>
<span class="n">NGHTTP2_SETTINGS_COMPRESS_DATA</span> <span class="o">=</span> <span class="mi">5</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * Maximum ID of :type:`nghttp2_settings_id`.</span>
<span class="cm"> */</span>
<span class="n">NGHTTP2_SETTINGS_MAX</span> <span class="o">=</span> <span class="mi">4</span>
<span class="n">NGHTTP2_SETTINGS_MAX</span> <span class="o">=</span> <span class="mi">5</span>
<span class="p">}</span> <span class="n">nghttp2_settings_id</span><span class="p">;</span>
<span class="cm">/**</span>
@ -799,7 +807,11 @@
<span class="cm">/**</span>
<span class="cm"> * Indicates EOF was sensed.</span>
<span class="cm"> */</span>
<span class="n">NGHTTP2_DATA_FLAG_EOF</span> <span class="o">=</span> <span class="mh">0x01</span>
<span class="n">NGHTTP2_DATA_FLAG_EOF</span> <span class="o">=</span> <span class="mh">0x01</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * Indicates data was compressed by application.</span>
<span class="cm"> */</span>
<span class="n">NGHTTP2_DATA_FLAG_COMPRESSED</span> <span class="o">=</span> <span class="mh">0x02</span>
<span class="p">}</span> <span class="n">nghttp2_data_flag</span><span class="p">;</span>
<span class="cm">/**</span>
@ -810,7 +822,13 @@
<span class="cm"> * The implementation of this function must read at most |length|</span>
<span class="cm"> * bytes of data from |source| (or possibly other places) and store</span>
<span class="cm"> * them in |buf| and return number of data stored in |buf|. If EOF is</span>
<span class="cm"> * reached, set :enum:`NGHTTP2_DATA_FLAG_EOF` flag in |*data_falgs|.</span>
<span class="cm"> * reached, set :enum:`NGHTTP2_DATA_FLAG_EOF` flag in |*data_flags|.</span>
<span class="cm"> *</span>
<span class="cm"> * To send compressed data payload without affecting content-length,</span>
<span class="cm"> * set :enum:`NGHTTP2_DATA_FLAG_COMPRESSED` flag in |*data_flags|.</span>
<span class="cm"> * Compression must be done by application prior to fill data in</span>
<span class="cm"> * |buf|.</span>
<span class="cm"> *</span>
<span class="cm"> * If the application wants to postpone DATA frames (e.g.,</span>
<span class="cm"> * asynchronous I/O, or reading data blocks for long time), it is</span>
<span class="cm"> * achieved by returning :enum:`NGHTTP2_ERR_DEFERRED` without reading</span>
@ -892,93 +910,25 @@
<span class="n">NGHTTP2_HCAT_HEADERS</span> <span class="o">=</span> <span class="mi">3</span>
<span class="p">}</span> <span class="n">nghttp2_headers_category</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm"> * @enum</span>
<span class="cm"> *</span>
<span class="cm"> * The type of priority specified in :type:`nghttp2_priority_spec`.</span>
<span class="cm"> */</span>
<span class="k">typedef</span> <span class="k">enum</span> <span class="p">{</span>
<span class="cm">/**</span>
<span class="cm"> * No priority is given. The default priority will be used.</span>
<span class="cm"> */</span>
<span class="n">NGHTTP2_PRIORITY_TYPE_NONE</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * Priority group ID and its weight are specified.</span>
<span class="cm"> */</span>
<span class="n">NGHTTP2_PRIORITY_TYPE_GROUP</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span>
<span class="cm">/**</span>
<span class="cm"> * The stream ID of a stream to depend on and its exclusive flag is</span>
<span class="cm"> * specified.</span>
<span class="cm"> */</span>
<span class="n">NGHTTP2_PRIORITY_TYPE_DEP</span> <span class="o">=</span> <span class="mi">2</span>
<span class="p">}</span> <span class="n">nghttp2_priority_type</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm"> * @struct</span>
<span class="cm"> *</span>
<span class="cm"> * This structure stores priority group ID and its weight.</span>
<span class="cm"> * The structure to specify stream dependency.</span>
<span class="cm"> */</span>
<span class="k">typedef</span> <span class="k">struct</span> <span class="p">{</span>
<span class="cm">/**</span>
<span class="cm"> * The priority group ID</span>
<span class="cm"> */</span>
<span class="kt">int32_t</span> <span class="n">pri_group_id</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm"> * The weight of the priority group</span>
<span class="cm"> */</span>
<span class="kt">int32_t</span> <span class="n">weight</span><span class="p">;</span>
<span class="p">}</span> <span class="n">nghttp2_priority_group</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm"> * @struct</span>
<span class="cm"> *</span>
<span class="cm"> * This structure stores stream ID of the stream to depend on and its</span>
<span class="cm"> * dependency is exclusive or not.</span>
<span class="cm"> */</span>
<span class="k">typedef</span> <span class="k">struct</span> <span class="p">{</span>
<span class="cm">/**</span>
<span class="cm"> * The stream ID of the stream to depend on.</span>
<span class="cm"> * The stream ID of the stream to depend on. Specifying 0 makes</span>
<span class="cm"> * stream not depend any other stream.</span>
<span class="cm"> */</span>
<span class="kt">int32_t</span> <span class="n">stream_id</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm"> * The weight of this dependency.</span>
<span class="cm"> */</span>
<span class="kt">int32_t</span> <span class="n">weight</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm"> * nonzero means exclusive dependency</span>
<span class="cm"> */</span>
<span class="kt">uint8_t</span> <span class="n">exclusive</span><span class="p">;</span>
<span class="p">}</span> <span class="n">nghttp2_priority_dep</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm"> * @struct</span>
<span class="cm"> *</span>
<span class="cm"> * The structure to specify stream dependency. To specify stream</span>
<span class="cm"> * dependency, specify |pri_type| and fill the |group| or |dep| member</span>
<span class="cm"> * according to |pri_type|.</span>
<span class="cm"> */</span>
<span class="k">typedef</span> <span class="k">struct</span> <span class="p">{</span>
<span class="cm">/**</span>
<span class="cm"> * Type of priority specification. If |pri_type| is</span>
<span class="cm"> * :enum:`NGHTTP2_PRIORITY_TYPE_GROUP`, fill |group|. If |pri_type|</span>
<span class="cm"> * is :enum:`NGHTTP2_PRIORITY_TYPE_DEP`, fill |dep|. If |pri_type|</span>
<span class="cm"> * is :enum:`NGHTTP2_PRIORITY_TYPE_NONE`, the other data members are</span>
<span class="cm"> * ignored and it means that default priority group ID (which is</span>
<span class="cm"> * same as the stream ID) and default weight</span>
<span class="cm"> * :macro:`NGHTTP2_DEFAULT_WEIGHT` are specified.</span>
<span class="cm"> */</span>
<span class="n">nghttp2_priority_type</span> <span class="n">pri_type</span><span class="p">;</span>
<span class="k">union</span> <span class="p">{</span>
<span class="cm">/**</span>
<span class="cm"> * Specify priority group ID and its weight. This field is</span>
<span class="cm"> * interpreted only when |pri_type| member is</span>
<span class="cm"> * :enum:`NGHTTP2_PRIORITY_TYPE_GROUP`.</span>
<span class="cm"> */</span>
<span class="n">nghttp2_priority_group</span> <span class="n">group</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm"> * Specify stream ID of a stream to depend on and exclusive flag.</span>
<span class="cm"> * This field is interpreted only when |pri_type| member is</span>
<span class="cm"> * :enum:`NGHTTP2_PRIORITY_TYPE_DEP`.</span>
<span class="cm"> */</span>
<span class="n">nghttp2_priority_dep</span> <span class="n">dep</span><span class="p">;</span>
<span class="p">}</span> <span class="n">spec</span><span class="p">;</span>
<span class="p">}</span> <span class="n">nghttp2_priority_spec</span><span class="p">;</span>
<span class="cm">/**</span>
@ -1215,6 +1165,18 @@
<span class="kt">uint16_t</span> <span class="n">port</span><span class="p">;</span>
<span class="p">}</span> <span class="n">nghttp2_altsvc</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm"> * @struct</span>
<span class="cm"> *</span>
<span class="cm"> * The BLOCKED frame. It has following members:</span>
<span class="cm"> */</span>
<span class="k">typedef</span> <span class="k">struct</span> <span class="p">{</span>
<span class="cm">/**</span>
<span class="cm"> * The frame header.</span>
<span class="cm"> */</span>
<span class="n">nghttp2_frame_hd</span> <span class="n">hd</span><span class="p">;</span>
<span class="p">}</span> <span class="n">nghttp2_blocked</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm"> * @union</span>
<span class="cm"> *</span>
@ -1267,6 +1229,10 @@
<span class="cm"> * The ALTSVC frame.</span>
<span class="cm"> */</span>
<span class="n">nghttp2_altsvc</span> <span class="n">altsvc</span><span class="p">;</span>
<span class="cm">/**</span>
<span class="cm"> * The BLOCKED frame.</span>
<span class="cm"> */</span>
<span class="n">nghttp2_blocked</span> <span class="n">blocked</span><span class="p">;</span>
<span class="p">}</span> <span class="n">nghttp2_frame</span><span class="p">;</span>
<span class="cm">/**</span>
@ -2314,32 +2280,32 @@
<span class="cm">/**</span>
<span class="cm"> * @function</span>
<span class="cm"> *</span>
<span class="cm"> * Initializes |pri_spec| with priority group ID |pri_group_id| and</span>
<span class="cm"> * its weight |weight|.</span>
<span class="cm"> * Initializes |pri_spec| with the |stream_id| of the stream to depend</span>
<span class="cm"> * on with |weight| and its exclusive flag. If |exclusive| is</span>
<span class="cm"> * nonzero, exclusive flag is set.</span>
<span class="cm"> *</span>
<span class="cm"> * The |weight| must be in [:enum:`NGHTTP2_MIN_WEIGHT`,</span>
<span class="cm"> * :enum:`NGHTTP2_MAX_WEIGHT`], inclusive. If |weight| is strictly</span>
<span class="cm"> * less than :enum:`NGHTTP2_MIN_WEIGHT`, it becomes</span>
<span class="cm"> * :enum:`NGHTTP2_MIN_WEIGHT`. If it is strictly greater than</span>
<span class="cm"> * :enum:`NGHTTP2_MAX_WEIGHT`, it becomes :enum:`NGHTTP2_MAX_WEIGHT`.</span>
<span class="cm"> *</span>
<span class="cm"> * To specify weight for the default priority group (which is the same</span>
<span class="cm"> * as the stream ID of the stream) in `nghttp2_submit_request()` and</span>
<span class="cm"> * `nghttp2_submit_headers()` and its stream ID is not known in</span>
<span class="cm"> * advance, specify -1 to |pri_group_id|.</span>
<span class="cm"> * :enum:`NGHTTP2_MAX_WEIGHT`], inclusive.</span>
<span class="cm"> */</span>
<span class="kt">void</span> <span class="nf">nghttp2_priority_spec_group_init</span><span class="p">(</span><span class="n">nghttp2_priority_spec</span> <span class="o">*</span><span class="n">pri_spec</span><span class="p">,</span>
<span class="kt">int32_t</span> <span class="n">pri_group_id</span><span class="p">,</span> <span class="kt">int32_t</span> <span class="n">weight</span><span class="p">);</span>
<span class="kt">void</span> <span class="nf">nghttp2_priority_spec_init</span><span class="p">(</span><span class="n">nghttp2_priority_spec</span> <span class="o">*</span><span class="n">pri_spec</span><span class="p">,</span>
<span class="kt">int32_t</span> <span class="n">stream_id</span><span class="p">,</span> <span class="kt">int32_t</span> <span class="n">weight</span><span class="p">,</span>
<span class="kt">int</span> <span class="n">exclusive</span><span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * @function</span>
<span class="cm"> *</span>
<span class="cm"> * Initializes |pri_spec| with the |stream_id| of the stream to depend</span>
<span class="cm"> * on and its exclusive flag. If |exclusive| is nonzero, exclusive</span>
<span class="cm"> * flag is set.</span>
<span class="cm"> * Initializes |pri_spec| with the default values. The default values</span>
<span class="cm"> * are: stream_id = 0, weight = :macro:`NGHTTP2_DEFAULT_WEIGHT` and</span>
<span class="cm"> * exclusive = 0.</span>
<span class="cm"> */</span>
<span class="kt">void</span> <span class="nf">nghttp2_priority_spec_dep_init</span><span class="p">(</span><span class="n">nghttp2_priority_spec</span> <span class="o">*</span><span class="n">pri_spec</span><span class="p">,</span>
<span class="kt">int32_t</span> <span class="n">stream_id</span><span class="p">,</span> <span class="kt">int</span> <span class="n">exclusive</span><span class="p">);</span>
<span class="kt">void</span> <span class="nf">nghttp2_priority_spec_default_init</span><span class="p">(</span><span class="n">nghttp2_priority_spec</span> <span class="o">*</span><span class="n">pri_spec</span><span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * @function</span>
<span class="cm"> *</span>
<span class="cm"> * Returns nonzero if the |pri_spec| is filled with default values.</span>
<span class="cm"> */</span>
<span class="kt">int</span> <span class="nf">nghttp2_priority_spec_check_default</span><span class="p">(</span><span class="k">const</span> <span class="n">nghttp2_priority_spec</span> <span class="o">*</span><span class="n">pri_spec</span><span class="p">);</span>
<span class="cm">/**</span>
<span class="cm"> * @function</span>
@ -2347,12 +2313,17 @@
<span class="cm"> * Submits HEADERS frame and optionally one or more DATA frames.</span>
<span class="cm"> *</span>
<span class="cm"> * The |pri_spec| is priority specification of this request. ``NULL``</span>
<span class="cm"> * means the default priority (priority group ID becomes its stream ID</span>
<span class="cm"> * and weight is :macro:`NGHTTP2_DEFAULT_WEIGHT`). To specify the</span>
<span class="cm"> * priority, use either `nghttp2_priority_spec_group_init()` or</span>
<span class="cm"> * `nghttp2_priority_spec_dep_init()`. If |pri_spec| is not ``NULL``,</span>
<span class="cm"> * means the default priority (see</span>
<span class="cm"> * `nghttp2_priority_spec_default_init()`). To specify the priority,</span>
<span class="cm"> * use `nghttp2_priority_spec_init()`. If |pri_spec| is not ``NULL``,</span>
<span class="cm"> * this function will copy its data members.</span>
<span class="cm"> *</span>
<span class="cm"> * The `pri_spec-&gt;weight` must be in [:enum:`NGHTTP2_MIN_WEIGHT`,</span>
<span class="cm"> * :enum:`NGHTTP2_MAX_WEIGHT`], inclusive. If `pri_spec-&gt;weight` is</span>
<span class="cm"> * strictly less than :enum:`NGHTTP2_MIN_WEIGHT`, it becomes</span>
<span class="cm"> * :enum:`NGHTTP2_MIN_WEIGHT`. If it is strictly greater than</span>
<span class="cm"> * :enum:`NGHTTP2_MAX_WEIGHT`, it becomes :enum:`NGHTTP2_MAX_WEIGHT`.</span>
<span class="cm"> *</span>
<span class="cm"> * The |nva| is an array of name/value pair :type:`nghttp2_nv` with</span>
<span class="cm"> * |nvlen| elements. The value is opaque sequence of bytes and</span>
<span class="cm"> * therefore can contain NULL byte (0x0). If the application requires</span>
@ -2395,8 +2366,6 @@
<span class="cm"> *</span>
<span class="cm"> * :enum:`NGHTTP2_ERR_NOMEM`</span>
<span class="cm"> * Out of memory.</span>
<span class="cm"> * :enum:`NGHTTP2_ERR_INVALID_ARGUMENT`</span>
<span class="cm"> * The |pri_spec-&gt;pri_type| is invalid.</span>
<span class="cm"> */</span>
<span class="kt">int</span> <span class="nf">nghttp2_submit_request</span><span class="p">(</span><span class="n">nghttp2_session</span> <span class="o">*</span><span class="n">session</span><span class="p">,</span>
<span class="k">const</span> <span class="n">nghttp2_priority_spec</span> <span class="o">*</span><span class="n">pri_spec</span><span class="p">,</span>
@ -2467,12 +2436,17 @@
<span class="cm"> * response, specify stream ID in |stream_id|.</span>
<span class="cm"> *</span>
<span class="cm"> * The |pri_spec| is priority specification of this request. ``NULL``</span>
<span class="cm"> * means the default priority (priority group ID becomes its stream ID</span>
<span class="cm"> * and weight is :macro:`NGHTTP2_DEFAULT_WEIGHT`). To specify the</span>
<span class="cm"> * priority, use either `nghttp2_priority_spec_group_init()` or</span>
<span class="cm"> * `nghttp2_priority_spec_dep_init()`. If |pri_spec| is not ``NULL``,</span>
<span class="cm"> * means the default priority (see</span>
<span class="cm"> * `nghttp2_priority_spec_default_init()`). To specify the priority,</span>
<span class="cm"> * use `nghttp2_priority_spec_init()`. If |pri_spec| is not ``NULL``,</span>
<span class="cm"> * this function will copy its data members.</span>
<span class="cm"> *</span>
<span class="cm"> * The `pri_spec-&gt;weight` must be in [:enum:`NGHTTP2_MIN_WEIGHT`,</span>
<span class="cm"> * :enum:`NGHTTP2_MAX_WEIGHT`], inclusive. If `pri_spec-&gt;weight` is</span>
<span class="cm"> * strictly less than :enum:`NGHTTP2_MIN_WEIGHT`, it becomes</span>
<span class="cm"> * :enum:`NGHTTP2_MIN_WEIGHT`. If it is strictly greater than</span>
<span class="cm"> * :enum:`NGHTTP2_MAX_WEIGHT`, it becomes :enum:`NGHTTP2_MAX_WEIGHT`.</span>
<span class="cm"> *</span>
<span class="cm"> * The |nva| is an array of name/value pair :type:`nghttp2_nv` with</span>
<span class="cm"> * |nvlen| elements. The value is opaque sequence of bytes and</span>
<span class="cm"> * therefore can contain NULL byte (0x0). If the application requires</span>
@ -2497,8 +2471,6 @@
<span class="cm"> *</span>
<span class="cm"> * :enum:`NGHTTP2_ERR_NOMEM`</span>
<span class="cm"> * Out of memory.</span>
<span class="cm"> * :enum:`NGHTTP2_ERR_INVALID_ARGUMENT`</span>
<span class="cm"> * The |pri_spec-&gt;pri_type| is invalid.</span>
<span class="cm"> */</span>
<span class="kt">int</span> <span class="nf">nghttp2_submit_headers</span><span class="p">(</span><span class="n">nghttp2_session</span> <span class="o">*</span><span class="n">session</span><span class="p">,</span> <span class="kt">uint8_t</span> <span class="n">flags</span><span class="p">,</span>
<span class="kt">int32_t</span> <span class="n">stream_id</span><span class="p">,</span>
@ -2541,9 +2513,14 @@
<span class="cm"> *</span>
<span class="cm"> * The |pri_spec| is priority specification of this request. ``NULL``</span>
<span class="cm"> * is not allowed for this function. To specify the priority, use</span>
<span class="cm"> * either `nghttp2_priority_spec_group_init()` or</span>
<span class="cm"> * `nghttp2_priority_spec_dep_init()`. This function will copy its</span>
<span class="cm"> * data members.</span>
<span class="cm"> * `nghttp2_priority_spec_init()`. This function will copy its data</span>
<span class="cm"> * members.</span>
<span class="cm"> *</span>
<span class="cm"> * The `pri_spec-&gt;weight` must be in [:enum:`NGHTTP2_MIN_WEIGHT`,</span>
<span class="cm"> * :enum:`NGHTTP2_MAX_WEIGHT`], inclusive. If `pri_spec-&gt;weight` is</span>
<span class="cm"> * strictly less than :enum:`NGHTTP2_MIN_WEIGHT`, it becomes</span>
<span class="cm"> * :enum:`NGHTTP2_MIN_WEIGHT`. If it is strictly greater than</span>
<span class="cm"> * :enum:`NGHTTP2_MAX_WEIGHT`, it becomes :enum:`NGHTTP2_MAX_WEIGHT`.</span>
<span class="cm"> *</span>
<span class="cm"> * This function returns 0 if it succeeds, or one of the following</span>
<span class="cm"> * negative error codes:</span>
@ -2551,8 +2528,7 @@
<span class="cm"> * :enum:`NGHTTP2_ERR_NOMEM`</span>
<span class="cm"> * Out of memory.</span>
<span class="cm"> * :enum:`NGHTTP2_ERR_INVALID_ARGUMENT`</span>
<span class="cm"> * The |pri_spec| is NULL; or the |pri_spec-&gt;pri_type| is invalid;</span>
<span class="cm"> * or trying to depend on itself.</span>
<span class="cm"> * The |pri_spec| is NULL; or trying to depend on itself.</span>
<span class="cm"> */</span>
<span class="kt">int</span> <span class="nf">nghttp2_submit_priority</span><span class="p">(</span><span class="n">nghttp2_session</span> <span class="o">*</span><span class="n">session</span><span class="p">,</span> <span class="kt">uint8_t</span> <span class="n">flags</span><span class="p">,</span>
<span class="kt">int32_t</span> <span class="n">stream_id</span><span class="p">,</span>

Binary file not shown.

View File

@ -163,8 +163,8 @@
version 2.</p>
<div class="section" id="development-status">
<h2>Development Status<a class="headerlink" href="#development-status" title="Permalink to this headline"></a></h2>
<p>We started to implement h2-11
(<a class="reference external" href="http://tools.ietf.org/html/draft-ietf-httpbis-http2-11">http://tools.ietf.org/html/draft-ietf-httpbis-http2-11</a>) and the
<p>We started to implement h2-12
(<a class="reference external" href="http://tools.ietf.org/html/draft-ietf-httpbis-http2-12">http://tools.ietf.org/html/draft-ietf-httpbis-http2-12</a>) and the
header compression
(<a class="reference external" href="http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-07">http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-07</a>).</p>
<p>The nghttp2 code base was forked from spdylay project.</p>
@ -175,17 +175,17 @@ header compression
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Features</th>
<th class="head">h2-11</th>
<th class="head">h2-12</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td>HPACK-draft-07</td>
<tr class="row-even"><td>Dependency based priority</td>
<td>Done</td>
</tr>
<tr class="row-odd"><td>Dependency based priority</td>
<tr class="row-odd"><td>BLOCKED frame</td>
<td>Done</td>
</tr>
<tr class="row-even"><td>ALTSVC frame</td>
<tr class="row-even"><td>COMPRESSED DATA</td>
<td>Done</td>
</tr>
</tbody>
@ -311,12 +311,12 @@ with prior knowledge, HTTP Upgrade and NPN/ALPN TLS extension.</p>
output from <tt class="docutils literal"><span class="pre">nghttp</span></tt> client:</p>
<div class="highlight-c"><div class="highlight"><pre>$ src/nghttp -nv https://localhost:8443
[ 0.004][NPN] server offers:
* h2-11
* h2-12
* spdy/3.1
* spdy/3
* spdy/2
* http/1.1
The negotiated protocol: h2-11
The negotiated protocol: h2-12
[ 0.006] send SETTINGS frame &lt;length=10, flags=0x00, stream_id=0&gt;
(niv=2)
[SETTINGS_MAX_CONCURRENT_STREAMS(3):100]
@ -481,7 +481,7 @@ IPv6: listen on port 8080
<div class="section" id="nghttpx-proxy">
<h3>nghttpx - proxy<a class="headerlink" href="#nghttpx-proxy" title="Permalink to this headline"></a></h3>
<p><tt class="docutils literal"><span class="pre">nghttpx</span></tt> is a multi-threaded reverse proxy for
<tt class="docutils literal"><span class="pre">h2-11</span></tt>, SPDY and HTTP/1.1. It has several operation modes:</p>
<tt class="docutils literal"><span class="pre">h2-12</span></tt>, SPDY and HTTP/1.1. It has several operation modes:</p>
<table border="1" class="docutils">
<colgroup>
<col width="25%" />
@ -525,7 +525,7 @@ IPv6: listen on port 8080
</tbody>
</table>
<p>The interesting mode at the moment is the default mode. It works like
a reverse proxy and listens for <tt class="docutils literal"><span class="pre">h2-11</span></tt>, SPDY and HTTP/1.1 and can
a reverse proxy and listens for <tt class="docutils literal"><span class="pre">h2-12</span></tt>, SPDY and HTTP/1.1 and can
be deployed SSL/TLS terminator for existing web server.</p>
<p>The default mode, <tt class="docutils literal"><span class="pre">--http2-proxy</span></tt> and <tt class="docutils literal"><span class="pre">--http2-bridge</span></tt> modes use
SSL/TLS in the frontend connection by default. To disable SSL/TLS,

File diff suppressed because one or more lines are too long