示例#1
0
        protected Task SendSettingsAsync()
        {
            var frame = new Http2Frame(Http2Limits.MinAllowedMaxFrameSize);

            frame.PrepareSettings(Http2SettingsFrameFlags.NONE, _clientSettings.GetNonProtocolDefaults());
            return(SendAsync(frame.Raw));
        }
示例#2
0
        protected Task SendSettingsWithInvalidLengthAsync(int length)
        {
            var frame = new Http2Frame(Http2Limits.MinAllowedMaxFrameSize);

            frame.PrepareSettings(Http2SettingsFrameFlags.NONE, _clientSettings.GetNonProtocolDefaults());
            frame.PayloadLength = length;
            return(SendAsync(frame.Raw));
        }
示例#3
0
        protected Task SendSettingsWithInvalidStreamIdAsync(int streamId)
        {
            var frame = new Http2Frame(Http2Limits.MinAllowedMaxFrameSize);

            frame.PrepareSettings(Http2SettingsFrameFlags.NONE, _clientSettings.GetNonProtocolDefaults());
            frame.StreamId = streamId;
            return(SendAsync(frame.Raw));
        }
示例#4
0
        protected Task SendSettingsAckWithInvalidLengthAsync(int length)
        {
            var frame = new Http2Frame(Http2Limits.MinAllowedMaxFrameSize);

            frame.PrepareSettings(Http2SettingsFrameFlags.ACK);
            frame.PayloadLength = length;
            return(SendAsync(frame.Raw));
        }
        protected Task SendSettingsAckWithInvalidLengthAsync(int length)
        {
            var frame = new Http2Frame();

            frame.PrepareSettings(Http2SettingsFrameFlags.ACK);
            frame.Length = length;
            return(SendAsync(frame.Raw));
        }
        public async Task SendSettingsAckWithInvalidLengthAsync(int length)
        {
            var writableBuffer = _pair.Application.Output;
            var frame          = new Http2Frame();

            frame.PrepareSettings(Http2SettingsFrameFlags.ACK);
            frame.PayloadLength = length;
            WriteHeader(frame, writableBuffer);
            await SendAsync(new byte[length]);
        }
示例#7
0
    public static void WriteSettings(this PipeWriter writer, Http2PeerSettings clientSettings)
    {
        var frame = new Http2Frame();

        frame.PrepareSettings(Http2SettingsFrameFlags.NONE);
        var settings = clientSettings.GetNonProtocolDefaults();
        var payload  = new byte[settings.Count * Http2FrameReader.SettingSize];

        frame.PayloadLength = payload.Length;
        Http2FrameWriter.WriteSettings(settings, payload);
        Http2FrameWriter.WriteHeader(frame, writer);
        writer.Write(payload);
    }
示例#8
0
        protected async Task SendSettingsWithInvalidLengthAsync(int length)
        {
            var writableBuffer = _pair.Application.Output;
            var frame          = new Http2Frame();

            frame.PrepareSettings(Http2SettingsFrameFlags.NONE);

            frame.PayloadLength = length;
            var payload = new byte[length];

            Http2FrameWriter.WriteHeader(frame, writableBuffer);
            await SendAsync(payload);
        }
        public async Task SendSettingsAsync()
        {
            var writableBuffer = _pair.Application.Output;
            var frame          = new Http2Frame();

            frame.PrepareSettings(Http2SettingsFrameFlags.NONE);
            var settings = _clientSettings.GetNonProtocolDefaults();
            var payload  = new byte[settings.Count * Http2FrameReader.SettingSize];

            frame.PayloadLength = payload.Length;
            WriteSettings(settings, payload);
            WriteHeader(frame, writableBuffer);
            await SendAsync(payload);
        }
示例#10
0
        protected async Task SendSettingsWithInvalidStreamIdAsync(int streamId)
        {
            var writableBuffer = _pair.Application.Output;
            var frame          = new Http2Frame();

            frame.PrepareSettings(Http2SettingsFrameFlags.NONE);
            frame.StreamId = streamId;
            var settings = _clientSettings.GetNonProtocolDefaults();
            var payload  = new byte[settings.Count * Http2FrameReader.SettingSize];

            frame.PayloadLength = payload.Length;
            Http2FrameWriter.WriteSettings(settings, payload);
            Http2FrameWriter.WriteHeader(frame, writableBuffer);
            await SendAsync(payload);
        }
示例#11
0
        protected Task SendSettingsWithInvalidParameterValueAsync(Http2SettingsParameter parameter, uint value)
        {
            var frame = new Http2Frame(Http2Limits.MinAllowedMaxFrameSize);

            frame.PrepareSettings(Http2SettingsFrameFlags.NONE);
            frame.PayloadLength = 6;

            frame.Payload[0] = (byte)((ushort)parameter >> 8);
            frame.Payload[1] = (byte)(ushort)parameter;
            frame.Payload[2] = (byte)(value >> 24);
            frame.Payload[3] = (byte)(value >> 16);
            frame.Payload[4] = (byte)(value >> 8);
            frame.Payload[5] = (byte)value;

            return(SendAsync(frame.Raw));
        }
        internal async Task SendSettingsWithInvalidParameterValueAsync(Http2SettingsParameter parameter, uint value)
        {
            var writableBuffer = _pair.Application.Output;
            var frame          = new Http2Frame();

            frame.PrepareSettings(Http2SettingsFrameFlags.NONE);
            frame.PayloadLength = 6;
            var payload = new byte[Http2FrameReader.SettingSize];

            payload[0] = (byte)((ushort)parameter >> 8);
            payload[1] = (byte)(ushort)parameter;
            payload[2] = (byte)(value >> 24);
            payload[3] = (byte)(value >> 16);
            payload[4] = (byte)(value >> 8);
            payload[5] = (byte)value;

            WriteHeader(frame, writableBuffer);
            await SendAsync(payload);
        }