From b49ab01db607606ddb2741615e7c06131847cbf8 Mon Sep 17 00:00:00 2001 From: Justin Kotalik Date: Tue, 18 Feb 2020 21:43:13 -0800 Subject: [PATCH] Change StreamEvent.Abort to use byte instead of bool (#32517) --- src/libraries/System.Net.Quic/src/Interop/MsQuicNativeMethods.cs | 8 ++++---- .../src/System/Net/Quic/Implementations/MsQuic/MsQuicStream.cs | 4 ++++ .../System.Net.Quic/tests/FunctionalTests/QuicStreamTests.cs | 3 +-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/libraries/System.Net.Quic/src/Interop/MsQuicNativeMethods.cs b/src/libraries/System.Net.Quic/src/Interop/MsQuicNativeMethods.cs index 136051c..aca6b41 100644 --- a/src/libraries/System.Net.Quic/src/Interop/MsQuicNativeMethods.cs +++ b/src/libraries/System.Net.Quic/src/Interop/MsQuicNativeMethods.cs @@ -304,15 +304,15 @@ namespace System.Net.Quic.Implementations.MsQuic.Internal internal ulong TotalBufferLength; internal QuicBuffer* Buffers; internal uint BufferCount; - internal byte Flags; + internal uint Flags; } [StructLayout(LayoutKind.Explicit)] internal struct StreamEventDataSendComplete { - [FieldOffset(7)] + [FieldOffset(0)] internal byte Canceled; - [FieldOffset(8)] + [FieldOffset(1)] internal IntPtr ClientContext; internal bool IsCanceled() @@ -336,7 +336,7 @@ namespace System.Net.Quic.Implementations.MsQuic.Internal [StructLayout(LayoutKind.Sequential)] internal struct StreamEventDataSendShutdownComplete { - internal bool Graceful; + internal byte Graceful; } [StructLayout(LayoutKind.Explicit)] diff --git a/src/libraries/System.Net.Quic/src/System/Net/Quic/Implementations/MsQuic/MsQuicStream.cs b/src/libraries/System.Net.Quic/src/System/Net/Quic/Implementations/MsQuic/MsQuicStream.cs index 02a57c8..536968b 100644 --- a/src/libraries/System.Net.Quic/src/System/Net/Quic/Implementations/MsQuic/MsQuicStream.cs +++ b/src/libraries/System.Net.Quic/src/System/Net/Quic/Implementations/MsQuic/MsQuicStream.cs @@ -101,6 +101,8 @@ namespace System.Net.Quic.Implementations.MsQuic { get { + ThrowIfDisposed(); + if (_streamId == -1) { _streamId = GetStreamId(); @@ -390,6 +392,8 @@ namespace System.Net.Quic.Implementations.MsQuic internal override void Shutdown() { + ThrowIfDisposed(); + MsQuicApi.Api.StreamShutdownDelegate(_ptr, (uint)QUIC_STREAM_SHUTDOWN_FLAG.GRACEFUL, errorCode: 0); } diff --git a/src/libraries/System.Net.Quic/tests/FunctionalTests/QuicStreamTests.cs b/src/libraries/System.Net.Quic/tests/FunctionalTests/QuicStreamTests.cs index 2884f5e..1a65313 100644 --- a/src/libraries/System.Net.Quic/tests/FunctionalTests/QuicStreamTests.cs +++ b/src/libraries/System.Net.Quic/tests/FunctionalTests/QuicStreamTests.cs @@ -67,11 +67,10 @@ namespace System.Net.Quic.Tests select new object[] { readSize, writeSize }; } - [ActiveIssue("https://github.com/dotnet/runtime/issues/32049")] [Fact] public async Task Read_StreamAborted_Throws() { - const int ExpectedErrorCode = 1234; + const int ExpectedErrorCode = 0xfffffff; await Task.Run(async () => { -- 2.7.4