Commit 5a7f65f1 authored by Tatsuhiro Tsujikawa's avatar Tatsuhiro Tsujikawa

Add int return value to on_data_send_callback

parent b9d2f9b6
......@@ -893,8 +893,13 @@ typedef int (*nghttp2_on_frame_not_send_callback)
* @functypedef
*
* Callback function invoked after DATA frame is sent.
*
* 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_send_callback)
typedef int (*nghttp2_on_data_send_callback)
(nghttp2_session *session, uint16_t length, uint8_t flags, int32_t stream_id,
void *user_data);
......
......@@ -1355,13 +1355,15 @@ static int nghttp2_session_after_frame_sent(nghttp2_session *session)
nghttp2_data *data_frame;
data_frame = nghttp2_outbound_item_get_data_frame(session->aob.item);
if(session->callbacks.on_data_send_callback) {
session->callbacks.on_data_send_callback
(session,
session->aob.framebuflen - NGHTTP2_FRAME_HEAD_LENGTH,
data_frame->eof ? data_frame->hd.flags :
(data_frame->hd.flags & (~NGHTTP2_FLAG_END_STREAM)),
data_frame->hd.stream_id,
session->user_data);
if(session->callbacks.on_data_send_callback
(session,
session->aob.framebuflen - NGHTTP2_FRAME_HEAD_LENGTH,
data_frame->eof ? data_frame->hd.flags :
(data_frame->hd.flags & (~NGHTTP2_FLAG_END_STREAM)),
data_frame->hd.stream_id,
session->user_data) != 0) {
return NGHTTP2_ERR_CALLBACK_FAILURE;
}
}
if(data_frame->eof && (data_frame->hd.flags & NGHTTP2_FLAG_END_STREAM)) {
nghttp2_stream *stream =
......
......@@ -778,7 +778,7 @@ int hd_on_data_recv_callback
} // namespace
namespace {
void hd_on_data_send_callback
int hd_on_data_send_callback
(nghttp2_session *session, uint16_t length, uint8_t flags, int32_t stream_id,
void *user_data)
{
......@@ -787,6 +787,7 @@ void hd_on_data_send_callback
print_session_id(hd->session_id());
on_data_send_callback(session, length, flags, stream_id, user_data);
}
return 0;
}
} // namespace
......
......@@ -425,7 +425,7 @@ int on_data_recv_callback
return 0;
}
void on_data_send_callback
int on_data_send_callback
(nghttp2_session *session, uint16_t length, uint8_t flags, int32_t stream_id,
void *user_data)
{
......@@ -433,6 +433,7 @@ void on_data_send_callback
printf(" send ");
print_data_frame(PRINT_SEND, length, flags, stream_id);
fflush(stdout);
return 0;
}
int64_t time_delta(const timeval& a, const timeval& b)
......
......@@ -68,7 +68,7 @@ int on_data_recv_callback
(nghttp2_session *session, uint16_t length, uint8_t flags, int32_t stream_id,
void *user_data);
void on_data_send_callback
int on_data_send_callback
(nghttp2_session *session, uint16_t length, uint8_t flags, int32_t stream_id,
void *user_data);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment