public static HTTP2FrameHeaderAndPayload CreateRSTFrame(UInt32 streamId, HTTP2ErrorCodes errorCode) { // https://httpwg.org/specs/rfc7540.html#RST_STREAM HTTP2FrameHeaderAndPayload frame = new HTTP2FrameHeaderAndPayload(); frame.Type = HTTP2FrameTypes.RST_STREAM; frame.Flags = 0; frame.StreamId = streamId; frame.Payload = BufferPool.Get(4, true); frame.PayloadLength = 4; BufferHelper.SetUInt32(frame.Payload, 0, (UInt32)errorCode); return(frame); }
public static HTTP2FrameHeaderAndPayload CreateGoAwayFrame(UInt32 lastStreamId, HTTP2ErrorCodes error) { // https://httpwg.org/specs/rfc7540.html#GOAWAY HTTP2FrameHeaderAndPayload frame = new HTTP2FrameHeaderAndPayload(); frame.Type = HTTP2FrameTypes.GOAWAY; frame.Flags = 0; frame.StreamId = 0; frame.Payload = BufferPool.Get(8, true); frame.PayloadLength = 8; BufferHelper.SetUInt31(frame.Payload, 0, lastStreamId); BufferHelper.SetUInt31(frame.Payload, 4, (UInt32)error); return(frame); }