Remove net451 as a cross-compile target
This commit is contained in:
parent
3e6303b6c1
commit
d6d13a0986
|
|
@ -34,3 +34,4 @@ launchSettings.json
|
|||
BenchmarkDotNet.Artifacts/
|
||||
BDN.Generated/
|
||||
binaries/
|
||||
global.json
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
<Import Project="..\..\build\common.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net451;netcoreapp1.1</TargetFrameworks>
|
||||
<TargetFrameworks>net46;netcoreapp1.1</TargetFrameworks>
|
||||
<IsPackable>false</IsPackable>
|
||||
</PropertyGroup>
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
<Import Project="..\..\build\common.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>netcoreapp1.1;net451</TargetFrameworks>
|
||||
<TargetFrameworks>netcoreapp1.1;net46</TargetFrameworks>
|
||||
<IsPackable>false</IsPackable>
|
||||
</PropertyGroup>
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
<PropertyGroup>
|
||||
<Description>HTTPS support for the ASP.NET Core Kestrel cross-platform web server.</Description>
|
||||
<TargetFrameworks>net451;netstandard1.3</TargetFrameworks>
|
||||
<TargetFrameworks>netstandard1.3;net46</TargetFrameworks>
|
||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||
<PackageTags>aspnetcore;kestrel</PackageTags>
|
||||
<NoWarn>CS1591;$(NoWarn)</NoWarn>
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Adapter.Internal
|
|||
_logger.LogDebug(builder.ToString());
|
||||
}
|
||||
|
||||
#if NET451
|
||||
#if NET46
|
||||
// The below APM methods call the underlying Read/WriteAsync methods which will still be logged.
|
||||
public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
|
||||
{
|
||||
|
|
@ -209,6 +209,9 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Adapter.Internal
|
|||
}, tcs, cancellationToken);
|
||||
return tcs.Task;
|
||||
}
|
||||
#elif NETSTANDARD1_3
|
||||
#else
|
||||
#error target frameworks need to be updated.
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -135,7 +135,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Adapter.Internal
|
|||
}
|
||||
}
|
||||
|
||||
#if NET451
|
||||
#if NET46
|
||||
public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
|
||||
{
|
||||
var task = ReadAsync(buffer, offset, count, default(CancellationToken), state);
|
||||
|
|
@ -211,6 +211,9 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Adapter.Internal
|
|||
}, tcs, cancellationToken);
|
||||
return tcs.Task;
|
||||
}
|
||||
#elif NETSTANDARD1_3
|
||||
#else
|
||||
#error target frameworks need to be updated.
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1382,14 +1382,10 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Internal.Http
|
|||
{
|
||||
// .NET 451 doesn't have pointer overloads for Encoding.GetString so we
|
||||
// copy to an array
|
||||
#if NET451
|
||||
return Encoding.UTF8.GetString(path.ToArray());
|
||||
#else
|
||||
fixed (byte* pointer = &path.DangerousGetPinnableReference())
|
||||
{
|
||||
return Encoding.UTF8.GetString(pointer, path.Length);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
public void OnHeader(Span<byte> name, Span<byte> value)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
#if NET451
|
||||
#if NET46
|
||||
using System;
|
||||
#endif
|
||||
using System.IO;
|
||||
|
|
@ -97,14 +97,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Internal.Http
|
|||
}
|
||||
}
|
||||
|
||||
#if NET451
|
||||
public override void Close()
|
||||
{
|
||||
_requestStream.Close();
|
||||
_responseStream.Close();
|
||||
}
|
||||
#endif
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
|
|
@ -124,7 +116,13 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Internal.Http
|
|||
return _responseStream.FlushAsync(cancellationToken);
|
||||
}
|
||||
|
||||
#if NET451
|
||||
#if NET46
|
||||
public override void Close()
|
||||
{
|
||||
_requestStream.Close();
|
||||
_responseStream.Close();
|
||||
}
|
||||
|
||||
public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
|
||||
{
|
||||
return _requestStream.BeginRead(buffer, offset, count, callback, state);
|
||||
|
|
@ -134,6 +132,19 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Internal.Http
|
|||
{
|
||||
return _requestStream.EndRead(asyncResult);
|
||||
}
|
||||
|
||||
public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
|
||||
{
|
||||
return _responseStream.BeginWrite(buffer, offset, count, callback, state);
|
||||
}
|
||||
|
||||
public override void EndWrite(IAsyncResult asyncResult)
|
||||
{
|
||||
_responseStream.EndWrite(asyncResult);
|
||||
}
|
||||
#elif NETSTANDARD1_3
|
||||
#else
|
||||
#error target frameworks need to be updated.
|
||||
#endif
|
||||
|
||||
public override Task<int> ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
|
||||
|
|
@ -146,18 +157,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Internal.Http
|
|||
return _requestStream.CopyToAsync(destination, bufferSize, cancellationToken);
|
||||
}
|
||||
|
||||
#if NET451
|
||||
public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
|
||||
{
|
||||
return _responseStream.BeginWrite(buffer, offset, count, callback, state);
|
||||
}
|
||||
|
||||
public override void EndWrite(IAsyncResult asyncResult)
|
||||
{
|
||||
_responseStream.EndWrite(asyncResult);
|
||||
}
|
||||
#endif
|
||||
|
||||
public override Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
|
||||
{
|
||||
return _responseStream.WriteAsync(buffer, offset, count, cancellationToken);
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Internal.Http
|
|||
return ReadAsync(buffer, offset, count).Result;
|
||||
}
|
||||
|
||||
#if NET451
|
||||
#if NET46
|
||||
public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
|
||||
{
|
||||
var task = ReadAsync(buffer, offset, count, default(CancellationToken), state);
|
||||
|
|
@ -112,6 +112,9 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Internal.Http
|
|||
}, tcs, cancellationToken);
|
||||
return tcs.Task;
|
||||
}
|
||||
#elif NETSTANDARD1_3
|
||||
#else
|
||||
#error target frameworks need to be updated
|
||||
#endif
|
||||
|
||||
public override Task<int> ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
|
||||
|
|
@ -198,15 +201,15 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Internal.Http
|
|||
case FrameStreamState.Open:
|
||||
if (cancellationToken.IsCancellationRequested)
|
||||
{
|
||||
return TaskUtilities.GetCancelledZeroTask(cancellationToken);
|
||||
return Task.FromCanceled<int>(cancellationToken);
|
||||
}
|
||||
break;
|
||||
case FrameStreamState.Closed:
|
||||
throw new ObjectDisposedException(nameof(FrameRequestStream));
|
||||
case FrameStreamState.Aborted:
|
||||
return _error != null ?
|
||||
TaskUtilities.GetFaultedTask(_error) :
|
||||
TaskUtilities.GetCancelledZeroTask();
|
||||
Task.FromException<int>(_error) :
|
||||
Task.FromCanceled<int>(new CancellationToken(true));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Internal.Http
|
|||
_frameControl.Write(new ArraySegment<byte>(buffer, offset, count));
|
||||
}
|
||||
|
||||
#if NET451
|
||||
#if NET46
|
||||
public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
|
||||
{
|
||||
var task = WriteAsync(buffer, offset, count, default(CancellationToken), state);
|
||||
|
|
@ -123,6 +123,9 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Internal.Http
|
|||
}, tcs, cancellationToken);
|
||||
return tcs.Task;
|
||||
}
|
||||
#elif NETSTANDARD1_3
|
||||
#else
|
||||
#error target frameworks need to be updated.
|
||||
#endif
|
||||
|
||||
public override Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
|
||||
|
|
@ -180,7 +183,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Internal.Http
|
|||
case FrameStreamState.Open:
|
||||
if (cancellationToken.IsCancellationRequested)
|
||||
{
|
||||
return TaskUtilities.GetCancelledTask(cancellationToken);
|
||||
return Task.FromCanceled(cancellationToken);
|
||||
}
|
||||
break;
|
||||
case FrameStreamState.Closed:
|
||||
|
|
@ -189,7 +192,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Internal.Http
|
|||
if (cancellationToken.IsCancellationRequested)
|
||||
{
|
||||
// Aborted state only throws on write if cancellationToken requests it
|
||||
return TaskUtilities.GetCancelledTask(cancellationToken);
|
||||
return Task.FromCanceled(cancellationToken);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -166,7 +166,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Internal.Http
|
|||
{
|
||||
_connection.AbortAsync();
|
||||
_cancelled = true;
|
||||
return TaskUtilities.GetCancelledTask(cancellationToken);
|
||||
return Task.FromCanceled(cancellationToken);
|
||||
}
|
||||
else if (_cancelled)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,50 +0,0 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure
|
||||
{
|
||||
public static class TaskUtilities
|
||||
{
|
||||
public static Task GetCancelledTask(CancellationToken cancellationToken)
|
||||
{
|
||||
#if NETSTANDARD1_3
|
||||
return Task.FromCanceled(cancellationToken);
|
||||
#else
|
||||
var tcs = new TaskCompletionSource<object>();
|
||||
tcs.TrySetCanceled();
|
||||
return tcs.Task;
|
||||
#endif
|
||||
}
|
||||
|
||||
public static Task<int> GetCancelledZeroTask(CancellationToken cancellationToken = default(CancellationToken))
|
||||
{
|
||||
#if NETSTANDARD1_3
|
||||
// Make sure cancellationToken is canceled before passing to Task.FromCanceled
|
||||
if (!cancellationToken.IsCancellationRequested)
|
||||
{
|
||||
cancellationToken = new CancellationToken(true);
|
||||
}
|
||||
return Task.FromCanceled<int>(cancellationToken);
|
||||
#else
|
||||
var tcs = new TaskCompletionSource<int>();
|
||||
tcs.TrySetCanceled();
|
||||
return tcs.Task;
|
||||
#endif
|
||||
}
|
||||
|
||||
public static Task<int> GetFaultedTask(Exception error)
|
||||
{
|
||||
#if NETSTANDARD1_3
|
||||
return Task.FromException<int>(error);
|
||||
#else
|
||||
var tcs = new TaskCompletionSource<int>();
|
||||
tcs.SetException(error);
|
||||
return tcs.Task;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
<PropertyGroup>
|
||||
<Description>ASP.NET Core Kestrel cross-platform web server.</Description>
|
||||
<TargetFrameworks>net451;netstandard1.3</TargetFrameworks>
|
||||
<TargetFrameworks>netstandard1.3;net46</TargetFrameworks>
|
||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||
<PackageTags>aspnetcore;kestrel</PackageTags>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@
|
|||
<TargetFrameworks>netcoreapp1.1;net46</TargetFrameworks>
|
||||
<TargetFrameworks Condition=" '$(OS)' != 'Windows_NT' ">netcoreapp1.1</TargetFrameworks>
|
||||
<PlatformTarget Condition="'$(TargetFramework)' == 'net46'">x64</PlatformTarget>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
|||
|
|
@ -90,6 +90,9 @@ namespace Microsoft.AspNetCore.Server.KestrelTests
|
|||
var stream = new FrameRequestStream();
|
||||
Assert.Throws<NotSupportedException>(() => stream.BeginWrite(new byte[1], 0, 1, null, null));
|
||||
}
|
||||
#elif NETCOREAPP1_1
|
||||
#else
|
||||
#error target frameworks need to be updated
|
||||
#endif
|
||||
|
||||
[Fact]
|
||||
|
|
|
|||
|
|
@ -61,6 +61,9 @@ namespace Microsoft.AspNetCore.Server.KestrelTests
|
|||
var stream = new FrameResponseStream(new MockFrameControl());
|
||||
Assert.Throws<NotSupportedException>(() => stream.BeginRead(new byte[1], 0, 1, null, null));
|
||||
}
|
||||
#elif NETCOREAPP1_1
|
||||
#else
|
||||
#error target frameworks need to be updated
|
||||
#endif
|
||||
|
||||
[Fact]
|
||||
|
|
|
|||
|
|
@ -131,18 +131,8 @@ namespace Microsoft.AspNetCore.Server.KestrelTests
|
|||
var t = Task.Run(async () =>
|
||||
{
|
||||
var socket = TestConnection.CreateConnectedLoopbackSocket(port);
|
||||
#if NET46
|
||||
await Task.Factory.FromAsync(
|
||||
socket.BeginSend,
|
||||
socket.EndSend,
|
||||
new[] { new ArraySegment<byte>(new byte[] { 1, 2, 3, 4, 5 }) },
|
||||
SocketFlags.None,
|
||||
null,
|
||||
TaskCreationOptions.None);
|
||||
#else
|
||||
await socket.SendAsync(new[] { new ArraySegment<byte>(new byte[] { 1, 2, 3, 4, 5 }) },
|
||||
SocketFlags.None);
|
||||
#endif
|
||||
socket.Dispose();
|
||||
});
|
||||
loop.Run();
|
||||
|
|
@ -194,33 +184,13 @@ namespace Microsoft.AspNetCore.Server.KestrelTests
|
|||
var t = Task.Run(async () =>
|
||||
{
|
||||
var socket = TestConnection.CreateConnectedLoopbackSocket(port);
|
||||
#if NET46
|
||||
await Task.Factory.FromAsync(
|
||||
socket.BeginSend,
|
||||
socket.EndSend,
|
||||
new[] { new ArraySegment<byte>(new byte[] { 1, 2, 3, 4, 5 }) },
|
||||
SocketFlags.None,
|
||||
null,
|
||||
TaskCreationOptions.None);
|
||||
#else
|
||||
await socket.SendAsync(new[] { new ArraySegment<byte>(new byte[] { 1, 2, 3, 4, 5 }) },
|
||||
SocketFlags.None);
|
||||
#endif
|
||||
socket.Shutdown(SocketShutdown.Send);
|
||||
var buffer = new ArraySegment<byte>(new byte[2048]);
|
||||
while (true)
|
||||
{
|
||||
#if NET46
|
||||
var count = await Task.Factory.FromAsync(
|
||||
socket.BeginReceive,
|
||||
socket.EndReceive,
|
||||
new[] { buffer },
|
||||
SocketFlags.None,
|
||||
null,
|
||||
TaskCreationOptions.None);
|
||||
#else
|
||||
var count = await socket.ReceiveAsync(new[] { buffer }, SocketFlags.None);
|
||||
#endif
|
||||
if (count <= 0) break;
|
||||
}
|
||||
socket.Dispose();
|
||||
|
|
|
|||
|
|
@ -11,8 +11,10 @@ namespace Microsoft.AspNetCore.Testing
|
|||
private static readonly string _testCertificatePath =
|
||||
#if NET46
|
||||
Path.Combine(Directory.GetCurrentDirectory(), "testCert.pfx");
|
||||
#else
|
||||
#elif NETCOREAPP1_1
|
||||
Path.Combine(AppContext.BaseDirectory, "testCert.pfx");
|
||||
#else
|
||||
#error Target frameworks need to be updated.
|
||||
#endif
|
||||
|
||||
public static string TestCertificatePath => _testCertificatePath;
|
||||
|
|
|
|||
Loading…
Reference in New Issue