From 46478c2398a1bd6e1bcf616c901a83e9205558f5 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Wed, 25 Jan 2012 23:52:32 +0900 Subject: [PATCH] Make sure that pri in SYN_STREAM is 0(highest) to 3(lowest). Use stream->pri for priority of SYN_REPLY. --- lib/spdylay_session.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/lib/spdylay_session.c b/lib/spdylay_session.c index 61f86853..db1e6b54 100644 --- a/lib/spdylay_session.c +++ b/lib/spdylay_session.c @@ -149,26 +149,29 @@ int spdylay_session_add_frame(spdylay_session *session, } item->frame_type = frame_type; item->frame = frame; - /* TODO Add pri field to SYN_REPLY, DATA frame which copies - corresponding SYN_STREAM pri. PING frame always pri = 0 - (highest) */ + /* Set priority lowest at the moment. */ + item->pri = 3; switch(frame_type) { case SPDYLAY_SYN_STREAM: - item->pri = 4-frame->syn_stream.pri; + item->pri = frame->syn_stream.pri; break; + case SPDYLAY_SYN_REPLY: { + spdylay_stream *stream = spdylay_session_get_stream + (session, frame->syn_reply.stream_id); + if(stream) { + item->pri = stream->pri; + } + break; + } case SPDYLAY_RST_STREAM: { spdylay_stream *stream = spdylay_session_get_stream (session, frame->rst_stream.stream_id); if(stream) { stream->state = SPDYLAY_STREAM_CLOSING; item->pri = stream->pri; - } else { - item->pri = 4; } break; } - default: - item->pri = 4; }; r = spdylay_pq_push(&session->ob_pq, item); if(r != 0) {