Commit Graph

52 Commits

Author SHA1 Message Date
Stephen Halter bf24899592
Auto-set "Content-Length: 0" on 205 responses (#7205) 2019-02-05 13:45:08 -08:00
David Fowler 9f202feafc
Rename IHttpContextContainer to IDefaultHttpContextContainer (#7217)
- Renamed since the property has to be a DefaultHttpContext
2019-02-02 22:31:49 -08:00
Gérald Barré f1b24ccb92 Replace unsafe code with string.Create for hex generation (#6784) 2019-02-01 10:06:20 -08:00
James Newton-King 574be0d22c
Add readonly modifier to readonly structs (#7169) 2019-02-01 15:04:25 +13:00
Stephen Halter 4539b0d2c3
Increase shutdown timeout in Kestrel TestServer (#7082)
* Never use a null abort reason
2019-01-29 16:13:37 -08:00
Justin Kotalik 1222d8de49
Add StartAsync() to HttpResponse; ImplementFeature in Kestrel (#6967) 2019-01-28 17:42:04 -08:00
Pavel Krymets f06e1822f5
Enable strict mode in roslyn compiler (#6950) 2019-01-28 15:56:27 -08:00
David Fowler 447f4bc298
Reuse the stack for OnCompleted and OnStarting calls (#6833)
- Reviewing profiles for MVC and other things that use RegisterForDispose, this shows up as a significant amount of allocations.
2019-01-28 20:37:11 +00:00
David Fowler 549f8e1773
Remove over engineered callback writing and just write chunks directly. (#6901) 2019-01-28 20:36:47 +00:00
Nate McMaster 5a0e227fad
Merge branch 'release/2.2' 2019-01-24 16:14:55 -08:00
Stephen Halter 2853b451a2 Add RequestAbortedTokenIsUsableAfterCancellation test 2019-01-24 12:38:16 -08:00
Stephen Halter 5d554aeecd Revert "Wait to dispose RequestAborted CTS (#4447)"
This reverts commit 0622513058.
2019-01-24 11:23:58 -08:00
Chris Ross 24f37a9619
[automated] Merge branch 'release/2.2' => 'master' 2019-01-23 11:40:55 -08:00
Chris Ross f4c5ac7635
Move Kestrel.Core.Tests to their own test group (#6927) 2019-01-22 12:41:12 -08:00
Stephen Halter 7d4ae6049f
Revert "Revert "Wait to dispose RequestAborted CTS (#4447)"" (#6812)
This reverts commit 29b7c5c030.
2019-01-17 16:22:03 -08:00
Stephen Halter 0622513058
Wait to dispose RequestAborted CTS (#4447) 2019-01-15 14:54:10 -08:00
Justin Kotalik cdd38d70cf
Implement Stream Adapters (and minor nitpics) (#6583) 2019-01-15 09:00:06 -08:00
David Fowler 3f1760c52b
Reduce copies for WebSocket reads (#6656)
- Change the upgrade message body to use the transport pipe instead of the request body pipe.
- Remove some logic from the base type (more can be removed but this is a conservative change)
- Improve performance of the ReadAsync call
2019-01-14 14:14:02 -08:00
Ben Adams b27739ad3f Shrink ParseRequestLine inner loop (#6594) 2019-01-11 20:34:30 -08:00
Ben Adams 31c8423df1 Devirtualize HttpHeaders.Reset (#5950)
* Use Inlining to devirtualize
2019-01-10 20:34:41 -08:00
Ben Adams ad11f890ef Resolve input/output via IDuplexPipe interface once (#6371) 2019-01-09 21:25:22 -08:00
David Fowler ea344bf726
Don't allocate the FormFeature eagerly (#6511)
- Expose FormOptions on DefaultHttpContext
- Use those options on DefaultHttpContext when the FormFeature is initialized
2019-01-09 14:44:41 -08:00
David Fowler a11c68ae35
Remove all extensibility from the DefaultHttpContext (#6504)
- Seal all of the classes
- Remove virtual methods
- Delete pooled HttpContext code
- Removed obsolete AuthenticationManager
2019-01-09 11:37:06 -08:00
David Fowler 688ad19170
Reuse HttpContext object per HTTP/1 connection and HTTP/2 stream (#6424)
- Today in Kestrel, we reuse the IFeatureCollection per connection and per Http2Stream. This PR aims to take advantage of that same technique and affinitize the HttpContext and friends so that they are only allocated per connection.
- ReusableHttpContext and friends mimic the functionality of DefaultHttpContext but is sealed and has no overridable methods.
- Introduce IHttpContextContainer which allows servers to cache the HttpContext and friends across requests.
2019-01-08 16:54:46 -08:00
David Fowler c61639b4a4
Reduce HTTP/2 allocations (#6119)
- Remove per request allocations on the thread pool by implementing IThreadPoolWorkItem on Http2Stream
- Made generic version of Http2Stream to store the IHttpApplication instead of using a tuple
- Removed passing of IHttpApplication<TContext> everywhere
2019-01-04 08:33:57 -08:00
Stephen Halter b1f778bfb8
[Kestrel] Allow HTTP/2 stream drain timeout during trailers (#4070)
- Move all HTTP/2 stream state management into request parsing loop
2019-01-03 15:03:00 -08:00
David Fowler 4816bdcaad
Replace .Wait with await (#6191) 2018-12-30 11:19:05 -04:00
David Fowler b12c33dbc3
Replace ManualResetEvents with a TCS (#6173)
* Added TaskCreationOptions.RunContinuationsAsynchronously in a few places
2018-12-29 08:24:57 -04:00
Ben Adams 8be8e0008d Avoid boxing context.Method (#5687) 2018-12-27 09:07:44 -08:00
Ben Adams cb1917aa59 Don't allocate in BeginChunkBytes (#5688) 2018-12-26 18:00:39 -08:00
Ben Adams b87ac1d652 Use PopCount intrinsic (#5715) 2018-12-26 10:03:36 -08:00
Ben Adams 5a64688d8e Make some ThrowHelpers static (#5951) 2018-12-24 16:53:07 -08:00
Ben Adams ef341c610f Use ref extensions as ref extensions (#6058) 2018-12-21 12:11:32 -08:00
Nate McMaster 02780bac26
Merge branch 'release/2.2' 2018-12-14 16:03:16 -08:00
Nate McMaster feb641ddda
Merge branch 'release/2.1' into release/2.2 2018-12-14 09:44:15 -08:00
Nate McMaster 13ae0057fb
Replace .Sources package references with local code (#4801)
Replaces package references the following packages with local code:

Microsoft.AspNetCore.Certificates.Generation.Sources
Microsoft.Extensions.CopyOnWriteDictionary.Sources 
Microsoft.Extensions.ClosedGenericMatcher.Sources
Microsoft.Extensions.ObjectMethodExecutor.Sources
Microsoft.Extensions.PropertyActivator.Sources
Microsoft.Extensions.PropertyHelper.Sources
Microsoft.Extensions.RazorViews.Sources
Microsoft.Extensions.SecurityHelper.Sources
Microsoft.Extensions.StackTrace.Sources
Microsoft.Extensions.WebEncoders.Sources
2018-12-14 08:36:36 -08:00
Ben Adams b2731d652d .IndexOf(...) >= 0 to .Contains(...) (#4688) 2018-12-14 12:40:09 +13:00
Chris Ross 6d442c1e3d
Upgrade Kestrel to target netcoreapp3.0 #3754 (#4405) 2018-12-12 08:16:00 -08:00
Nate McMaster c612eb8730
Merge branch 'release/2.2' 2018-12-07 14:50:17 -08:00
Nate McMaster 5017afa0ad
Merge branch 'release/2.1' to release/2.2 2018-12-07 12:45:42 -08:00
Nate McMaster df3e4b98a2
Backport infrastructure cleanup to share sources and project references (#4513) 2018-12-07 12:20:13 -08:00
Chris R 2b8c3db3b0 Remove obsolete ServerAddress type Kestrel/#2988 2018-11-30 14:28:52 -08:00
Stephen Halter dabf5d8ba9 [2.1] [Kestrel] Move AddressRegistrationTests to own TestGroup 2018-11-26 18:28:23 -08:00
Stephen Halter 6a3d0fc1da
[Kestrel] Re-enable trace-level test logging (#4075) 2018-11-26 16:20:43 -08:00
Nate McMaster 0af21077c3
Update .NET Core 3.0 dependencies (#4091)
* Update Extensions to 3.0.0-preview.18569.14
* Update EFCore to 3.0.0-preview.18569.2
* Update corefx to preview.18566.8
* Update core-setup to preview-27117-01
2018-11-20 10:37:13 -08:00
Stephen Halter 7e9b11ef3f
Add test and src folders to Kestrel.sln (#4039)
- Move ThrowHelper.cs into core project
2018-11-15 16:24:31 -08:00
Nate McMaster 68cc5e7846
Merge release/2.2 and aspnet/KestrelHttpServer
* Merges latest changes from the master branch of aspnet/KestrelHttpServer
* Merges changes on release/2.2
2018-11-15 08:41:55 -08:00
Nate McMaster 3a657c6fdf
Reorganize source code in preparation to move into aspnet/AspNetCore
Prior to reorganization, this source code was found in 5d80016b4f
2018-11-14 23:23:58 -08:00
Nate McMaster 0271428dbe
Merge aspnet/KestrelHttpServer release/2.2 and release/2.1 2018-11-14 21:33:33 -08:00
Nate McMaster ad84a1cc71
Merge branch 'release/2.1' into release/2.2 2018-11-14 16:28:38 -08:00