Function libnghttp2_sys::nghttp2_session_mem_recv [−][src]
pub unsafe extern "C" fn nghttp2_session_mem_recv(
session: *mut nghttp2_session,
in_: *const u8,
inlen: usize
) -> isize
@function
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
:enum:NGHTTP2_ERR_PAUSE
is returned from
:type:nghttp2_on_header_callback
or
:type:nghttp2_on_data_chunk_recv_callback
. If
:enum: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:
:enum:NGHTTP2_ERR_NOMEM
Out of memory.
:enum:NGHTTP2_ERR_CALLBACK_FAILURE
The callback function failed.
:enum: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.
:enum: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.