Allow servers to specify ENABLE_PUSH to 0 explicitly
Motivation: If server sends SETTINGS with ENABLE_PUSH, its handled as PROTOCOL_ERROR in spite of the value. But the value specified to 0 may be allowed in RFC7540. Modifications: Check whether ENABLE_PUSH sent from a server is 0 or not. Result: When server specifies ENABLE_PUSH to 0 explicitly, client doesn't handle it as PROTOCOL_ERROR.
This commit is contained in:
parent
0f95b85ec2
commit
ba84a596e2
@ -77,8 +77,9 @@ public class DefaultHttp2ConnectionEncoder implements Http2ConnectionEncoder {
|
|||||||
Http2HeaderTable outboundHeaderTable = config.headerTable();
|
Http2HeaderTable outboundHeaderTable = config.headerTable();
|
||||||
Http2FrameSizePolicy outboundFrameSizePolicy = config.frameSizePolicy();
|
Http2FrameSizePolicy outboundFrameSizePolicy = config.frameSizePolicy();
|
||||||
if (pushEnabled != null) {
|
if (pushEnabled != null) {
|
||||||
if (!connection.isServer()) {
|
if (!connection.isServer() && pushEnabled) {
|
||||||
throw connectionError(PROTOCOL_ERROR, "Client received SETTINGS frame with ENABLE_PUSH specified");
|
throw connectionError(PROTOCOL_ERROR,
|
||||||
|
"Client received a value of ENABLE_PUSH specified to other than 0");
|
||||||
}
|
}
|
||||||
connection.remote().allowPushTo(pushEnabled);
|
connection.remote().allowPushTo(pushEnabled);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user