コード例 #1
0
        protected Task SendPingAsync(Http2PingFrameFlags flags)
        {
            var pingFrame = new Http2Frame(Http2Limits.MinAllowedMaxFrameSize);

            pingFrame.PreparePing(flags);
            return(SendAsync(pingFrame.Raw));
        }
コード例 #2
0
        protected Task SendPingAsync(Http2PingFrameFlags flags)
        {
            var pingFrame = new Http2Frame();

            pingFrame.PreparePing(flags);
            return(SendAsync(pingFrame.Raw));
        }
コード例 #3
0
        protected Task SendPingWithInvalidLengthAsync(int length)
        {
            var pingFrame = new Http2Frame(Http2Limits.MinAllowedMaxFrameSize);

            pingFrame.PreparePing(Http2PingFrameFlags.NONE);
            pingFrame.PayloadLength = length;
            return(SendAsync(pingFrame.Raw));
        }
コード例 #4
0
        protected Task SendPingWithInvalidLengthAsync(int length)
        {
            var pingFrame = new Http2Frame();

            pingFrame.PreparePing(Http2PingFrameFlags.NONE);
            pingFrame.Length = length;
            return(SendAsync(pingFrame.Raw));
        }
コード例 #5
0
        internal Task SendPingAsync(Http2PingFrameFlags flags)
        {
            var outputWriter = _pair.Application.Output;
            var pingFrame    = new Http2Frame();

            pingFrame.PreparePing(flags);
            WriteHeader(pingFrame, outputWriter);
            return(SendAsync(new byte[8])); // Empty payload
        }
コード例 #6
0
        public Task SendPingWithInvalidLengthAsync(int length)
        {
            var outputWriter = _pair.Application.Output;
            var pingFrame    = new Http2Frame();

            pingFrame.PreparePing(Http2PingFrameFlags.NONE);
            pingFrame.PayloadLength = length;
            WriteHeader(pingFrame, outputWriter);
            return(SendAsync(new byte[length]));
        }
コード例 #7
0
        protected Task SendPingWithInvalidStreamIdAsync(int streamId)
        {
            Assert.NotEqual(0, streamId);

            var pingFrame = new Http2Frame(Http2Limits.MinAllowedMaxFrameSize);

            pingFrame.PreparePing(Http2PingFrameFlags.NONE);
            pingFrame.StreamId = streamId;
            return(SendAsync(pingFrame.Raw));
        }
コード例 #8
0
        public Task SendPingWithInvalidStreamIdAsync(int streamId)
        {
            Assert.NotEqual(0, streamId);

            var outputWriter = _pair.Application.Output;
            var pingFrame    = new Http2Frame();

            pingFrame.PreparePing(Http2PingFrameFlags.NONE);
            pingFrame.StreamId = streamId;
            WriteHeader(pingFrame, outputWriter);
            return(SendAsync(new byte[pingFrame.PayloadLength]));
        }
コード例 #9
0
        public async Task WriteHeader_UnsetsReservedBit()
        {
            // Arrange
            var pipe  = new Pipe(new PipeOptions(_dirtyMemoryPool, PipeScheduler.Inline, PipeScheduler.Inline));
            var frame = new Http2Frame();

            frame.PreparePing(Http2PingFrameFlags.NONE);

            // Act
            Http2FrameWriter.WriteHeader(frame, pipe.Writer);
            await pipe.Writer.FlushAsync();

            // Assert
            var payload = await pipe.Reader.ReadForLengthAsync(Http2FrameReader.HeaderLength);

            Assert.Equal(new byte[] { 0x00, 0x00, 0x00, 0x00 }, payload.Skip(5).Take(4).ToArray());
        }