Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ public static class HttpResponseWritingExtensions

Write(response, text, encoding);

var flushAsyncTask = response.BodyPipe.FlushAsync(cancellationToken);
var flushAsyncTask = response.BodyWriter.FlushAsync(cancellationToken);
if (flushAsyncTask.IsCompletedSuccessfully)
{
// Most implementations of ValueTask reset state in GetResult, so call it before returning a completed task.
Expand All @@ -88,12 +88,12 @@ private static async Task StartAndWriteAsyncAwaited(this HttpResponse response,
{
await startAsyncTask;
Write(response, text, encoding);
await response.BodyPipe.FlushAsync(cancellationToken);
await response.BodyWriter.FlushAsync(cancellationToken);
}

private static void Write(this HttpResponse response, string text, Encoding encoding)
{
var pipeWriter = response.BodyPipe;
var pipeWriter = response.BodyWriter;
var encodedLength = encoding.GetByteCount(text);
var destination = pipeWriter.GetSpan(encodedLength);

Expand Down
2 changes: 1 addition & 1 deletion src/Http/Http.Abstractions/src/HttpRequest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ public abstract class HttpRequest
/// <summary>
/// Gets or sets the request body pipe <see cref="PipeReader"/>.
/// </summary>
public abstract PipeReader BodyPipe { get; set; }
public abstract PipeReader BodyReader { get; set; }

/// <summary>
/// Checks the Content-Type header for form types.
Expand Down
2 changes: 1 addition & 1 deletion src/Http/Http.Abstractions/src/HttpResponse.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public abstract class HttpResponse
/// <summary>
/// Gets or sets the response body pipe <see cref="PipeWriter"/>
/// </summary>
public abstract PipeWriter BodyPipe { get; set; }
public abstract PipeWriter BodyWriter { get; set; }

/// <summary>
/// Gets or sets the value for the <c>Content-Length</c> response header.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -231,15 +231,15 @@ public partial interface IQueryFeature
}
public partial interface IRequestBodyPipeFeature
{
System.IO.Pipelines.PipeReader RequestBodyPipe { get; set; }
System.IO.Pipelines.PipeReader RequestBodyReader { get; set; }
}
public partial interface IRequestCookiesFeature
{
Microsoft.AspNetCore.Http.IRequestCookieCollection Cookies { get; set; }
}
public partial interface IResponseBodyPipeFeature
{
System.IO.Pipelines.PipeWriter ResponseBodyPipe { get; set; }
System.IO.Pipelines.PipeWriter ResponseBodyWriter { get; set; }
}
public partial interface IResponseCookiesFeature
{
Expand Down
2 changes: 1 addition & 1 deletion src/Http/Http.Features/src/IRequestBodyPipeFeature.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ public interface IRequestBodyPipeFeature
/// <summary>
/// A <see cref="PipeReader"/> representing the request body, if any.
/// </summary>
PipeReader RequestBodyPipe { get; set; }
PipeReader RequestBodyReader { get; set; }
}
}
2 changes: 1 addition & 1 deletion src/Http/Http.Features/src/IResponseBodyPipeFeature.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ public interface IResponseBodyPipeFeature
/// <summary>
/// A <see cref="PipeWriter"/> representing the response body, if any.
/// </summary>
PipeWriter ResponseBodyPipe { get; set; }
PipeWriter ResponseBodyWriter { get; set; }
}
}
8 changes: 4 additions & 4 deletions src/Http/Http/ref/Microsoft.AspNetCore.Http.netcoreapp3.0.cs
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@ public QueryFeature(Microsoft.AspNetCore.Http.IQueryCollection query) { }
public partial class RequestBodyPipeFeature : Microsoft.AspNetCore.Http.Features.IRequestBodyPipeFeature
{
public RequestBodyPipeFeature(Microsoft.AspNetCore.Http.HttpContext context) { }
public System.IO.Pipelines.PipeReader RequestBodyPipe { get { throw null; } set { } }
public System.IO.Pipelines.PipeReader RequestBodyReader { get { throw null; } set { } }
}
public partial class RequestCookiesFeature : Microsoft.AspNetCore.Http.Features.IRequestCookiesFeature
{
Expand All @@ -255,7 +255,7 @@ public void Dispose() { }
public partial class ResponseBodyPipeFeature : Microsoft.AspNetCore.Http.Features.IResponseBodyPipeFeature
{
public ResponseBodyPipeFeature(Microsoft.AspNetCore.Http.HttpContext context) { }
public System.IO.Pipelines.PipeWriter ResponseBodyPipe { get { throw null; } set { } }
public System.IO.Pipelines.PipeWriter ResponseBodyWriter { get { throw null; } set { } }
}
public partial class ResponseCookiesFeature : Microsoft.AspNetCore.Http.Features.IResponseCookiesFeature
{
Expand Down Expand Up @@ -328,7 +328,7 @@ public sealed partial class DefaultHttpRequest : Microsoft.AspNetCore.Http.HttpR
{
public DefaultHttpRequest(Microsoft.AspNetCore.Http.DefaultHttpContext context) { }
public override System.IO.Stream Body { get { throw null; } set { } }
public override System.IO.Pipelines.PipeReader BodyPipe { get { throw null; } set { } }
public override System.IO.Pipelines.PipeReader BodyReader { get { throw null; } set { } }
public override long? ContentLength { get { throw null; } set { } }
public override string ContentType { get { throw null; } set { } }
public override Microsoft.AspNetCore.Http.IRequestCookieCollection Cookies { get { throw null; } set { } }
Expand All @@ -355,7 +355,7 @@ public sealed partial class DefaultHttpResponse : Microsoft.AspNetCore.Http.Http
{
public DefaultHttpResponse(Microsoft.AspNetCore.Http.DefaultHttpContext context) { }
public override System.IO.Stream Body { get { throw null; } set { } }
public override System.IO.Pipelines.PipeWriter BodyPipe { get { throw null; } set { } }
public override System.IO.Pipelines.PipeWriter BodyWriter { get { throw null; } set { } }
public override long? ContentLength { get { throw null; } set { } }
public override string ContentType { get { throw null; } set { } }
public override Microsoft.AspNetCore.Http.IResponseCookies Cookies { get { throw null; } }
Expand Down
2 changes: 1 addition & 1 deletion src/Http/Http/src/Features/FormFeature.cs
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ private async Task<IFormCollection> InnerReadFormAsync(CancellationToken cancell
if (HasApplicationFormContentType(contentType))
{
var encoding = FilterEncoding(contentType.Encoding);
var formReader = new FormPipeReader(_request.BodyPipe, encoding)
var formReader = new FormPipeReader(_request.BodyReader, encoding)
{
ValueCountLimit = _options.ValueCountLimit,
KeyLengthLimit = _options.KeyLengthLimit,
Expand Down
2 changes: 1 addition & 1 deletion src/Http/Http/src/Features/RequestBodyPipeFeature.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public RequestBodyPipeFeature(HttpContext context)
_context = context;
}

public PipeReader RequestBodyPipe
public PipeReader RequestBodyReader
{
get
{
Expand Down
2 changes: 1 addition & 1 deletion src/Http/Http/src/Features/ResponseBodyPipeFeature.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public ResponseBodyPipeFeature(HttpContext context)
_context = context;
}

public PipeWriter ResponseBodyPipe
public PipeWriter ResponseBodyWriter
{
get
{
Expand Down
6 changes: 3 additions & 3 deletions src/Http/Http/src/Internal/DefaultHttpRequest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -171,10 +171,10 @@ public override RouteValueDictionary RouteValues
set { RouteValuesFeature.RouteValues = value; }
}

public override PipeReader BodyPipe
public override PipeReader BodyReader
{
get { return RequestBodyPipeFeature.RequestBodyPipe; }
set { RequestBodyPipeFeature.RequestBodyPipe = value; }
get { return RequestBodyPipeFeature.RequestBodyReader; }
set { RequestBodyPipeFeature.RequestBodyReader = value; }
}

struct FeatureInterfaces
Expand Down
6 changes: 3 additions & 3 deletions src/Http/Http/src/Internal/DefaultHttpResponse.cs
Original file line number Diff line number Diff line change
Expand Up @@ -109,10 +109,10 @@ public override bool HasStarted
get { return HttpResponseFeature.HasStarted; }
}

public override PipeWriter BodyPipe
public override PipeWriter BodyWriter
{
get { return ResponseBodyPipeFeature.ResponseBodyPipe; }
set { ResponseBodyPipeFeature.ResponseBodyPipe = value; }
get { return ResponseBodyPipeFeature.ResponseBodyWriter; }
set { ResponseBodyPipeFeature.ResponseBodyWriter = value; }
}

public override void OnStarting(Func<object, Task> callback, object state)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -639,8 +639,8 @@ public HttpProtocol(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.HttpConnec
string Microsoft.AspNetCore.Http.Features.IHttpResponseFeature.ReasonPhrase { get { throw null; } set { } }
int Microsoft.AspNetCore.Http.Features.IHttpResponseFeature.StatusCode { get { throw null; } set { } }
bool Microsoft.AspNetCore.Http.Features.IHttpUpgradeFeature.IsUpgradableRequest { get { throw null; } }
System.IO.Pipelines.PipeReader Microsoft.AspNetCore.Http.Features.IRequestBodyPipeFeature.RequestBodyPipe { get { throw null; } set { } }
System.IO.Pipelines.PipeWriter Microsoft.AspNetCore.Http.Features.IResponseBodyPipeFeature.ResponseBodyPipe { get { throw null; } set { } }
System.IO.Pipelines.PipeReader Microsoft.AspNetCore.Http.Features.IRequestBodyPipeFeature.RequestBodyReader { get { throw null; } set { } }
System.IO.Pipelines.PipeWriter Microsoft.AspNetCore.Http.Features.IResponseBodyPipeFeature.ResponseBodyWriter { get { throw null; } set { } }
Microsoft.AspNetCore.Http.DefaultHttpContext Microsoft.AspNetCore.Http.IDefaultHttpContextContainer.HttpContext { get { throw null; } }
public Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.IHttpOutputProducer Output { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]protected set { } }
public string Path { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } [System.Runtime.CompilerServices.CompilerGeneratedAttribute]set { } }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ Stream IHttpRequestFeature.Body
}
}

PipeReader IRequestBodyPipeFeature.RequestBodyPipe
PipeReader IRequestBodyPipeFeature.RequestBodyReader
{
get
{
Expand Down Expand Up @@ -224,7 +224,7 @@ bool IHttpBodyControlFeature.AllowSynchronousIO
}
}

PipeWriter IResponseBodyPipeFeature.ResponseBodyPipe
PipeWriter IResponseBodyPipeFeature.ResponseBodyWriter
{
get
{
Expand Down
12 changes: 6 additions & 6 deletions src/Servers/Kestrel/shared/test/TestApp.cs
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,10 @@ public static async Task EchoAppPipeWriter(HttpContext httpContext)
{
await request.Body.ReadUntilEndAsync(buffer).DefaultTimeout();
await response.StartAsync();
var memory = response.BodyPipe.GetMemory(buffer.Length);
var memory = response.BodyWriter.GetMemory(buffer.Length);
buffer.CopyTo(memory);
response.BodyPipe.Advance(buffer.Length);
await response.BodyPipe.FlushAsync();
response.BodyWriter.Advance(buffer.Length);
await response.BodyWriter.FlushAsync();
}
}

Expand All @@ -68,10 +68,10 @@ public static async Task EchoAppPipeWriterChunked(HttpContext httpContext)
response.Headers["Content-Length"] = bytes.Length.ToString();
await response.StartAsync();

var memory = response.BodyPipe.GetMemory(bytes.Length);
var memory = response.BodyWriter.GetMemory(bytes.Length);
bytes.CopyTo(memory);
response.BodyPipe.Advance(bytes.Length);
await response.BodyPipe.FlushAsync();
response.BodyWriter.Advance(bytes.Length);
await response.BodyWriter.FlushAsync();
}
}
}
12 changes: 6 additions & 6 deletions src/Servers/Kestrel/test/FunctionalTests/ResponseTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public async Task LargeDownload()

for (int i = 0; i < 1024; i++)
{
await context.Response.BodyPipe.WriteAsync(new Memory<byte>(bytes, 0, bytes.Length));
await context.Response.BodyWriter.WriteAsync(new Memory<byte>(bytes, 0, bytes.Length));
}
});
});
Expand Down Expand Up @@ -298,7 +298,7 @@ public async Task WritingToConnectionAfterUnobservedCloseTriggersRequestAbortedT
{
for (var i = 0; i < 1000; i++)
{
await context.Response.BodyPipe.WriteAsync(new Memory<byte>(scratchBuffer, 0, scratchBuffer.Length), context.RequestAborted);
await context.Response.BodyWriter.WriteAsync(new Memory<byte>(scratchBuffer, 0, scratchBuffer.Length), context.RequestAborted);
await Task.Delay(10);
}
}
Expand Down Expand Up @@ -500,7 +500,7 @@ async Task App(HttpContext context)
{
for (; i < chunks; i++)
{
await context.Response.BodyPipe.WriteAsync(new Memory<byte>(chunkData, 0, chunkData.Length), context.RequestAborted);
await context.Response.BodyWriter.WriteAsync(new Memory<byte>(chunkData, 0, chunkData.Length), context.RequestAborted);
await Task.Yield();
}

Expand Down Expand Up @@ -607,7 +607,7 @@ public async Task HttpsConnectionClosedWhenResponseDoesNotSatisfyMinimumDataRate
{
for (var i = 0; i < chunks; i++)
{
await context.Response.BodyPipe.WriteAsync(new Memory<byte>(chunkData, 0, chunkData.Length), context.RequestAborted);
await context.Response.BodyWriter.WriteAsync(new Memory<byte>(chunkData, 0, chunkData.Length), context.RequestAborted);
}
}
catch (OperationCanceledException)
Expand Down Expand Up @@ -771,7 +771,7 @@ async Task App(HttpContext context)

for (var i = 0; i < chunkCount; i++)
{
await context.Response.BodyPipe.WriteAsync(new Memory<byte>(chunkData, 0, chunkData.Length), context.RequestAborted);
await context.Response.BodyWriter.WriteAsync(new Memory<byte>(chunkData, 0, chunkData.Length), context.RequestAborted);
}

appFuncCompleted.SetResult(null);
Expand Down Expand Up @@ -848,7 +848,7 @@ async Task App(HttpContext context)
context.Response.Headers[$"X-Custom-Header"] = headerStringValues;
context.Response.ContentLength = 0;

await context.Response.BodyPipe.FlushAsync();
await context.Response.BodyWriter.FlushAsync();
}

