Clone
 

ryo okubo <syucream1031@gmail.com> in Netty

Accept over 2^31-1 MAX_HEADER_LIST_SIZE

Motivation:

The MAX_HEADER_LIST_SIZE of SETTINGS is represented by

unsigned 32-bit value and this value isn't limited in RFC7540.

But in current implementation, its stored to int variable so

over 2^31-1 value is recognized as minus and handled as

PROTOCOL_ERROR.

Modifications:

If a value of MAX_HEADER_LIST_SIZE is larger than 2^31-1, its

handled as 2^31-1

Result:

Over 2^31-1 MAX_HEADER_LIST_SIZE is became acceptable

Accept over 2^31-1 MAX_HEADER_LIST_SIZE

Motivation:

The MAX_HEADER_LIST_SIZE of SETTINGS is represented by

unsigned 32-bit value and this value isn't limited in RFC7540.

But in current implementation, its stored to int variable so

over 2^31-1 value is recognized as minus and handled as

PROTOCOL_ERROR.

Modifications:

If a value of MAX_HEADER_LIST_SIZE is larger than 2^31-1, its

handled as 2^31-1

Result:

Over 2^31-1 MAX_HEADER_LIST_SIZE is became acceptable

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.

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.