예제 #1
0
        /// <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);
        }