/// <summary> /// Creates an HTTP2-Settings header with the given payload. The payload buffer is released. /// </summary> /// <param name="ctx"></param> /// <param name="payload"></param> /// <returns></returns> private static IByteBuffer CreateSettingsFrame(IChannelHandlerContext ctx, IByteBuffer payload) { var frame = ctx.Allocator.Buffer(Http2CodecUtil.FrameHeaderLength + payload.ReadableBytes); Http2CodecUtil.WriteFrameHeader(frame, payload.ReadableBytes, Http2FrameTypes.Settings, new Http2Flags(), 0); _ = frame.WriteBytes(payload); _ = payload.Release(); return(frame); }