46 lines
1.8 KiB
ReStructuredText
46 lines
1.8 KiB
ReStructuredText
|
|
nghttp2_session_mem_recv
|
|
========================
|
|
|
|
Synopsis
|
|
--------
|
|
|
|
*#include <nghttp2/nghttp2.h>*
|
|
|
|
.. function:: ssize_t nghttp2_session_mem_recv(nghttp2_session *session, const uint8_t *in, size_t inlen)
|
|
|
|
|
|
Processes data *in* as an input from the remote endpoint. The
|
|
*inlen* indicates the number of bytes in the *in*.
|
|
|
|
This function behaves like `nghttp2_session_recv()` except that it
|
|
does not use :type:`nghttp2_recv_callback` to receive data; the
|
|
*in* is the only data for the invocation of this function. If all
|
|
bytes are processed, this function returns. The other callbacks
|
|
are called in the same way as they are in `nghttp2_session_recv()`.
|
|
|
|
In the current implementation, this function always tries to
|
|
processes all input data unless either an error occurs or
|
|
:macro:`nghttp2_error.NGHTTP2_ERR_PAUSE` is returned from
|
|
:type:`nghttp2_on_header_callback` or
|
|
:type:`nghttp2_on_data_chunk_recv_callback`. If
|
|
:macro:`nghttp2_error.NGHTTP2_ERR_PAUSE` is used, the return value
|
|
includes the number of bytes which was used to produce the data or
|
|
frame for the callback.
|
|
|
|
This function returns the number of processed bytes, or one of the
|
|
following negative error codes:
|
|
|
|
:macro:`nghttp2_error.NGHTTP2_ERR_NOMEM`
|
|
Out of memory.
|
|
:macro:`nghttp2_error.NGHTTP2_ERR_CALLBACK_FAILURE`
|
|
The callback function failed.
|
|
:macro:`nghttp2_error.NGHTTP2_ERR_BAD_CLIENT_MAGIC`
|
|
Invalid client magic was detected. This error only returns
|
|
when *session* was configured as server and
|
|
`nghttp2_option_set_no_recv_client_magic()` is not used with
|
|
nonzero value.
|
|
:macro:`nghttp2_error.NGHTTP2_ERR_FLOODED`
|
|
Flooding was detected in this HTTP/2 session, and it must be
|
|
closed. This is most likely caused by misbehaviour of peer.
|