Description
Demo:
https://runkit.com/szmarczak/5d90f849ecc28e001ac8f3e1
Current output:
client side - 4294967295
client side - 4294967295
server side - 4294967295
server side - 2
Expected output:
client side - 4294967295
client side - 2
server side - 4294967295
server side - 2
As per the spec:
6.5. SETTINGS
SETTINGS parameters are not negotiated; they describe characteristics of the sending peer, which are used by the receiving peer. Different values for the same parameter can be advertised by each peer. For example, a client might set a high initial flow-control window, whereas a server might set a lower value to conserve resources.
A SETTINGS frame MUST be sent by both endpoints at the start of a connection and MAY be sent at any other time by either endpoint over the lifetime of the connection. Implementations MUST support all of the parameters defined by this specification.
Each parameter in a SETTINGS frame replaces any existing value for that parameter. Parameters are processed in the order in which they appear, and a receiver of a SETTINGS frame does not need to maintain any state other than the current value of its parameters. Therefore, the value of a SETTINGS parameter is the last value that is seen by a receiver.
Sounds like a bug.