Cesar Blum Silveira
0404bcc58c
Add more microbenchmarks.
2017-03-06 10:14:22 -08:00
David Fowler
537b06f025
Interleave multispan and single span code path ( #1442 )
...
- Attempt at making the reader better for multispan parsing
- Try tighter inner loop
- Fix boundary case and clean code up
- Update the cursor once instead of after every header
- Fix errors with not updating consumed state on incomplete header payload
- Filled a test hole, removed a condition that should never happen
- Avoid struct copies every iteration when parsing headers
2017-03-06 09:06:28 -08:00
David Fowler
0ce111d9f1
Fix write size in benchmark ( #1449 )
2017-03-06 03:31:45 -08:00
Cesar Blum Silveira
83edc38e72
Use TechEmpower request as baseline for request parsing benchmarks.
2017-03-03 15:55:07 -08:00
Cesar Blum Silveira
de2c3d3608
Merge branch 'KrzysztofCwalina/NewBenchmark' into dev
2017-03-03 15:28:34 -08:00
Stephen Halter
ac60f13312
Modify RequestProcessingAsync to call single parse method ( #1427 )
...
* Modify RequestProcessingAsync to call single parse method
* Fix bad request logging
2017-03-03 14:43:32 -08:00
Krzysztof Cwalina
7cc5c537a4
Added a new benchmark
2017-03-03 13:13:11 -08:00
David Fowler
1d685e195e
Parser cleanup and remove line continuation header error ( #1431 )
...
- Cleaned up some parsing logic (removed locals etc)
- Removing line continuation errors cleaned up code duplication
a little bit
2017-03-03 10:04:44 -08:00
David Fowler
4533383612
React to hosting change
...
- Kestrel binds to ipv4 by default
Fixes #1432
2017-03-02 23:09:13 -08:00
David Fowler
4d7c6ff69f
use rtm appveyor
2017-03-02 21:44:36 -08:00
Stephen Halter
1e0f2b3951
Fix systemd activation tests ( #1429 )
2017-03-02 17:26:41 -08:00
David Fowler
8929b40527
Single span optimizations ( #1421 )
...
- Added a fast path for single span in the start line parsing
- Added a fast path for single span header parsing
- Changed the out header loop to be pointer based (instead of slicing)
2017-03-02 12:17:39 -08:00
Ben Adams
40ee51846c
Add allocations column ( #1422 )
2017-03-02 06:56:05 -08:00
David Fowler
cb6059c143
Make the IHttpParser per frame and add a reset ( #1415 )
...
* Make the IHttpParser per frame and add a reset
- Made the IHttpParser a per frame object so state can be stored
across method calls and parses.
- Added HttpParserFactory to ServiceContext
2017-03-01 13:12:03 -08:00
Pavel Krymets
d3694f085a
Add IHttpParser interface ( #1414 )
2017-03-01 11:55:36 -08:00
Krzysztof Cwalina
c56de066d3
Optimized parsing GET verb and version ( #1399 )
...
* Optimized parsing GET verb
* optimized http version parsing
* Added microbenchmarks for GetKnownMethod and GetKnownVersion
2017-02-28 17:02:52 -08:00
John Luo
6ad9f3e8b0
Reacting to HeaderUtitilities renames
2017-02-28 14:50:02 -08:00
Cesar Blum Silveira
568aaff9c4
Improve HTTP parsing tests ( #1393 ).
...
- Add several more test cases
- Share data between functional and unit tests
2017-02-28 14:23:27 -08:00
Stephen Halter
fde0f6b2fc
Add an option to Kestrel to disable threadpool dispatching
2017-02-28 10:14:58 -08:00
Cesar Blum Silveira
a95743c5f6
Add functional test to verify generated code is up to date ( #1369 ).
2017-02-27 14:19:56 -08:00
David Fowler
c6705d8693
Convert TakeStartLine and TakeMessageHeaders to be state machines ( #1401 )
...
- Less passes over the buffer
- Single pass to find all start line delimiters instead
of calling IndexOf multiple times.
- Made TakeStartLine and TakeMessageHeaders a state machine
- Only check length against remaining bytes once
- Change variable names to match TakeStartLine
- Use ReadableBuffer.First.Span instead of ToSpan()
- Added test for missing path with a querystring
2017-02-27 11:55:30 -08:00
David Fowler
5692f51bf7
Revert "Revert "Use Spans to parse the start line and headers ( #1394 )""
...
This reverts commit 19c3107deb .
2017-02-24 10:22:05 -08:00
David Fowler
19c3107deb
Revert "Use Spans to parse the start line and headers ( #1394 )"
...
This reverts commit 8140b8cdfe .
2017-02-24 10:03:32 -08:00
David Fowler
4544f881a2
Revert "Skipping failing tests to unblock CI"
...
This reverts commit 0860981ada .
2017-02-24 09:48:44 -08:00
David Fowler
0860981ada
Skipping failing tests to unblock CI
2017-02-24 09:31:43 -08:00
David Fowler
8140b8cdfe
Use Spans to parse the start line and headers ( #1394 )
...
* Use Spans to parse the start line and headers
- Use `Span<byte>` to parse the start line and headers
2017-02-23 23:02:29 -08:00
Pavel Krymets
990e2a8dc4
Use pass through connection adapter instead of ssl for max buffer size tests ( #1391 )
2017-02-23 08:04:43 -08:00
David Fowler
ba549502e1
Use the IThreadPool as the ReaderScheduler ( #1372 )
...
- This is what socket input did, also using
ThreadPool.QueueUserWorkItem is better than Task.Run for this
scenario and avoids a bunch of overhead.
2017-02-21 21:09:23 -08:00
Pavel Krymets
80b9673693
Temporary add delay to connection test to make it pass ( #1384 )
2017-02-21 16:04:32 -08:00
Cesar Blum Silveira
0dca3a266f
Remove custom BenchmarkDotNet toolchain.
2017-02-21 12:05:16 -08:00
Cesar Blum Silveira
4fd71e3a6b
Fix 'No data found for...' errors in CI test runs.
2017-02-21 11:50:20 -08:00
Pranav K
d3a6915732
Remove dotnet-core and dotnet-corefxlab feeds
...
Let VS do it's thing with test projects
2017-02-20 10:24:41 -08:00
Pavel Krymets
824ef2c937
Input Pipeline migration ( #1277 )
2017-02-17 15:38:13 -08:00
Cesar Blum Silveira
bfe1f06938
Fix AddressRegistrationTests.RegisterAddresses_IPv6ScopeId_Success ( #1363 ).
2017-02-17 10:35:00 -08:00
Nate McMaster
932b6ed53a
Cleanup MSBuild conversion
...
Remove runtimeconfig.template.json
Remove ToolsVersion attribute
Use repo.targets instead of makefile.shade
Rename code gen app to shorter name
Use GetOSPlatform task
Upgrade tests to .NET Framework 4.5.2
Cleanup solution configurations. Set the class libraries to AnyCPU even when on the x86 or x64 solution config.
2017-02-16 09:44:58 -08:00
Nate McMaster
708630fd23
Downgrade to stable packages
2017-02-15 14:22:38 -08:00
Doug Bunting
be9f83b308
Bump test projects up to .NET 4.5.2
...
- aspnet/Testing#248
- xUnit no longer supports .NET 4.5.1
- build tests for desktop .NET only on Windows
2017-02-14 09:21:44 -08:00
Stephen Halter
5124adf450
Better report Kestrel crashing errors
2017-02-07 00:26:00 -08:00
Nate McMaster
8cbe54a182
Remove usage of conditional multi-targeting
...
This causes Visual Studio to crash. See
dotnet/roslyn-project-system#1431
2017-02-01 12:12:43 -08:00
Cesar Blum Silveira
1a2c438899
Upgrade to RC.3
2017-01-31 16:23:23 -08:00
Ben Adams
ecca980c91
Implement IHeaderDictionary.ContentLength
2017-01-24 14:55:48 -08:00
Cesar Blum Silveira
2895447cbe
Merge branch 'benaadams/flush' into dev
2017-01-23 09:36:29 -08:00
Pavel Krymets
10fe5e6fa2
Fix performance tests
2017-01-20 14:55:21 -08:00
Stephen Halter
f32058c5c3
Warn instead of throw when ignoring IServerAddressesFeature
...
- Throwing could be too much when IServerAddressesFeature URLs come from VS
- Listen on 127.0.0.1:5000 by default
https://github.com/aspnet/Hosting/issues/917
2017-01-19 11:36:19 -08:00
Cesar Blum Silveira
20e02e8fd6
Don't overwhelm server with data in KeepAliveTimeoutTests.ConnectionNotTimedOutWhileRequestBeingSent().
2017-01-19 11:03:43 -08:00
Cesar Blum Silveira
89a63d190e
Don't close connection when Content-Length set but no bytes written.
2017-01-12 12:38:15 -08:00
Cesar Blum Silveira
e26f91a392
Call OnStarting before verifying response length ( #1289 ).
2017-01-10 14:24:44 -08:00
Cesar Blum Silveira
cf77813c82
Re-enable HTTPS tests ( #1273 ).
2017-01-10 13:48:46 -08:00
John Luo
57b368566d
Use StatusCode instead of three digit numbers for status codes
2017-01-09 10:09:54 -08:00
Cesar Blum Silveira
6d7ddc45ef
Fix deadlock in SocketOutput ( #1278 ).
2017-01-06 20:33:35 -08:00
Stephen Halter
2351c1b558
Create a direct way to configure Kestrel endpoints
...
- Replace endpoint configuration via .UseUrls() or --server.urls with Listen*
methods on KestrelSerrverOptions.
- Replace IConnectionFilter with IConnectionAdapter which no longer exposes
ServerAddress via a context.
- Simplify libuv Listener classes
- Support systemd socket activation
- Add docker-based test for systemd socket activation to be run on Travis
2017-01-06 17:37:58 -08:00
Pranav K
c72605f43a
Fix NuGet downgrade warning
...
Works around warning where a P2P reference is explicitly listed in the project. For e.g.
warn : SampleApp (>= 1.1.0) -> Microsoft.AspNetCore.Server.Kestrel.Https (>= 1.2.0) -> Microsoft.AspNetCore.Server.Kestrel
warn : SampleApp (>= 1.1.0) -> Microsoft.AspNetCore.Server.Kestrel (>= 1.2.0)
2016-12-28 09:44:21 -08:00
Cesar Blum Silveira
81a8ba0347
Skip tests commentd out in 973b705.
2016-12-23 17:38:54 -08:00
Cesar Blum Silveira
973b705cdb
Disable tests that hang on SslStream.WriteAsync after update to CoreFx 4.4.
2016-12-22 18:37:14 -08:00
Ben Adams
4c0413c804
Implement Stream Flush+FlushAsync fully
...
Streams should pass through the flush and not assume the underlying
Stream's Flush behaviour
2016-12-22 13:40:40 +00:00
Pranav K
5b8f7c2b2b
Updating to 4.4 CoreFx packages
2016-12-21 22:22:13 -08:00
Cesar Blum Silveira
461caa85f4
Test RequestHeadersTimeout in KestrelServerLimitsTests.RequestHeadersTimeoutValid ( #1268 ).
2016-12-21 13:22:20 -08:00
Cesar Blum Silveira
b41c4078bd
Abort connections not closed during shutdown ( #1112 ).
2016-12-20 14:44:34 -08:00
Cesar Blum Silveira
4485bfec39
Fix test races caused by cedbe76.
2016-12-13 13:57:26 -08:00
Cesar Blum Silveira
cedbe76f52
Abort request on client FIN ( #1139 ).
2016-12-13 12:03:33 -08:00
Cesar Blum Silveira
51ecbd7949
Add benchmarks for Frame writes.
2016-12-13 11:33:56 -08:00
Cesar Blum Silveira
defcbdb907
Revert "Add MaxRequestBodySize limit ( #478 )."
...
This reverts commit e53a87be9c .
2016-12-09 16:30:12 -08:00
Cesar Blum Silveira
e53a87be9c
Add MaxRequestBodySize limit ( #478 ).
2016-12-05 17:06:57 -08:00
Stephen Halter
02b84d7ae1
Make ListenerPrimaryTests more reliable
...
- The Task from ListenerSecondary.StartAsync() may complete before the
PrimaryListener adds the pipe connection to its dispatch pipe list.
2016-11-28 14:37:25 -08:00
N. Taylor Mullen
fd7232616a
Pin global.json SDK to 1.0.0-preview2-1-003177.
2016-11-23 15:59:21 -08:00
Pavel Krymets
e55c62444b
Refactor FrameTests and rename SocketInput SocketOutput properties ( #1229 )
2016-11-22 16:36:36 -08:00
Stephen Halter
b2d45c3dd0
Make TestApplicationErrorLogger thread-safe
2016-11-21 16:31:27 -08:00
Ben Adams
2eba4017c1
MemoryPoolIterator feedback
2016-11-21 22:48:58 +00:00
Ben Adams
9ec4d88fbe
Improve Skip coverage
2016-11-21 22:48:58 +00:00
Ben Adams
ba0b7cc553
Add 100% coverage Take tests
2016-11-21 22:48:58 +00:00
Ben Adams
dc90dd1649
Add GetArraySegment test
2016-11-21 22:48:58 +00:00
Ben Adams
ef5ad3deea
defaullt(MemoryPoolIterator) test coverage
2016-11-21 22:48:58 +00:00
Ben Adams
8ce47fb8b6
Move perf, share code
2016-11-21 22:48:57 +00:00
Ben Adams
12e2f30577
MemoryPoolIterator byref structs
2016-11-21 22:48:57 +00:00
Ben Adams
8bcbfb9971
Only LocateFirstFoundByte once
2016-11-21 22:48:57 +00:00
Ben Adams
97d4406614
Use Vector<byte>.ctor workaround
2016-11-21 22:48:57 +00:00
Ben Adams
4f7977d440
Use PowerOfTwoToHighByte for FindFirstEqualByte
2016-11-21 22:48:57 +00:00
Stephen Halter
0c26fc9f41
Merge branch 'rel/1.1.0' into dev
2016-11-11 15:16:48 -08:00
Stephen Halter
f1d0fafaa4
Better filter clients connecting to Kestrel's dispatch pipes
2016-11-11 14:57:17 -08:00
Stephen Halter
4a1db74568
Merge branch 'rel/1.1.0' into dev
2016-11-09 14:29:31 -08:00
Stephen Halter
ec89197ecb
Add ListenerPrimaryTests
2016-11-09 14:26:47 -08:00
Pranav K
9d081d17e5
Updating versions to 1.2.0-*
2016-11-09 14:18:16 -08:00
Stephen Halter
5043f9b17a
Make ConnectionFilterTests more reliable
2016-11-09 14:02:51 -08:00
Stephen Halter
757952d4d3
Always flush headers on first response write ( #1202 ).
2016-11-09 14:02:50 -08:00
Stephen Halter
3c7e7d1f6c
Make ConnectionFilterTests more reliable
2016-11-09 13:59:12 -08:00
Stephen Halter
c0e75dcbf8
Always flush headers on first response write ( #1202 ).
2016-11-09 13:59:12 -08:00
Stephen Halter
194059a198
Implement Begin/End Read/Write methods in LoggingStream
...
- This allows the reads and writes from SslStream to be logged on desktop .NET
2016-11-04 21:38:57 -07:00
Stephen Halter
0d559468f1
Make connection reset logs less scary
...
- Particularly between requests, connection resets aren't that abnormal.
2016-11-04 21:36:51 -07:00
Cesar Blum Silveira
a83bbcfba7
Prevent block leak when socket is closed before connection filter is applied.
2016-11-04 20:56:01 -07:00
Cesar Blum Silveira
a1c598733b
Reject POST and PUT requests with no Content-Length or Transfer-Encoding ( #1130 ).
2016-11-04 18:04:27 -07:00
Cesar Blum Silveira
5b65117b64
Add functional regression test for 'Connection: keep-alive, upgrade' request header.
2016-11-04 17:54:22 -07:00
Stephen Halter
8591900849
Fix more test failures caused by connection resets
...
- Avoid sending data that won't be processed.
2016-11-04 16:05:11 -07:00
Stephen Halter
b3aca0413c
Avoid zero-length writes to flush connection filter stream
...
- This works around a zero-length write bug in SslStream.
- We already assume connection filter streams auto flush.
#1195
2016-11-04 15:43:35 -07:00
Cesar Blum Silveira
29408956f9
Handle tokens in Transfer-Encoding header ( #1181 ).
2016-10-31 13:57:34 -07:00
Cesar Blum Silveira
cc05e36dc6
Fix test failures caused by connection resets ( #1167 ).
2016-10-31 10:21:28 -07:00
Stephen Halter
d475d41f71
Fix boundary cases in MemoryPoolIterator.(Try)PeekLong()
...
- Fix edge case where the iterator is at the very end of a block.
- Fix edge case where one bits where improperly filled in on a right shift.
- Don't use -1 to represent failure. Use bool and an out parameter instead.
2016-10-28 14:51:47 -07:00
Cesar Blum Silveira
1ffad5ca38
Handle multiple tokens in Connection header ( #1170 ).
2016-10-27 12:19:43 -07:00
Nathan Anderson
610601cc6e
test fixes and whitespace changes to generated code
2016-10-20 15:23:03 -07:00
Cesar Blum Silveira
fff0adeaaf
Faster response Content-Length parsing.
2016-10-18 15:57:40 -07:00
Cesar Blum Silveira
78584799a4
Separate request rejection from bad request state setting.
2016-10-17 15:16:50 -07:00