Rename nghttp2_stream.data_item to nghttp2_stream.item and related functions
Initially, we use nghttp2_stream.data_item to refer only item with DATA frame. But recently we use it to refer HEADERS frame as well. So it is better to call just item rather than data_item. This applies to all related functions.
This commit is contained in:
parent
39eb1e4753
commit
7c0a0c495d
|
@ -512,7 +512,7 @@ static int free_streams(nghttp2_map_entry *entry, void *ptr) {
|
||||||
session = (nghttp2_session *)ptr;
|
session = (nghttp2_session *)ptr;
|
||||||
mem = &session->mem;
|
mem = &session->mem;
|
||||||
stream = (nghttp2_stream *)entry;
|
stream = (nghttp2_stream *)entry;
|
||||||
item = stream->data_item;
|
item = stream->item;
|
||||||
|
|
||||||
if (item && !item->queued && item != session->aob.item) {
|
if (item && !item->queued && item != session->aob.item) {
|
||||||
nghttp2_outbound_item_free(item, mem);
|
nghttp2_outbound_item_free(item, mem);
|
||||||
|
@ -549,7 +549,7 @@ void nghttp2_session_del(nghttp2_session *session) {
|
||||||
nghttp2_stream_roots_free(&session->roots);
|
nghttp2_stream_roots_free(&session->roots);
|
||||||
|
|
||||||
/* Have to free streams first, so that we can check
|
/* Have to free streams first, so that we can check
|
||||||
stream->data_item->queued */
|
stream->item->queued */
|
||||||
nghttp2_map_each_free(&session->streams, free_streams, session);
|
nghttp2_map_each_free(&session->streams, free_streams, session);
|
||||||
nghttp2_map_free(&session->streams);
|
nghttp2_map_free(&session->streams);
|
||||||
|
|
||||||
|
@ -733,7 +733,7 @@ int nghttp2_session_add_item(nghttp2_session *session,
|
||||||
item->weight = stream->effective_weight;
|
item->weight = stream->effective_weight;
|
||||||
item->cycle = session->last_cycle;
|
item->cycle = session->last_cycle;
|
||||||
|
|
||||||
rv = nghttp2_stream_attach_data(stream, item, session);
|
rv = nghttp2_stream_attach_item(stream, item, session);
|
||||||
|
|
||||||
if (rv != 0) {
|
if (rv != 0) {
|
||||||
return rv;
|
return rv;
|
||||||
|
@ -764,14 +764,14 @@ int nghttp2_session_add_item(nghttp2_session *session,
|
||||||
return NGHTTP2_ERR_STREAM_CLOSED;
|
return NGHTTP2_ERR_STREAM_CLOSED;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stream->data_item) {
|
if (stream->item) {
|
||||||
return NGHTTP2_ERR_DATA_EXIST;
|
return NGHTTP2_ERR_DATA_EXIST;
|
||||||
}
|
}
|
||||||
|
|
||||||
item->weight = stream->effective_weight;
|
item->weight = stream->effective_weight;
|
||||||
item->cycle = session->last_cycle;
|
item->cycle = session->last_cycle;
|
||||||
|
|
||||||
rv = nghttp2_stream_attach_data(stream, item, session);
|
rv = nghttp2_stream_attach_item(stream, item, session);
|
||||||
|
|
||||||
if (rv != 0) {
|
if (rv != 0) {
|
||||||
return rv;
|
return rv;
|
||||||
|
@ -979,12 +979,12 @@ int nghttp2_session_close_stream(nghttp2_session *session, int32_t stream_id,
|
||||||
DEBUGF(fprintf(stderr, "stream: stream(%p)=%d close\n", stream,
|
DEBUGF(fprintf(stderr, "stream: stream(%p)=%d close\n", stream,
|
||||||
stream->stream_id));
|
stream->stream_id));
|
||||||
|
|
||||||
if (stream->data_item) {
|
if (stream->item) {
|
||||||
nghttp2_outbound_item *item;
|
nghttp2_outbound_item *item;
|
||||||
|
|
||||||
item = stream->data_item;
|
item = stream->item;
|
||||||
|
|
||||||
rv = nghttp2_stream_detach_data(stream, session);
|
rv = nghttp2_stream_detach_item(stream, session);
|
||||||
|
|
||||||
if (rv != 0) {
|
if (rv != 0) {
|
||||||
return rv;
|
return rv;
|
||||||
|
@ -1709,10 +1709,10 @@ static int session_prep_frame(nghttp2_session *session,
|
||||||
rv = session_predicate_headers_send(session, stream);
|
rv = session_predicate_headers_send(session, stream);
|
||||||
|
|
||||||
if (rv != 0) {
|
if (rv != 0) {
|
||||||
if (stream && stream->data_item == item) {
|
if (stream && stream->item == item) {
|
||||||
int rv2;
|
int rv2;
|
||||||
|
|
||||||
rv2 = nghttp2_stream_detach_data(stream, session);
|
rv2 = nghttp2_stream_detach_item(stream, session);
|
||||||
|
|
||||||
if (nghttp2_is_fatal(rv2)) {
|
if (nghttp2_is_fatal(rv2)) {
|
||||||
return rv2;
|
return rv2;
|
||||||
|
@ -1880,7 +1880,7 @@ static int session_prep_frame(nghttp2_session *session,
|
||||||
stream = nghttp2_session_get_stream(session, frame->hd.stream_id);
|
stream = nghttp2_session_get_stream(session, frame->hd.stream_id);
|
||||||
|
|
||||||
if (stream) {
|
if (stream) {
|
||||||
assert(stream->data_item == item);
|
assert(stream->item == item);
|
||||||
}
|
}
|
||||||
|
|
||||||
rv = nghttp2_session_predicate_data_send(session, stream);
|
rv = nghttp2_session_predicate_data_send(session, stream);
|
||||||
|
@ -1888,7 +1888,7 @@ static int session_prep_frame(nghttp2_session *session,
|
||||||
if (stream) {
|
if (stream) {
|
||||||
int rv2;
|
int rv2;
|
||||||
|
|
||||||
rv2 = nghttp2_stream_detach_data(stream, session);
|
rv2 = nghttp2_stream_detach_item(stream, session);
|
||||||
|
|
||||||
if (nghttp2_is_fatal(rv2)) {
|
if (nghttp2_is_fatal(rv2)) {
|
||||||
return rv2;
|
return rv2;
|
||||||
|
@ -1907,7 +1907,7 @@ static int session_prep_frame(nghttp2_session *session,
|
||||||
queue when session->remote_window_size > 0 */
|
queue when session->remote_window_size > 0 */
|
||||||
assert(session->remote_window_size > 0);
|
assert(session->remote_window_size > 0);
|
||||||
|
|
||||||
rv = nghttp2_stream_defer_data(
|
rv = nghttp2_stream_defer_item(
|
||||||
stream, NGHTTP2_STREAM_FLAG_DEFERRED_FLOW_CONTROL, session);
|
stream, NGHTTP2_STREAM_FLAG_DEFERRED_FLOW_CONTROL, session);
|
||||||
|
|
||||||
if (nghttp2_is_fatal(rv)) {
|
if (nghttp2_is_fatal(rv)) {
|
||||||
|
@ -1923,7 +1923,7 @@ static int session_prep_frame(nghttp2_session *session,
|
||||||
nghttp2_session_pack_data(session, &session->aob.framebufs,
|
nghttp2_session_pack_data(session, &session->aob.framebufs,
|
||||||
next_readmax, frame, &item->aux_data.data);
|
next_readmax, frame, &item->aux_data.data);
|
||||||
if (framerv == NGHTTP2_ERR_DEFERRED) {
|
if (framerv == NGHTTP2_ERR_DEFERRED) {
|
||||||
rv = nghttp2_stream_defer_data(stream, NGHTTP2_STREAM_FLAG_DEFERRED_USER,
|
rv = nghttp2_stream_defer_item(stream, NGHTTP2_STREAM_FLAG_DEFERRED_USER,
|
||||||
session);
|
session);
|
||||||
|
|
||||||
if (nghttp2_is_fatal(rv)) {
|
if (nghttp2_is_fatal(rv)) {
|
||||||
|
@ -1935,7 +1935,7 @@ static int session_prep_frame(nghttp2_session *session,
|
||||||
return NGHTTP2_ERR_DEFERRED;
|
return NGHTTP2_ERR_DEFERRED;
|
||||||
}
|
}
|
||||||
if (framerv == NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE) {
|
if (framerv == NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE) {
|
||||||
rv = nghttp2_stream_detach_data(stream, session);
|
rv = nghttp2_stream_detach_item(stream, session);
|
||||||
|
|
||||||
if (nghttp2_is_fatal(rv)) {
|
if (nghttp2_is_fatal(rv)) {
|
||||||
return rv;
|
return rv;
|
||||||
|
@ -1949,7 +1949,7 @@ static int session_prep_frame(nghttp2_session *session,
|
||||||
return framerv;
|
return framerv;
|
||||||
}
|
}
|
||||||
if (framerv < 0) {
|
if (framerv < 0) {
|
||||||
rv = nghttp2_stream_detach_data(stream, session);
|
rv = nghttp2_stream_detach_item(stream, session);
|
||||||
|
|
||||||
if (nghttp2_is_fatal(rv)) {
|
if (nghttp2_is_fatal(rv)) {
|
||||||
return rv;
|
return rv;
|
||||||
|
@ -2248,8 +2248,8 @@ static int session_after_frame_sent1(nghttp2_session *session) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stream->data_item == item) {
|
if (stream->item == item) {
|
||||||
rv = nghttp2_stream_detach_data(stream, session);
|
rv = nghttp2_stream_detach_item(stream, session);
|
||||||
|
|
||||||
if (nghttp2_is_fatal(rv)) {
|
if (nghttp2_is_fatal(rv)) {
|
||||||
return rv;
|
return rv;
|
||||||
|
@ -2377,14 +2377,14 @@ static int session_after_frame_sent1(nghttp2_session *session) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stream && aux_data->eof) {
|
if (stream && aux_data->eof) {
|
||||||
rv = nghttp2_stream_detach_data(stream, session);
|
rv = nghttp2_stream_detach_item(stream, session);
|
||||||
|
|
||||||
if (nghttp2_is_fatal(rv)) {
|
if (nghttp2_is_fatal(rv)) {
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Call on_frame_send_callback after
|
/* Call on_frame_send_callback after
|
||||||
nghttp2_stream_detach_data(), so that application can issue
|
nghttp2_stream_detach_item(), so that application can issue
|
||||||
nghttp2_submit_data() in the callback. */
|
nghttp2_submit_data() in the callback. */
|
||||||
if (session->callbacks.on_frame_send_callback) {
|
if (session->callbacks.on_frame_send_callback) {
|
||||||
rv = session_call_on_frame_send(session, frame);
|
rv = session_call_on_frame_send(session, frame);
|
||||||
|
@ -2493,7 +2493,7 @@ static int session_after_frame_sent2(nghttp2_session *session) {
|
||||||
further data. */
|
further data. */
|
||||||
if (nghttp2_session_predicate_data_send(session, stream) != 0) {
|
if (nghttp2_session_predicate_data_send(session, stream) != 0) {
|
||||||
if (stream) {
|
if (stream) {
|
||||||
rv = nghttp2_stream_detach_data(stream, session);
|
rv = nghttp2_stream_detach_item(stream, session);
|
||||||
|
|
||||||
if (nghttp2_is_fatal(rv)) {
|
if (nghttp2_is_fatal(rv)) {
|
||||||
return rv;
|
return rv;
|
||||||
|
@ -2537,7 +2537,7 @@ static int session_after_frame_sent2(nghttp2_session *session) {
|
||||||
|
|
||||||
aob->item->queued = 1;
|
aob->item->queued = 1;
|
||||||
} else {
|
} else {
|
||||||
rv = nghttp2_stream_defer_data(
|
rv = nghttp2_stream_defer_item(
|
||||||
stream, NGHTTP2_STREAM_FLAG_DEFERRED_FLOW_CONTROL, session);
|
stream, NGHTTP2_STREAM_FLAG_DEFERRED_FLOW_CONTROL, session);
|
||||||
|
|
||||||
if (nghttp2_is_fatal(rv)) {
|
if (nghttp2_is_fatal(rv)) {
|
||||||
|
@ -2559,7 +2559,7 @@ static int session_after_frame_sent2(nghttp2_session *session) {
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
if (rv == NGHTTP2_ERR_DEFERRED) {
|
if (rv == NGHTTP2_ERR_DEFERRED) {
|
||||||
rv = nghttp2_stream_defer_data(
|
rv = nghttp2_stream_defer_item(
|
||||||
stream, NGHTTP2_STREAM_FLAG_DEFERRED_USER, session);
|
stream, NGHTTP2_STREAM_FLAG_DEFERRED_USER, session);
|
||||||
|
|
||||||
if (nghttp2_is_fatal(rv)) {
|
if (nghttp2_is_fatal(rv)) {
|
||||||
|
@ -2582,7 +2582,7 @@ static int session_after_frame_sent2(nghttp2_session *session) {
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
rv = nghttp2_stream_detach_data(stream, session);
|
rv = nghttp2_stream_detach_item(stream, session);
|
||||||
|
|
||||||
if (nghttp2_is_fatal(rv)) {
|
if (nghttp2_is_fatal(rv)) {
|
||||||
return rv;
|
return rv;
|
||||||
|
@ -2647,7 +2647,7 @@ static ssize_t nghttp2_session_mem_send_internal(nghttp2_session *session,
|
||||||
frame = &item->frame;
|
frame = &item->frame;
|
||||||
stream = nghttp2_session_get_stream(session, frame->hd.stream_id);
|
stream = nghttp2_session_get_stream(session, frame->hd.stream_id);
|
||||||
|
|
||||||
if (stream && item == stream->data_item &&
|
if (stream && item == stream->item &&
|
||||||
stream->dpri != NGHTTP2_STREAM_DPRI_TOP) {
|
stream->dpri != NGHTTP2_STREAM_DPRI_TOP) {
|
||||||
/* We have DATA with higher priority in queue within the
|
/* We have DATA with higher priority in queue within the
|
||||||
same dependency tree. */
|
same dependency tree. */
|
||||||
|
@ -3531,7 +3531,7 @@ static int update_remote_initial_window_size_func(nghttp2_map_entry *entry,
|
||||||
if (stream->remote_window_size > 0 &&
|
if (stream->remote_window_size > 0 &&
|
||||||
nghttp2_stream_check_deferred_by_flow_control(stream)) {
|
nghttp2_stream_check_deferred_by_flow_control(stream)) {
|
||||||
|
|
||||||
rv = nghttp2_stream_resume_deferred_data(
|
rv = nghttp2_stream_resume_deferred_item(
|
||||||
stream, NGHTTP2_STREAM_FLAG_DEFERRED_FLOW_CONTROL, arg->session);
|
stream, NGHTTP2_STREAM_FLAG_DEFERRED_FLOW_CONTROL, arg->session);
|
||||||
|
|
||||||
if (nghttp2_is_fatal(rv)) {
|
if (nghttp2_is_fatal(rv)) {
|
||||||
|
@ -4111,7 +4111,7 @@ static int session_on_stream_window_update_received(nghttp2_session *session,
|
||||||
if (stream->remote_window_size > 0 &&
|
if (stream->remote_window_size > 0 &&
|
||||||
nghttp2_stream_check_deferred_by_flow_control(stream)) {
|
nghttp2_stream_check_deferred_by_flow_control(stream)) {
|
||||||
|
|
||||||
rv = nghttp2_stream_resume_deferred_data(
|
rv = nghttp2_stream_resume_deferred_item(
|
||||||
stream, NGHTTP2_STREAM_FLAG_DEFERRED_FLOW_CONTROL, session);
|
stream, NGHTTP2_STREAM_FLAG_DEFERRED_FLOW_CONTROL, session);
|
||||||
|
|
||||||
if (nghttp2_is_fatal(rv)) {
|
if (nghttp2_is_fatal(rv)) {
|
||||||
|
@ -6038,11 +6038,11 @@ int nghttp2_session_resume_data(nghttp2_session *session, int32_t stream_id) {
|
||||||
int rv;
|
int rv;
|
||||||
nghttp2_stream *stream;
|
nghttp2_stream *stream;
|
||||||
stream = nghttp2_session_get_stream(session, stream_id);
|
stream = nghttp2_session_get_stream(session, stream_id);
|
||||||
if (stream == NULL || !nghttp2_stream_check_deferred_data(stream)) {
|
if (stream == NULL || !nghttp2_stream_check_deferred_item(stream)) {
|
||||||
return NGHTTP2_ERR_INVALID_ARGUMENT;
|
return NGHTTP2_ERR_INVALID_ARGUMENT;
|
||||||
}
|
}
|
||||||
|
|
||||||
rv = nghttp2_stream_resume_deferred_data(
|
rv = nghttp2_stream_resume_deferred_item(
|
||||||
stream, NGHTTP2_STREAM_FLAG_DEFERRED_USER, session);
|
stream, NGHTTP2_STREAM_FLAG_DEFERRED_USER, session);
|
||||||
|
|
||||||
if (nghttp2_is_fatal(rv)) {
|
if (nghttp2_is_fatal(rv)) {
|
||||||
|
|
|
@ -42,7 +42,7 @@ void nghttp2_stream_init(nghttp2_stream *stream, int32_t stream_id,
|
||||||
stream->state = initial_state;
|
stream->state = initial_state;
|
||||||
stream->shut_flags = NGHTTP2_SHUT_NONE;
|
stream->shut_flags = NGHTTP2_SHUT_NONE;
|
||||||
stream->stream_user_data = stream_user_data;
|
stream->stream_user_data = stream_user_data;
|
||||||
stream->data_item = NULL;
|
stream->item = NULL;
|
||||||
stream->remote_window_size = remote_initial_window_size;
|
stream->remote_window_size = remote_initial_window_size;
|
||||||
stream->local_window_size = local_initial_window_size;
|
stream->local_window_size = local_initial_window_size;
|
||||||
stream->recv_window_size = 0;
|
stream->recv_window_size = 0;
|
||||||
|
@ -57,7 +57,7 @@ void nghttp2_stream_init(nghttp2_stream *stream, int32_t stream_id,
|
||||||
stream->closed_prev = NULL;
|
stream->closed_prev = NULL;
|
||||||
stream->closed_next = NULL;
|
stream->closed_next = NULL;
|
||||||
|
|
||||||
stream->dpri = NGHTTP2_STREAM_DPRI_NO_DATA;
|
stream->dpri = NGHTTP2_STREAM_DPRI_NO_ITEM;
|
||||||
stream->num_substreams = 1;
|
stream->num_substreams = 1;
|
||||||
stream->weight = weight;
|
stream->weight = weight;
|
||||||
stream->effective_weight = stream->weight;
|
stream->effective_weight = stream->weight;
|
||||||
|
@ -71,7 +71,7 @@ void nghttp2_stream_init(nghttp2_stream *stream, int32_t stream_id,
|
||||||
}
|
}
|
||||||
|
|
||||||
void nghttp2_stream_free(nghttp2_stream *stream _U_) {
|
void nghttp2_stream_free(nghttp2_stream *stream _U_) {
|
||||||
/* We don't free stream->data_item. If it is assigned to aob, then
|
/* We don't free stream->item. If it is assigned to aob, then
|
||||||
active_outbound_item_reset() will delete it. If it is queued,
|
active_outbound_item_reset() will delete it. If it is queued,
|
||||||
then it is deleted when pq is deleted in nghttp2_session_del().
|
then it is deleted when pq is deleted in nghttp2_session_del().
|
||||||
Otherwise, nghttp2_session_del() will delete it. */
|
Otherwise, nghttp2_session_del() will delete it. */
|
||||||
|
@ -81,14 +81,14 @@ void nghttp2_stream_shutdown(nghttp2_stream *stream, nghttp2_shut_flag flag) {
|
||||||
stream->shut_flags |= flag;
|
stream->shut_flags |= flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int stream_push_data(nghttp2_stream *stream, nghttp2_session *session) {
|
static int stream_push_item(nghttp2_stream *stream, nghttp2_session *session) {
|
||||||
int rv;
|
int rv;
|
||||||
nghttp2_outbound_item *item;
|
nghttp2_outbound_item *item;
|
||||||
|
|
||||||
assert(stream->data_item);
|
assert(stream->item);
|
||||||
assert(stream->data_item->queued == 0);
|
assert(stream->item->queued == 0);
|
||||||
|
|
||||||
item = stream->data_item;
|
item = stream->item;
|
||||||
|
|
||||||
/* If item is now sent, don't push it to the queue. Otherwise, we
|
/* If item is now sent, don't push it to the queue. Otherwise, we
|
||||||
may push same item twice. */
|
may push same item twice. */
|
||||||
|
@ -200,7 +200,7 @@ static void stream_update_dep_effective_weight(nghttp2_stream *stream) {
|
||||||
|
|
||||||
/* stream->sum_norest_weight == 0 means there is no
|
/* stream->sum_norest_weight == 0 means there is no
|
||||||
NGHTTP2_STREAM_DPRI_TOP under stream */
|
NGHTTP2_STREAM_DPRI_TOP under stream */
|
||||||
if (stream->dpri != NGHTTP2_STREAM_DPRI_NO_DATA ||
|
if (stream->dpri != NGHTTP2_STREAM_DPRI_NO_ITEM ||
|
||||||
stream->sum_norest_weight == 0) {
|
stream->sum_norest_weight == 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -235,8 +235,8 @@ static void stream_update_dep_effective_weight(nghttp2_stream *stream) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (si->dpri == NGHTTP2_STREAM_DPRI_NO_DATA) {
|
if (si->dpri == NGHTTP2_STREAM_DPRI_NO_ITEM) {
|
||||||
DEBUGF(fprintf(stderr, "stream: stream=%d no_data, ignored\n",
|
DEBUGF(fprintf(stderr, "stream: stream=%d no_item, ignored\n",
|
||||||
si->stream_id));
|
si->stream_id));
|
||||||
|
|
||||||
/* Since we marked NGHTTP2_STREAM_DPRI_TOP under si, we make
|
/* Since we marked NGHTTP2_STREAM_DPRI_TOP under si, we make
|
||||||
|
@ -285,7 +285,7 @@ static void stream_update_dep_set_top(nghttp2_stream *stream) {
|
||||||
|
|
||||||
if (stream->dpri == NGHTTP2_STREAM_DPRI_REST) {
|
if (stream->dpri == NGHTTP2_STREAM_DPRI_REST) {
|
||||||
DEBUGF(
|
DEBUGF(
|
||||||
fprintf(stderr, "stream: stream=%d data is top\n", stream->stream_id));
|
fprintf(stderr, "stream: stream=%d item is top\n", stream->stream_id));
|
||||||
|
|
||||||
stream->dpri = NGHTTP2_STREAM_DPRI_TOP;
|
stream->dpri = NGHTTP2_STREAM_DPRI_TOP;
|
||||||
|
|
||||||
|
@ -317,9 +317,9 @@ static int stream_update_dep_queue_top(nghttp2_stream *stream,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stream->dpri == NGHTTP2_STREAM_DPRI_TOP) {
|
if (stream->dpri == NGHTTP2_STREAM_DPRI_TOP) {
|
||||||
if (!stream->data_item->queued) {
|
if (!stream->item->queued) {
|
||||||
DEBUGF(fprintf(stderr, "stream: stream=%d enqueue\n", stream->stream_id));
|
DEBUGF(fprintf(stderr, "stream: stream=%d enqueue\n", stream->stream_id));
|
||||||
rv = stream_push_data(stream, session);
|
rv = stream_push_item(stream, session);
|
||||||
|
|
||||||
if (rv != 0) {
|
if (rv != 0) {
|
||||||
return rv;
|
return rv;
|
||||||
|
@ -343,7 +343,7 @@ static int stream_update_dep_queue_top(nghttp2_stream *stream,
|
||||||
/*
|
/*
|
||||||
* Updates stream->sum_norest_weight and stream->sum_top_weight
|
* Updates stream->sum_norest_weight and stream->sum_top_weight
|
||||||
* recursively. We have to gather effective sum of weight of
|
* recursively. We have to gather effective sum of weight of
|
||||||
* descendants. If stream->dpri == NGHTTP2_STREAM_DPRI_NO_DATA, we
|
* descendants. If stream->dpri == NGHTTP2_STREAM_DPRI_NO_ITEM, we
|
||||||
* have to go deeper and check that any of its descendants has dpri
|
* have to go deeper and check that any of its descendants has dpri
|
||||||
* value of NGHTTP2_STREAM_DPRI_TOP. If so, we have to add weight of
|
* value of NGHTTP2_STREAM_DPRI_TOP. If so, we have to add weight of
|
||||||
* its direct descendants to stream->sum_norest_weight. To make this
|
* its direct descendants to stream->sum_norest_weight. To make this
|
||||||
|
@ -386,7 +386,7 @@ static int stream_update_dep_sum_norest_weight(nghttp2_stream *stream) {
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int stream_update_dep_on_attach_data(nghttp2_stream *stream,
|
static int stream_update_dep_on_attach_item(nghttp2_stream *stream,
|
||||||
nghttp2_session *session) {
|
nghttp2_session *session) {
|
||||||
nghttp2_stream *root_stream;
|
nghttp2_stream *root_stream;
|
||||||
|
|
||||||
|
@ -406,11 +406,11 @@ static int stream_update_dep_on_attach_data(nghttp2_stream *stream,
|
||||||
return stream_update_dep_queue_top(root_stream, session);
|
return stream_update_dep_queue_top(root_stream, session);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int stream_update_dep_on_detach_data(nghttp2_stream *stream,
|
static int stream_update_dep_on_detach_item(nghttp2_stream *stream,
|
||||||
nghttp2_session *session) {
|
nghttp2_session *session) {
|
||||||
nghttp2_stream *root_stream;
|
nghttp2_stream *root_stream;
|
||||||
|
|
||||||
stream->dpri = NGHTTP2_STREAM_DPRI_NO_DATA;
|
stream->dpri = NGHTTP2_STREAM_DPRI_NO_ITEM;
|
||||||
|
|
||||||
root_stream = nghttp2_stream_get_dep_root(stream);
|
root_stream = nghttp2_stream_get_dep_root(stream);
|
||||||
|
|
||||||
|
@ -422,49 +422,49 @@ static int stream_update_dep_on_detach_data(nghttp2_stream *stream,
|
||||||
return stream_update_dep_queue_top(root_stream, session);
|
return stream_update_dep_queue_top(root_stream, session);
|
||||||
}
|
}
|
||||||
|
|
||||||
int nghttp2_stream_attach_data(nghttp2_stream *stream,
|
int nghttp2_stream_attach_item(nghttp2_stream *stream,
|
||||||
nghttp2_outbound_item *data_item,
|
nghttp2_outbound_item *item,
|
||||||
nghttp2_session *session) {
|
nghttp2_session *session) {
|
||||||
assert((stream->flags & NGHTTP2_STREAM_FLAG_DEFERRED_ALL) == 0);
|
assert((stream->flags & NGHTTP2_STREAM_FLAG_DEFERRED_ALL) == 0);
|
||||||
assert(stream->data_item == NULL);
|
assert(stream->item == NULL);
|
||||||
|
|
||||||
DEBUGF(fprintf(stderr, "stream: stream=%d attach data=%p\n",
|
DEBUGF(fprintf(stderr, "stream: stream=%d attach item=%p\n",
|
||||||
stream->stream_id, data_item));
|
stream->stream_id, item));
|
||||||
|
|
||||||
stream->data_item = data_item;
|
stream->item = item;
|
||||||
|
|
||||||
return stream_update_dep_on_attach_data(stream, session);
|
return stream_update_dep_on_attach_item(stream, session);
|
||||||
}
|
}
|
||||||
|
|
||||||
int nghttp2_stream_detach_data(nghttp2_stream *stream,
|
int nghttp2_stream_detach_item(nghttp2_stream *stream,
|
||||||
nghttp2_session *session) {
|
nghttp2_session *session) {
|
||||||
DEBUGF(fprintf(stderr, "stream: stream=%d detach data=%p\n",
|
DEBUGF(fprintf(stderr, "stream: stream=%d detach item=%p\n",
|
||||||
stream->stream_id, stream->data_item));
|
stream->stream_id, stream->item));
|
||||||
|
|
||||||
stream->data_item = NULL;
|
stream->item = NULL;
|
||||||
stream->flags &= ~NGHTTP2_STREAM_FLAG_DEFERRED_ALL;
|
stream->flags &= ~NGHTTP2_STREAM_FLAG_DEFERRED_ALL;
|
||||||
|
|
||||||
return stream_update_dep_on_detach_data(stream, session);
|
return stream_update_dep_on_detach_item(stream, session);
|
||||||
}
|
}
|
||||||
|
|
||||||
int nghttp2_stream_defer_data(nghttp2_stream *stream, uint8_t flags,
|
int nghttp2_stream_defer_item(nghttp2_stream *stream, uint8_t flags,
|
||||||
nghttp2_session *session) {
|
nghttp2_session *session) {
|
||||||
assert(stream->data_item);
|
assert(stream->item);
|
||||||
|
|
||||||
DEBUGF(fprintf(stderr, "stream: stream=%d defer data=%p cause=%02x\n",
|
DEBUGF(fprintf(stderr, "stream: stream=%d defer item=%p cause=%02x\n",
|
||||||
stream->stream_id, stream->data_item, flags));
|
stream->stream_id, stream->item, flags));
|
||||||
|
|
||||||
stream->flags |= flags;
|
stream->flags |= flags;
|
||||||
|
|
||||||
return stream_update_dep_on_detach_data(stream, session);
|
return stream_update_dep_on_detach_item(stream, session);
|
||||||
}
|
}
|
||||||
|
|
||||||
int nghttp2_stream_resume_deferred_data(nghttp2_stream *stream, uint8_t flags,
|
int nghttp2_stream_resume_deferred_item(nghttp2_stream *stream, uint8_t flags,
|
||||||
nghttp2_session *session) {
|
nghttp2_session *session) {
|
||||||
assert(stream->data_item);
|
assert(stream->item);
|
||||||
|
|
||||||
DEBUGF(fprintf(stderr, "stream: stream=%d resume data=%p flags=%02x\n",
|
DEBUGF(fprintf(stderr, "stream: stream=%d resume item=%p flags=%02x\n",
|
||||||
stream->stream_id, stream->data_item, flags));
|
stream->stream_id, stream->item, flags));
|
||||||
|
|
||||||
stream->flags &= ~flags;
|
stream->flags &= ~flags;
|
||||||
|
|
||||||
|
@ -472,16 +472,15 @@ int nghttp2_stream_resume_deferred_data(nghttp2_stream *stream, uint8_t flags,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return stream_update_dep_on_attach_data(stream, session);
|
return stream_update_dep_on_attach_item(stream, session);
|
||||||
}
|
}
|
||||||
|
|
||||||
int nghttp2_stream_check_deferred_data(nghttp2_stream *stream) {
|
int nghttp2_stream_check_deferred_item(nghttp2_stream *stream) {
|
||||||
return stream->data_item &&
|
return stream->item && (stream->flags & NGHTTP2_STREAM_FLAG_DEFERRED_ALL);
|
||||||
(stream->flags & NGHTTP2_STREAM_FLAG_DEFERRED_ALL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int nghttp2_stream_check_deferred_by_flow_control(nghttp2_stream *stream) {
|
int nghttp2_stream_check_deferred_by_flow_control(nghttp2_stream *stream) {
|
||||||
return stream->data_item &&
|
return stream->item &&
|
||||||
(stream->flags & NGHTTP2_STREAM_FLAG_DEFERRED_FLOW_CONTROL);
|
(stream->flags & NGHTTP2_STREAM_FLAG_DEFERRED_FLOW_CONTROL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -560,7 +559,7 @@ void nghttp2_stream_dep_insert(nghttp2_stream *dep_stream,
|
||||||
nghttp2_stream *si;
|
nghttp2_stream *si;
|
||||||
nghttp2_stream *root_stream;
|
nghttp2_stream *root_stream;
|
||||||
|
|
||||||
assert(stream->data_item == NULL);
|
assert(stream->item == NULL);
|
||||||
|
|
||||||
DEBUGF(fprintf(stderr,
|
DEBUGF(fprintf(stderr,
|
||||||
"stream: dep_insert dep_stream(%p)=%d, stream(%p)=%d\n",
|
"stream: dep_insert dep_stream(%p)=%d, stream(%p)=%d\n",
|
||||||
|
@ -690,7 +689,7 @@ void nghttp2_stream_dep_add(nghttp2_stream *dep_stream,
|
||||||
nghttp2_stream *stream) {
|
nghttp2_stream *stream) {
|
||||||
nghttp2_stream *root_stream;
|
nghttp2_stream *root_stream;
|
||||||
|
|
||||||
assert(stream->data_item == NULL);
|
assert(stream->item == NULL);
|
||||||
|
|
||||||
DEBUGF(fprintf(stderr, "stream: dep_add dep_stream(%p)=%d, stream(%p)=%d\n",
|
DEBUGF(fprintf(stderr, "stream: dep_add dep_stream(%p)=%d, stream(%p)=%d\n",
|
||||||
dep_stream, dep_stream->stream_id, stream, stream->stream_id));
|
dep_stream, dep_stream->stream_id, stream, stream->stream_id));
|
||||||
|
|
|
@ -100,7 +100,7 @@ typedef enum {
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
NGHTTP2_STREAM_DPRI_NONE = 0,
|
NGHTTP2_STREAM_DPRI_NONE = 0,
|
||||||
NGHTTP2_STREAM_DPRI_NO_DATA = 0x01,
|
NGHTTP2_STREAM_DPRI_NO_ITEM = 0x01,
|
||||||
NGHTTP2_STREAM_DPRI_TOP = 0x02,
|
NGHTTP2_STREAM_DPRI_TOP = 0x02,
|
||||||
NGHTTP2_STREAM_DPRI_REST = 0x04
|
NGHTTP2_STREAM_DPRI_REST = 0x04
|
||||||
} nghttp2_stream_dpri;
|
} nghttp2_stream_dpri;
|
||||||
|
@ -139,7 +139,7 @@ struct nghttp2_stream {
|
||||||
/* The arbitrary data provided by user for this stream. */
|
/* The arbitrary data provided by user for this stream. */
|
||||||
void *stream_user_data;
|
void *stream_user_data;
|
||||||
/* Item to send */
|
/* Item to send */
|
||||||
nghttp2_outbound_item *data_item;
|
nghttp2_outbound_item *item;
|
||||||
/* stream ID */
|
/* stream ID */
|
||||||
int32_t stream_id;
|
int32_t stream_id;
|
||||||
/* categorized priority of this stream. Only stream bearing
|
/* categorized priority of this stream. Only stream bearing
|
||||||
|
@ -201,9 +201,9 @@ void nghttp2_stream_free(nghttp2_stream *stream);
|
||||||
void nghttp2_stream_shutdown(nghttp2_stream *stream, nghttp2_shut_flag flag);
|
void nghttp2_stream_shutdown(nghttp2_stream *stream, nghttp2_shut_flag flag);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Defer |stream->data_item|. We won't call this function in the
|
* Defer |stream->item|. We won't call this function in the situation
|
||||||
* situation where |stream->data_item| == NULL. If |flags| is bitwise
|
* where |stream->item| == NULL. The |flags| is bitwise OR of zero or
|
||||||
* OR of zero or more of NGHTTP2_STREAM_FLAG_DEFERRED_USER and
|
* more of NGHTTP2_STREAM_FLAG_DEFERRED_USER and
|
||||||
* NGHTTP2_STREAM_FLAG_DEFERRED_FLOW_CONTROL. The |flags| indicates
|
* NGHTTP2_STREAM_FLAG_DEFERRED_FLOW_CONTROL. The |flags| indicates
|
||||||
* the reason of this action.
|
* the reason of this action.
|
||||||
*
|
*
|
||||||
|
@ -213,7 +213,7 @@ void nghttp2_stream_shutdown(nghttp2_stream *stream, nghttp2_shut_flag flag);
|
||||||
* NGHTTP2_ERR_NOMEM
|
* NGHTTP2_ERR_NOMEM
|
||||||
* Out of memory
|
* Out of memory
|
||||||
*/
|
*/
|
||||||
int nghttp2_stream_defer_data(nghttp2_stream *stream, uint8_t flags,
|
int nghttp2_stream_defer_item(nghttp2_stream *stream, uint8_t flags,
|
||||||
nghttp2_session *session);
|
nghttp2_session *session);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -224,16 +224,16 @@ int nghttp2_stream_defer_data(nghttp2_stream *stream, uint8_t flags,
|
||||||
* cleared if they are set. So even if this function is called, if
|
* cleared if they are set. So even if this function is called, if
|
||||||
* one of flag is still set, data does not become active.
|
* one of flag is still set, data does not become active.
|
||||||
*/
|
*/
|
||||||
int nghttp2_stream_resume_deferred_data(nghttp2_stream *stream, uint8_t flags,
|
int nghttp2_stream_resume_deferred_item(nghttp2_stream *stream, uint8_t flags,
|
||||||
nghttp2_session *session);
|
nghttp2_session *session);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Returns nonzero if data item is deferred by whatever reason.
|
* Returns nonzero if item is deferred by whatever reason.
|
||||||
*/
|
*/
|
||||||
int nghttp2_stream_check_deferred_data(nghttp2_stream *stream);
|
int nghttp2_stream_check_deferred_item(nghttp2_stream *stream);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Returns nonzero if data item is deferred by flow control.
|
* Returns nonzero if item is deferred by flow control.
|
||||||
*/
|
*/
|
||||||
int nghttp2_stream_check_deferred_by_flow_control(nghttp2_stream *stream);
|
int nghttp2_stream_check_deferred_by_flow_control(nghttp2_stream *stream);
|
||||||
|
|
||||||
|
@ -322,7 +322,7 @@ void nghttp2_stream_dep_add(nghttp2_stream *dep_stream, nghttp2_stream *stream);
|
||||||
void nghttp2_stream_dep_remove(nghttp2_stream *stream);
|
void nghttp2_stream_dep_remove(nghttp2_stream *stream);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Attaches |data_item| to |stream|. Updates dpri members in this
|
* Attaches |item| to |stream|. Updates dpri members in this
|
||||||
* dependency tree.
|
* dependency tree.
|
||||||
*
|
*
|
||||||
* This function returns 0 if it succeeds, or one of the following
|
* This function returns 0 if it succeeds, or one of the following
|
||||||
|
@ -331,14 +331,14 @@ void nghttp2_stream_dep_remove(nghttp2_stream *stream);
|
||||||
* NGHTTP2_ERR_NOMEM
|
* NGHTTP2_ERR_NOMEM
|
||||||
* Out of memory
|
* Out of memory
|
||||||
*/
|
*/
|
||||||
int nghttp2_stream_attach_data(nghttp2_stream *stream,
|
int nghttp2_stream_attach_item(nghttp2_stream *stream,
|
||||||
nghttp2_outbound_item *data_item,
|
nghttp2_outbound_item *item,
|
||||||
nghttp2_session *session);
|
nghttp2_session *session);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Detaches |stream->data_item|. Updates dpri members in this
|
* Detaches |stream->item|. Updates dpri members in this dependency
|
||||||
* dependency tree. This function does not free |stream->data_item|.
|
* tree. This function does not free |stream->item|. The caller must
|
||||||
* The caller must free it.
|
* free it.
|
||||||
*
|
*
|
||||||
* This function returns 0 if it succeeds, or one of the following
|
* This function returns 0 if it succeeds, or one of the following
|
||||||
* negative error codes:
|
* negative error codes:
|
||||||
|
@ -346,7 +346,7 @@ int nghttp2_stream_attach_data(nghttp2_stream *stream,
|
||||||
* NGHTTP2_ERR_NOMEM
|
* NGHTTP2_ERR_NOMEM
|
||||||
* Out of memory
|
* Out of memory
|
||||||
*/
|
*/
|
||||||
int nghttp2_stream_detach_data(nghttp2_stream *stream,
|
int nghttp2_stream_detach_item(nghttp2_stream *stream,
|
||||||
nghttp2_session *session);
|
nghttp2_session *session);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -231,10 +231,10 @@ int main(int argc _U_, char *argv[] _U_) {
|
||||||
!CU_add_test(
|
!CU_add_test(
|
||||||
pSuite, "session_stream_dep_all_your_stream_are_belong_to_us",
|
pSuite, "session_stream_dep_all_your_stream_are_belong_to_us",
|
||||||
test_nghttp2_session_stream_dep_all_your_stream_are_belong_to_us) ||
|
test_nghttp2_session_stream_dep_all_your_stream_are_belong_to_us) ||
|
||||||
!CU_add_test(pSuite, "session_stream_attach_data",
|
!CU_add_test(pSuite, "session_stream_attach_item",
|
||||||
test_nghttp2_session_stream_attach_data) ||
|
test_nghttp2_session_stream_attach_item) ||
|
||||||
!CU_add_test(pSuite, "session_stream_attach_data_subtree",
|
!CU_add_test(pSuite, "session_stream_attach_item_subtree",
|
||||||
test_nghttp2_session_stream_attach_data_subtree) ||
|
test_nghttp2_session_stream_attach_item_subtree) ||
|
||||||
!CU_add_test(pSuite, "session_stream_keep_closed_stream",
|
!CU_add_test(pSuite, "session_stream_keep_closed_stream",
|
||||||
test_nghttp2_session_keep_closed_stream) ||
|
test_nghttp2_session_keep_closed_stream) ||
|
||||||
!CU_add_test(pSuite, "session_stream_keep_idle_stream",
|
!CU_add_test(pSuite, "session_stream_keep_idle_stream",
|
||||||
|
|
|
@ -2495,7 +2495,7 @@ void test_nghttp2_session_on_window_update_received(void) {
|
||||||
|
|
||||||
data_item = create_data_ob_item();
|
data_item = create_data_ob_item();
|
||||||
|
|
||||||
CU_ASSERT(0 == nghttp2_stream_attach_data(stream, data_item, session));
|
CU_ASSERT(0 == nghttp2_stream_attach_item(stream, data_item, session));
|
||||||
|
|
||||||
nghttp2_frame_window_update_init(&frame.window_update, NGHTTP2_FLAG_NONE, 1,
|
nghttp2_frame_window_update_init(&frame.window_update, NGHTTP2_FLAG_NONE, 1,
|
||||||
16 * 1024);
|
16 * 1024);
|
||||||
|
@ -2506,7 +2506,7 @@ void test_nghttp2_session_on_window_update_received(void) {
|
||||||
stream->remote_window_size);
|
stream->remote_window_size);
|
||||||
|
|
||||||
CU_ASSERT(0 ==
|
CU_ASSERT(0 ==
|
||||||
nghttp2_stream_defer_data(
|
nghttp2_stream_defer_item(
|
||||||
stream, NGHTTP2_STREAM_FLAG_DEFERRED_FLOW_CONTROL, session));
|
stream, NGHTTP2_STREAM_FLAG_DEFERRED_FLOW_CONTROL, session));
|
||||||
|
|
||||||
CU_ASSERT(0 == nghttp2_session_on_window_update_received(session, &frame));
|
CU_ASSERT(0 == nghttp2_session_on_window_update_received(session, &frame));
|
||||||
|
@ -4255,7 +4255,7 @@ void test_nghttp2_session_pop_next_ob_item(void) {
|
||||||
|
|
||||||
stream = nghttp2_session_get_stream(session, 1);
|
stream = nghttp2_session_get_stream(session, 1);
|
||||||
|
|
||||||
nghttp2_stream_detach_data(stream, session);
|
nghttp2_stream_detach_item(stream, session);
|
||||||
|
|
||||||
nghttp2_outbound_item_free(item, mem);
|
nghttp2_outbound_item_free(item, mem);
|
||||||
free(item);
|
free(item);
|
||||||
|
@ -4736,9 +4736,9 @@ void test_nghttp2_session_data_read_temporal_failure(void) {
|
||||||
|
|
||||||
stream = nghttp2_session_get_stream(session, 1);
|
stream = nghttp2_session_get_stream(session, 1);
|
||||||
CU_ASSERT(nghttp2_stream_check_deferred_by_flow_control(stream));
|
CU_ASSERT(nghttp2_stream_check_deferred_by_flow_control(stream));
|
||||||
CU_ASSERT(NGHTTP2_DATA == stream->data_item->frame.hd.type);
|
CU_ASSERT(NGHTTP2_DATA == stream->item->frame.hd.type);
|
||||||
|
|
||||||
stream->data_item->aux_data.data.data_prd.read_callback =
|
stream->item->aux_data.data.data_prd.read_callback =
|
||||||
temporal_failure_data_source_read_callback;
|
temporal_failure_data_source_read_callback;
|
||||||
|
|
||||||
/* Back NGHTTP2_INITIAL_WINDOW_SIZE to both connection-level and
|
/* Back NGHTTP2_INITIAL_WINDOW_SIZE to both connection-level and
|
||||||
|
@ -5813,7 +5813,7 @@ void test_nghttp2_session_stream_dep_all_your_stream_are_belong_to_us(void) {
|
||||||
nghttp2_session_del(session);
|
nghttp2_session_del(session);
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_nghttp2_session_stream_attach_data(void) {
|
void test_nghttp2_session_stream_attach_item(void) {
|
||||||
nghttp2_session *session;
|
nghttp2_session *session;
|
||||||
nghttp2_session_callbacks callbacks;
|
nghttp2_session_callbacks callbacks;
|
||||||
nghttp2_stream *a, *b, *c, *d;
|
nghttp2_stream *a, *b, *c, *d;
|
||||||
|
@ -5837,12 +5837,12 @@ void test_nghttp2_session_stream_attach_data(void) {
|
||||||
|
|
||||||
db = create_data_ob_item();
|
db = create_data_ob_item();
|
||||||
|
|
||||||
nghttp2_stream_attach_data(b, db, session);
|
nghttp2_stream_attach_item(b, db, session);
|
||||||
|
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == a->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == a->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == b->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == b->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == c->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == c->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == d->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == d->dpri);
|
||||||
|
|
||||||
CU_ASSERT(16 == b->effective_weight);
|
CU_ASSERT(16 == b->effective_weight);
|
||||||
|
|
||||||
|
@ -5852,12 +5852,12 @@ void test_nghttp2_session_stream_attach_data(void) {
|
||||||
|
|
||||||
dc = create_data_ob_item();
|
dc = create_data_ob_item();
|
||||||
|
|
||||||
nghttp2_stream_attach_data(c, dc, session);
|
nghttp2_stream_attach_item(c, dc, session);
|
||||||
|
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == a->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == a->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == b->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == b->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == c->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == c->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == d->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == d->dpri);
|
||||||
|
|
||||||
CU_ASSERT(16 * 16 / 32 == b->effective_weight);
|
CU_ASSERT(16 * 16 / 32 == b->effective_weight);
|
||||||
CU_ASSERT(16 * 16 / 32 == c->effective_weight);
|
CU_ASSERT(16 * 16 / 32 == c->effective_weight);
|
||||||
|
@ -5868,32 +5868,32 @@ void test_nghttp2_session_stream_attach_data(void) {
|
||||||
|
|
||||||
da = create_data_ob_item();
|
da = create_data_ob_item();
|
||||||
|
|
||||||
nghttp2_stream_attach_data(a, da, session);
|
nghttp2_stream_attach_item(a, da, session);
|
||||||
|
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == a->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == a->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_REST == b->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_REST == b->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_REST == c->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_REST == c->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == d->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == d->dpri);
|
||||||
|
|
||||||
CU_ASSERT(16 == a->effective_weight);
|
CU_ASSERT(16 == a->effective_weight);
|
||||||
|
|
||||||
CU_ASSERT(1 == da->queued);
|
CU_ASSERT(1 == da->queued);
|
||||||
|
|
||||||
nghttp2_stream_detach_data(a, session);
|
nghttp2_stream_detach_item(a, session);
|
||||||
|
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == a->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == a->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == b->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == b->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == c->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == c->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == d->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == d->dpri);
|
||||||
|
|
||||||
CU_ASSERT(16 * 16 / 32 == b->effective_weight);
|
CU_ASSERT(16 * 16 / 32 == b->effective_weight);
|
||||||
CU_ASSERT(16 * 16 / 32 == c->effective_weight);
|
CU_ASSERT(16 * 16 / 32 == c->effective_weight);
|
||||||
|
|
||||||
dd = create_data_ob_item();
|
dd = create_data_ob_item();
|
||||||
|
|
||||||
nghttp2_stream_attach_data(d, dd, session);
|
nghttp2_stream_attach_item(d, dd, session);
|
||||||
|
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == a->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == a->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == b->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == b->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == c->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == c->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_REST == d->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_REST == d->dpri);
|
||||||
|
@ -5903,22 +5903,22 @@ void test_nghttp2_session_stream_attach_data(void) {
|
||||||
|
|
||||||
CU_ASSERT(0 == dd->queued);
|
CU_ASSERT(0 == dd->queued);
|
||||||
|
|
||||||
nghttp2_stream_detach_data(c, session);
|
nghttp2_stream_detach_item(c, session);
|
||||||
|
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == a->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == a->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == b->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == b->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == c->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == c->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_REST == d->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_REST == d->dpri);
|
||||||
|
|
||||||
CU_ASSERT(16 * 16 / 16 == b->effective_weight);
|
CU_ASSERT(16 * 16 / 16 == b->effective_weight);
|
||||||
|
|
||||||
CU_ASSERT(0 == dd->queued);
|
CU_ASSERT(0 == dd->queued);
|
||||||
|
|
||||||
nghttp2_stream_detach_data(b, session);
|
nghttp2_stream_detach_item(b, session);
|
||||||
|
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == a->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == a->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == b->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == b->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == c->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == c->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == d->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == d->dpri);
|
||||||
|
|
||||||
CU_ASSERT(16 * 16 / 16 == d->effective_weight);
|
CU_ASSERT(16 * 16 / 16 == d->effective_weight);
|
||||||
|
@ -5928,7 +5928,7 @@ void test_nghttp2_session_stream_attach_data(void) {
|
||||||
nghttp2_session_del(session);
|
nghttp2_session_del(session);
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_nghttp2_session_stream_attach_data_subtree(void) {
|
void test_nghttp2_session_stream_attach_item_subtree(void) {
|
||||||
nghttp2_session *session;
|
nghttp2_session *session;
|
||||||
nghttp2_session_callbacks callbacks;
|
nghttp2_session_callbacks callbacks;
|
||||||
nghttp2_stream *a, *b, *c, *d, *e, *f;
|
nghttp2_stream *a, *b, *c, *d, *e, *f;
|
||||||
|
@ -5955,18 +5955,18 @@ void test_nghttp2_session_stream_attach_data_subtree(void) {
|
||||||
|
|
||||||
de = create_data_ob_item();
|
de = create_data_ob_item();
|
||||||
|
|
||||||
nghttp2_stream_attach_data(e, de, session);
|
nghttp2_stream_attach_item(e, de, session);
|
||||||
|
|
||||||
db = create_data_ob_item();
|
db = create_data_ob_item();
|
||||||
|
|
||||||
nghttp2_stream_attach_data(b, db, session);
|
nghttp2_stream_attach_item(b, db, session);
|
||||||
|
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == a->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == a->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == b->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == b->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == c->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == c->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == d->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == d->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == e->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == e->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == f->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == f->dpri);
|
||||||
|
|
||||||
CU_ASSERT(16 == b->effective_weight);
|
CU_ASSERT(16 == b->effective_weight);
|
||||||
CU_ASSERT(16 == e->effective_weight);
|
CU_ASSERT(16 == e->effective_weight);
|
||||||
|
@ -5986,12 +5986,12 @@ void test_nghttp2_session_stream_attach_data_subtree(void) {
|
||||||
* d
|
* d
|
||||||
*/
|
*/
|
||||||
|
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == a->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == a->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_REST == b->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_REST == b->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == c->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == c->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == d->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == d->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == e->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == e->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == f->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == f->dpri);
|
||||||
|
|
||||||
CU_ASSERT(16 == e->effective_weight);
|
CU_ASSERT(16 == e->effective_weight);
|
||||||
|
|
||||||
|
@ -6011,12 +6011,12 @@ void test_nghttp2_session_stream_attach_data_subtree(void) {
|
||||||
* d
|
* d
|
||||||
*/
|
*/
|
||||||
|
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == a->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == a->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == b->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == b->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == c->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == c->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == d->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == d->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == e->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == e->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == f->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == f->dpri);
|
||||||
|
|
||||||
CU_ASSERT(16 == b->effective_weight);
|
CU_ASSERT(16 == b->effective_weight);
|
||||||
CU_ASSERT(16 == e->effective_weight);
|
CU_ASSERT(16 == e->effective_weight);
|
||||||
|
@ -6027,12 +6027,12 @@ void test_nghttp2_session_stream_attach_data_subtree(void) {
|
||||||
|
|
||||||
nghttp2_stream_dep_make_root(a, session);
|
nghttp2_stream_dep_make_root(a, session);
|
||||||
|
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == a->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == a->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == b->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == b->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == c->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == c->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == d->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == d->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == e->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == e->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == f->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == f->dpri);
|
||||||
|
|
||||||
/* Remove subtree c */
|
/* Remove subtree c */
|
||||||
|
|
||||||
|
@ -6048,16 +6048,16 @@ void test_nghttp2_session_stream_attach_data_subtree(void) {
|
||||||
* f
|
* f
|
||||||
*/
|
*/
|
||||||
|
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == a->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == a->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == b->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == b->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == c->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == c->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == d->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == d->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == e->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == e->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == f->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == f->dpri);
|
||||||
|
|
||||||
dd = create_data_ob_item();
|
dd = create_data_ob_item();
|
||||||
|
|
||||||
nghttp2_stream_attach_data(d, dd, session);
|
nghttp2_stream_attach_item(d, dd, session);
|
||||||
|
|
||||||
/* Add subtree c to a */
|
/* Add subtree c to a */
|
||||||
|
|
||||||
|
@ -6072,12 +6072,12 @@ void test_nghttp2_session_stream_attach_data_subtree(void) {
|
||||||
* d f
|
* d f
|
||||||
*/
|
*/
|
||||||
|
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == a->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == a->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == b->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == b->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == c->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == c->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_REST == d->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_REST == d->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == e->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == e->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == f->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == f->dpri);
|
||||||
|
|
||||||
CU_ASSERT(16 == b->effective_weight);
|
CU_ASSERT(16 == b->effective_weight);
|
||||||
CU_ASSERT(16 * 16 / 16 == e->effective_weight);
|
CU_ASSERT(16 * 16 / 16 == e->effective_weight);
|
||||||
|
@ -6100,12 +6100,12 @@ void test_nghttp2_session_stream_attach_data_subtree(void) {
|
||||||
* f d
|
* f d
|
||||||
*/
|
*/
|
||||||
|
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == a->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == a->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == b->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == b->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == c->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == c->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_REST == d->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_REST == d->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_REST == e->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_REST == e->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == f->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == f->dpri);
|
||||||
|
|
||||||
CU_ASSERT(16 == b->effective_weight);
|
CU_ASSERT(16 == b->effective_weight);
|
||||||
|
|
||||||
|
@ -6125,12 +6125,12 @@ void test_nghttp2_session_stream_attach_data_subtree(void) {
|
||||||
* f d
|
* f d
|
||||||
*/
|
*/
|
||||||
|
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == a->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == a->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == b->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_TOP == b->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == c->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == c->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_REST == d->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_REST == d->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_REST == e->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_REST == e->dpri);
|
||||||
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_DATA == f->dpri);
|
CU_ASSERT(NGHTTP2_STREAM_DPRI_NO_ITEM == f->dpri);
|
||||||
|
|
||||||
CU_ASSERT(0 == a->sum_norest_weight);
|
CU_ASSERT(0 == a->sum_norest_weight);
|
||||||
CU_ASSERT(0 == b->sum_norest_weight);
|
CU_ASSERT(0 == b->sum_norest_weight);
|
||||||
|
|
|
@ -108,8 +108,8 @@ void test_nghttp2_session_stream_dep_remove(void);
|
||||||
void test_nghttp2_session_stream_dep_add_subtree(void);
|
void test_nghttp2_session_stream_dep_add_subtree(void);
|
||||||
void test_nghttp2_session_stream_dep_remove_subtree(void);
|
void test_nghttp2_session_stream_dep_remove_subtree(void);
|
||||||
void test_nghttp2_session_stream_dep_all_your_stream_are_belong_to_us(void);
|
void test_nghttp2_session_stream_dep_all_your_stream_are_belong_to_us(void);
|
||||||
void test_nghttp2_session_stream_attach_data(void);
|
void test_nghttp2_session_stream_attach_item(void);
|
||||||
void test_nghttp2_session_stream_attach_data_subtree(void);
|
void test_nghttp2_session_stream_attach_item_subtree(void);
|
||||||
void test_nghttp2_session_keep_closed_stream(void);
|
void test_nghttp2_session_keep_closed_stream(void);
|
||||||
void test_nghttp2_session_keep_idle_stream(void);
|
void test_nghttp2_session_keep_idle_stream(void);
|
||||||
void test_nghttp2_session_detach_idle_stream(void);
|
void test_nghttp2_session_detach_idle_stream(void);
|
||||||
|
|
Loading…
Reference in New Issue