Commit Graph

1580 Commits

Author SHA1 Message Date
Cesar Blum Silveira 0fafd19ec9 Initial HTTP/2 support.
What works:

- HTTP/2 over TLS1.2 with ALPN
- Request and response flow
  - Headers are compressed and decompressed with HPACK
  - Request body can be read by streams (if present)
  - MVC template app with individual auth works fine
- PRIORITY frames are validated
- RST_STREAM frames are validated and abort streams
- SETTINGS frames are validated and ACKed
- PING frames are validated and ACKed
- GOAWAY frames stop connections
- WINDOW_UPDATE frames are validated
- CONTINUATION frames are sent for large header blocks

What doesn't work yet:

- Flow control in either direction
- It's not possible to encode a single header across more than one frame
  - Affects only a very large header (name and value combined ~16KB long)
- Request trailers
- Response trailers
- Limits and timeouts in `KestrelServerLimits` are not enforced on HTTP/2
- HPACK use is very limited on the send side
  - Literals are not Huffman-encoded
  - Common headers (e.g. "server: Kestrel") are never indexed
- Honoring client settings
- Some error checking is still missing (e.g. validating incoming frame size)
2017-08-16 10:04:44 -07:00
Nate McMaster c10ac85cf2 Add fixes for problems discovered by xunit.analyzers (#1999)
* Add fixes to tests for problems discovered by xunit.analyzers 0.6.1

* PR feedback. Add comments about why we have a #pragma
2017-08-16 09:37:49 -07:00
David Fowler 5c775073a4 Initial bedrock refactoring (#1995)
- Added Protocols.Abstractions
 - IConnectionHandler.OnConnection takes an IFeatureCollection instead of
 IConnectionInfo
 - Removed IConnectionContext and IConnectionInformation replaced with
 IConnectionTransportFeature
 - Updated FrameConnectionContext and FrameContext to have the relevant
 state instead of flowing the ConnectionInformation.
 - Updated tests
2017-08-16 00:02:48 -07:00
Pranav K f3745608af Switch to v3 NuGet feed 2017-08-15 16:14:19 -07:00
Nate McMaster d3cf0494e7 Upgrade to xunit 2.3.0-beta3 2017-08-11 17:22:40 -07:00
Stephen Halter 02028b65c7 Stop using ConcurrentBag in tests for complex types (#1990)
dotnet/corefx#23068
2017-08-11 16:30:03 -07:00
Nate McMaster d3fb5e76f1 Remove dependency on a custom task to detect when compiling on macOS (#1987)
MSBuild.IsOSPlatform is new to MSBuild 15.3 and can be used to determine when we are building on macOS.
2017-08-09 16:48:02 -07:00
Pavel Krymets 659fa967a1 Consume corefxlab packages and private build of C# compiler (#1976) 2017-08-07 13:58:19 -07:00
Cesar Blum Silveira d68f8165e1 Disable test ConnectionClosedWhenResponseDoesNotSatisfyMinimumDataRate on Linux. 2017-08-04 17:45:07 -07:00
John Luo 06d596102a Ensure fallback to curl after failed wget 2017-08-02 14:32:33 -07:00
John Luo cfce9dce6c Update __get_remote_file logic 2017-08-02 12:44:46 -07:00
Nate McMaster 6584a8b5fd Shorten folder names
Remove the Microsoft.AspNetCore.Server prefix from csproj and their folders. This is required to help us avoid max path issues on Windows.
2017-07-28 11:11:55 -07:00
Pavel Krymets fd6617d101 React to pipeline changes (#1969) 2017-07-26 15:51:06 -07:00
Nate McMaster d64238e937 Fix syntax warning when running build.sh on older versions of bash
[ci skip]
2017-07-26 10:28:03 -07:00
Nate McMaster a88e43bc67 Update bootstrappers to use the compiled version of KoreBuild
[ci skip]
2017-07-25 16:33:07 -07:00
Pranav K 58bcca9509 Updating to InternalAspNetCoreSdkVersion 2.1.1-* 2017-07-25 15:13:48 -07:00
Ryan Brandenburg 7de0540228 Set AspNetCoreVersion 2017-07-24 17:57:01 -07:00
Ryan Brandenburg 94305530b1 2.0.0-rtm to 2.1.0-preview1 2017-07-24 12:31:23 -07:00
Stephen Halter ecb26d9bbc Reenable a connection adapter test on TeamCity (#1961)
- Add more tracing to help diagnose failures if they pop up again
2017-07-19 15:26:29 -07:00
Stephen Halter 09c92d61d0 Merge branch 'rel/2.0.0' into dev 2017-07-17 14:58:16 -07:00
Stephen Halter f0e572075b Fix FlushAsync when a ConnectionAdapter is configured (#1957)
* Also remove async void everywhere
2017-07-17 14:57:26 -07:00
Mike Harder 165a0940f1 Merge remote-tracking branch 'origin/rel/2.0.0' into dev 2017-07-12 16:56:59 -07:00
Mike Harder 095230cb85 Update Newtonsoft.Json to 10.0.1 (#1958)
- Matches other repos
2017-07-12 16:55:47 -07:00
David Fowler 7ebbdad974 Add support for connection scopes if logging is enabled (#1953)
* Add support for connection scopes if logging is enabled
- Don't create a scope if logging isn't on
- Copied the pattern we use in Hosting
2017-07-12 11:45:08 -07:00
Cesar Blum Silveira fd1758fdfc Make StopAsync multi-thread safe (#1666). 2017-07-11 14:29:50 -07:00
Cesar Blum Silveira b0dc76a6ae Fix flakiness in RejectsRequestWithContentLengthAndUpgrade (#1742). 2017-07-11 12:59:29 -07:00
Ryan Brandenburg 1e8702f8bb Skip first time experience on Appveyor 2017-07-10 15:17:41 -07:00
Cesar Blum Silveira 6e70b1bcca Fix flakiness in MaxRequestBufferSizeTests.LargeUpload (#1850). 2017-07-10 15:12:01 -07:00
Pranav K 3dc1b5df52 Updating KoreBuild branch 2017-07-10 11:57:58 -07:00
Pranav K ded021ba45 Merge branch 'rel/2.0.0' into dev 2017-07-10 11:57:58 -07:00
Pranav K 5b8d876d55 Branching for 2.0.0 rtm 2017-07-10 11:43:55 -07:00
Pranav K aefe3e060c Merge branch 'rel/2.0.0' into dev 2017-07-10 11:43:55 -07:00
Cesar Blum Silveira eca4bfe6c3 Add response minimum data rate feature. 2017-07-07 22:37:25 -07:00
Nate McMaster 5185ebe45f Fix typo in type name (#1948) 2017-07-07 16:27:20 -07:00
Nate McMaster ec72c255f6 Make HttpsConnectionAdapter pubternal 2017-07-07 14:23:34 -07:00
Nate McMaster a3c157cb61 Validate certificate EKU when it is provided 2017-07-07 11:31:06 -07:00
Nate McMaster bd8a2c8a62 Add XML docs for the public HTTPs APIs shipping in 2.0 (#1942) 2017-07-07 10:40:39 -07:00
Ryan Brandenburg a4ed948d1e Remove NETSTandard.Library.NETFramework 2017-07-07 10:18:11 -07:00
Pranav K 0e733c8a42 Update version suffix for 2.0.0 RTM release 2017-07-06 15:08:29 -07:00
Ryan Brandenburg a262ba1266 Set "TreatWarningsAsErrors" before NuGet restore
* Ensures our build stays clean of NuGet warnings
2017-07-06 13:36:43 -07:00
Nate McMaster 7d74ba1440 React to aspnet/BuildTools#293
[ci skip]
2017-07-06 10:38:10 -07:00
Pranav K cf195d36a3 Update LICENSE.txt text 2017-07-03 14:06:38 -07:00
Nate McMaster eea0c6490e Fix flaky test: ConnectionResetMidRequestIsLoggedAsDebug (#1933) 2017-07-03 11:37:23 -07:00
Aristarkh Zagorodnikov 00d17dea79 Domain socket handles (#1922)
* UvPipeHandle.Open(IntPtr) and underlying interop
* LibuvConstants.ENOTSUP
* IEndpointInformation.HandleType along with ListenOptions extra ctor and handle type re-specification
* Exception-based auto-detection of socket type in Listener, accept socket creation support for detected handle types in ListenerContext
* Added systemd Unix socket activation tests
2017-07-03 11:11:23 -07:00
Stephen Halter e9ffcdb414 Add feature to optionally disallow synchronous IO (#1919)
* Allow synchronous IO by default
2017-07-03 11:07:17 -07:00
Aristarkh Zagorodnikov 6e45de2205 Improved systemd activation tests (#1930)
* Added BASE_PORT envvar for SampleApp to allow for multiple instances to coexist

* Moved to systemd-socket-activate for activation tests

* Style fixes
2017-07-02 21:06:13 -07:00
Cesar Blum Silveira 81c2b57dda Increase default request min rate to 240 bytes/second (#1929). 2017-06-30 14:58:44 -07:00
Cesar Blum Silveira 68ba9a9445 Avoid torn reads from _frame.MinReadBodyDataRate in FrameConnection.Tick(). 2017-06-30 12:22:31 -07:00
Cesar Blum Silveira f2061ed716 Rename request body min rate APIs (#1901). 2017-06-29 17:16:34 -07:00
Stephen Halter 3ba8c2d3f0 Add ListenHandleTests (#1923) 2017-06-29 11:50:21 -07:00