HPACK decoder fixes (dotnet/corefx#39907)
authorCory Nelson <phrosty@gmail.com>
Fri, 2 Aug 2019 02:59:51 +0000 (19:59 -0700)
committerGitHub <noreply@github.com>
Fri, 2 Aug 2019 02:59:51 +0000 (19:59 -0700)
commit2bbb062233b8053b4dfa20ddc945ce7edc539e81
tree0cdecde0d2f9ee995a708b71860f0abdc99bd90f
parent4b304b9e19b330c57d6072cb6a80d899692c7a90
HPACK decoder fixes (dotnet/corefx#39907)

- Fix HPACK decoder failing inconsistently with 0-length header names. Fail fast with same exception message that HTTP1 uses. Resolves dotnet/corefx#39873.
- Fix `DynamicTable` returning incorrect values or throwing exceptions when it wraps its ring buffer. Resolves dotnet/corefx#39656.
- Moves HPACK encoder methods from `Http2LoopbackConnection` into their own class.
- Implement all forms of header encodings in HPACK encoder.
- Move a number of files where they belong into the ProductionCode folder in unit test project.

Commit migrated from https://github.com/dotnet/corefx/commit/b7e60c9aa17fbe043318afd68af31cd3a6d61a76
src/libraries/Common/tests/System/Net/Http/HPackEncoder.cs [new file with mode: 0644]
src/libraries/Common/tests/System/Net/Http/Http2LoopbackConnection.cs
src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HPack/DynamicTable.cs
src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HPack/HPackDecoder.cs
src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HPack/HeaderField.cs
src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.Headers.cs
src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.Http2.cs
src/libraries/System.Net.Http/tests/FunctionalTests/System.Net.Http.Functional.Tests.csproj
src/libraries/System.Net.Http/tests/UnitTests/HPack/DynamicTableTest.cs [new file with mode: 0644]
src/libraries/System.Net.Http/tests/UnitTests/HPack/HPackDecoderTest.cs
src/libraries/System.Net.Http/tests/UnitTests/System.Net.Http.Unit.Tests.csproj