Commit 48d7453a authored by Tatsuhiro Tsujikawa's avatar Tatsuhiro Tsujikawa

Rename SPDY terms

parent 1056d869
...@@ -563,8 +563,8 @@ static int nghttp2_session_predicate_request_headers_send ...@@ -563,8 +563,8 @@ static int nghttp2_session_predicate_request_headers_send
(nghttp2_session *session, nghttp2_headers *frame) (nghttp2_session *session, nghttp2_headers *frame)
{ {
if(session->goaway_flags) { if(session->goaway_flags) {
/* When GOAWAY is sent or received, peer must not send new /* When GOAWAY is sent or received, peer must not send new request
SYN_STREAM. */ HEADERS. */
return NGHTTP2_ERR_START_STREAM_NOT_ALLOWED; return NGHTTP2_ERR_START_STREAM_NOT_ALLOWED;
} }
/* All 32bit signed stream IDs are spent. */ /* All 32bit signed stream IDs are spent. */
...@@ -585,14 +585,13 @@ static int nghttp2_session_predicate_request_headers_send ...@@ -585,14 +585,13 @@ static int nghttp2_session_predicate_request_headers_send
* The stream is already closed or does not exist. * The stream is already closed or does not exist.
* NGHTTP2_ERR_STREAM_SHUT_WR * NGHTTP2_ERR_STREAM_SHUT_WR
* The transmission is not allowed for this stream (e.g., a frame * The transmission is not allowed for this stream (e.g., a frame
* with FIN flag set has already sent) * with END_STREAM flag set has already sent)
* NGHTTP2_ERR_INVALID_STREAM_ID * NGHTTP2_ERR_INVALID_STREAM_ID
* The stream ID is invalid. * The stream ID is invalid.
* NGHTTP2_ERR_STREAM_CLOSING * NGHTTP2_ERR_STREAM_CLOSING
* RST_STREAM was queued for this stream. * RST_STREAM was queued for this stream.
* NGHTTP2_ERR_INVALID_STREAM_STATE * NGHTTP2_ERR_INVALID_STREAM_STATE
* The state of the stream is not valid (e.g., SYN_REPLY has * The state of the stream is not valid.
* already sent).
*/ */
static int nghttp2_session_predicate_response_headers_send static int nghttp2_session_predicate_response_headers_send
(nghttp2_session *session, int32_t stream_id) (nghttp2_session *session, int32_t stream_id)
...@@ -664,12 +663,11 @@ static int nghttp2_session_predicate_push_response_headers_send ...@@ -664,12 +663,11 @@ static int nghttp2_session_predicate_push_response_headers_send
* The stream is already closed or does not exist. * The stream is already closed or does not exist.
* NGHTTP2_ERR_STREAM_SHUT_WR * NGHTTP2_ERR_STREAM_SHUT_WR
* The transmission is not allowed for this stream (e.g., a frame * The transmission is not allowed for this stream (e.g., a frame
* with FIN flag set has already sent) * with END_STREAM flag set has already sent)
* NGHTTP2_ERR_STREAM_CLOSING * NGHTTP2_ERR_STREAM_CLOSING
* RST_STREAM was queued for this stream. * RST_STREAM was queued for this stream.
* NGHTTP2_ERR_INVALID_STREAM_STATE * NGHTTP2_ERR_INVALID_STREAM_STATE
* The state of the stream is not valid (e.g., if the local peer * The state of the stream is not valid.
* is receiving side and SYN_REPLY has not been sent).
*/ */
static int nghttp2_session_predicate_stream_frame_send static int nghttp2_session_predicate_stream_frame_send
(nghttp2_session* session, int32_t stream_id) (nghttp2_session* session, int32_t stream_id)
...@@ -774,8 +772,8 @@ static int nghttp2_session_predicate_push_promise_send ...@@ -774,8 +772,8 @@ static int nghttp2_session_predicate_push_promise_send
/* /*
* This function checks WINDOW_UPDATE with the stream ID |stream_id| * This function checks WINDOW_UPDATE with the stream ID |stream_id|
* can be sent at this time. Note that FIN flag of the previous frame * can be sent at this time. Note that END_STREAM flag of the previous
* does not affect the transmission of the WINDOW_UPDATE frame. * frame does not affect the transmission of the WINDOW_UPDATE frame.
* *
* 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:
...@@ -843,14 +841,13 @@ static size_t nghttp2_session_next_data_read(nghttp2_session *session, ...@@ -843,14 +841,13 @@ static size_t nghttp2_session_next_data_read(nghttp2_session *session,
* The stream is already closed or does not exist. * The stream is already closed or does not exist.
* NGHTTP2_ERR_STREAM_SHUT_WR * NGHTTP2_ERR_STREAM_SHUT_WR
* The transmission is not allowed for this stream (e.g., a frame * The transmission is not allowed for this stream (e.g., a frame
* with FIN flag set has already sent) * with END_STREAM flag set has already sent)
* NGHTTP2_ERR_DEFERRED_DATA_EXIST * NGHTTP2_ERR_DEFERRED_DATA_EXIST
* Another DATA frame has already been deferred. * Another DATA frame has already been deferred.
* NGHTTP2_ERR_STREAM_CLOSING * NGHTTP2_ERR_STREAM_CLOSING
* RST_STREAM was queued for this stream. * RST_STREAM was queued for this stream.
* NGHTTP2_ERR_INVALID_STREAM_STATE * NGHTTP2_ERR_INVALID_STREAM_STATE
* The state of the stream is not valid (e.g., if the local peer * The state of the stream is not valid.
* is receiving side and SYN_REPLY has not been sent).
*/ */
static int nghttp2_session_predicate_data_send(nghttp2_session *session, static int nghttp2_session_predicate_data_send(nghttp2_session *session,
int32_t stream_id) int32_t stream_id)
...@@ -1136,16 +1133,16 @@ nghttp2_outbound_item* nghttp2_session_get_next_ob_item ...@@ -1136,16 +1133,16 @@ nghttp2_outbound_item* nghttp2_session_get_next_ob_item
if(nghttp2_pq_empty(&session->ob_ss_pq)) { if(nghttp2_pq_empty(&session->ob_ss_pq)) {
return nghttp2_pq_top(&session->ob_pq); return nghttp2_pq_top(&session->ob_pq);
} else { } else {
nghttp2_outbound_item *item, *syn_stream_item; nghttp2_outbound_item *item, *headers_item;
item = nghttp2_pq_top(&session->ob_pq); item = nghttp2_pq_top(&session->ob_pq);
syn_stream_item = nghttp2_pq_top(&session->ob_ss_pq); headers_item = nghttp2_pq_top(&session->ob_ss_pq);
if(nghttp2_session_is_outgoing_concurrent_streams_max(session) || if(nghttp2_session_is_outgoing_concurrent_streams_max(session) ||
item->pri < syn_stream_item->pri || item->pri < headers_item->pri ||
(item->pri == syn_stream_item->pri && (item->pri == headers_item->pri &&
item->seq < syn_stream_item->seq)) { item->seq < headers_item->seq)) {
return item; return item;
} else { } else {
return syn_stream_item; return headers_item;
} }
} }
} }
...@@ -1176,18 +1173,18 @@ nghttp2_outbound_item* nghttp2_session_pop_next_ob_item ...@@ -1176,18 +1173,18 @@ nghttp2_outbound_item* nghttp2_session_pop_next_ob_item
nghttp2_pq_pop(&session->ob_pq); nghttp2_pq_pop(&session->ob_pq);
return item; return item;
} else { } else {
nghttp2_outbound_item *item, *syn_stream_item; nghttp2_outbound_item *item, *headers_item;
item = nghttp2_pq_top(&session->ob_pq); item = nghttp2_pq_top(&session->ob_pq);
syn_stream_item = nghttp2_pq_top(&session->ob_ss_pq); headers_item = nghttp2_pq_top(&session->ob_ss_pq);
if(nghttp2_session_is_outgoing_concurrent_streams_max(session) || if(nghttp2_session_is_outgoing_concurrent_streams_max(session) ||
item->pri < syn_stream_item->pri || item->pri < headers_item->pri ||
(item->pri == syn_stream_item->pri && (item->pri == headers_item->pri &&
item->seq < syn_stream_item->seq)) { item->seq < headers_item->seq)) {
nghttp2_pq_pop(&session->ob_pq); nghttp2_pq_pop(&session->ob_pq);
return item; return item;
} else { } else {
nghttp2_pq_pop(&session->ob_ss_pq); nghttp2_pq_pop(&session->ob_ss_pq);
return syn_stream_item; return headers_item;
} }
} }
} }
...@@ -1586,12 +1583,15 @@ static int nghttp2_session_is_new_peer_stream_id(nghttp2_session *session, ...@@ -1586,12 +1583,15 @@ static int nghttp2_session_is_new_peer_stream_id(nghttp2_session *session,
} }
/* /*
* Validates received HEADERS frame |frame| with * Validates received HEADERS frame |frame| with NGHTTP2_HCAT_REQUEST
* NGHTTP2_HCAT_REQUEST category_. This function returns 0 if it * or NGHTTP2_HCAT_PUSH_RESPONSE category, which both opens new
* succeeds, or non-zero nghttp2_error_code. * stream.
*
* This function returns 0 if it succeeds, or non-zero
* nghttp2_error_code.
*/ */
static int nghttp2_session_validate_syn_stream(nghttp2_session *session, static int nghttp2_session_validate_request_headers(nghttp2_session *session,
nghttp2_headers *frame) nghttp2_headers *frame)
{ {
if(nghttp2_session_is_incoming_concurrent_streams_max(session)) { if(nghttp2_session_is_incoming_concurrent_streams_max(session)) {
/* The spec does not clearly say what to do when max concurrent /* The spec does not clearly say what to do when max concurrent
...@@ -1675,7 +1675,8 @@ int nghttp2_session_on_request_headers_received(nghttp2_session *session, ...@@ -1675,7 +1675,8 @@ int nghttp2_session_on_request_headers_received(nghttp2_session *session,
(session, frame, NGHTTP2_PROTOCOL_ERROR); (session, frame, NGHTTP2_PROTOCOL_ERROR);
} else { } else {
session->last_recv_stream_id = frame->hd.stream_id; session->last_recv_stream_id = frame->hd.stream_id;
error_code = nghttp2_session_validate_syn_stream(session, &frame->headers); error_code = nghttp2_session_validate_request_headers
(session, &frame->headers);
} }
if(error_code == 0) { if(error_code == 0) {
uint8_t flags = frame->hd.flags; uint8_t flags = frame->hd.flags;
...@@ -1750,7 +1751,7 @@ int nghttp2_session_on_push_response_headers_received(nghttp2_session *session, ...@@ -1750,7 +1751,7 @@ int nghttp2_session_on_push_response_headers_received(nghttp2_session *session,
/* We don't accept new stream after GOAWAY is sent or received. */ /* We don't accept new stream after GOAWAY is sent or received. */
return 0; return 0;
} }
rv = nghttp2_session_validate_syn_stream(session, &frame->headers); rv = nghttp2_session_validate_request_headers(session, &frame->headers);
if(rv != 0) { if(rv != 0) {
return nghttp2_session_handle_invalid_stream(session, frame, rv); return nghttp2_session_handle_invalid_stream(session, frame, rv);
} }
...@@ -1788,7 +1789,7 @@ int nghttp2_session_on_headers_received(nghttp2_session *session, ...@@ -1788,7 +1789,7 @@ int nghttp2_session_on_headers_received(nghttp2_session *session,
} }
} else { } else {
/* If this is remote peer initiated stream, it is OK unless it /* If this is remote peer initiated stream, it is OK unless it
have sent FIN frame already. But if stream is in has sent END_STREAM frame already. But if stream is in
NGHTTP2_STREAM_CLOSING, we discard the frame. This is a race NGHTTP2_STREAM_CLOSING, we discard the frame. This is a race
condition. */ condition. */
valid = 1; valid = 1;
...@@ -2460,8 +2461,8 @@ int nghttp2_session_on_data_received(nghttp2_session *session, ...@@ -2460,8 +2461,8 @@ int nghttp2_session_on_data_received(nghttp2_session *session,
} }
} else if(stream->state != NGHTTP2_STREAM_CLOSING) { } else if(stream->state != NGHTTP2_STREAM_CLOSING) {
/* It is OK if this is remote peer initiated stream and we did /* It is OK if this is remote peer initiated stream and we did
not receive FIN unless stream is in NGHTTP2_STREAM_CLOSING not receive END_STREAM unless stream is in
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 session->callbacks.on_data_recv_callback
...@@ -2603,8 +2604,8 @@ static int nghttp2_session_check_data_recv_allowed(nghttp2_session *session, ...@@ -2603,8 +2604,8 @@ static int nghttp2_session_check_data_recv_allowed(nghttp2_session *session,
} }
} else if(stream->state != NGHTTP2_STREAM_CLOSING) { } else if(stream->state != NGHTTP2_STREAM_CLOSING) {
/* It is OK if this is remote peer initiated stream and we did /* It is OK if this is remote peer initiated stream and we did
not receive FIN unless stream is in NGHTTP2_STREAM_CLOSING not receive END_STREAM unless stream is in
state. This is a race condition. */ NGHTTP2_STREAM_CLOSING state. This is a race condition. */
return 1; return 1;
} }
} }
...@@ -2782,9 +2783,9 @@ int nghttp2_session_want_write(nghttp2_session *session) ...@@ -2782,9 +2783,9 @@ int nghttp2_session_want_write(nghttp2_session *session)
} }
/* /*
* Unless GOAWAY is sent or received, we want to write frames if * Unless GOAWAY is sent or received, we want to write frames if
* there is pending ones. If pending frame is SYN_STREAM and * there is pending ones. If pending frame is request/push response
* concurrent stream limit is reached, we don't want to write * HEADERS and concurrent stream limit is reached, we don't want to
* SYN_STREAM. After GOAWAY is sent or received, we want to write * write them. After GOAWAY is sent or received, we want to write
* frames if there is pending ones AND there are active frames. * frames if there is pending ones AND there are active frames.
*/ */
return (session->aob.item != NULL || !nghttp2_pq_empty(&session->ob_pq) || return (session->aob.item != NULL || !nghttp2_pq_empty(&session->ob_pq) ||
......
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