Pranav K
200d8debc0
Use the SDK version of GetOSPlatform
2017-03-28 14:27:54 -07:00
Cesar Blum Silveira
db7348e776
Fix flakiness in WhenAppWritesLessThanContentLengthButRequestIsAbortedErrorNotLogged.
2017-03-27 10:10:28 -07:00
Cesar Blum Silveira
47f1db20e0
Fix races on port acquisition in AddressRegistrationTests ( #1520 ).
2017-03-24 16:46:40 -07:00
David Fowler
0f28c49c5e
Fix the invalid usages of Span<T> ( #1549 )
2017-03-24 11:06:16 -07:00
Pranav K
d6d13a0986
Remove net451 as a cross-compile target
2017-03-24 07:44:11 -07:00
Cesar Blum Silveira
3e6303b6c1
Fix flakiness in connection reset logging tests.
2017-03-23 21:52:29 -07:00
Ben Adams
ff99c4c865
Fix benchmarks (broken) ( #1515 )
...
* Fix benchmarks
* Remove Moq from benchmarks
2017-03-22 18:30:06 -07:00
Stephen Halter
fffb823e99
Dispose socket in test after synchronous connect
2017-03-22 10:33:38 -07:00
Cesar Blum Silveira
751a0e2e7e
Better checks for connection reset in RequestTests.ConnectionReset* tests ( #1517 )
2017-03-21 19:35:41 -07:00
Cesar Blum Silveira
72587baac3
Check that MaxRequestBufferSize is greater than or equal to MaxRequestHeadersTotalSize ( #1491 ).
2017-03-21 19:25:56 -07:00
Stephen Halter
6c131ea240
Verify scopeids are connectable using Socket before testing Kestrel ( #1536 )
2017-03-21 18:31:29 -07:00
Ben Adams
32d6b42964
Respond to corefxlab rename (build break) ( #1529 )
2017-03-21 08:43:49 -07:00
David Fowler
cf576559b6
Fix write after close ( #1526 )
...
- Change Alloc to be a Write with a callback that exposes the WritableBuffer.
This allows the ISocketOutput to implementation to not call the callback if
the underlying socket is dead.
- Added a new functional test
2017-03-20 23:58:26 -07:00
Cesar Blum Silveira
3b40ba52ca
Check if request is aborted before verifying response bytes written ( #1498 ).
2017-03-20 16:02:25 -07:00
Stephen Halter
8923b0da70
Use correct config for response buffer limit ( #1516 )
2017-03-20 15:43:55 -07:00
David Fowler
2ed456fd68
Faster Write implementation using cpblk ( #1511 )
...
* Faster Write implementation
- Use Unsafe.CopyBlockUnaligned to copy bytes to the
WritableBuffer. This is temporary until we get newer
corefx bits with a better span.CopyTo implementation.
- Remove WritableBufferExtensions from Performance project
- Split method into WriteFast and WriteMultiBuffer
- Cache the span for the common case where
the buffer is non empty.
- Use ref locals instead of pinning pointers in fast path
2017-03-19 12:44:01 -07:00
David Fowler
1094cc0670
Use StreamSocketOutput for writing benchmarks ( #1507 )
...
- Use StreamSocketOutput with a null stream to get a
better picture of what actual performance looks like
2017-03-18 13:20:07 -07:00
Ben Adams
5b814a55ac
Speed up WritableBuffer.WriteXxx ( #1504 )
...
* Speed up WritableBuffer.WriteAscii
* Add Benchmarks
* Non-standard header vals are still ascii
* Speedup WriteNumeric
* Don't advance for write
* Remove cruft
2017-03-18 12:25:10 -07:00
Pavel Krymets
07cbf7faa9
Use pipelines for SocketOutput
...
- Changed socket output to be based on pipelines
- Changed connection filter glue to be based on pipelines
- Codegen that used `MemoryPoolIterator` for output now uses `WritableBuffer`
- Made `UvWriteReq` async/await friendly with `LibuvAwaitable<T>`
- Deleted MemoryPool and friends
2017-03-18 00:26:00 -07:00
Cesar Blum Silveira
2ef3804578
Span-based RemoveDotSegments ( #1448 )
2017-03-17 14:42:13 -07:00
Nate McMaster
9a4a810aa8
Fix race conditions in test event listener
2017-03-15 10:26:09 -07:00
Cesar Blum Silveira
632780dd16
Remove splitting of path and path base ( #1050 ).
2017-03-15 09:57:33 -07:00
Nate McMaster
d4c0d4b81e
Adds an EventSource named 'Microsoft-AspNetCore-Server-Kestrel' with the following event and properties:
...
ConnectionStart:
- connectionId
- scheme
- localEndPoint
- remoteEndPoint
ConnectionStop:
- connectionId
2017-03-14 16:59:11 -07:00
Nate McMaster
5073d4fdaf
Re-add .NET Framework to tests and other cleanup ( #1494 )
2017-03-14 11:02:49 -07:00
Ben Adams
b94912bcb1
InitializeHeaders only at start of parsing/Fix remaining ( #1488 )
...
* Don't reinitialize header collection each loop
* Correct remaining tracking value
* Add tests
2017-03-13 15:32:28 -07:00
David Fowler
5644310811
Clean up benchmarks ( #1487 )
...
- Benchmarks are suffixed with *Benchmarks
- Removed Custom RpsColumn.cs and used Ops/Second column
- Removed params from RequestParsingBenchmark
2017-03-12 22:52:24 -07:00
Cesar Blum Silveira
49f09d5a25
Log rejected request targets.
2017-03-12 18:37:08 -07:00
David Fowler
f479720d5a
Remove our custom bootstrapper and use the BenchmarkSwitcher ( #1480 )
2017-03-11 18:19:13 -08:00
arespr
d755f6183a
Merge branch 'dev' into knownmethods-optimizations
2017-03-11 22:50:58 +01:00
Ben Adams
3c8ee39f1d
Fxi writing perf test ( #1478 )
2017-03-10 12:04:28 -08:00
Nate McMaster
49b328d4c2
Handle absolute, asterisk, and authority-form request targets
...
Improves compliance with RFC 7230 on the expected handling of requests
that have URI or asterisk in the request target.
This means rejecting asterisk requests that are not OPTIONS and rejecting
authority-form requests taht are not CONNECT.
This also means the server will handle the path and query on targets
with absolute URIs as request-targets.
2017-03-09 16:54:12 -08:00
Ben Adams
941d396942
Speed up ParseRequestLine ( #1463 )
2017-03-08 19:27:56 -08:00
Nate McMaster
63e3c9428a
You can't have two benchmarks as the baseline.
2017-03-08 17:28:13 -08:00
Nate McMaster
3a1f3d14f9
Add absolute-uri benchmark and change plaintext, live aspnet, and unicode benchmarks to use origin-form
2017-03-08 17:21:21 -08:00
Cesar Blum Silveira
bb973decb8
Unify header rejection messages.
...
- Log bad headers with escaped non-vchar characters
2017-03-08 15:27:44 -08:00
arespr
e9250323e0
update GeneratedCodeTests
2017-03-08 22:20:43 +01:00
arespr
0a45cbbb95
Merge branch 'dev' into knownmethods-optimizations
2017-03-08 19:09:00 +01:00
Cesar Blum Silveira
e25eb418bb
Change non-printable char representation in log messages from <0xXX> to \xXX.
2017-03-08 10:05:53 -08:00
David Fowler
13519b6079
Fix CopyTo implementation in benchmark. ( #1462 )
...
* wip
* ooops
2017-03-07 17:39:56 -08:00
Cesar Blum Silveira
5743d740b4
Convert HTTP parsing FrameTests to IHttpParser tests ( #1416 ).
...
- Also fix an issue in KestrelHttpParser where "Header: \r\n" is
parsed with a value of " " instead of "".
2017-03-07 15:51:11 -08:00
Ben Adams
e2f8c226ef
Simplify TakeSingleHeader and Vectorize ( #1457 )
...
* Sanitize unsafe code
* Vectorize
* Extract Contains and add more tests
2017-03-07 13:30:57 -08:00
Pavel Krymets
1294c00618
Cleanup unused code ( #1458 )
2017-03-07 11:52:45 -08:00
David Fowler
02a4342908
Made changes to TakeSingleHeader ( #1453 )
...
* Made changes to TakeSingleHeader
- Remove state machine and just parse in place
- Inline OnHeader into TakeSingleHeader
- Use IndexOfVectorized instead of custom indexof
- Normalize header whitespace error
- Combine IndexOf and IndexOfAny into a single IndexOfNameEnd call
2017-03-07 08:58:55 -08:00
John Luo
06134bc6e0
Add IPv6 loopback address by default #1434
2017-03-06 18:02:28 -08:00
Cesar Blum Silveira
11c7eb5665
Verify all request rejections are logged ( #1295 ).
2017-03-06 12:05:38 -08:00
John Luo
7d94abd606
Enable default server address test
2017-03-06 10:26:32 -08:00
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
arespr
ac5fd3f29f
PR feetback
2017-03-02 22:45:36 +01:00
arespr
346d8eaa03
address PR feedback
2017-03-02 22:14:36 +01:00
arespr
bb74a6ce34
address PR feetback, fix unit tests for invalid known methods
2017-03-02 22:04:43 +01: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
arespr
96fead6282
better GetKnownMethodIndex, unit tests, benchmark repair
2017-03-02 20:58:18 +01:00
Ben Adams
40ee51846c
Add allocations column ( #1422 )
2017-03-02 06:56:05 -08:00
arespr
b89415d9b2
knownmethods optimizations
2017-03-02 03:10:00 +01: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
Mike Harder
f1071dea50
Set StatusCode before disposing HttpContext ( #876 )
2016-10-17 15:16:43 -07:00
Pranav K
2876f82521
Updating to netcoreapp1.1
2016-10-13 11:19:16 -07:00
Pranav K
e2f11ebd38
Revert "Updating to netcoreapp1.1"
...
This reverts commit dd23f24241 .
2016-10-12 16:08:56 -07:00
Pranav K
dd23f24241
Updating to netcoreapp1.1
2016-10-12 13:45:43 -07:00
Cesar Blum Silveira
bf94f8526a
Remove TCP Loopback Fast Path code ( #1147 ).
2016-10-12 11:41:57 -07:00
Cesar Blum Silveira
ffc3eb3afd
HEAD response can include Content-Length header.
2016-10-12 11:38:18 -07:00
Cesar Blum Silveira
7ee13875b1
Reduce delay variability in KeepAliveTimeoutTests.ConnectionKeptAliveBetweenRequests() ( #1157 ).
2016-10-11 16:22:59 -07:00
Cesar Blum Silveira
a15b1e2805
Update cached Content-Length when setting raw header.
2016-10-11 13:55:05 -07:00
Cesar Blum Silveira
f8813a600d
Handle response content length mismatches ( #175 ).
2016-10-11 13:25:22 -07:00
Pranav K
8c103f0f23
Revert "Revert to Microsoft.NETCore.App to 1.0.0"
...
This reverts commit f1f66448f4 .
2016-10-10 19:23:37 -07:00
Cesar Blum Silveira
3177ba0aae
Wait for frame loop completion to dispose connection stream ( #1156 ).
2016-10-10 10:16:03 -07:00
Cesar Blum Silveira
663b825d97
Merge branch 'benaadams/codecoverage' into dev
2016-10-06 15:01:43 -07:00
Kristian Hellang
03f8a7a217
Use HeaderUtilities.FormatDate in DateHeaderValueManager ( #1132 )
2016-10-06 11:56:49 -07:00
Cesar Blum Silveira
2c94884da9
Include address in error message when address already in use ( #1086 ).
2016-10-05 14:23:09 -07:00
Ben Adams
2708b8a534
Add CodeCoverage to tests
2016-10-05 21:42:31 +01:00
Pranav K
f1f66448f4
Revert to Microsoft.NETCore.App to 1.0.0
2016-10-05 12:03:46 -07:00
Pranav K
91497621c9
Updating partner package versions
2016-10-03 19:59:39 -07:00
Cesar Blum Silveira
a2439105ae
Refactor request line validation and error reporting ( #1116 ).
2016-10-03 16:54:51 -07:00
Cesar Blum Silveira
4117ad8a1e
Refactor non-body response handling.
...
- Add functional tests
- Remove BadHttpResponse, ResponseRejectionReasons and TestFrameProtectedMembers
- Chunk non-keepalive HTTP/1.1 responses
- Set _canHaveBody to true when StatusCode == 101
- Add test to check that upgraded connections are always closed when the app
is done
- Log writes on responses to HEAD requests only once.
2016-10-03 16:46:59 -07:00
Ben Adams
e7e6b896ba
Don't emit TE header or body for non-body responses
2016-10-03 15:54:14 -07:00
Mikael Mengistu
12adc7de9d
Refactored to use the fields from the HttpMethods class
...
* Reacting to PR comments
2016-09-29 12:19:26 -07:00
Cesar Blum Silveira
09fda749b0
Don't reset frame state when connection is aborted ( #1103 ).
2016-09-28 15:06:22 -07:00
Cesar Blum Silveira
73656f6503
Assume zero length on non-keepalive requests without Content-Length or Transfer-Encoding ( #1104 ).
2016-09-28 12:30:53 -07:00
Cesar Blum Silveira
0312da7df3
Add request headers timeout ( #1110 ).
2016-09-27 17:08:02 -07:00
Cesar Blum Silveira
375e8b7022
Change context relationships from inheritance to composition.
2016-09-27 11:53:06 -07:00
Cesar Blum Silveira
49ff98f8cb
More specific response status codes for errors ( #653 ).
...
- 414 when request line exceeds size limit
- 431 when request headers exceed size or count limits
- 505 when request line contains unsupported HTTP version
2016-09-22 12:13:14 -07:00
Stephen Halter
63509b9e10
Make FrameRequestStream.CopyToAsync(...) copyless
...
- Add tests for when the CopyToAsync destinationStream throws.
- Add test to verify the destination stream sees the same array written to by
the producer.
2016-09-20 11:54:58 -07:00
Cesar Blum Silveira
afa89b3993
Change SkipReason for ThreadCountTests on OS X.
2016-09-16 09:09:26 -07:00
Cesar Blum Silveira
1a273f5a34
Improve keep-alive timeout.
...
- Track time more accurately
- Control timeout in Connection instead of Frame
2016-09-14 20:57:16 -07:00
Stephen Halter
84efe624a6
Fix deadlock in HttpsTests
...
- The xunit synccontext was saving us again
2016-09-12 11:06:29 -07:00
Stephen Halter
39bd49ea1a
Avoid blocking the MockLibuv loop with test code
...
- This allows for a graceful shutdown with dotnet test -Parallel None
- By default, the xunit synccontext will dispatch automatically off
the KestrelThread, but it's best not to rely on this behavior.
2016-09-12 11:06:29 -07:00
Cesar Blum Silveira
8c513402a3
Always call ConsumingComplete() with furthest examined position ( #1095 ).
2016-09-10 20:05:14 -07:00
Pavel Krymets
c777a9efea
Use TaskCache class from Microsoft.Extensions.TaskCache.Sources ( #1089 )
...
Instead of Task.FromResult(0)
2016-09-09 15:57:33 -07:00
Cesar Blum Silveira
5b2065230d
Fix failing keep-alive timeout tests.
2016-09-07 20:58:00 -07:00
Cesar Blum Silveira
f2085b1968
Add keep-alive timeout ( #464 ).
2016-09-06 12:48:47 -07:00
Cesar Blum Silveira
19f8958fa8
Move TestServer to shared directory.
2016-09-06 12:47:24 -07:00
Cesar Blum Silveira
5512516ee8
Remove commented test.
2016-09-01 17:18:59 -07:00
Stephen Halter
1ecef8094a
Make Kestrel's response buffer limit configurable
2016-08-30 16:01:42 -07:00
Stephen Halter
acfcafb6e1
Ensure MockLibuv.OnPostTask doesn't complete too early
2016-08-29 20:53:00 -07:00
Stephen Halter
0742d113be
Make all calls to ThreadPool.QueueUserWorkItem through IThreadPool
...
- This allows SocketOutputTests to cause QUWI to exec synchronously
- To avoid allocations, the logger can't be captured making it "unsafe"
2016-08-29 20:52:47 -07:00
Stephen Halter
4587a0fc95
Prevent possible deadlocks when using MockLibuv.OnPostTask
2016-08-29 12:14:19 -07:00
Cesar Blum Silveira
b6a177ef0b
Test for categoryName passed to ILoggerFactory.CreateLogger() in KestrelServer.ctor() ( #797 )
2016-08-26 15:37:15 -07:00
Stephen Halter
7bd30ea693
Log all startup errors in KestrelServer
2016-08-18 14:52:26 -07:00
Stephen Halter
972be6e8c1
Disable automatic chunking for all non keep-alive requests
...
- Fixes a bug where Upgrade requests (e.g. WebSockets) would be chunked
- Allows chunking to be disabled by setting "Connection: close" on the response
2016-08-17 12:39:18 -07:00
Stephen Halter
16fbb94c44
Automatically chunk and set 0 Content-Length for non keep-alive responses
2016-08-15 16:27:54 -07:00
Stephen Halter
5f4e60bf8d
Always set "Connection: close" header for non keep-alive responses
2016-08-15 16:27:54 -07:00
Stephen Halter
8f4cc3003b
Improve SocketOutputTests
...
- This should increase reliability/determinism by removing timeouts.
2016-08-15 10:58:32 -07:00
Cesar Blum Silveira
08a91f17bf
Call OnStarting and OnCompleted callbacks in LIFO order ( #1042 ).
2016-08-10 14:52:05 -07:00
Cesar Blum Silveira
5181e4196c
Trace call to _uv_unsafe_async_send in MockLibuv.
2016-08-09 18:26:10 -07:00
Cesar Blum Silveira
08f98f4790
Add header limit options ( #475 ).
2016-08-09 12:31:39 -07:00
Pranav K
2f9bf9bb87
Updating to Moq \ Castle.Core that does not require imports
2016-08-08 14:35:04 -07:00
Cesar Blum Silveira
f2fa8b5660
Add functional test.
2016-08-08 11:58:37 -07:00
Cesar Blum Silveira
a5aacd6307
Throw when setting OnStarting after response has already started ( #806 ).
2016-08-08 11:38:06 -07:00
Cesar Blum Silveira
55f409b38b
Fix hanging functional tests.
2016-08-05 16:46:34 -07:00
Cesar Blum Silveira
fa41588779
Move server start failure test in MaxRequestLineSizeTests to KestrelServerTests.
2016-08-04 15:43:53 -07:00
Cesar Blum Silveira
b8f21bee03
Update warning code for obsolete property in #pragma.
2016-08-04 14:05:23 -07:00
Stephen Halter
9727a4db86
Improve the performance of connection filters
...
- Buffer connection filter input less by using ProducingStart/Complete
- Simplify FilteredStreamAdapter
2016-08-03 16:45:39 -07:00
Cesar Blum Silveira
8836eec7d8
Limit request line length ( #784 ).
2016-08-03 15:39:16 -07:00
Stephen Halter
dfe12223b8
Ensure HTTPS handshake errors aren't logged on socket close
2016-08-03 15:21:57 -07:00
Stephen Halter
1020d69171
Better logging for connection errors during HTTPS handshake
2016-08-03 11:15:15 -07:00
Cesar Blum Silveira
20c1bb567d
Move TestConnection to the Microsoft.AspNetCore.Testing namespace.
2016-08-02 12:47:06 -07:00
Cesar Blum Silveira
5876e1983a
Move TestConnection to shared directory.
2016-08-02 12:30:53 -07:00
Cesar Blum Silveira
138f23b246
Remove TestServer dependency from TestConnection.
2016-08-02 12:26:17 -07:00
Mike Harder
4ece3f4b68
Change "String." to "string." to match coding convention
2016-08-01 11:09:31 -07:00
Stephen Halter
00a540dcb8
Merge branch 'benaadams/more-block-collect-info' into dev
2016-07-28 16:51:35 -07:00
Stephen Halter
5d6da35cb9
Add test verifying a chunked response can be written manually
2016-07-28 16:43:23 -07:00
Stephen Halter
3a67cb9df5
Merge branch 'benaadams/enum-rather-than-string' into dev
2016-07-25 10:30:33 -07:00
Ben Adams
0ab04d7e73
Tests to makes sure known strings are interned
2016-07-23 01:07:04 +01:00
Ben Adams
0a1ea124ee
Use HttpVersionType enum rather than string compare
2016-07-22 21:34:49 +01:00
David Fowler
0e7967a7fc
Allocate things per KestrelThread instead of per listener
...
- Moved things that have loop affinity to KestrelThread like
WriteReqPool, MemoryPool and the ConnectionManager
- Changed on the listeners to only kill the ListenSocket, not the
connections on dispose
- Moved connection disposal to KestrelThread.Stop
- Simplify the connection manager logic so it's possible to walk and
wait in a single call
2016-07-21 22:17:18 -07:00
Cesar Blum Silveira
3c0e0f8d88
Always throw same exception type on read after connection error ( #975 ).
2016-07-21 16:33:56 -07:00
Ben Adams
7b8abf5a3e
Improved Memoryblock tracking
...
Also fixed 3 tests that weren't handling block properly
2016-07-21 01:13:27 +01:00
Cesar Blum Silveira
bdf9f8dd4e
Wait for connection in RequestTests.ConnectionResetAbortsRequest ( #978 ).
2016-07-18 13:29:42 -07:00
Mike Harder
41e50ba688
Enable all tests in HttpsConnectionFilterTests to run on all platforms
...
- Move HttpClientSlim.cs to test\shared
- Change HttpClientSlim to static class to simplify calling code
- Add HttpClientSlim.PostAsync()
2016-07-18 12:38:19 -07:00
Cesar Blum Silveira
3bb7f4e2c4
Treat ECONNRESET as a connection error ( #934 ).
2016-07-15 14:53:21 -07:00
Stephen Halter
fbcb5dcb1b
Prevent enumeration of queue during modification in SocketOutputTests
2016-07-15 11:53:54 -07:00
Mike Harder
0c52529b97
Add tests for HTTPS urls to AddressRegistrationTests ( #794 )
...
- Added HttpClientSlim, a lightweight version of HttpClient implemented using Socket and SslStream.
2016-07-14 18:35:47 -07:00
Stephen Halter
7e1aa4e1d0
Only test binding to "operational" network interfaces
2016-07-14 16:08:39 -07:00
Mike Harder
2f36c80970
Remove skip condition for IPv6 with scope ID on Linux and Mac ( #964 )
...
- Was required to workaround https://github.com/dotnet/corefx/issues/8235 which is now fixed.
2016-07-11 17:53:59 -07:00
Mike Harder
8a43be94ef
AddressRegistrationTests should get local IPs from System.Net.NetworkInformation ( #796 )
2016-07-11 14:40:12 -07:00
Doug Bunting
82a0a99107
One build to rule them all
...
- well, at least VS and command-line builds will share output
- part of aspnet/Coherence-Signed#277
2016-07-07 12:07:14 -07:00
Cesar Blum Silveira
9f720eda90
Reset frame streams on each request ( #940 ).
2016-07-06 14:57:43 -07:00
Pranav K
a09bce0c07
Updating to RTM builds of xunit and Moq
2016-06-30 16:00:39 -07:00
Pranav K
de668c2ebd
Updating to dev versions
...
# Conflicts:
# test/Microsoft.AspNetCore.Server.Kestrel.FunctionalTests/project.json
2016-06-16 10:40:58 -07:00
jacalvar
6b7e27269c
Update Json.NET to 9.0.1
2016-06-15 15:08:50 -07:00
Mike Harder
5ecb1f59a4
Limit size of memory buffer when reading request ( #304 )
...
- Added property `KestrelServerOptions.MaxRequestBufferSize`
- Default is 1,048,576 bytes (1MB)
- If value is null, the size of the request buffer is unlimited.
- Fixed bug in `IConnectionControl.Resume()` where `_socket.ReadStart()` can throw if the socket is already disconnected.
- Made `UvStreamHandle.ReadStop()` idempotent, to match `uv_read_stop()`.
2016-06-13 18:52:20 -07:00
Cesar Blum Silveira
98feee9dbd
Combine LargeMultipartUpload and LargeUpload into one test.
2016-06-13 17:55:19 -07:00
N. Taylor Mullen
917c3e0987
Remove direct Microsoft.NETCore.Platforms dependency.
...
- Microsoft.NETCore.App now pulls this package in.
aspnet/Coherence-Signed#344
2016-06-13 15:29:13 -07:00
Stephen Halter
c1dadbd723
Make Bad Request tests more reliable
...
- Avoid calling write again after the request is already rejected
- Don't try to close a socket from the client if we already expect the server
to forcefully close the socket
2016-06-07 16:13:29 -07:00
jacalvar
b6ceac559a
Update Json.NET to 9.0.1-beta1
2016-06-06 21:25:52 -07:00
moozzyk
50e8948bb9
Fixing BadRequest tests to not try sending data after Bad Request
2016-06-06 15:27:45 -07:00
moozzyk
69bd0dc4be
Reject requests that have null characters in path
2016-06-06 09:59:42 -07:00
Cesar Blum Silveira
2bbaa52b08
Disable ThreadCountTests on Mac.
2016-06-03 19:57:28 -07:00
Andrew Stanton-Nurse
09f5be1434
fix #909 by moving most classes to Internal ns
2016-06-03 14:14:21 -07:00
moozzyk
ef74926463
Fixing a test failing on Mac and Linux
2016-06-03 12:21:48 -07:00
Stephen Halter
6bff2ecb34
Small cleanup to SocketOutput's shutdown logic
2016-06-02 16:54:00 -07:00
Stephen Halter
07744e75d9
Gracefully handle connection close in SocketOutput.ProducingComplete
2016-06-02 16:54:00 -07:00
Stephen Halter
2d229e8980
Allow a maximum of 3 concurrent uv_write operations per connection
...
- Keep logic to prevent unnecessary calls to KestrelThread.Post
- This partially reverts commit 480996433e .
2016-06-02 16:52:06 -07:00
moozzyk
0342754c57
Using the optimized method for converting header name to ASCII
2016-06-02 16:36:22 -07:00