From 2bbb5b68890aa382711f6f66c4f4ecee859ee6a1 Mon Sep 17 00:00:00 2001 From: Mike Bishop Date: Fri, 16 Oct 2020 15:12:17 -0400 Subject: [PATCH] First, CANCEL_PUSH; then RESET_STREAM if appropriate --- draft-ietf-quic-http.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/draft-ietf-quic-http.md b/draft-ietf-quic-http.md index 56e5c490d7..32bc6325c0 100644 --- a/draft-ietf-quic-http.md +++ b/draft-ietf-quic-http.md @@ -1314,10 +1314,13 @@ one. If the push stream is open, the server SHOULD abruptly terminate that stream. If the push stream has already ended, the server MAY still abruptly terminate the stream or MAY take no action. -When a server sends CANCEL_PUSH, it is indicating that it will not be fulfilling -a promise. The client cannot expect the corresponding promise to be fulfilled, -unless it has already received and processed the promised response. A server -SHOULD send a CANCEL_PUSH frame even if it has opened the corresponding stream. +A server sends CANCEL_PUSH to indicate that it will not be fulfilling a promise +which was previously sent. The client cannot expect the corresponding promise +to be fulfilled, unless it has already received and processed the promised +response. Regardless of whether a corresponding stream has been opened, a server +SHOULD send a CANCEL_PUSH frame when it determines that promise will not be +fulfilled. If a corresponding stream has already been opened, the server can +abort sending on the stream with an error code of H3_REQUEST_CANCELLED. Sending a CANCEL_PUSH frame has no direct effect on the state of existing push streams. A client SHOULD NOT send a CANCEL_PUSH frame when it has already