protected Task SendPriorityAsync(int streamId, int streamDependency = 0) { var priorityFrame = new Http2Frame(Http2Limits.MinAllowedMaxFrameSize); priorityFrame.PreparePriority(streamId, streamDependency: streamDependency, exclusive: false, weight: 0); return(SendAsync(priorityFrame.Raw)); }
protected Task SendInvalidPriorityFrameAsync(int streamId, int length) { var priorityFrame = new Http2Frame(Http2Limits.MinAllowedMaxFrameSize); priorityFrame.PreparePriority(streamId, streamDependency: 0, exclusive: false, weight: 0); priorityFrame.PayloadLength = length; return(SendAsync(priorityFrame.Raw)); }
protected Task SendInvalidPriorityFrameAsync(int streamId, int length) { var priorityFrame = new Http2Frame(); priorityFrame.PreparePriority(streamId, streamDependency: 0, exclusive: false, weight: 0); priorityFrame.Length = length; return(SendAsync(priorityFrame.Raw)); }
public Task SendInvalidPriorityFrameAsync(int streamId, int length) { var outputWriter = _pair.Application.Output; var priorityFrame = new Http2Frame(); priorityFrame.PreparePriority(streamId, streamDependency: 0, exclusive: false, weight: 0); priorityFrame.PayloadLength = length; WriteHeader(priorityFrame, outputWriter); return(SendAsync(new byte[length])); }
/* https://tools.ietf.org/html/rfc7540#section-6.3 +-+-------------------------------------------------------------+ |E| Stream Dependency (31) | +-+-------------+-----------------------------------------------+ | Weight (8) | +-+-------------+ */ public Task SendPriorityAsync(int streamId, int streamDependency = 0) { var outputWriter = _pair.Application.Output; var priorityFrame = new Http2Frame(); priorityFrame.PreparePriority(streamId, streamDependency: streamDependency, exclusive: false, weight: 0); var payload = new byte[priorityFrame.PayloadLength].AsSpan(); Bitshifter.WriteUInt31BigEndian(payload, (uint)streamDependency); payload[4] = 0; // Weight WriteHeader(priorityFrame, outputWriter); return(SendAsync(payload)); }