From e316d3a02b3bd9965c4735122d909c5828321d43 Mon Sep 17 00:00:00 2001 From: Mike Bishop Date: Wed, 9 Jan 2019 10:08:20 -0800 Subject: [PATCH 1/2] Restrict P_P to request streams --- draft-ietf-quic-http.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/draft-ietf-quic-http.md b/draft-ietf-quic-http.md index be5019cf12..52f7be339e 100644 --- a/draft-ietf-quic-http.md +++ b/draft-ietf-quic-http.md @@ -723,7 +723,7 @@ with its 0-RTT data. ### PUSH_PROMISE {#frame-push-promise} The PUSH_PROMISE frame (type=0x05) is used to carry a promised request header -set from server to client, as in HTTP/2. +set from server to client on a request stream, as in HTTP/2. ~~~~~~~~~~ drawing 0 1 2 3 @@ -754,6 +754,9 @@ multiple PUSH_PROMISE frames. A client MUST treat receipt of a PUSH_PROMISE that contains a larger Push ID than the client has advertised or a Push ID which has already been promised as a connection error of type HTTP_MALFORMED_FRAME. +If a DATA frame is received on either control stream, the recipient MUST respond +with a connection error ({{errors}}) of type HTTP_WRONG_STREAM. + See {{server-push}} for a description of the overall server push mechanism. ### GOAWAY {#frame-goaway} From 54b47960490aae7a35b6a15cd81fd4b988377e71 Mon Sep 17 00:00:00 2001 From: Mike Bishop Date: Wed, 9 Jan 2019 15:42:21 -0800 Subject: [PATCH 2/2] Gah, you know what I meant --- draft-ietf-quic-http.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/draft-ietf-quic-http.md b/draft-ietf-quic-http.md index 52f7be339e..b9938eed3a 100644 --- a/draft-ietf-quic-http.md +++ b/draft-ietf-quic-http.md @@ -754,8 +754,8 @@ multiple PUSH_PROMISE frames. A client MUST treat receipt of a PUSH_PROMISE that contains a larger Push ID than the client has advertised or a Push ID which has already been promised as a connection error of type HTTP_MALFORMED_FRAME. -If a DATA frame is received on either control stream, the recipient MUST respond -with a connection error ({{errors}}) of type HTTP_WRONG_STREAM. +If a PUSH_PROMISE frame is received on either control stream, the recipient MUST +respond with a connection error ({{errors}}) of type HTTP_WRONG_STREAM. See {{server-push}} for a description of the overall server push mechanism.