Use error code CANCEL to reset pushed reserved stream from remote

This commit is contained in:
Tatsuhiro Tsujikawa 2015-11-16 22:20:27 +09:00
parent c3459c9e86
commit 7463493259
2 changed files with 4 additions and 5 deletions

View File

@ -4196,9 +4196,8 @@ int nghttp2_session_on_push_promise_received(nghttp2_session *session,
session, frame, NGHTTP2_ERR_PROTO, "PUSH_PROMISE: stream in idle"); session, frame, NGHTTP2_ERR_PROTO, "PUSH_PROMISE: stream in idle");
} }
} }
rv = nghttp2_session_add_rst_stream(session, rv = nghttp2_session_add_rst_stream(
frame->push_promise.promised_stream_id, session, frame->push_promise.promised_stream_id, NGHTTP2_CANCEL);
NGHTTP2_REFUSED_STREAM);
if (rv != 0) { if (rv != 0) {
return rv; return rv;
} }

View File

@ -2632,7 +2632,7 @@ void test_nghttp2_session_on_push_promise_received(void) {
item = nghttp2_session_get_next_ob_item(session); item = nghttp2_session_get_next_ob_item(session);
CU_ASSERT(NGHTTP2_RST_STREAM == item->frame.hd.type); CU_ASSERT(NGHTTP2_RST_STREAM == item->frame.hd.type);
CU_ASSERT(6 == item->frame.hd.stream_id); CU_ASSERT(6 == item->frame.hd.stream_id);
CU_ASSERT(NGHTTP2_REFUSED_STREAM == item->frame.rst_stream.error_code); CU_ASSERT(NGHTTP2_CANCEL == item->frame.rst_stream.error_code);
CU_ASSERT(0 == nghttp2_session_send(session)); CU_ASSERT(0 == nghttp2_session_send(session));
/* Attempt to PUSH_PROMISE against non-existent stream */ /* Attempt to PUSH_PROMISE against non-existent stream */
@ -2806,7 +2806,7 @@ void test_nghttp2_session_on_push_promise_received(void) {
item = nghttp2_session_get_next_ob_item(session); item = nghttp2_session_get_next_ob_item(session);
CU_ASSERT(NGHTTP2_RST_STREAM == item->frame.hd.type); CU_ASSERT(NGHTTP2_RST_STREAM == item->frame.hd.type);
CU_ASSERT(NGHTTP2_REFUSED_STREAM == item->frame.rst_stream.error_code); CU_ASSERT(NGHTTP2_CANCEL == item->frame.rst_stream.error_code);
nghttp2_frame_push_promise_free(&frame.push_promise, mem); nghttp2_frame_push_promise_free(&frame.push_promise, mem);
nghttp2_session_del(session); nghttp2_session_del(session);