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