Check NGHTTP2_GOAWAY_SEND and NGHTTP2_GOAWAY_RECV flags explicitly
This commit is contained in:
parent
35ffeb5ff4
commit
8f1249ab67
|
@ -5241,7 +5241,16 @@ int nghttp2_session_want_read(nghttp2_session *session)
|
||||||
/* Unless GOAWAY is sent or received, we always want to read
|
/* Unless GOAWAY is sent or received, we always want to read
|
||||||
incoming frames. After GOAWAY is sent or received, we are only
|
incoming frames. After GOAWAY is sent or received, we are only
|
||||||
interested in active streams. */
|
interested in active streams. */
|
||||||
return !session->goaway_flags || num_active_streams > 0;
|
|
||||||
|
if(num_active_streams > 0) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(session->goaway_flags & (NGHTTP2_GOAWAY_SEND | NGHTTP2_GOAWAY_RECV)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int nghttp2_session_want_write(nghttp2_session *session)
|
int nghttp2_session_want_write(nghttp2_session *session)
|
||||||
|
@ -5264,10 +5273,23 @@ int nghttp2_session_want_write(nghttp2_session *session)
|
||||||
* write them. 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) ||
|
|
||||||
(!nghttp2_pq_empty(&session->ob_ss_pq) &&
|
if(session->aob.item == NULL &&
|
||||||
!session_is_outgoing_concurrent_streams_max(session))) &&
|
nghttp2_pq_empty(&session->ob_pq) &&
|
||||||
(!session->goaway_flags || num_active_streams > 0);
|
(nghttp2_pq_empty(&session->ob_ss_pq) ||
|
||||||
|
session_is_outgoing_concurrent_streams_max(session))) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(num_active_streams > 0) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(session->goaway_flags & (NGHTTP2_GOAWAY_SEND | NGHTTP2_GOAWAY_RECV)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int nghttp2_session_add_ping(nghttp2_session *session, uint8_t flags,
|
int nghttp2_session_add_ping(nghttp2_session *session, uint8_t flags,
|
||||||
|
|
Loading…
Reference in New Issue