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
2f2a0047a1
React to pool cleanup ( #2526 )
2018-04-30 08:37:15 -07:00
Pavel Krymets
6f2f496c3d
React to splitting memory pool ( #2521 )
2018-04-24 14:11:47 -07:00
Stephen Halter
b0e1fa5e30
Fix connection abort
2018-04-23 17:01:49 -07:00
Stephen Halter
6fd09af374
Improve logging of request drain timeout ( #2480 )
2018-04-16 11:53:10 -07:00
Andrew Stanton-Nurse
3a45136cc4
make IConnectionInherentKeepAliveFeature a boolean feature ( #2496 )
2018-04-16 11:34:06 -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
ca44b4adfc
Moved kestrel specific features into transport abstractions ( #2482 )
2018-04-11 20:23:48 -07:00
David Fowler
f6b2880369
Flow the ConnectionContext to the SNI callback ( #2478 )
2018-04-11 15:56:25 -07:00
Sébastien Ros
e8bb88cb58
Fixing typo ( #2477 )
2018-04-11 14:27:53 -07:00
David Fowler
b030ab7e49
Update Connections.Abstractions.csproj ( #2473 )
2018-04-09 17:55:14 -07:00
David Fowler
4760cce6aa
Remove IConnection ( #2472 )
2018-04-07 18:55:59 -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
Andrei Amialchenia
70ce044778
Corrects spelling of some comments ( #2461 )
2018-04-03 15:55:17 -07:00
Pavel Krymets
ba06c58bcb
Merge release/2.1 into dev ( #2460 )
2018-04-03 10:45:31 -07:00
Stephen Halter
623c27ab01
Dispose SocketAsyncEventArgs when we dispose the Socket ( #2459 )
2018-04-02 19:48:17 -07:00
Pavel Krymets
ba2b883db0
Reaction to *Memory changes ( #2446 )
2018-04-02 16:44:13 -07:00
David Fowler
6b183c5ac0
Use 4K as the minimum segment size ( #2452 )
...
- This normalizes the behavior for kestrel no matter what memory pool implementation is used. The transports should behave the same (ask for 1/2 full blocks) across pool implementations.
- Declare the minimum segment size in KestrelMemoryPool
- Updated the AdaptedPipeline to use MinimumSegmentSize / 2
2018-04-02 16:14:40 -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
Andrew Stanton-Nurse
2c2a8dae01
Merge pull request #2445 from aspnet/release/2.1
...
Add IConnection to Connections.Abstractions (#2444 )
2018-03-30 15:21:48 -07:00
David Fowler
67cb8a0e11
Add IConnection to Connections.Abstractions ( #2444 )
2018-03-30 15:20:31 -07:00
David Fowler
46ab09ca36
Merge branch 'release/2.1' into dev
2018-03-27 02:08:35 -07:00
David Fowler
be04ccac6e
Move DuplexPipe into Kestrel.Core as internal ( #2428 )
2018-03-27 02:02:15 -07:00
Stephen Halter
68ff406862
Merge branch 'release/2.1' into dev
2018-03-26 14:51:21 -07:00
Stephen Halter
a1de323ff4
Make LibuvTransport(Factory) pubternal ( #2426 )
2018-03-26 11:39:51 -07:00
David Fowler
f0629dcbe4
Merge branch 'release/2.1' into dev
2018-03-24 03:14:59 -07:00
David Fowler
6701339835
Expose DefaultConnectionContext POCO ( #2421 )
...
- Made TransportConnecton derive from ConnectionContext
- Less objects, less opinions about what the ConnectionContext is. This diverges from what we do with HttpContext but it seems better overall.
- Made DefaultConnectionContext
- Usable for unit testing
- Usable for benchmarking
2018-03-24 03:12:53 -07:00
John Luo
2dc1858f90
Merge branch 'release/2.1' into dev
2018-03-23 16:02:42 -07:00
John Luo
63fd1e1a4d
Re-enable api check
...
- Disable api check for Transport.Libuv due to breaking change
- Add empty baseline files for unreleased packages
2018-03-23 12:55:06 -07:00
David Fowler
0753f4b4f4
Merged release/2.1
2018-03-22 21:56:29 -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
Nate McMaster
12abcd2f68
Merge branch 'release/2.1' into dev
2018-03-21 22:16:12 -07:00
Nate McMaster
54e538dcb5
Remove dotnet tool install from instructions on using dotnet-dev-certs
2018-03-21 22:10:48 -07:00
Stephen Halter
5fa658c800
Never run continuation inline in SocketAwaitable.OnCompleted ( #2407 )
2018-03-19 17:29:49 -07:00
Ryan Brandenburg
3584e5f2ab
Set 2.0 baselines
2018-03-16 10:50:05 -07:00
Ben Adams
2527face16
Query EndPoints once during reset ( #2398 )
2018-03-15 23:55:51 -07:00
Javier Calvarro Nelson
acf7584d13
Reenable API Check
2018-03-15 21:44:34 -07:00
David Fowler
181dc0de24
React to pipelines changes
2018-03-15 16:58:53 -07:00
David Fowler
d31512528d
Items is now a first class property on ConnectionContext ( #2395 )
...
* Metadata is now a first class property on ConnectionContext
- Make IConnectionMetadata a manatory top level feature on ConnectionContext
- TransportConnection will lazily manifest ConnectionMetadata on first access.
This should avoid allocations since Kestrel isn't using this today.
2018-03-14 20:56:30 -07:00
Stephen Halter
9901f0f3e4
Default to the managed socket transport ( #2392 )
2018-03-14 11:50:10 -07:00
David Fowler
04eef791bc
Added transfer format to Protocol.Abstractions ( #2391 )
2018-03-14 08:16:38 -07:00
Ben Adams
e65e58daf3
Reduce Sockets mainloop Send/Receive statemachine size ( #2376 )
...
* Use Completion to Advance in Error
* Drop ReadResult from statemachine
2018-03-13 23:04:12 -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
Ben Adams
f6108928d8
Pass ReadOnlySequence via in ( #2389 )
...
* Pass ReadOnlySequence via in
2018-03-13 17:54:01 -07:00
Chris Ross (ASP.NET)
bfdb48717f
Host header format validation
2018-03-13 16:37:03 -07:00
David Fowler
bcea8330c4
Clean up some left overs ( #2385 )
2018-03-13 14:10:06 -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
Stephen Halter
2a7bbeb8d7
Revert "React to pipelines changes ( #2378 )"
...
This reverts commit 2421df85d6 .
2018-03-13 00:32:52 -07:00
David Fowler
2421df85d6
React to pipelines changes ( #2378 )
2018-03-12 23:59:04 -07:00
David Fowler
e7d3b0c5f9
Remove KestrelThreadPool abstraction and replaced it with PipeScheduler ( #2371 )
2018-03-12 14:49:19 -07:00
Stephen Halter
71bff00c0d
Use LibuvThread inspired IO Queue in Socket transport ( #2368 )
2018-03-09 15:04:20 -08:00
Pavel Krymets
fc80c15a65
Update to new corefx ( #2369 )
2018-03-08 14:23:07 -08:00
Chris Ross (ASP.NET)
42fbba3520
More detailed request timeout exceptions #2245
2018-03-07 12:23:06 -08:00
Ben Adams
300453396a
Pass StringValues via in ( #2295 )
2018-02-28 19:54:44 -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
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
6728e756b7
Sanitize and centralize exception throws ( #2293 )
...
* Sanitize and centralize exception throws
2018-02-23 09:24:20 -08:00
Ben Adams
6252ffd86a
Flatten exception handling ( #2313 )
...
3 nested try blocks with 3 finallies in same function O_o
2018-02-22 16:46:18 -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
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
brightcr
a72e5db797
Removed code to set response headers - connection and upgrade as it should be set by caller e.g. WebSockets Middleware ( #2329 )
2018-02-19 08:36:28 -08:00
Ben Adams
1f8591184e
Use ReferenceEquals not MulticastDelegate.equals ( #2330 )
...
It never inlines because its such a chunky method
2018-02-17 08:13:15 -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
Redouane Sobaihi
8f25c4e8ca
Include limits default values in intellisense comments. ( #2304 )
2018-02-08 11:37:01 -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
David Fowler
8ea181f088
Use the OnWriterCompleted and OnReaderCompleted events directly. ( #2280 )
2018-01-29 14:27:47 -08:00
David Fowler
50b396cec6
Fixed race in sockets transport ( #2279 )
...
- Based on the changes you made earlier (f4d27e6 ), we trigger OnConnectionClosed before the socket is disposed in the SocketTransport. This moves the call to Output.Complete to happen after and thus fixes the race.
2018-01-29 12:41:45 -08:00
Javier Calvarro Nelson
8280c1b73f
Update Kestrel HTTPS developer certificate error message
2018-01-26 12:55:15 -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
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
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
Chris Ross (ASP.NET)
ad2149f5f0
Change ApplicationProtocol to ReadOnlyMemory<byte> #2182
2018-01-05 09:25:30 -08:00
Stephen Halter
664055fa43
Revert "Change ApplicationProtocol to ReadOnlyMemory<byte> #2182 "
...
This reverts commit 2d3a01d48d .
2018-01-04 16:17:36 -08:00
Chris Ross (ASP.NET)
2d3a01d48d
Change ApplicationProtocol to ReadOnlyMemory<byte> #2182
2018-01-04 15:26:40 -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
Pavel Krymets
3a0a133a02
Remove use of Dangerous* Span APIs and use MemoryMarshal instead ( #2228 )
2017-12-19 11:33:39 -08:00
Chris Ross (ASP.NET)
d505d20ba7
Merge Kestrel.Https into Kestrel.Core. Fix sample.
2017-12-18 14:08:14 -08:00
BrennanConroy
95dc8824c3
Upgrade package references and react to corefx API changes ( #2212 )
2017-12-11 09:02:37 -08:00