Add int return value to nghttp2_on_data_recv_callback
This commit is contained in:
parent
972b47d6af
commit
544ac9f61f
|
@ -832,8 +832,13 @@ typedef int (*nghttp2_on_data_chunk_recv_callback)
|
||||||
* Callback function invoked when DATA frame is received. The actual
|
* Callback function invoked when DATA frame is received. The actual
|
||||||
* data it contains are received by
|
* data it contains are received by
|
||||||
* :type:`nghttp2_on_data_chunk_recv_callback`.
|
* :type:`nghttp2_on_data_chunk_recv_callback`.
|
||||||
|
*
|
||||||
|
* The implementation of this function must return 0 if it
|
||||||
|
* succeeds. If nonzero is returned, it is treated as fatal error and
|
||||||
|
* `nghttp2_session_recv()` and `nghttp2_session_send()` functions
|
||||||
|
* immediately return :enum:`NGHTTP2_ERR_CALLBACK_FAILURE`.
|
||||||
*/
|
*/
|
||||||
typedef void (*nghttp2_on_data_recv_callback)
|
typedef int (*nghttp2_on_data_recv_callback)
|
||||||
(nghttp2_session *session, uint16_t length, uint8_t flags, int32_t stream_id,
|
(nghttp2_session *session, uint16_t length, uint8_t flags, int32_t stream_id,
|
||||||
void *user_data);
|
void *user_data);
|
||||||
|
|
||||||
|
|
|
@ -2626,8 +2626,10 @@ int nghttp2_session_on_data_received(nghttp2_session *session,
|
||||||
if(stream->state == NGHTTP2_STREAM_OPENED) {
|
if(stream->state == NGHTTP2_STREAM_OPENED) {
|
||||||
valid = 1;
|
valid = 1;
|
||||||
if(session->callbacks.on_data_recv_callback) {
|
if(session->callbacks.on_data_recv_callback) {
|
||||||
session->callbacks.on_data_recv_callback
|
if(session->callbacks.on_data_recv_callback
|
||||||
(session, length, flags, stream_id, session->user_data);
|
(session, length, flags, stream_id, session->user_data) != 0) {
|
||||||
|
return NGHTTP2_ERR_CALLBACK_FAILURE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if(stream->state != NGHTTP2_STREAM_CLOSING) {
|
} else if(stream->state != NGHTTP2_STREAM_CLOSING) {
|
||||||
error_code = NGHTTP2_PROTOCOL_ERROR;
|
error_code = NGHTTP2_PROTOCOL_ERROR;
|
||||||
|
@ -2641,8 +2643,10 @@ int nghttp2_session_on_data_received(nghttp2_session *session,
|
||||||
NGHTTP2_STREAM_CLOSING state. This is a race condition. */
|
NGHTTP2_STREAM_CLOSING state. This is a race condition. */
|
||||||
valid = 1;
|
valid = 1;
|
||||||
if(session->callbacks.on_data_recv_callback) {
|
if(session->callbacks.on_data_recv_callback) {
|
||||||
session->callbacks.on_data_recv_callback
|
if(session->callbacks.on_data_recv_callback
|
||||||
(session, length, flags, stream_id, session->user_data);
|
(session, length, flags, stream_id, session->user_data) != 0) {
|
||||||
|
return NGHTTP2_ERR_CALLBACK_FAILURE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(flags & NGHTTP2_FLAG_END_STREAM) {
|
if(flags & NGHTTP2_FLAG_END_STREAM) {
|
||||||
nghttp2_session_call_on_request_recv(session, stream_id);
|
nghttp2_session_call_on_request_recv(session, stream_id);
|
||||||
|
|
|
@ -762,7 +762,7 @@ int on_data_chunk_recv_callback
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
void hd_on_data_recv_callback
|
int hd_on_data_recv_callback
|
||||||
(nghttp2_session *session, uint16_t length, uint8_t flags, int32_t stream_id,
|
(nghttp2_session *session, uint16_t length, uint8_t flags, int32_t stream_id,
|
||||||
void *user_data)
|
void *user_data)
|
||||||
{
|
{
|
||||||
|
@ -772,6 +772,7 @@ void hd_on_data_recv_callback
|
||||||
print_session_id(hd->session_id());
|
print_session_id(hd->session_id());
|
||||||
on_data_recv_callback(session, length, flags, stream_id, user_data);
|
on_data_recv_callback(session, length, flags, stream_id, user_data);
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
|
|
|
@ -413,7 +413,7 @@ void print_data_frame(print_type ptype, uint16_t length, uint8_t flags,
|
||||||
}
|
}
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
void on_data_recv_callback
|
int on_data_recv_callback
|
||||||
(nghttp2_session *session, uint16_t length, uint8_t flags, int32_t stream_id,
|
(nghttp2_session *session, uint16_t length, uint8_t flags, int32_t stream_id,
|
||||||
void *user_data)
|
void *user_data)
|
||||||
{
|
{
|
||||||
|
@ -421,6 +421,7 @@ void on_data_recv_callback
|
||||||
printf(" recv ");
|
printf(" recv ");
|
||||||
print_data_frame(PRINT_RECV, length, flags, stream_id);
|
print_data_frame(PRINT_RECV, length, flags, stream_id);
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void on_data_send_callback
|
void on_data_send_callback
|
||||||
|
|
|
@ -64,7 +64,7 @@ void on_unknown_frame_recv_callback(nghttp2_session *session,
|
||||||
void on_frame_send_callback
|
void on_frame_send_callback
|
||||||
(nghttp2_session *session, nghttp2_frame *frame, void *user_data);
|
(nghttp2_session *session, nghttp2_frame *frame, void *user_data);
|
||||||
|
|
||||||
void on_data_recv_callback
|
int on_data_recv_callback
|
||||||
(nghttp2_session *session, uint16_t length, uint8_t flags, int32_t stream_id,
|
(nghttp2_session *session, uint16_t length, uint8_t flags, int32_t stream_id,
|
||||||
void *user_data);
|
void *user_data);
|
||||||
|
|
||||||
|
|
|
@ -175,12 +175,13 @@ static int on_data_chunk_recv_callback(nghttp2_session *session,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void on_data_recv_callback(nghttp2_session *session,
|
static int on_data_recv_callback(nghttp2_session *session,
|
||||||
uint16_t length, uint8_t flags,
|
uint16_t length, uint8_t flags,
|
||||||
int32_t stream_id, void *user_data)
|
int32_t stream_id, void *user_data)
|
||||||
{
|
{
|
||||||
my_user_data *ud = (my_user_data*)user_data;
|
my_user_data *ud = (my_user_data*)user_data;
|
||||||
++ud->data_recv_cb_called;
|
++ud->data_recv_cb_called;
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t fixed_length_data_source_read_callback
|
static ssize_t fixed_length_data_source_read_callback
|
||||||
|
|
Loading…
Reference in New Issue