Clear 2 types of stream deferred flag indenpendently
Previously when nghttp2_stream_resume_deferred_data() is called, deferred flags in stream->flags are all cleared. This is not ideal because if application returned NGHTTP2_ERR_DEFERRED, and also that stream is deferred by flow control, then all flags are cleared and read callback will be invoked again. This commit fixes this issue. This changes error condition of nghttp2_session_resume_data(). Previously we return error if stream was deferred by flow control. Now we don't return error in this case. We just clear NGHTTP2_FLAG_DEFERRED_USER and if still NGHTTP2_FLAG_DEFERRED_FLOW_CONTROL is set, just return 0.
Showing
Please register or sign in to comment