ff4ff35918
Red Bear OS is a full fork. All sources must be available from git clone with zero network access. Removed gitignore rules that excluded fetched source trees under recipes/*/source/, local/recipes/kde/*/source/, local/recipes/qt/*/source/, and vendor source trees. Build artifacts (target/, build/, source.tar, *.o, *.so) remain excluded. 127291 files added — kernel, relibc, base, bootloader, pkgar, all KDE/Qt frameworks, mesa, wayland, DRM drivers, and every other recipe source.
50 lines
2.0 KiB
ReStructuredText
50 lines
2.0 KiB
ReStructuredText
|
|
nghttp2_submit_data2
|
|
====================
|
|
|
|
Synopsis
|
|
--------
|
|
|
|
*#include <nghttp2/nghttp2.h>*
|
|
|
|
.. function:: int nghttp2_submit_data2(nghttp2_session *session, uint8_t flags, int32_t stream_id, const nghttp2_data_provider2 *data_prd)
|
|
|
|
|
|
Submits one or more DATA frames to the stream *stream_id*. The
|
|
data to be sent are provided by *data_prd*. If *flags* contains
|
|
:enum:`nghttp2_flag.NGHTTP2_FLAG_END_STREAM`, the last DATA frame
|
|
has END_STREAM flag set.
|
|
|
|
This function does not take ownership of the *data_prd*. The
|
|
function copies the members of the *data_prd*.
|
|
|
|
This function returns 0 if it succeeds, or one of the following
|
|
negative error codes:
|
|
|
|
:enum:`nghttp2_error.NGHTTP2_ERR_NOMEM`
|
|
Out of memory.
|
|
:enum:`nghttp2_error.NGHTTP2_ERR_DATA_EXIST`
|
|
DATA or HEADERS has been already submitted and not fully
|
|
processed yet.
|
|
:enum:`nghttp2_error.NGHTTP2_ERR_INVALID_ARGUMENT`
|
|
The *stream_id* is 0.
|
|
:enum:`nghttp2_error.NGHTTP2_ERR_STREAM_CLOSED`
|
|
The stream was already closed; or the *stream_id* is invalid.
|
|
|
|
.. note::
|
|
|
|
Currently, only one DATA or HEADERS is allowed for a stream at a
|
|
time. Submitting these frames more than once before first DATA
|
|
or HEADERS is finished results in
|
|
:enum:`nghttp2_error.NGHTTP2_ERR_DATA_EXIST` error code. The
|
|
earliest callback which tells that previous frame is done is
|
|
:type:`nghttp2_on_frame_send_callback`. In side that callback,
|
|
new data can be submitted using `nghttp2_submit_data2()`. Of
|
|
course, all data except for last one must not have
|
|
:enum:`nghttp2_flag.NGHTTP2_FLAG_END_STREAM` flag set in *flags*.
|
|
This sounds a bit complicated, and we recommend to use
|
|
`nghttp2_submit_request2()` and `nghttp2_submit_response2()` to
|
|
avoid this cascading issue. The experience shows that for HTTP
|
|
use, these two functions are enough to implement both client and
|
|
server.
|