<ttclass="descname">NGHTTP2_MAX_WINDOW_SIZE</tt><aclass="headerlink"href="#NGHTTP2_MAX_WINDOW_SIZE"title="Permalink to this definition">¶</a></dt>
<dd><p>The maximum window size</p>
</dd></dl>
<dlclass="macro">
<dtid="NGHTTP2_INITIAL_WINDOW_SIZE">
<ttclass="descname">NGHTTP2_INITIAL_WINDOW_SIZE</tt><aclass="headerlink"href="#NGHTTP2_INITIAL_WINDOW_SIZE"title="Permalink to this definition">¶</a></dt>
...
...
@@ -305,6 +311,13 @@ The length of the frame is too large.</p>
Header block inflate/deflate error.</p>
</dd></dl>
<dlclass="macro">
<dtid="NGHTTP2_ERR_FLOW_CONTROL">
<ttclass="descname">NGHTTP2_ERR_FLOW_CONTROL</tt><aclass="headerlink"href="#NGHTTP2_ERR_FLOW_CONTROL"title="Permalink to this definition">¶</a></dt>
<ttclass="descname">NGHTTP2_ERR_FATAL</tt><aclass="headerlink"href="#NGHTTP2_ERR_FATAL"title="Permalink to this definition">¶</a></dt>
...
...
@@ -605,15 +618,25 @@ which is analogous to HEADERS in SPDY.</p>
<ttclass="descname">nghttp2_opt</tt><aclass="headerlink"href="#nghttp2_opt"title="Permalink to this definition">¶</a></dt>
<dd><p>Configuration options for <aclass="reference internal"href="#nghttp2_session"title="nghttp2_session"><ttclass="xref c c-type docutils literal"><spanclass="pre">nghttp2_session</span></tt></a>.</p>
<dlclass="macro">
<dtid="NGHTTP2_OPT_NO_AUTO_WINDOW_UPDATE">
<ttclass="descname">NGHTTP2_OPT_NO_AUTO_WINDOW_UPDATE</tt><aclass="headerlink"href="#NGHTTP2_OPT_NO_AUTO_WINDOW_UPDATE"title="Permalink to this definition">¶</a></dt>
<dtid="NGHTTP2_OPT_NO_AUTO_STREAM_WINDOW_UPDATE">
<ttclass="descname">NGHTTP2_OPT_NO_AUTO_STREAM_WINDOW_UPDATE</tt><aclass="headerlink"href="#NGHTTP2_OPT_NO_AUTO_STREAM_WINDOW_UPDATE"title="Permalink to this definition">¶</a></dt>
<ttclass="descname">NGHTTP2_OPT_NO_AUTO_CONNECTION_WINDOW_UPDATE</tt><aclass="headerlink"href="#NGHTTP2_OPT_NO_AUTO_CONNECTION_WINDOW_UPDATE"title="Permalink to this definition">¶</a></dt>
This option prevents the library from sending WINDOW_UPDATE for a
connection automatically. If this option is set, the application
is responsible for sending WINDOW_UPDATE with stream ID 0 using
<aclass="reference internal"href="#nghttp2_submit_window_update"title="nghttp2_submit_window_update"><ttclass="xref c c-func docutils literal"><spanclass="pre">nghttp2_submit_window_update()</span></tt></a>.</p>
</dd></dl>
</dd></dl>
</div>
...
...
@@ -1324,12 +1347,18 @@ required type of <em>optval</em> varies depending on the <em>optname</em>. See
below.</p>
<p>The following <em>optname</em> are supported:</p>
<dlclass="docutils">
<dt><aclass="reference internal"href="#NGHTTP2_OPT_NO_AUTO_WINDOW_UPDATE"title="NGHTTP2_OPT_NO_AUTO_WINDOW_UPDATE"><ttclass="xref c c-macro docutils literal"><spanclass="pre">NGHTTP2_OPT_NO_AUTO_WINDOW_UPDATE</span></tt></a></dt>
<dt><aclass="reference internal"href="#NGHTTP2_OPT_NO_AUTO_STREAM_WINDOW_UPDATE"title="NGHTTP2_OPT_NO_AUTO_STREAM_WINDOW_UPDATE"><ttclass="xref c c-macro docutils literal"><spanclass="pre">NGHTTP2_OPT_NO_AUTO_STREAM_WINDOW_UPDATE</span></tt></a></dt>
<dd>The <em>optval</em> must be a pointer to <ttclass="docutils literal"><spanclass="pre">int</span></tt>. If the <em>*optval</em> is
nonzero, the library will not send WINDOW_UPDATE for a stream
automatically. Therefore, the application is responsible for
sending WINDOW_UPDATE using
<aclass="reference internal"href="#nghttp2_submit_window_update"title="nghttp2_submit_window_update"><ttclass="xref c c-func docutils literal"><spanclass="pre">nghttp2_submit_window_update()</span></tt></a>. This option defaults to 0.</dd>
<dt><aclass="reference internal"href="#NGHTTP2_OPT_NO_AUTO_CONNECTION_WINDOW_UPDATE"title="NGHTTP2_OPT_NO_AUTO_CONNECTION_WINDOW_UPDATE"><ttclass="xref c c-macro docutils literal"><spanclass="pre">NGHTTP2_OPT_NO_AUTO_CONNECTION_WINDOW_UPDATE</span></tt></a></dt>
<dd>The <em>optval</em> must be a pointer to <ttclass="docutils literal"><spanclass="pre">int</span></tt>. If the <em>*optval</em> is
nonzero, the library will not send WINDOW_UPDATE automatically.
Therefore, the application is responsible for sending
WINDOW_UPDATE using <aclass="reference internal"href="#nghttp2_submit_window_update"title="nghttp2_submit_window_update"><ttclass="xref c c-func docutils literal"><spanclass="pre">nghttp2_submit_window_update()</span></tt></a>. This option
defaults to 0.</dd>
nonzero, the library will not send WINDOW_UPDATE for connection
automatically. Therefore, the application is responsible for
sending WINDOW_UPDATE using
<aclass="reference internal"href="#nghttp2_submit_window_update"title="nghttp2_submit_window_update"><ttclass="xref c c-func docutils literal"><spanclass="pre">nghttp2_submit_window_update()</span></tt></a>. This option defaults to 0.</dd>
</dl>
<p>This function returns 0 if it succeeds, or one of the following
negative error codes:</p>
...
...
@@ -1803,6 +1832,9 @@ pointer to the array of <a class="reference internal" href="#nghttp2_settings_en
indicates the number of <aclass="reference internal"href="#nghttp2_settings_entry"title="nghttp2_settings_entry"><ttclass="xref c c-type docutils literal"><spanclass="pre">nghttp2_settings_entry</span></tt></a>.</p>
<p>This function does not take ownership of the <em>iv</em>. This function
copies all the elements in the <em>iv</em>.</p>
<p>While updating individual stream’s local window size, if the window
size becomes strictly larger than NGHTTP2_MAX_WINDOW_SIZE,
RST_STREAM is issued against such a stream.</p>
<p>This function returns 0 if it succeeds, or one of the following
negative error codes:</p>
<dlclass="docutils">
...
...
@@ -1885,20 +1917,28 @@ negative error codes:</p>
<dlclass="function">
<dtid="nghttp2_submit_window_update">
int <ttclass="descname">nghttp2_submit_window_update</tt><big>(</big><aclass="reference internal"href="#nghttp2_session"title="nghttp2_session">nghttp2_session</a><em> *session</em>, uint8_t<em> flags</em>, int32_t<em> stream_id</em>, int32_t<em> window_size_increment</em><big>)</big><aclass="headerlink"href="#nghttp2_submit_window_update"title="Permalink to this definition">¶</a></dt>
<dd><p>Submits WINDOW_UPDATE frame. The effective range of the
<em>window_size_increment</em> is [1, (1 << 31)-1], inclusive. But the
application must be responsible to keep the resulting window size
<= (1 << 31)-1. If <aclass="reference internal"href="#NGHTTP2_FLAG_END_FLOW_CONTROL"title="NGHTTP2_FLAG_END_FLOW_CONTROL"><ttclass="xref c c-macro docutils literal"><spanclass="pre">NGHTTP2_FLAG_END_FLOW_CONTROL</span></tt></a> bit set in
the <em>flags</em>, 0 can be specified in the <em>window_size_increment</em>. In
fact, if this flag is set, the value specified in the
<em>window_size_increment</em> is ignored.</p>
<dd><p>Submits WINDOW_UPDATE frame.</p>
<p>If the <em>window_size_increment</em> is positive, the WINDOW_UPDATE with
that value as window_size_increment is queued. If the
<em>window_size_increment</em> is larger than the received bytes from the
remote endpoint, the local window size is increased by that
difference.</p>
<p>If the <em>window_size_increment</em> is negative, the local window size
is decreased by -<em>window_size_increment</em>. If
<aclass="reference internal"href="#NGHTTP2_OPT_NO_AUTO_STREAM_WINDOW_UPDATE"title="NGHTTP2_OPT_NO_AUTO_STREAM_WINDOW_UPDATE"><ttclass="xref c c-macro docutils literal"><spanclass="pre">NGHTTP2_OPT_NO_AUTO_STREAM_WINDOW_UPDATE</span></tt></a> (or
<aclass="reference internal"href="#NGHTTP2_OPT_NO_AUTO_CONNECTION_WINDOW_UPDATE"title="NGHTTP2_OPT_NO_AUTO_CONNECTION_WINDOW_UPDATE"><ttclass="xref c c-macro docutils literal"><spanclass="pre">NGHTTP2_OPT_NO_AUTO_CONNECTION_WINDOW_UPDATE</span></tt></a> if <em>stream_id</em>
is 0) is not set and the library decided that the WINDOW_UPDATE
should be submitted, then WINDOW_UPDATE is queued with the current
received bytes count.</p>
<p>This function returns 0 if it succeeds, or one of the following
negative error codes:</p>
<dlclass="docutils">
<dt><aclass="reference internal"href="#NGHTTP2_ERR_INVALID_ARGUMENT"title="NGHTTP2_ERR_INVALID_ARGUMENT"><ttclass="xref c c-macro docutils literal"><spanclass="pre">NGHTTP2_ERR_INVALID_ARGUMENT</span></tt></a></dt>
<dd>The <em>delta_window_size</em> is 0 or negative and
<dd>The <em>delta_window_size</em> is 0 and
<aclass="reference internal"href="#NGHTTP2_FLAG_END_FLOW_CONTROL"title="NGHTTP2_FLAG_END_FLOW_CONTROL"><ttclass="xref c c-macro docutils literal"><spanclass="pre">NGHTTP2_FLAG_END_FLOW_CONTROL</span></tt></a> bit is not set in
<em>flags</em>.</dd>
<dt><aclass="reference internal"href="#NGHTTP2_ERR_FLOW_CONTROL"title="NGHTTP2_ERR_FLOW_CONTROL"><ttclass="xref c c-macro docutils literal"><spanclass="pre">NGHTTP2_ERR_FLOW_CONTROL</span></tt></a></dt>
<dd>The local window size overflow or gets negative.</dd>
<dt><aclass="reference internal"href="#NGHTTP2_ERR_STREAM_CLOSED"title="NGHTTP2_ERR_STREAM_CLOSED"><ttclass="xref c c-macro docutils literal"><spanclass="pre">NGHTTP2_ERR_STREAM_CLOSED</span></tt></a></dt>
<dd>The stream is already closed or does not exist.</dd>
<dt><aclass="reference internal"href="#NGHTTP2_ERR_NOMEM"title="NGHTTP2_ERR_NOMEM"><ttclass="xref c c-macro docutils literal"><spanclass="pre">NGHTTP2_ERR_NOMEM</span></tt></a></dt>