using (var server = new TestServer(App, testContext, listenOptions))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,15 +42,15 @@ private async Task PipeApp(HttpContext httpContext)
var response = httpContext.Response;
while (true)
{
var readResult = await request.BodyPipe.ReadAsync();
var readResult = await request.BodyReader.ReadAsync();
if (readResult.IsCompleted)
{
break;
}
// Need to copy here.
await response.BodyPipe.WriteAsync(readResult.Buffer.ToArray());
await response.BodyWriter.WriteAsync(readResult.Buffer.ToArray());

request.BodyPipe.AdvanceTo(readResult.Buffer.End);
request.BodyReader.AdvanceTo(readResult.Buffer.End);
}
}

Expand Down Expand Up @@ -322,8 +322,8 @@ public async Task TrailingHeadersAreParsedWithPipe()

while (true)
{
var result = await request.BodyPipe.ReadAsync();
request.BodyPipe.AdvanceTo(result.Buffer.End);
var result = await request.BodyReader.ReadAsync();
request.BodyReader.AdvanceTo(result.Buffer.End);
if (result.IsCompleted)
{
break;
Expand Down Expand Up @@ -828,20 +828,20 @@ public async Task ChunkedRequestCallCancelPendingReadWorks()

Assert.Equal("POST", request.Method);

var readResult = await request.BodyPipe.ReadAsync();
request.BodyPipe.AdvanceTo(readResult.Buffer.End);
var readResult = await request.BodyReader.ReadAsync();
request.BodyReader.AdvanceTo(readResult.Buffer.End);

var requestTask = httpContext.Request.BodyPipe.ReadAsync();
var requestTask = httpContext.Request.BodyReader.ReadAsync();

httpContext.Request.BodyPipe.CancelPendingRead();
httpContext.Request.BodyReader.CancelPendingRead();

Assert.True((await requestTask).IsCanceled);

tcs.SetResult(null);

response.Headers["Content-Length"] = new[] { "11" };

await response.BodyPipe.WriteAsync(new Memory<byte>(Encoding.ASCII.GetBytes("Hello World"), 0, 11));
await response.BodyWriter.WriteAsync(new Memory<byte>(Encoding.ASCII.GetBytes("Hello World"), 0, 11));

}, testContext))
{
Expand Down Expand Up @@ -885,16 +885,16 @@ public async Task ChunkedRequestCallCompleteThrowsExceptionOnRead()

Assert.Equal("POST", request.Method);

var readResult = await request.BodyPipe.ReadAsync();
request.BodyPipe.AdvanceTo(readResult.Buffer.End);
var readResult = await request.BodyReader.ReadAsync();
request.BodyReader.AdvanceTo(readResult.Buffer.End);

httpContext.Request.BodyPipe.Complete();
httpContext.Request.BodyReader.Complete();

await Assert.ThrowsAsync<InvalidOperationException>(async () => await request.BodyPipe.ReadAsync());
await Assert.ThrowsAsync<InvalidOperationException>(async () => await request.BodyReader.ReadAsync());

response.Headers["Content-Length"] = new[] { "11" };

await response.BodyPipe.WriteAsync(new Memory<byte>(Encoding.ASCII.GetBytes("Hello World"), 0, 11));
await response.BodyWriter.WriteAsync(new Memory<byte>(Encoding.ASCII.GetBytes("Hello World"), 0, 11));

}, testContext))
{
Expand Down Expand Up @@ -937,14 +937,14 @@ public async Task ChunkedRequestCallCompleteWithExceptionCauses500()

Assert.Equal("POST", request.Method);

var readResult = await request.BodyPipe.ReadAsync();
request.BodyPipe.AdvanceTo(readResult.Buffer.End);
var readResult = await request.BodyReader.ReadAsync();
request.BodyReader.AdvanceTo(readResult.Buffer.End);

httpContext.Request.BodyPipe.Complete(new Exception());
httpContext.Request.BodyReader.Complete(new Exception());

response.Headers["Content-Length"] = new[] { "11" };

await response.BodyPipe.WriteAsync(new Memory<byte>(Encoding.ASCII.GetBytes("Hello World"), 0, 11));
await response.BodyWriter.WriteAsync(new Memory<byte>(Encoding.ASCII.GetBytes("Hello World"), 0, 11));

}, testContext))
{
Expand Down
Loading