Commit Graph

973 Commits

Author SHA1 Message Date
Stephen Halter a9d6cf13eb
Consistently handle connection resets (#2547) 2018-05-22 16:38:21 -07:00
Mike Harder 99a661edd6
Improve reliability of RequestTimesOutWhenRequestBodyNotReceivedAtSpecifiedMinimumRate (#2589)
- Fix race condition in test code
- Addresses https://github.com/aspnet/KestrelHttpServer/issues/2539
2018-05-18 16:25:01 -07:00
Mike Harder 1951ddf6ea
Improve reliability of MaxRequestBufferSizeTests.LargeUpload (#2586)
- Increase _dataLength from 20MB to 40MB to improve test reliability when using Sockets transport on Windows
- Addresses https://github.com/aspnet/KestrelHttpServer/issues/2225
2018-05-17 16:53:52 -07:00
Stephen Halter a13339dd5c
Re-enable ConnectionCountingReturnsToZero on non-macOS machines (#2585) 2018-05-17 11:54:58 -07:00
John Luo 336fe6ed90 Dispose base 2018-05-17 10:45:50 -07:00
John Luo ca25a4a63e React to Logging changes 2018-05-16 18:09:27 -07:00
John Luo 8da5f55832 React to logging changes 2018-05-15 17:16:49 -07:00
Stephen Halter f8f6f39f55
Wait off the ConnectionClosed token to stop tracking ConnectionCallback (#2574)
- The prior strategy of waiting for the pipe completed callbacks doesn't work
  because blocks are returned to the memory pool after the callbacks are fired.
2018-05-15 12:38:35 -07:00
Stephen Halter c683316253
Generate repetitive TransportConnection FeatureCollection code (#2548) 2018-05-14 17:20:48 -07:00
Stephen Halter 514917b9a8
Wait for input writer to complete before calling OnConnectionClosed (#2566) 2018-05-14 11:51:49 -07:00
Stephen Halter b64c0105b8
Use correct TaskCompletionSource ctor (#2567) 2018-05-11 14:57:20 -07:00
Stephen Halter b040e33b1b Merge branch 'release/2.1' into dev 2018-05-10 23:47:51 -07:00
Stephen Halter da21fc89cf
Handle exception in SocketConnection.Shutdown() (#2562) 2018-05-10 23:39:06 -07:00
Stephen Halter e6a88c1b9c
Relieve response backpressure immediately when closing socket (#2557)
* Relieve response backpressure immediately when closing socket
2018-05-10 17:13:57 -07:00
Stephen Halter f04118fca1 Merge branch 'halter73/merge-2.1-dev' into dev 2018-05-09 17:27:47 -07:00
Pranav K 80fa1d699d Upgrade to netcoreapp2.2
This reverts commit fe9da3c57b.
2018-05-09 16:43:15 -07:00
Ryan Brandenburg fe9da3c57b Revert "Don't touch product repos"
This reverts commit 8e9f05b902.
2018-05-08 16:52:48 -07:00
Ryan Brandenburg 350310aa96 Handle netcoreapp cases 2018-05-08 15:38:20 -07:00
Ryan Brandenburg 7db465dfc2 Upgrade to netcoreapp22 2018-05-08 15:38:20 -07:00
Stephen Halter c8d374af64 Merge branch 'release/2.1' into dev
# Conflicts:
#	build/dependencies.props
#	korebuild-lock.txt
#	src/Kestrel.Transport.Libuv/Internal/LibuvConnectionContext.cs
2018-05-07 15:47:20 -07:00
Stephen Halter 1a313715c8 Merge fixup 2018-05-07 15:00:57 -07:00
Nate McMaster 05d68efbae
Merge branch 'release/2.1.0-rc1' into release/2.1 2018-05-07 14:35:41 -07:00
Stephen Halter 5c17bff55d
Don't throw on FIN from upgraded connections (#2533)
* Allow app to drain request buffer after FIN
2018-05-04 16:21:07 -07:00
Stephen Halter 8b1fbad10e
Don't complete KestrelServer.StopAsync task inline (#2534) 2018-05-03 17:01:36 -07:00
Chris Ross (ASP.NET) b85ab0a7d2 Fix Sending100ContinueDoesNotStartResponse #2507 2018-05-02 09:29:36 -07:00
Chris Ross (ASP.NET) 9798508108 Merge branch 'release/2.1' into dev 2018-05-02 09:22:19 -07:00
Chris Ross (ASP.NET) 74d19cd4e4 Remove netcoreapp2.0 test coverage 2018-05-02 08:54:57 -07:00
David Fowler b23d9b7679
Decouple connection objects from the server (#2535)
- Making progress towards being able to use the connection objects on the client side.
2018-05-01 12:01:24 -07:00
Pavel Krymets de98f8c962
Use TaskCreationOptions.RunContinuationsAsynchronously a lot 2018-04-30 12:56:55 -07:00
Pavel Krymets 2f2a0047a1
React to pool cleanup (#2526) 2018-04-30 08:37:15 -07:00
Mike Harder cc29a503e6
Revert "Enable xUnit diagnostic messages (#2505)" (#2522)
- xUnit diagnostic messages were enabled in #2505 to help identify hung tests
- However, this also enables log messages for non-serializable theory data (https://github.com/aspnet/KestrelHttpServer/issues/2509), which adds noise to logs
- It doesn't seem possible to disable the "non-serializable data" messages but keep the "long-running test" messages
- Converting all tests to serializable theory data is expensive and complicates test code
- The best solution for now is to revert xUnit diagnostic messages to disabled, and re-enable when needed to identify hung tests
2018-04-24 17:24:43 -07:00
Mike Harder cc38a8d1fa
Remove unused theory data (#2519) 2018-04-24 14:47:39 -07:00
Chris Ross (ASP.NET) 075453b180 Fix Sending100ContinueDoesNotStartResponse #2507 2018-04-24 09:07:20 -07:00
Stephen Halter b0e1fa5e30 Fix connection abort 2018-04-23 17:01:49 -07:00
John Luo 1655a8fd6d Disable writing to console if exceptions are expected 2018-04-23 14:48:15 -07:00
Mike Harder f3afbeb2ae
Enable xUnit diagnostic messages (#2505)
- Required to log long-running tests
- Will help investigate https://github.com/aspnet/KestrelHttpServer/issues/2503
2018-04-18 17:14:52 -07:00
Chris Ross (ASP.NET) 333586d735 Clean up flaky MaxRequestBufferSize tests #2225 2018-04-17 09:11:17 -07:00
Stephen Halter 6fd09af374
Improve logging of request drain timeout (#2480) 2018-04-16 11:53:10 -07:00
Ben Adams e30a02cee5 Less StringValue struct copies for header checks (#2488) 2018-04-13 18:21:50 -07:00
John Luo 2d51d23697 Add file logging to functional tests 2018-04-13 14:53:57 -07:00
Stephen Halter 10f3b6863e
Avoid nullref in KestrelEventSource (#2483)
* Avoid nullref in KestrelEventSource
* Improve HostNameIsReachableAttribute to speed up test discovery
2018-04-12 17:29:34 -07:00
Chris Ross (ASP.NET) ee12c4fcf2 Downgrade HTTPs handshake failures to debug #1853 2018-04-12 09:25:44 -07:00
Chris Ross (ASP.NET) c6fa9793eb Make Protocols internal 2018-04-12 08:53:27 -07:00
David Fowler f6b2880369
Flow the ConnectionContext to the SNI callback (#2478) 2018-04-11 15:56:25 -07:00
Ryan Brandenburg 7e5104573e Skip flaky tests 2018-04-10 10:44:18 -07:00
Chris Ross (ASP.NET) 2ee0d6e337 Delay loading the dev cert #2422 2018-04-04 14:54:27 -07:00
Chris Ross (ASP.NET) 953496a970 Merge branch 'release/2.1' into dev 2018-04-04 13:44:56 -07:00
Chris Ross (ASP.NET) 9ea2c50068 Add SNI support #2357 2018-04-04 12:49:29 -07:00
Stephen Halter a92da1b8f4
Fix CopyToAsyncDoesNotCopyBlocks test (#2458) 2018-04-02 18:42:02 -07:00
David Fowler a37fa83aee
Fixed a parser bug found when trying out the array pool (#2450)
- When using the array pool, we get terrible block density and as a result
the header parser was failing.
- This fixes the case where the parser needed to skip 2 blocks at the end
(which is unrealistic). Comparing the current index to the reader index is incorrect
since we may end up at the same index in another segment.
2018-04-01 00:04:02 -07:00
David Fowler 7382198356
Copy connection middleware when using ListenLocalHost (#2447)
- Connection middleware got removed during Clone when using ListenLocalhost
2018-03-31 07:29:35 -07:00
Pavel Krymets 7b3491e11e
Prepare to 0 byte flush change (#2442) 2018-03-29 20:27:54 -07:00
Ryan Brandenburg cc8c140cca Skip flaky test 2018-03-29 08:48:40 -07:00
Stephen Halter a1de323ff4
Make LibuvTransport(Factory) pubternal (#2426) 2018-03-26 11:39:51 -07:00
Stephen Halter 408700698c React to aspnet/BuildTools#611 (#2409) 2018-03-23 12:49:16 -07:00
David Fowler abdcb47b8f
Renames from API review (#2413)
* Renames from API review
- Rename Microsoft.AspNetCore.Protocols.Abstractions to Microsoft.AspNetCore.Connections.Abstractions.
- Renamed IConnectionHandler to IConnectionDispatcher (and related properties and types)
- Added ConnectionHandler and UseConnectionHandler extension method to Connections.Abstractions.
-  Use ActivatorUtilties to create the ConnectionHandler
2018-03-22 21:38:14 -07:00
Stephen Halter 9901f0f3e4
Default to the managed socket transport (#2392) 2018-03-14 11:50:10 -07:00
David Fowler 572627e88c
Handle posting to the libuv thread after StopAsync (#2388)
- Check if the post handle is disposed and noop if it is.
We also catch an ObjectDisposedException because it's an inherent race condition.
2018-03-13 19:37:39 -07:00
Chris Ross (ASP.NET) bfdb48717f Host header format validation 2018-03-13 16:37:03 -07:00
David Fowler 2d8f3d95fe
Feature/clean up proto abstractions (#2383)
- This change aims to clean up the feature interfaces
 used by kestrel and exposed by protocol absractions. It splits out the
 IConnectionTransportFeature into smaller features that may or may
 not be implemented on the connection.
- Added all of the features from Socket.Abstractions
in an attempt to make it go away completely. As a result
the helper methods and extensions have all been added here.
- Change IConnectionHandler to take TransportConnection. This cleans up the interface and makes it more explicit what features are required by Kestrel
2018-03-13 10:27:04 -07:00
David Fowler fa3229b489
Revert "Clean up protocol abstractions (#2381)" (#2382)
This reverts commit ddd0b4c260.
2018-03-13 02:04:42 -07:00
David Fowler ddd0b4c260
Clean up protocol abstractions (#2381)
- This change aims to clean up the feature interfaces
 used by kestrel and exposed by protocol absractions. It splits out the
 IConnectionTransportFeature into smaller features that may or may
 not be implemented on the connection.
- Added all of the features from Socket.Abstractions
in an attempt to make it go away completely. As a result
the helper methods and extensions have all been added here.
- Change IConnectionHandler to take TransportConnection. This cleans up the interface and makes it more explicit what features are required by Kestrel
2018-03-13 01:43:49 -07:00
David Fowler e7d3b0c5f9
Remove KestrelThreadPool abstraction and replaced it with PipeScheduler (#2371) 2018-03-12 14:49:19 -07:00
Pavel Krymets f52771d0e9 Fix MicrosoftExtensionsBuffersTestingSources package version variable 2018-03-08 15:24:20 -08:00
Pavel Krymets fc80c15a65
Update to new corefx (#2369) 2018-03-08 14:23:07 -08:00
David Fowler c88f949c39
Be explicit about PipeScheduler.Inline (#2367) 2018-03-06 09:58:14 -08:00
Stephen Halter b86df651af
Fix Http2ConnectionTests flakiness (#2364)
- The default PipeScheduler got switched from Inline to ThreadPool.
- This switches the Http2ConnectionTests PipeSchedulers back to ThreadPool.
2018-03-05 16:28:35 -08:00
Pavel Krymets 2c108d9ba1
React to pipes in corefx (#2337) 2018-02-28 12:41:51 -08:00
Justin Wyer 83bf2375b3 #2035 Do not await OnCompleted handlers before sending the Response (#2324) 2018-02-25 18:10:04 -07:00
Stephen Halter 06945ba81e Include exceptions when displaying test logs (#2346) 2018-02-24 16:51:57 -08:00
Stephen Halter 0134e56909 Include exceptions when displaying test logs (#2344) 2018-02-23 22:22:00 -08:00
Ben Adams de7e2a2573 Use enum for method rather than string compares (#2294) 2018-02-23 14:29:42 -08:00
Nikita Tsukanov 39951e892e Don't throw in HttpRequestStream.Flush (#2342)
Because read-only streams apparently can have Flush semantics and this behavior is expected by some of built-in stream wrappers (e. g. CryptoStream)

https://github.com/dotnet/corefx/pull/27327#pullrequestreview-98384813
https://github.com/aspnet/KestrelHttpServer/issues/2341
2018-02-23 09:51:09 -08:00
Ben Adams c57784447e Speed up TryGetAsciiString (#1973)
* Widen
* Remove TryGetAsciiStringVectorCheckShifts
* Add Span version to benchmarks
2018-02-22 16:45:31 -08:00
Ben Adams c0f88ebdc1 Faster IFeatureCollection.Get<TFeature> (#2290) 2018-02-22 16:44:38 -08:00
Pavel Krymets d996f6b7fc
Drop Pipelines.Testing dependency that we don't use (#2343) 2018-02-22 10:27:47 -08:00
David Fowler 3fc69dc71f
Updated Streams to override Memory and Span overloads (#2333)
- Also plumbed Memory/Span through Kestrel over ArraySegment.
- Throw synchronously from the HttpRequestStream instead of async in some cases.
2018-02-21 00:00:46 -08:00
David Fowler da6325251e Revert "Remove check for above debug logs"
This reverts commit 38a4560e1c.
2018-02-17 09:40:42 -08:00
David Fowler 38a4560e1c Remove check for above debug logs 2018-02-17 09:39:59 -08:00
Mike Harder 07026cf6db
Re-enable test ParseRequestLineSplitBufferWithoutNewLineDoesNotUpdateConsumed (#2328)
- Addresses #2243
2018-02-16 17:11:27 -08:00
Mike Harder 4afaa386db
Remove unnecessary usings (#2326) 2018-02-16 14:04:16 -08:00
Alessio Franceschelli 14332c5daf Allows Content-Length for 304 Not Modified response (#2321) 2018-02-14 16:01:07 -08:00
Alessio Franceschelli 9341f72b8d Consumes request before closing connection (#2314) 2018-02-14 11:46:13 -08:00
David Fowler 2156030460
Clean up some of protocol abstractions (#2311)
* Clean up some of protocol abstractions
- Renamed PipeConnection to DuplexPipe
- Removed MemoryPool from ConnectionContext
- Work around value tuple issue on net471
2018-02-10 10:39:21 -08:00
Joshua Clark 5dd590e75e Add clearer exception message to HttpResponseStream ODE (#2305) 2018-02-08 17:28:00 -08:00
Ryan Brandenburg 93b10d9060 Shorten logger to prevent longpath 2018-02-02 16:03:01 -08:00
Ryan Brandenburg 9c2158fd37 Skip flaky test 2018-01-31 14:23:14 -08:00
Pavel Krymets 261b5836c1 Merge release/2.1 2018-01-30 09:39:33 -08:00
Pavel Krymets a84095e5c3
React to pipelines changes (#2275) 2018-01-29 14:34:48 -08:00
Stephen Halter 30a68dec49
Fix flakiness in address-in-use test (#2267)
* Increase test timeouts
* Use constant for default test timeout.
2018-01-24 17:42:49 -08:00
Chris Ross a57bc4b3bb
Merge pull request #2272 from aspnet/release/2.1
Mark HTTP/2 as not supported with an AppContext switch override.
2018-01-24 15:34:57 -08:00
Chris Ross (ASP.NET) 4fd4fd9f41 Mark HTTP/2 as not supported with an AppContext switch override. 2018-01-24 15:29:59 -08:00
Ryan Brandenburg 1c0cf15b11 Add messages to Asserts (#2259) 2018-01-23 16:25:03 -08:00
Stephen Halter ee1c5c440c
Fix HeartbeatTests flakiness (#2268) 2018-01-23 10:58:22 -08:00
Stephen Halter 526dfdb332
Switch back to libuv as the default transport (#2257)
* Switch back to libuv as the default transport
2018-01-18 17:25:28 -08:00
Stephen Halter 040ea2e6b4
Fix MockLibuv.OnPostTask (#2260)
Prevents UvWriteReq leaks in LibuvOutputConsumerTests
2018-01-18 15:53:46 -08:00
Stephen Halter cf371a4e74
Disable heartbeat warning when debugger is attached (#2258) 2018-01-16 18:11:11 -08:00
Stephen Halter f4d27e67bb
Improve server shutdown logic (#2247)
Ensure connections abort when they don't close gracefully.
2018-01-16 16:43:45 -08:00
Javier Calvarro Nelson e6bb551018 Adds support for loading the developer certificate from a pfx file
* If we can't find a developer certificate on the certificate store
  we will look for a developer certificate on the file system if a
  password has been specified for the Development certificate.
* We will look at ${APPDATA}/ASP.NET/https/<<AppName>>.pfx for windows
  and fallback to ${HOME}/.aspnet/https/<<AppName>>.pfx
* In case the password wasn't specified through configuration, the file
  is not found on the file system or can't be loaded, we won't
  do anything.
2018-01-12 16:32:06 -08:00
Chris Ross (ASP.NET) 420500e2a9 #2102 Always start the response before draining the request. 2018-01-09 15:59:19 -08:00
Steffen Forkmann 9a8dd6ef12 Allow Content-Length 0 for Websocket-Connection (#2217) 2018-01-09 15:01:09 -08:00
Pavel Krymets 1fa001e7db
React to pipeline changes (#2234)
React to pipeline changes
2018-01-04 09:54:42 -08:00
Chris Ross (ASP.NET) dfaf37cbba Implement config support #1290 #1879 #2016 #2166 #2167 #2188 2017-12-21 09:12:32 -08:00
Chris Ross (ASP.NET) d505d20ba7 Merge Kestrel.Https into Kestrel.Core. Fix sample. 2017-12-18 14:08:14 -08:00
Stephen Halter 9f02935074
Call Listen after Bind in tests (#2221) 2017-12-15 12:45:32 -08:00
BrennanConroy 95dc8824c3
Upgrade package references and react to corefx API changes (#2212) 2017-12-11 09:02:37 -08:00
Stephen Halter 668f8e3b4b
Lazily allocate protocol-specific connection objects (#2190)
* Refactor Http[12]?Connection
2017-12-04 15:59:12 -08:00
David Fowler b8a1c04ffb
Make the HttpParser a singleton (#2203)
- It's completely stateless so make it a singleton
- Fixed tests
2017-12-03 13:27:36 -08:00
Tornhoof 5e9e3a8574 Make sure to add whitespace after the status code even if the reasonphrase is empty (#2184) 2017-11-29 12:30:27 -08:00
Pranav K 76de77746d Eclipse CoreFx package versions to prevent package downgrade warnings 2017-11-22 19:02:22 -08:00
Chris Ross 8e1da5d1f6
Expose WebHostBuilderContext in UseKestrel #1334 (#2177) 2017-11-22 10:19:17 -08:00
Chris Ross (ASP.NET) 89d1862f21 #2139 Add ListenLocalhost and ListenAnyIP 2017-11-16 16:14:17 -08:00
Pranav K 186e9806cd Update samples and tests to target netcoreapp2.1 2017-11-16 14:43:15 -08:00
JanEggers 5b6db93383 fixed minor copy and paste error in mockconnection handler (#2163) 2017-11-15 11:30:35 -08:00
Pavel Krymets 73a37363e1
Migrate to new pipe APIs (#2124) 2017-11-13 15:04:54 -08:00
Stephen Halter 53b4697269
Show cause of connection failure in test (#2155) 2017-11-09 16:56:08 -08:00
Nate McMaster 7d712f58aa Put Libuv.FunctionalTests into a separate test group 2017-11-08 14:01:23 -08:00
Nate McMaster 6c82f78c65 Pin tool and package versions to make builds more repeatable
Part of aspnet/Universe#575
2017-11-01 15:18:49 -07:00
Cesar Blum Silveira 8c4bdbcf6b Add "zero config" HTTPS support using local development certificate. (#2093) 2017-10-25 13:59:09 -07:00
Andrew Stanton-Nurse 1678c54291 Add some tracing and increase timeout for flaky test (#2130) 2017-10-25 11:56:43 -07:00
Andrew Stanton-Nurse 7d205d1093 add event names to Logging messages (#2132) 2017-10-25 11:27:05 -07:00
Cesar Blum Silveira 3fbfba63f8 HTTP/2: implement 100-continue (#2106) 2017-10-18 16:31:50 -07:00
Cesar Blum Silveira d4f263acce Fix typos in project names. 2017-10-16 14:13:05 -07:00
Cesar Blum Silveira 9dfffd14bb HTTP/2: support trailers. 2017-10-12 17:26:20 -07:00
Stephen Halter 66a3c9496a Set SO_REUSEADDR on managed listen sockets on Unix (#2111)
- https://github.com/dotnet/corefx/issues/24562
2017-10-12 12:26:52 -07:00
Cesar Blum Silveira deed6c9780 HTTP/2: add exception error messages and log them. 2017-10-12 11:23:57 -07:00
Stephen Halter fdb4184dbf Sockets transport (#2100)
* Make Sockets the default transport
* Create separate Libuv and Sockets functional test projects
* Fix functional tests that fail with Sockets
* Moved OneToTenThreads test to Kestrel.Transport.Libuv.Tests
* Fix systemd activation tests to use libuv transport
* Dispose Sockets PipeFactory
* Improve Socket's server-side abort handling
* Add explicit rebinding test
2017-10-11 15:14:35 -07:00
Cesar Blum Silveira d46d2ce193 HTTP/2: validate request headers prior to starting new stream. 2017-10-10 13:12:34 -07:00
Nate McMaster e2c22b91af Minor test code changes to resolve xUnit2013 build warning 2017-10-06 08:50:58 -07:00
Cesar Blum Silveira 11ce1395e5 HPACK fixes and improvements. 2017-10-04 12:59:41 -07:00
Stephen Halter 83e2084368 Fix flaky MaxRequestBodySizeTest (#2092)
- Don't attempt to send any data after the request might already be rejected.
2017-10-03 14:34:14 -07:00
Cesar Blum Silveira 1b1137b880 HTTP/2: connection error when receiving frames disallowed by stream states. 2017-10-02 10:24:57 -07:00
Cesar Blum Silveira bb9840a552 HTTP/2: do not ACK PING frames received with ACK set. 2017-09-29 16:40:01 -07:00
Cesar Blum Silveira 551c1ebc0b Configure enabled protocols per endpoint and add HTTP/2 w/ prior knowledge support (#2067). 2017-09-27 10:14:39 -07:00
Cesar Blum Silveira 343ce0f01b HTTP/2: close connection with PROTOCOL_ERROR when a stream depends on itself. 2017-09-22 16:35:12 -07:00
Cesar Blum Silveira e3533885a8 HTTP/2: close connection with PROTOCOL_ERROR when receiving a frame with an even stream ID. 2017-09-21 12:26:09 -07:00
Cesar Blum Silveira a4887f4caf HTTP/2: close connection with PROTOCOL_ERROR when receiving GOAWAY frame with non-zero stream ID. 2017-09-21 11:57:31 -07:00
Cesar Blum Silveira fc56552b2a HTTP/2: close connection on PING frame with non-zero stream ID. 2017-09-21 11:23:15 -07:00
Cesar Blum Silveira 555a881cb7 HTTP/2: close connection with PROTOCOL_ERROR when an unknown frame type is interleaved with headers. 2017-09-21 11:20:52 -07:00
Cesar Blum Silveira e2af346733 HTTP/2: close the connection with PROTOCOL_ERROR when a PUSH_PROMISE frame is received. 2017-09-21 11:20:33 -07:00
Cesar Blum Silveira 9944c0fd43 Fix reading DATA frames with maximum length. 2017-09-20 11:15:31 -07:00
Cesar Blum Silveira 91eb4cd54c Fix flakiness in KeepAliveTimeoutTests.ConnectionKeptAliveBetweenRequests (#1684). 2017-09-18 15:12:13 -07:00
Cesar Blum Silveira a31d1e024c Merge code paths duplicated between HTTP/1.x and HTTP/2 implementations (#2017).
- Most of the shared code is in the HttpProtocol class (former Frame)
- Virtual calls handle protocol-specific things
- Move the ProcessRequestsAsync loop to HttpProtocol
- Implement HTTP/1.x request processing in Http1Connection and HTTP/2
  in Http2Stream, with Http1Connection<T> and Http2Stream<T> subclassing
  those classes in order to handle the generic HttpContext parameter
- Split MessageBody into Http1MessageBody and Http2MessageBody,
  with MessageBody containing shared member variables and methods
2017-09-14 17:35:57 -07:00
Cesar Blum Silveira d28b413390 Add tracing to KeepAliveTimeoutTests.ConnectionKeptAliveBetweenRequests to investigate test failures. 2017-09-14 16:55:44 -07:00
Cesar Blum Silveira da7bc24eec Add request parsing regression tests. 2017-09-13 14:49:45 -07:00
Stephen Halter 1e465e9643 Improve timeout logic 2017-09-08 12:50:01 -07:00
Cesar Blum Silveira 66d8e8198d Re-enable TestKeepAliveTimeout. 2017-09-07 17:24:33 -07:00
Stephen Halter 284367db9f Improve ConnectionLimitMiddleware and connection pipeline building (#2010)
* Improve ConnectionLimitMiddleware and connection pipeline building
* Add IDecrementConcurrentConnectionCountFeature
* Flow connection features from connection middleware
2017-08-30 11:30:20 -07:00
Damir Ainullin 5bf7d3b28a Fix typo in FrameTests (#2033) 2017-08-27 20:11:00 -07:00
David Fowler 7854c0604a Remove the events on ConnectionContext (#2023)
- Use the pipe events and removed the Tasks from ConnectionContext
- Remove OnConnectionClosed from FrameConnection. Since the `FrameConnetion` is a single middleware, not the entire pipeline, we shouldn't need to wait on the connection close there.
- It seems like the callbacks are rooted on the pipe even after they fire. This needs to be investigated in pipelines.
2017-08-26 20:19:55 -07:00