Commit Graph

2652 Commits

Author SHA1 Message Date
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
Ryan Brandenburg 7c2c5f2bef EnableApiCheck for Kestrel.Https (#2198) 2017-11-30 18:36:35 -08:00
Pranav K f121d9c688 Split out version specification from ExternalDependency initialization 2017-11-30 16:31:55 -08:00
Nate McMaster 6f096a18af Import dependencies.props when building the metapackage 2017-11-29 13:02:37 -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
Nate McMaster 98de3aa50d
Suppress API check due to reflection load errors (#2185)
[ci skip]
2017-11-28 11:04:08 -08:00
David Fowler ce68427050
Use ALPN support in SSLStream on .NET Core >= 2.1 (#2179)
- Always add the TlsConnectionFeature when the HttpsConnectionAdapter runs
- Implemented the ITlsApplicationProtocolsFeature on the existing TlsConnectionFeature
- Removed Kestrel.Tls
2017-11-27 09:11:39 -08:00
Chris Ross 8e1da5d1f6
Expose WebHostBuilderContext in UseKestrel #1334 (#2177) 2017-11-22 10:19:17 -08:00
Pranav K db8adaf5b7 Remove uses of aspnetcore-ci-dev 2017-11-22 09:28:47 -08:00
David Fowler a1d75df47d Use new Memory<byte> APIs on SocketAsyncEventArgs (#2173)
- This should improve the performance of handling buffers by (eventually)
removing GCHandle churn for Kestrel's already pinned buffers.
- Made the Sockets transport target both netcoreapp2.1 and netstandard2.0 to use new
APIs
- Disable API check for the sockets transport
2017-11-20 11:36:09 -08:00
Stephen Halter 67fc879c54
Null out send buffer less (#2164) 2017-11-17 12:41:35 -08:00
Chris Ross (ASP.NET) 89d1862f21 #2139 Add ListenLocalhost and ListenAnyIP 2017-11-16 16:14:17 -08:00
Justin Kotalik 85ea220c4e
Fixes dotnet.exe string as runtime now reads it (#246) 2017-11-16 15:05:32 -08:00
pan-wang 9e345ad43f
fix build issue (#248) 2017-11-15 21:59:54 -08:00
Javier Calvarro Nelson 6c4427cde5 Added a package for generating HTTPS Certificates on CLI first run scenarios 2017-11-15 18:20:17 -08:00
Andrew Stanton-Nurse 065e9bb57a
Update "temporary" OpenSSL wrapper to support 1.1, and add HTTP/2 sample with docker (#2149) 2017-11-13 15:54:16 -08:00
Pavel Krymets b8c3d26975
Migrate to new pipe APIs (#454) 2017-11-13 15:06:22 -08:00
Pavel Krymets 73a37363e1
Migrate to new pipe APIs (#2124) 2017-11-13 15:04:54 -08:00
Javier Calvarro Nelson eac0e2d03b Add support for detecting when the user cancels the trust prompt and a mode to check for the validity and trust of existing certificates 2017-11-13 10:28:46 -08:00
Justin Kotalik 82e096c9a5
Adds windows auth support (#241) 2017-11-10 17:07:56 -08:00
Justin Kotalik 552163ab77
Adds windows Auth support (#471) 2017-11-10 17:02:31 -08:00
Nate McMaster dae1f1ce78 Merge branch 'rel/2.0.3' into dev 2017-11-08 16:31:07 -08:00
Andrew Stanton-Nurse 89fa8f0fa2 Revert "Open ssl pfx (#2150)"
This reverts commit 41abe63c10.
2017-11-07 15:48:49 -08:00
Tim Seaward 41abe63c10 Open ssl pfx (#2150) 2017-11-07 14:49:02 -08:00
Stephen Halter 238da2742d
Use SocketAsyncEventArgs to improve perf (#2147) 2017-11-07 14:43:14 -08:00
arerlend 70c8133fce allow paths that contain '.' (#125)
* allow paths that contain '.'

* remove InvalidPathWithDotShouldThrowException test
2017-11-07 11:24:52 -08:00
Justin Kotalik 9c065bf107
Remove header serialization in favor of setting IIS response directly. (#465) 2017-11-06 20:28:40 -08:00
Justin Kotalik 6bfcd4a2d4
Remove header serialization in favor of setting IIS response directly. (#228) 2017-11-06 20:28:08 -08:00
George Chakhidze c315b27ad9 Fix the uninitialized g_hWinHttpModule global variable to avoid empty error messages (#225) 2017-11-06 10:16:08 -08:00
David Fowler 08186bb198
Use ipv4 when binding to ANCM port (#470)
- Today we use localhost which binds to both the ipv4 and ipv6 addresses.
ANCM never communicates over ipv6 so it's pointless. This should also properly crash
the process if the ipv4 address fails to bind (which we've seen reports in real applications for).
2017-11-03 10:24:41 -07:00
Nate McMaster 5bbab01ba5 Pin tool and package versions to make builds more repeatable
Part of aspnet/Universe#575
2017-11-01 16:52:00 -07:00
Justin Kotalik a42c8a33b8
Return FINISH_REQUEST on request failure (#469) 2017-11-01 15:48:04 -07: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
Nate McMaster 478c640a68 Pin tool and package versions to make builds more repeatable
Part of aspnet/Universe#575
2017-11-01 15:11:36 -07:00
Nate McMaster bcc10d3012 Pin tool and package versions to make builds more repeatable
Part of aspnet/Universe#575
2017-11-01 14:59:02 -07:00
Nate McMaster d687617a35 Pin tool and package versions to make builds more repeatable
Part of aspnet/Universe#575
2017-11-01 09:29:41 -07:00
Nate McMaster 49b2e22ab3 Pin tool and package versions to make builds more repeatable 2017-11-01 09:09:28 -07:00
Nate McMaster 1836201bee Pin tool and package versions to make build more repeatable 2017-10-31 17:33:49 -07:00
Stephen Halter 0c34523e8b
Log exception after critical accept loop error (#2140) 2017-10-31 11:09:11 -07:00
pan-wang 2cd59f86c4
client disconnect change (#223) 2017-10-30 10:35:56 -07:00
Tom Deseyn eeb49c2af7 Pass setsockopt fd as int (#2136) 2017-10-26 11:40:52 -07:00
Andrew Stanton-Nurse ab78fb0b8c fix build break 2017-10-25 15:22:36 -07:00
Cesar Blum Silveira 8c4bdbcf6b Add "zero config" HTTPS support using local development certificate. (#2093) 2017-10-25 13:59:09 -07:00
Stephen Halter c3ba875d12 Better handle Socket transport accept errors (#2133)
* More reliably swallow accept errors during shutdown
* Handle and log connection reset errors thrown from accept
* Don't trace errors for server-aborted connections
2017-10-25 12:58:00 -07:00
Justin Kotalik 9c5d38a786 Expose VirtualDirectory to In Process mode (#210) 2017-10-25 12:35:47 -07:00
Justin Kotalik 94c895a1bd Parse Path and PathBase from Virtual Directory. (#457) 2017-10-25 12:35:13 -07:00
Andrew Stanton-Nurse 1678c54291 Add some tracing and increase timeout for flaky test (#2130) 2017-10-25 11:56:43 -07:00
Justin Kotalik bd62aa88d7 React to ANCM OnAsyncCompletion changes (#447) 2017-10-25 11:46:55 -07:00
Justin Kotalik 332b108f41 Changes PostCompletion to handle OnAsyncCompletion after managed request has completed. (#212) 2017-10-25 11:46:34 -07:00
Andrew Stanton-Nurse 7d205d1093 add event names to Logging messages (#2132) 2017-10-25 11:27:05 -07:00
pan-wang bfb2c86cda moving export methods to a standalone file (#211) 2017-10-23 16:26:15 -07:00
pan-wang c845a331bb adding forwarding end freb event (#209) 2017-10-23 15:28:48 -07:00
Andrew Stanton-Nurse 30010a103b Fix for #2085 - "The Detaskening" (#2123) 2017-10-23 10:52:02 -07:00
pan-wang 448a2afed8 fix the AV in recycle process, issue #192. (#201)
* fix the AV in recycle process. this is due to we call Recycle again when the background thread exists

* more fixes

* reset hosting mode when all applications got removed
2017-10-21 13:40:45 -07:00
Jass Bagga e46ba481c8 Throw JsonSerializationException from converters (#116) 2017-10-19 13:32:04 -07:00
Jass Bagga 8eefe0fdc2 Add Test Operation (#114)
Addresses #1
2017-10-19 10:46:08 -07:00
Cesar Blum Silveira 3fbfba63f8 HTTP/2: implement 100-continue (#2106) 2017-10-18 16:31:50 -07:00
Stephen Halter c57aa3b2a8 Treat more exceptions from Socket.ReceiveAsync as aborted connections (#2122) 2017-10-18 12:40:37 -07:00
Justin Kotalik 68014a7acd Changes async calls to use OnAsyncComplete event pattern (#184) 2017-10-17 16:06:59 -07:00
Nate McMaster 4bb84cf6d0 Ensure the deb/rpm installers use the same dotnet-core version
- Remove unnecessary tasks and scripts
 - Ensure the KOREBUILD_DOTNET_* environment variables are preserved in the docker build context
 - Other MSBuild cleanup of the targets
2017-10-17 15:46:53 -07:00
pan-wang 7117147a09 adding FREB and more ETW log (#185)
* adding FREB log and more ETW logs

* add missing aspnetcore_event.h file from previous commit

* Update aspnetcore_event.h

change provide id as 0x8000 is used by cors
2017-10-17 14:43:31 -07:00
Javier Calvarro Nelson ff0f112d7b Add HTTPS developer certificate management tool 2017-10-17 11:22:32 -07:00
Stephen Halter 733ac1efab Handle EPIPE like ECONNRESET on Linux (#2112) 2017-10-13 15:07:21 -07:00
Nate McMaster 446de15f0b Add aspnet/Templating to the universe build 2017-10-12 18:02:16 -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
Jass Bagga f1efb29b18 Use ContractResolver instead of forcing to lower case (#112)
Addresses #90
2017-10-11 14:09: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 611b6a23ad Update how PackageReference versions are set
Changes:
 - Remove floating versions
 - Disable myget feeds during a Universe build
 - Use package-specific MSBuild variables. Pattern = `packageId.Pascalize() + "PackageVersion"`, with a few exceptions.
 - Remove myget feeds during build
 - Remove obsolete 'GenerateLineup' targets/tasks
2017-10-09 11:32:21 -07:00
Justin Kotalik f91a941f8d Moves in-process to UseIISIntegration, removes Server.IIS namespace (#443) 2017-10-06 09:52:42 -07:00
pan-wang 746f578c3c Panwang/inproc (#174)
refactoring the code to support inprocess (step 1) with app_offline and Graceful shutdown support
2017-10-04 17:35:11 -07:00
Cesar Blum Silveira 11ce1395e5 HPACK fixes and improvements. 2017-10-04 12:59:41 -07:00
Stephen Halter 156ddfc4e8 Fix EOF handling of TlsStream.ReadAsync (#2094) 2017-10-04 12:38:19 -07:00
Justin Kotalik ea7bc30dd3 Avoid AV if schema change doesn't exist. (#177) 2017-10-03 14:21:39 -07:00
John Luo 37c12d5a64 Add sources
for the final time
2017-10-03 11:46:57 -07:00
John Luo f6fa111333 Another attempt 2017-10-02 19:18:12 -07:00
= 11b25e7c87 Build and pack Runtime Store
- Also add targets to build all metapackage.
2017-10-02 16:43:30 -07:00
Justin Kotalik 9dc69fe361 Adds support for ANCM in process (#425) 2017-10-02 16:01:46 -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
Nate McMaster f3bb4080b0 Use CustomAfterMicrosoftCommonTargets in dotnet-user-secrets 2017-09-26 11:59:29 -07:00
Nate McMaster 3dd029a8b5 Simplify the MSBuild targets in dotnet-watch
Use CustomAfterMicrosoftCommonTargets instead of MSBuildProjectExtensionsPath.
 - No more need to write to obj/$(Project).g.dotnetwatch.targets
 - Works on project that have changed default file locations via BaseIntermediateOutputPath

Simplify DotNetWatch targets
 - Condense to one targets file
 - Simplify dependency chain of targets
 - Build project references in a parallel
2017-09-26 11:59:29 -07:00
Javier Calvarro Nelson eb9417b577 Re-enable API Check 2017-09-25 15:16:53 -07:00
Justin Kotalik f130330db8 Updating Xunit and dotnet versions (#143) 2017-09-25 15:10:31 -07:00
Javier Calvarro Nelson 49237c7651 Add API check baselines for 2.0 2017-09-25 15:03:09 -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
Chris Ross 8a01a1f790 Remove explicit LangVersion (#345) 2017-09-21 15:09:22 -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
Justin Kotalik 2e540341db Adds in-process mode to ANCM. (#152) 2017-09-20 16:09:56 -07:00
Cesar Blum Silveira 9687079723 Check if HTTP/2 frame writer has already been aborted. 2017-09-20 11:15:31 -07:00
Cesar Blum Silveira 9944c0fd43 Fix reading DATA frames with maximum length. 2017-09-20 11:15:31 -07:00
Cesar Blum Silveira c8f9364e3e Expose connection features to HTTP/2 connections. 2017-09-20 11:14:15 -07:00
Chris Ross (ASP.NET) 1e1e89b457 logging/#543 Clear HttpContext.User when the user is disposed. 2017-09-19 15:55:14 -07:00
Pavel Krymets 46dadbb186 Make RegistryPolicyResolver an interface to fix 3d party DI (#275) 2017-09-18 13:43:45 -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
Justin Kotalik 5c2906a7c6 [WIP] Fixing win7 compilation issues. (#141) 2017-09-13 14:40:00 -07:00
pan-wang a732b106f5 Fix websocket close handshake issue and race condition when websocket client disconnect without close handshake (#151) 2017-09-11 18:44:15 -07:00
Justin Kotalik 509ddc6ced Adds ANCM in-process flag. (#144) 2017-09-11 15:30:54 -07:00
Jass Bagga bf5c043de3 Refactor GetPath in JsonPatchDocumentOfT (#107)
Addresses #98
2017-09-11 09:54:29 -07:00
Pavel Krymets ee009982dc Add KeyVault encryption to DataProtection (#273) 2017-09-11 08:51:56 -07:00
Stephen Halter 1e465e9643 Improve timeout logic 2017-09-08 12:50:01 -07:00
Vladimir Sadov f0ade24cf7 Updating to new toolset compiler. (#2043)
* Updating to new toolset compiler.
Now includes ref escaping rules.

* newer version.
2017-09-06 15:52:47 -07:00
Jass Bagga 0f51c56c3f Combine ExpandoObjectAdapter and DictionaryAdapter (#106)
Use JsonDictionaryContract in the DictionaryAdapter and combine with ExpandoObjectAdapter
2017-09-05 16:07:25 -07:00
Luke Latham 6b8449f491 Sortable log files with stdoutLogFile (#131)
Fixes #130
2017-08-30 14:33:30 -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
Ben Adams e7743cbb78 Shorter LibuvThread locks (#2034) 2017-08-29 12:21:45 -07:00
Nate McMaster 82ba6b51ef Use PackageLineup to manage PackageReference versions 2017-08-29 12:08:10 -07:00
Nate McMaster 59290efa6a Use Directory.Build.props/targets 2017-08-29 12:06:04 -07:00
Nate McMaster 1297798546 Use PackageLineup to manage PackageReference versions 2017-08-29 11:38:56 -07:00
Nate McMaster 5cf936d3cd Use Directory.Build.props/targets 2017-08-29 11:36:17 -07:00
Nate McMaster 11377e08f6 Use PackageLineup to manage PackageReference versions 2017-08-29 09:42:24 -07:00
Nate McMaster 5178176219 Use Directory.Build.props/targets 2017-08-29 09:41:12 -07:00
Nate McMaster 9b45e7f118 Use PackageLineup to manage PackageReference versions 2017-08-29 09:16:24 -07:00
Nate McMaster 28acde451e Use Directory.Build.props/targets 2017-08-29 09:14:03 -07:00
Nate McMaster 97b9ff3b33 Use PackageLineup to manage PackageReference versions 2017-08-28 09:46:47 -07:00
David Fowler 9d8556e7c4 Added FrameConnection.OnConnectionClosed back (#2028) 2017-08-26 21:20:06 -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
Ben Adams 09be7c416a Use preparsed version, rather than reparsing (#2021)
Current path is:

 Parser -> HttpVersion Enum -> Get Version String -> Set `HttpVersion` with string -> Convert back to Enum

Can just set the enum directly since its already parsed.

Also using the const rather than strings; where the strings are in code
2017-08-26 17:18:16 -07:00
Ben Adams 088f7e32ae Reset StatusCode & ReasonPhrase directly (#2025) 2017-08-26 17:14:45 -07:00
Nate McMaster 29fd1b3b33 Update README to show 2.0.0 as the latest packages
[ci skip]
2017-08-25 09:13:43 -07:00
Jass Bagga 3d6a8615de Support DynamicObject types (#99)
Addresses #38
2017-08-24 15:11:01 -07:00
Jass Bagga d4b64af0e6 Use DictionaryKeyResolver for ExpandoObjectAdapter (#100)
Addresses #102
2017-08-23 10:30:11 -07:00
David Fowler dc9ed60465 Create the connection logging scope in ConnectionHandler (#2013)
- Instead of doing it on the FrameConnection only. This will
make sure all middleware logs get the connection id as part of their scope.
2017-08-22 14:32:58 -07:00
Ben Adams 11a9b6498d Don't alloc IEnumerable in Reset for ITlsConnectionFeature (#2009)
* Don't alloc IEnumerable for ITlsConnectionFeature
* Delegate to ConnectionFeatures and determine scheme once
2017-08-21 17:01:05 -07:00
David Fowler 2e6687031d Added initial connection middleware pipeline (#2003)
* Added initial connection middleware pipeline
- Implemented IConnectionBuilder on ListenOptions. Kept IConnectionAdapter for now.
- Delay the configure callback for ListenOptions until the server has started.
- Added ConnectionLimitMiddleware and HttpConnectionMiddleware
- Expose ConnectionAborted and ConnectionClosed on ConnectionContext and
IConnectionTransportFeature
- Updated the tests
- Removed IConnectionApplicationFeature
- Moved Application to IConnectionTransportFeature
2017-08-21 12:11:27 -07:00
Nate McMaster a993c2a5ff Use PackageLineup to manage versions (revert revert)
We resolved the issues with PackageLineup and partial graph builds.
This reverts commit 01bf47170f.
2017-08-18 16:31:06 -07:00
Nate McMaster 01bf47170f Revert lineups change until we work out issues with PackageLineup
This reverts commit a2c0410e39.
2017-08-18 10:43:19 -07:00
Nate McMaster a4320ccbda Upgrade to xunit 2.3.0-beta4 2017-08-18 09:55:10 -07:00
Stephen Halter 14f122fb9f Measure Writing in FrameWritingBenchmark 2017-08-17 16:59:24 -07:00
Nate McMaster a2c0410e39 Use PackageLineup to manage package versions 2017-08-17 16:16:40 -07:00
Ben Adams 442ee80039 Less awaits for Reponse Write(Async) 2017-08-17 15:51:22 -07:00
Nate McMaster 87db7cceb6 Stop producing Microsoft.AspNetCore.Server.Kestrel.Tls as a package 2017-08-16 14:56:01 -07:00
Nate McMaster 26f1d4baa3 Use PackageLineup
PackageLineup is a way to manage PackageReference versions across large projects. It removes the version information from the repository and instead pulls the information from an external "lineup" file.
2017-08-16 14:10:43 -07:00
Cesar Blum Silveira 0fafd19ec9 Initial HTTP/2 support.
What works:

- HTTP/2 over TLS1.2 with ALPN
- Request and response flow
  - Headers are compressed and decompressed with HPACK
  - Request body can be read by streams (if present)
  - MVC template app with individual auth works fine
- PRIORITY frames are validated
- RST_STREAM frames are validated and abort streams
- SETTINGS frames are validated and ACKed
- PING frames are validated and ACKed
- GOAWAY frames stop connections
- WINDOW_UPDATE frames are validated
- CONTINUATION frames are sent for large header blocks

What doesn't work yet:

- Flow control in either direction
- It's not possible to encode a single header across more than one frame
  - Affects only a very large header (name and value combined ~16KB long)
- Request trailers
- Response trailers
- Limits and timeouts in `KestrelServerLimits` are not enforced on HTTP/2
- HPACK use is very limited on the send side
  - Literals are not Huffman-encoded
  - Common headers (e.g. "server: Kestrel") are never indexed
- Honoring client settings
- Some error checking is still missing (e.g. validating incoming frame size)
2017-08-16 10:04:44 -07:00
David Fowler 5c775073a4 Initial bedrock refactoring (#1995)
- Added Protocols.Abstractions
 - IConnectionHandler.OnConnection takes an IFeatureCollection instead of
 IConnectionInfo
 - Removed IConnectionContext and IConnectionInformation replaced with
 IConnectionTransportFeature
 - Updated FrameConnectionContext and FrameContext to have the relevant
 state instead of flowing the ConnectionInformation.
 - Updated tests
2017-08-16 00:02:48 -07:00
Pavel Krymets 659fa967a1 Consume corefxlab packages and private build of C# compiler (#1976) 2017-08-07 13:58:19 -07:00
pan-wang 93b37e14db fix websocket connection issue and some memory leak, and add debug print (#129) 2017-08-04 14:51:15 -07:00
Nate McMaster 6584a8b5fd Shorten folder names
Remove the Microsoft.AspNetCore.Server prefix from csproj and their folders. This is required to help us avoid max path issues on Windows.
2017-07-28 11:11:55 -07:00
Nate McMaster d058fe5a39 Fix StackOverflowException caused when creating the watcher on directories from a network share 2017-07-26 17:23:06 -07:00
Pavel Krymets fd6617d101 React to pipeline changes (#1969) 2017-07-26 15:51:06 -07:00
Ryan Brandenburg 5b85b3f6c7 Update VersionPrefix 2017-07-26 15:35:24 -07:00
Stephen Halter 09c92d61d0 Merge branch 'rel/2.0.0' into dev 2017-07-17 14:58:16 -07:00
Stephen Halter f0e572075b Fix FlushAsync when a ConnectionAdapter is configured (#1957)
* Also remove async void everywhere
2017-07-17 14:57:26 -07:00
Nate McMaster 76aa9b26fc Use async main in dotnet-watch 2017-07-13 11:55:07 -07:00
Chris R 5753784ac4 #391 Add back the DisplayName setting 2017-07-13 11:22:38 -07:00
David Fowler 7ebbdad974 Add support for connection scopes if logging is enabled (#1953)
* Add support for connection scopes if logging is enabled
- Don't create a scope if logging isn't on
- Copied the pattern we use in Hosting
2017-07-12 11:45:08 -07:00
Mike Harder 5618fa52d8 Update MSBuild to 15.3.0-* (#320)
- Matches version shipping with Visual Studio 15.3
2017-07-11 17:47:28 -07:00
Cesar Blum Silveira fd1758fdfc Make StopAsync multi-thread safe (#1666). 2017-07-11 14:29:50 -07:00
pan-wang 002c8b9bc9 Adding shutdown http message to support the scenario that ctrl signal is not allowed (#118) 2017-07-10 14:55:15 -07:00
Chris R c8bbbe764a #395 Add baseline and breaking change files 2017-07-10 09:41:31 -07:00
Cesar Blum Silveira eca4bfe6c3 Add response minimum data rate feature. 2017-07-07 22:37:25 -07:00
Nate McMaster 5185ebe45f Fix typo in type name (#1948) 2017-07-07 16:27:20 -07:00
Nate McMaster ec72c255f6 Make HttpsConnectionAdapter pubternal 2017-07-07 14:23:34 -07:00
Nate McMaster a3c157cb61 Validate certificate EKU when it is provided 2017-07-07 11:31:06 -07:00
Chris R 2e2dc67978 #390 Add back AutomaticAuthentication for opt-out. 2017-07-07 11:28:57 -07:00
Nate McMaster bd8a2c8a62 Add XML docs for the public HTTPs APIs shipping in 2.0 (#1942) 2017-07-07 10:40:39 -07:00
Aristarkh Zagorodnikov 00d17dea79 Domain socket handles (#1922)
* UvPipeHandle.Open(IntPtr) and underlying interop
* LibuvConstants.ENOTSUP
* IEndpointInformation.HandleType along with ListenOptions extra ctor and handle type re-specification
* Exception-based auto-detection of socket type in Listener, accept socket creation support for detected handle types in ListenerContext
* Added systemd Unix socket activation tests
2017-07-03 11:11:23 -07:00
Stephen Halter e9ffcdb414 Add feature to optionally disallow synchronous IO (#1919)
* Allow synchronous IO by default
2017-07-03 11:07:17 -07:00
Cesar Blum Silveira 81c2b57dda Increase default request min rate to 240 bytes/second (#1929). 2017-06-30 14:58:44 -07:00
Cesar Blum Silveira 68ba9a9445 Avoid torn reads from _frame.MinReadBodyDataRate in FrameConnection.Tick(). 2017-06-30 12:22:31 -07:00
Cesar Blum Silveira f2061ed716 Rename request body min rate APIs (#1901). 2017-06-29 17:16:34 -07:00
Hao Kung 824051cb28 React to auth 2017-06-29 16:29:00 -07:00
Jass Bagga 61505b88a5 Remove use of GetTempFileName (#313) 2017-06-28 12:11:17 -07:00
Nate McMaster 9b4be69e9d Do not enforce timeouts when the debugger is attached 2017-06-27 16:56:27 -07:00
Ajay Bhargav Baaskaran 379d6d8dcd Added some missed doc comments 2017-06-27 15:02:17 -07:00
John Luo 5155456653 Handle graceful shutdown from ANCM 2017-06-27 13:20:21 -07:00
pan-wang 6b411adbd0 revert the preserve host header change as it failed on Antares (#114) 2017-06-21 16:48:38 -07:00
Stephen Halter ea2f1033d3 Make Transport.Abstractions pubternal (#1911)
* Remove Sockets transport dependency from primary package
* Use deprecated travis images to keep systemd tests running

https://blog.travis-ci.com/2017-06-21-trusty-updates-2017-Q2-launch
2017-06-21 14:58:57 -07:00
Jass Bagga c816bce13a Refactor invalid operation exception handling (#87)
Addresses part of #80
2017-06-21 12:35:31 -07:00
Stephen Halter e1e7c9b810 Wait until the writer is complete to reset RequestBodyPipe (#1902) 2017-06-20 10:56:23 -07:00
Cesar Blum Silveira 892de7d4b8 Merge branch 'rel/2.0.0-preview2' into dev 2017-06-19 16:39:00 -07:00
Cesar Blum Silveira 7afd279a6d Don't pause and resume read timing on upgrade requests (#1904). 2017-06-19 16:37:47 -07:00
Nate McMaster 0dfb8e474a Remove named constraint from SqlCache tool (#310) 2017-06-19 15:10:21 -07:00
Nate McMaster 0742f56dbd Fix minor formatting error in help text for user-secrets 2017-06-17 13:45:20 -07:00
Nate McMaster 5d1a523682 Make ILoggerFactory an optional service on any DI-injected services 2017-06-13 15:15:19 -07:00
Nate McMaster 902783e202 Remove redundant property in dependencies.props 2017-06-13 11:29:31 -07:00
Nate McMaster abf05e2856 Docker: add warning when FileSystemXmlRepository saves a key to non-volume mounted folder 2017-06-13 11:04:52 -07:00
Nate McMaster ddd041b0f1 Remove DefaultKeyServices 2017-06-13 00:34:35 -07:00
pan-wang cee4cf7544 Antares blocks some windows APIs. We have use socket instead of calli… (#109)
* Antares blocks some windows APIs. We have use socket instead of calling GetExtendedTcpTable to check whether the backend is listening on given port.

* Use socket instead of calling GetExtendedTcpTable to check if the backend process listens on given port since Antares blocks couple APIs

* Antares blocks some windows APIs. We have use socket instead of calling GetExtendedTcpTable

* update format

* format change
2017-06-12 19:41:12 -07:00
Stephen Halter a97c08843c Complete IPipeWriter in OutputProducer.Abort() (#1894)
- This prevents MemoryPoolBlocks from leaking when writes fail
2017-06-12 11:12:01 -07:00
Stephen Halter d879518a18 Always complete RequestBodyPipe.Reader (#1893)
* Disable test that leaks blocks in debug builds
* Move some test helpers
2017-06-12 11:11:40 -07:00
Nate McMaster e7fa69d63c Minor cleanup: remove unnecessary conditional compilation line 2017-06-08 16:40:09 -07:00
Stephen Halter 31e5dfdcf0 Merge branch 'rel/2.0.0-preview2' into dev 2017-06-08 15:09:55 -07:00
Stephen Halter f67a105ff4 Update defaults in KestrelServerLimits doc comments (#1891) 2017-06-08 15:08:49 -07:00
Cesar Blum Silveira 48638cb1cd Merge branch 'rel/2.0.0-preview2' into dev 2017-06-08 15:01:34 -07:00
Cesar Blum Silveira fcc04f8c3d Add request body minimum data rate feature (#1874). 2017-06-08 14:36:03 -07:00
Pranav K 3f771ef0bc Remove usage of TaskCache (#1889)
* Remove usage of TaskCache
2017-06-08 13:47:01 -07:00
Nate McMaster f12054dfa7 Update Microsoft.AspNetCore.HtmlAbstractions to .NET Standard 2.0 2017-06-08 12:58:50 -07:00
Pranav K c267d192d6 Remove usage of TaskCache 2017-06-08 11:46:50 -07:00
Chris R 448e6787e2 Fix auth enabled check 2017-06-07 15:43:24 -07:00
Stephen Halter f96c48c08d Add a request body size limit (#1877)
- Implement IHttpMaxRequestBodySizeFeature
2017-06-07 11:48:56 -07:00
Nate McMaster ccef6b261b Lift Microsoft.Extensions.WebEncoders to target .NET Standard 2.0 2017-06-07 09:41:23 -07:00
Stephen Halter 6717f1674f Merge branch 'rel/2.0.0-preview2' into dev 2017-06-06 16:03:42 -07:00
Stephen Halter 89057003b3 Check IHttpMaxRequestBodySizeFeature.IsReadOnly (#379) 2017-06-06 16:02:36 -07:00
Kiran Challa d9531031a8 Updated to netstandard2.0 2017-06-06 12:03:01 -07:00
Chris R c261b37fda #371 Conditionally register auth scheme base on ANCM variable 2017-06-05 14:54:15 -07:00
Hao Kung 0390779084 Revert " #1875 Add Configuration support and tests."
This reverts commit c6e228d176.
2017-06-05 13:48:38 -07:00
Chris R c3ffde286b Clear MaxRequestBodySize 2017-06-05 11:23:08 -07:00
Ajay Bhargav Baaskaran 5d22a42a2a Merge branch 'rel/2.0.0-preview2' into dev 2017-06-02 15:22:48 -07:00
Ajay Bhargav Baaskaran ac3cbb5f8d Generated api check baselines for AzureStorage 2017-06-02 15:16:16 -07:00
Nate McMaster 34ea52068a Add --msbuildprojectextensionspath option to dotnet-watch
In the event someone wants to move the obj/ folder, MSBuild will not be able to locate dotnet-watch's generated targets. dotnet-watch cannot automatically find the obj folder (#244), so this command line switch allows users to point dotnet-watch to the right location.
2017-06-02 15:12:33 -07:00
Chris R c6e228d176 #1875 Add Configuration support and tests. 2017-06-02 12:30:12 -07:00
Nate McMaster fe83e69b1a Add a startup filter which initializes the key ring before the server starts 2017-06-02 11:31:16 -07:00
Nate McMaster 285b973a5c Use IHostingEnvironment to determine application identifier
Reverses changes made in #230
2017-06-02 11:27:25 -07:00
Ajay Bhargav Baaskaran 22ebf68f74 Enable Api check and added breakingchanges json 2017-06-01 17:39:52 -07:00
Cesar Blum Silveira 402b337178 Temporary workaround for GenerateResource task error on VS. 2017-05-30 12:47:36 -07:00
Nate McMaster c343628926 Implement max connection limits
- Added new options to allow configuring the maximum number of concurrent connections and upgraded connections.
- `KestrelServerLimits.MaxConcurrentConnections` defaults unlimited.
- `KestrelServerLimits.MaxConcurrentUpgradedConnections` defaults to unlimited.
- Calls to IHttpUpgradeFeature.UpgradeAsync() will throw when the MaxConcurrentUpgradedConnections limit has been reached.
- Kestrel will close new connections without response when MaxConcurrentConnections is reached.
2017-05-26 12:27:48 -07:00
Hao Kung 273b25fb3a React to forbid changes 2017-05-25 18:37:27 -07:00
Javier Calvarro Nelson 7ac72dd7d8 Add task for generating ssl certificates with MSBuild 2017-05-24 15:55:43 -07:00
John Luo d25dbd572c Target NETStandard2.0 2017-05-24 11:10:13 -07:00
Nate McMaster b706a75e03 Target .NET Standard 2.0
This retargets all data protection libraries to ns2.0. This means .NET
Framework applications will need to upgrade to .NET Framework 4.6.1.
This upgrade makes available API to .NET Core that was previously only
available on .NET Framework, such as encrypting keys at rest with
certificates.

New API for .NET Core users:
- IDataProtectionBuilder.ProtectKeysWithCertificate(string thumbprint)
- CertificateXmlEncryptor
- ICertificateResolver
- DataProtectionProvider
  - .Create(string applicationName, X509Certificate2 certificate)
  - .Create(DirectoryInfo keyDirectory, X509Certificate2 certificate)
  - .Create(DirectoryInfo keyDirectory, Action<IDataProtectionBuilder>
  setupAction, X509Certificate2 certificate

Other minor changes in this commit:
- Fixed samples that were using obsolete logging API
- Remove calls to api-sets, instead using kernel32. .NET Core 2.0 no
longer requires using api-sets as Nano Server now forwards kernel32
calls
- Made minor improvements to the TypeForwardingActivator
- Remove dead code an unused api baselines
- Enable more tests on macOS/Linux that previously only ran on Windows
2017-05-24 09:47:10 -07:00
pan-wang bce531f61a add features: flowing authentication info, hosting environment variable support; fix client disconnect and app_offline issues (#102)
resubmit
2017-05-23 17:25:45 -07:00
John Luo d6a653145d Target NETStandard 2.0 2017-05-22 15:05:12 -07:00
Cesar Blum Silveira 197eb43d8a Read request body concurrent to app execution. 2017-05-22 12:23:02 -07:00
Nate McMaster 390582dcf1 Target .NET Standard 2.0 (#1849) 2017-05-20 10:37:35 -07:00
Kiran Challa e3114dc6a4 Temporarily change tfm to netstandard1.3
Ideally we want to target netstandard2.0 but this conversion is blocked on the issue: https://github.com/dotnet/sdk/issues/1219
2017-05-19 14:00:08 -07:00
Pavel Krymets 34ab089e7b React to scheduler changes (#1846) 2017-05-18 14:49:48 -07:00
Hao Kung 8ed21d56c8 IIS => Auth 2.0 2017-05-17 13:37:30 -07:00
Nate McMaster 7f0319f5dd Throw InvalidOperationException from IHttpUpgradeFeature.UpgradeAsync when request is not upgradable 2017-05-17 11:38:42 -07:00
Pavel Krymets d22f689fd2 Add support to use System.Memory as a package instead of internilized source (#1821) 2017-05-16 16:54:03 -07:00
David Fowler cf16d601d6 Remove synchronous Write APIs (#1838) 2017-05-15 19:04:04 -07:00
Stephen Halter 9ab09dbe48 Change Exception to UvException where possible (#1833) 2017-05-15 11:03:04 -07:00
Stephen Halter 41f1922502 Simplify LibuvConnection.OnRead() (#1828)
* Simplify LibuvConnection.OnRead()

- Fix a null reference that sometimes occurs given an EOF status
2017-05-15 11:02:16 -07:00
David Fowler 1a706113d9 Remove rogue ConfigureAwait (#1830)
- We don't do it anywhere else, I assume this is left over
from older legacy
2017-05-12 18:26:52 -07:00
Cesar Blum Silveira cb1d0f3956 Prevent infinite loop in PipelineExtensions.PeekAsyncAwaited() (#1827). 2017-05-12 16:04:38 -07:00
Cesar Blum Silveira 37f15bdd85 Create Frame in FrameConnection. 2017-05-10 16:48:37 -07:00
David Fowler b9518e3684 Invert the dependency between connection adapters and Frame (#1822)
* Invert the dependency between connection adapters and Frame
- Removed PrepareRequest from IAdaptedConnection and instead added
a feature collection to the ConnectionAdapterContext. This allows features to be set
once by the adapter instead of per request. It's the Frame's job to copy features
from the connection level feature collection into the per request feature collection.
- Set the scheme to "https" based on the presence of ITlsConnectionFeature.
- Always set ITlsConnection feature if the HttpsAdaptedConnection doesn't throw during
the handshake
2017-05-10 15:29:43 -07:00
Pavel Krymets 67322fe8ab Remove unnecessary package references (#177) 2017-05-10 11:48:33 -07:00
Pavel Krymets 7a7dc71164 Remove unnecessary package references (#79) 2017-05-10 11:45:31 -07:00
David Fowler c8b6a2be56 More FrameConnection refactoring (#1820)
* More FrameConnection refactoring
- This change reverts the change to complete the writer with an
exception on abort because of the number of first chance exceptions
that get thrown.
- This change also moves connection logging into FrameConnection instead
of being split between the ConnectionHandler and FrameConnection.
- Fixed issues with LibuvOutputConsumerTests that leak WriteReq since
cancelled writes no longer end the connection.
2017-05-09 17:40:25 -07:00
David Fowler c48113ad80 Refactoring and of FrameConnection and Frame (#1816)
* Refactoring and of FrameConnection and Frame
- Building on top of the last refactoring of FrameConnection, this change aims to clean up
the communication between the Frame and FrameConnection by removing some concepts and
being consistent about the communication between Frame and FrameConnection with or without
connection adapters. Changes include:
- Removing ConnectionLifetimeControl, ISocketOutput, StreamSocketOutput
- Moving more initialization of the frame to FrameConnection after the pipes
are setup
- OutputProducer communicates cancellation via the IPipeWriter instead of the output's IPipeReader.
- Frame always communicates via the pipes and that communications flows through the layers to the transport.
This means that each 1/2 of the adapted pipeline handles closing the right side of the transport at the
right time, propagating exceptions as necessary.
- This is how the flow looks now:
            ->                        ->
[transport]     [connection adapters]     [frame]
            <-                        <-
- Transports need to handle a ConnectionAbortedException on the output as a signal to stop
writing and end the connection. This will no longer try to drain the output but will just stop
writing and end the response immediately.
- Remove frame.Abort when cancellation on Write fails.
- Unify the connection shutdown logic
- Dispose 1/2 initialized connection adapters

#1815
2017-05-08 20:44:13 -07:00
Chris R 129edaec7c Remove IHostingEnvironment dependency (#230) 2017-05-05 17:03:33 -07:00
Jass Bagga 378136f794 Change TFM to netcoreapp2.0 (#78) 2017-05-05 16:12:46 -07:00
Stephen Halter 6e2fdda162 Simplify connection lifetime control flow (#1776)
* Also make IAdaptedConnection disposable
2017-05-05 16:11:01 -07:00
Pavel Krymets 28b479c99a Merge branch 'rel/2.0.0-preview1' into dev 2017-05-05 14:35:41 -07:00
Pavel Krymets a9c165e666 netcoreapp2.0 (#1810) 2017-05-05 14:31:34 -07:00
David Fowler cd1568d7f4 Remove uv_shutdown because FIN is already sent during uv_close (#1811)
* Remove uv_shutdown because FIN is already sent during uv_close

#1808
2017-05-05 12:52:10 -07:00
Chris Ross (ASP.NET) 539a13717e Migrate to netcoreapp2.0 2017-05-05 11:37:10 -07:00
Andrew Stanton-Nurse 319f95db5e netcoreapp20 (#173) 2017-05-04 19:26:46 -07:00
Stephen Halter 557cf29e4a arespr/knownmethods-optimizations cleanup 2017-05-04 12:27:22 -07:00
Stephen Halter f464760bf8 Merge branch 'arespr/knownmethods-optimizations' into dev 2017-05-04 11:44:54 -07:00
David Fowler 9072e0ba26 Added a ConnectionAbortedException to Transport.Abstractions (#1806)
* Added a ConnectionAbortedException to Transport.Abstractions
- To avoid hard coding TaskCanceledException in each transport
- This PR tries to keep compatibility by converting the ConnectionAbortedException
to a TaskCanceledException on exceptions in FrameRequestStream. The downside is that
this conversion causes an async state machine to be created per call to ReadAsync.
CopyToAsync isn't that bad because it's a single long running task.
2017-05-03 19:38:34 -07:00
Mike Harder cfc41d3845 Merge remote-tracking branch 'origin/rel/2.0.0-preview1' into dev 2017-05-03 11:42:10 -07:00
Mike Harder db517803c8 Move System.Data.SqlClient version from csproj to dependencies.props (#293) 2017-05-03 11:30:51 -07:00
Nate McMaster 53caf55116 Remove unnecessary null check.
Resolves #210
2017-05-01 16:25:44 -07:00
David Fowler 35b5d92652 Fix EBUSY errors on uv_loop_close (#1798)
* Fix race where ListenerPrimary is disposed before secondary listeners spin up
- Since we only add listeners to dispatch pipes after receiving the "ack" message
it's possible to have pipes that were created but not acked yet. We might miss
disposal of those pipes if they were never added to the list of _dispatchPipes.

#1761
2017-05-01 14:55:32 -07:00
Nate McMaster 4dc7946cd8 Implement new request trace identifier format
The format:
The trace identifier begins with connection ID and ends with a number that increments with each request per connection.

Example:
Connection ID = xyz
Request 1 = "xyz:00000001"
Request 2 = "xyz:00000002"
...
Request 15 = "xyz:0000000F"
Request 16 = "xyz:00000010"
2017-05-01 09:50:47 -07:00
David Fowler 9a5d6c8879 More shutdown tweaks (#1760)
* More shutdown tweaks
- Added assert if loop has ended before starting the shutdown
sequence.
2017-04-29 01:15:10 -07:00
Stephen Halter 7122b6c4aa Fix flaky heartbeat test (#1794) 2017-04-29 00:42:27 -07:00
David Fowler 749e282102 Prepare for OnReader/WriterCallbacks changes (#1791)
- This change does a few things:

1. It adds the events we will replace with
pipe events to IConnectionContext and IConnectionInformation to get out of
band notifications about pipe completions.

2. It also implements those callbacks
and exposing slight changes we'll need to make once we have them. The idea is
that we can delete/replace these methods once we have the new pipe API and things
will keep working.
2017-04-29 00:41:48 -07:00
Nate McMaster 88f43ffc1a Fix race conditions between CTRL+C and RunAsync in dotnet-watch
Increase timeouts in testing dotnet-run and improve verbosity of test logging
2017-04-28 10:34:18 -07:00
David Fowler cfad8051d5 Merge branch 'rel/2.0.0-preview1' into dev 2017-04-27 21:00:46 -07:00
David Fowler 0e372edb2c Removed UseTransportThread (#1781) 2017-04-27 20:59:50 -07:00
David Fowler 5b62024fc8 * Properly handle FINs and resets in the SocketConnection (#1782)
- FIN from the client shouldn't throw
- Forced close from the server should throw
- Properly wrap connection reset exceptions and other exceptions
in IO exceptions
- This gives kestrel control over when the output closes
- Fixed one test that assumed libuv
- Dispose the connection to yield the reader

Fixes #1774
2017-04-27 17:55:35 -07:00
Stephen Halter 79ea2bb9b3 Quick fix for SslStream ODEs in HttpsAdaptedConnection.PrepareRequest (#1786) 2017-04-27 16:56:07 -07:00
Mike Harder 3a248e22c8 Upgrade System.Data.SqlClient to 4.4.0-* (#287)
- Addresses "SqlClient fails with netcoreapp2.0 on Win7/Server2008" (https://github.com/dotnet/corefx/issues/18406)
- Revert if and when $(CoreFxVersion) is upgraded to 4.4.0-*
2017-04-27 13:37:20 -07:00
David Fowler 0755495ce5 Remove Logging dependency from the http parser (#1780)
* Remove Logging dependency from the http parser
2017-04-27 08:46:08 -07:00
Nate McMaster c2f15fcac3 Move user-facing strings into resource files 2017-04-26 17:22:55 -07:00
Nate McMaster 9464003bda Add wait in ListenerPrimaryTests to avoid race condition with List.Add 2017-04-26 11:03:28 -07:00
Nate McMaster 4dad47eeab Ignore assembly version when activating DataProtection types from string name (#223) 2017-04-25 14:29:26 -07:00
Smit Patel edd7386aa8 Update API Check related files
React to aspnet/BuildTools#238
2017-04-25 08:19:12 -07:00
David Fowler 566a587126 Added ApplicationSchedulingMode to KestrelServerOptions (#1759)
* Added ApplicationSchedulingMode to KestrelServerOptions
- Made default mode Default instead of ThreadPool
2017-04-25 00:37:09 -07:00
jhkimnew 2c5132251b Updated to support IISExpress and add new test cases for the additional environment variables (#93) 2017-04-24 18:17:33 -07:00
David Fowler 9e80fb65bd Removed the wrote after disconnect log (#1747)
- It's not very useful
2017-04-24 17:34:56 -07:00
Stephen Halter f26c31c116 Fix scope id test failures on mac and linux (#1754) 2017-04-24 17:15:41 -07:00
Nate McMaster 39047638cc Add debug logging in address binding when IPv6Any fails 2017-04-24 17:14:43 -07:00
Stephen Halter c22f8f5c59 Fix potential race in LibuvThread.StopAsync (#1756) 2017-04-24 16:47:48 -07:00
David Fowler a98581670e Schedule connection adapter reads on configured thread pool (#1741)
* Schedule connection adapter reads on configured thread pool
- This should speed up connection adapters as we don't block
new reads. It *might* also help some of the test flakiness
2017-04-24 12:19:22 -07:00
David Fowler 7e5604b2f5 Remove async from OnRead (#1746)
- Remove async from fast path.
- Added ApplyBackpressureAsync that pauses and resumes reading
2017-04-24 11:58:52 -07:00
Pavel Krymets df9e48b1f0 Add cancellation support for write async (#1736) 2017-04-24 11:58:08 -07:00
Ajay Bhargav Baaskaran c959795a64 Creating one IAuthenticatedEncryptor per IKey 2017-04-24 10:46:33 -07:00
Nate McMaster 1e61428f8e Lift packages to target .NET Core 2.0 2017-04-24 10:39:27 -07:00
David Fowler 71d2abed06 More clean up of LibuvConnection (#1743)
* More clean up of LibuvConnection
- Use C# 7
- Use Buffer<T>.Pin to get access to the underlying
pointer instead of using TryGetPointer.
2017-04-23 20:45:03 -07:00
David Fowler db44f5b672 Clean up LibuvOutputConsumer (#1744)
* Clean up LibuvOutputConsumer
- Added UvShutdownReq.ShutdownAsync
- Added Debug.Assert in LibuvAwaitable since it should never race.
2017-04-23 20:22:49 -07:00
David Fowler 650a3ccc26 Pass exception to Complete (#1739) 2017-04-21 23:31:59 -07:00
Chris R b7ed993d9d Remove obsolete Azure ForwardedHeaders workaround. (#359) 2017-04-21 19:02:11 -07:00
David Fowler a749939be4 Clean up libuv connection (#1726)
* Clean up libuv connection
- Cancel all pending flushes on the input writer before
disposing the stream handle.
- Complete the pipe before disposing the socket
- Added logging for connection pause/resume.
- Added test
2017-04-21 13:13:05 -07:00
David Fowler feb9d1281e Tweak libuv shutdown sequence (#1735)
* Tweak libuv shutdown sequence
- Increase timeouts for thread and listener shutdowns
- Remove post.Unreference call from AllowStopRude
2017-04-21 13:12:37 -07:00
Nate McMaster ee9feedc27 Improve implementation of IHttpUpgradeFeature
After upgrade has been accepted by the server:
 - Reads to HttpRequest.Body always return 0
 - Writes to HttpResponse.Body always throw
 - The only valid way to communicate is to use the stream returned by IHttpUpgradeFeature.UpgradeAsync()

Also, Kestrel returns HTTP 400 if requests attempt to send a request body along with Connection: Upgrade
2017-04-20 12:42:58 -07:00
David Fowler d1494224f4 Make the tests that use the Heartbeat more deterministic. (#1724)
- Added Start to Heartbeat and made OnHeartbeat internal
- Explicitly call start in tests
2017-04-20 01:41:37 -07:00
Stephen Halter a053ca4758 Move shutdown logic from transport to core (#1707)
* Move shutdown logic from transport to core
* Use weak references to track FrameConnections
2017-04-19 18:08:36 -07:00
Nate McMaster 7a3a731686 Refactor address binding and handle EAFNOSUPPORT
- Simplify KestrelServer by refactoring address binding into a separate class
 - Use strategy pattern to implement address binding for different sceanrios
 - Add fallback from binding 0.0.0.0 if binding to [::] fails (can happen if UvException with EAFNOSUPPORT is thrown)
2017-04-19 15:58:12 -07:00
David Fowler 42d82a507d Make all UvRequest objects normal GC handles (#1698)
* Make all UvRequest objects normal GC handles
- This avoids the cost of using GCHandle.Alloc per operation.
- It *does* mean that we need to explicitly dispose UvRequest objects
after using them (which we did before anyways). This change does
add a few try catch statements to make sure we always dispose the UvRequest
if there are synchronous exceptions.
- This is ~1.5% of the overhead in the benchmarks today
- Keep track of all allocated UvRequest objects with a WeakReference in DEBUG
and assert none are kept around after cleaning up.
- Fixed a leak where we don't clean up UvWriteReq objects when writing
to the named pipe.
2017-04-19 15:16:11 -07:00
Pavel Krymets 88890595d1 Define a constant to workaround corefxlab classes asses modifier issue 2017-04-18 09:01:35 -07:00
Cesar Blum Silveira 801a7c7652 Add copyright header to TransportSocketOptions.cs. 2017-04-17 20:47:29 -07:00
David Fowler e4af3f7e35 Expose a UseTransportThread property on KestrelServerOptions (#1695)
- This property will force Kestrel to use whatever scheduler the transport
used when write and read callbacks are fired. The default value is false so
all calls to user code including connection adapters, and the application function,
and cancellation token callbacks.
- Transports may expose configuration that changes what the transport thread is.
- Removed InternalKestrelServerOptions.cs
- Added a configurable UseSockets overload (even though there are no options yet)
- Remove RequiresDispatch from the IConnectionInformation
2017-04-17 12:58:28 -07:00
David Fowler 85d883456b Remove Reset from IHttpParser (#1700)
* Remove Reset from IHttpParser
- The parser isn't stateful and doesn't need it
2017-04-17 00:37:40 -07:00
David Fowler 31cc1e5018 Fix extra space 2017-04-16 09:25:28 -07:00
David Fowler 6a403d231e Clean up IThreadPool interface (#1696)
- Remove tcs completion methods
2017-04-15 19:04:44 -07:00
Stephen Halter 8cd58b042c Fix tests using Heartbeat 2017-04-14 16:26:27 -07:00
Stephen Halter 7aa7b3e0a9 Track connections until request processing completes
- Paves the way to allow request processing to continue during server shutdown
  even after a client disconnects.
2017-04-14 16:26:27 -07:00
Nate McMaster c08c57f764 Reject HTTP/1.1 requests that do not have a correct Host header
Improves Kestrel to reject requests that don't conform to HTTP spec.

RFC 7230 section 5.4: "A server MUST respond with a 400 (Bad Request)
status code to any HTTP/1.1 request message that lacks a Host header
 field and to any request message that contains more than one Host
 header field or a Host header field with an invalid field-value."

See https://tools.ietf.org/html/rfc7230#section-5.4.

Other changes:

 - update VS code settings to work better with CLI 2.0
 - update tests that were subject to infinite hangs
2017-04-14 15:48:21 -07:00
David Fowler 9e37272f06 Clean up the logic in DoReceive 2017-04-14 01:39:56 -07:00
David Fowler aedd061865 Tweaks to socket transport (#1687)
- Style changes: Sort usings, use more var and C#7
- Added ConfigureAwait to stop dead locks with xunit
- Remove duplicate handling of aborts in the receiver
- Handle the case where output ends before input
2017-04-14 01:14:21 -07:00
Geoff Kizer efa0a48fb1 Add initial Socket transport for Kestrel (#1659)
- This change adds the initial socket transport for Kestrel, all of the tests pass but there are still
a couple of things that aren't done yet.
- The functional tests support running both on both transports but tests aren't running for sockets right now. We need to parameterize these. 
- TimeoutServerTests hard code the libuv transport, this needs to support any transport.
- There is no handling of connection stopping on application shutdown. This is being implemented in kestrel core so transports don't need to handle it. Sockets won't be the default transport until that is the case.
- Performance needs to be looked at, today the SocketTransport doesn't dispatch by default and we're not buffering in kestrel.core, this can hurt as the number of kernel calls map 1:1 with application writes.
2017-04-13 23:10:06 -07:00
John Luo 0723d46ec4 Honor PreferHostingUrls #1575 2017-04-13 18:12:53 -07:00
Pavel Krymets 3045cff3c5 Fix adapted output pipe options (#1682) 2017-04-13 15:54:48 -07:00
Stephen Halter 6036f27f52 Fix deadlocks in startup and shutdown 2017-04-13 12:47:34 -07:00
Andrew Stanton-Nurse e25a2eced8 port dotnet/corefx#17444 to WebSockets (#162) 2017-04-13 09:55:45 -07:00
Nate McMaster ed4a27a827 Remove ListenOptions.Scheme and move IConnectionFilter to .Internal namespace
Add an internal API to ListenOptions to determine if an endpoint is configured to use HTTPS. This is a temporary as the design of connection adapters and configuration will churn before release.
2017-04-13 09:45:26 -07:00
David Fowler 8258d300e2 Small tweaks to timer logic (#1668)
- Avoid null refs in tests by ignoring null IKestrelTrace
- Use a static callback for the timer callback

Fixes #1667
2017-04-13 09:29:43 -07:00
Chris R 8b6d933711 Add ConfigureAwaits to prevent test deadlocks 2017-04-13 07:26:51 -07:00
Chris R e043fa871e Make IServer Start and Stop async 2017-04-12 22:23:05 -07:00
Stephen Halter 11ab602b2f Make timeout logic transport agnostic (#1649)
* Make timeout logic transport agnostic

* PR feedback

* More PR feedback
2017-04-12 16:15:46 -07:00
Ben Adams d29e4d4cf0 Specialized struct generics rather than interface (#1640)
Changed the IHttpParser interface to be generic. This lets use a struct to 
get better code generation and also should allow us to inline calls back into
the handler from the parser.
2017-04-10 19:30:18 -07:00
Ben Adams 2863cca8ca FrameFeatureCollection benchmark (#1643) 2017-04-09 16:02:18 -07:00
Ben Adams fb22629da6 Use Span.IndexOf rather than Contains (#1638)
- Remove Contains method and use IndexOf (which is already vectorized) to look for CR in header values.
2017-04-08 23:45:26 -07:00
John Luo ce3c71b5b3 Set PreferHostingUrls when IIS adding override address 2017-04-08 20:49:26 -07:00
Stephen Halter 58284bde5c Don't dispose WriteReqPool and PipeFactory too soon (#1633) 2017-04-08 01:35:02 -07:00
David Fowler 0fd885e5eb Signal the reader after aborting the connection (#1636)
- This will give it a chance to unwind gracefully before failing
with an invalid request.

Fixes #1632
2017-04-08 01:22:06 -07:00
Pavel Krymets 53b0eea2ec Use writable buffer writer (#1564) 2017-04-07 14:40:10 -07:00
David Fowler 239b691ff5 A few HttpParser changes (#1624)
- Renamed KestrelHttpParser to HttpParser
- Removed the generic virtual dispatch as it turns out to be an
order of magnitude slower than regular virtual dispatch. This change
means we also lose the inlining of Frame.OnStartLine and Frame.OnHeader.
2017-04-07 08:35:53 -07:00
Cesar Blum Silveira f253dbc0c0 Split transport-specific tests and general tests into distinct test projects (#1588).
* Rename EngineTests to LibuvTransportTests.
* Move libuv-specific tests into their own test project.
* Move LibuvOutputConsumerTests.AllocCommitCanBeCalledAfterConnectionClose to new OutputProducerTests class and rename it to WritesNoopAfterConnectionCloses.
* Remove TransportContext from TestServiceContext.
* Make KestrelTests depend on Kestrel.Core only.
* Rename Microsoft.AspNetCore.Server.Kestrel.KestrelTests to Microsoft.AspNetCore.Server.Kestrel.Core.Tests.
* Add Microsoft.AspNetCore.Server.Kestrel.Tests test project for WebHostBuilderKestrelExtensionsTests.
* Increase socket receive timeout in MaxRequestBufferSizeTests to mitigate flakiness.
* Anything using TestServer should be a functional test.
* Move out of LibuvTransportTests tests that are not specific to LibuvTransport.
  - Move to RequestTests:
    - Http11 (rename to Http11KeptAliveByDefault)
    - Http10ContentLength (rename to Http10NotKeptAliveByDefault)
    - Http10KeepAlive
    - Http10KeepAliveNotUsedIfResponseContentLengthNotSet (rename to Http10KeepAliveNotHonoredIfResponseContentLengthNotSet)
    - Http10ContentLengthKeepAlive (rename to Http10KeepAliveHonoredIfResponseContentLengthSet)
    - Expect100ContinueForBody (rename to Expect100ContinueHonored)
    - ZeroContentLengthAssumedOnNonKeepAliveRequestsWithoutContentLengthOrTransferEncodingHeader
    - ConnectionClosesWhenFinReceivedBeforeRequestCompletes (test was actually not marked as Theory, and was incorrect)
    - RequestsCanBeAbortedMidRead
    - RequestHeadersAreResetOnEachRequest
    - UpgradeRequestIsNotKeptAliveOrChunked
    - HeadersAndStreamsAreReused (rename to HeadersAndStreamsAreReusedAcrossRequests)
  - Move to ResponseTests:
    - Http10RequestReceivesHttp11Response (rename to Http11ResponseSentToHttp10Request)
    - ZeroContentLengthSetAutomaticallyAfterNoWrites
    - ZeroContentLengthSetAutomaticallyForNonKeepAliveRequests
    - ZeroContentLengthNotSetAutomaticallyForHeadRequests
    - ZeroContentLengthNotSetAutomaticallyForCertainStatusCodes
    - ConnectionClosedAfter101Response
    - ThrowingResultsIn500Response
    - ThrowingAfterWritingKillsConnection
    - ThrowingAfterPartialWriteKillsConnection
    - ThrowingInOnStartingResultsInFailedWritesAnd500Response
    - ThrowingInOnCompletedIsLoggedAndClosesConnection
    - FailedWritesResultInAbortedRequest
    - NoErrorsLoggedWhenServerEndsConnectionBeforeClient
    - NoResponseSentWhenConnectionIsClosedByServerBeforeClientFinishesSendingRequest
    - ResponseHeadersAreResetOnEachRequest
    - OnStartingCallbacksAreCalledInLastInFirstOutOrder
    - OnCompletedCallbacksAreCalledInLastInFirstOutOrder
  - Remove:
    - RePathEscapeTests (theory data to HttpParsingData)
    - ReDisconnectingClient (what was that testing?)
2017-04-06 19:09:40 -07:00
Pranav K 3b016e6832 Use 4.3.0 version of System.Threading.Tasks.Extensions 2017-04-05 18:03:24 -07:00
John Luo ff3ff939c3 Update WindowsAzure.Storage version (#217)
* Update WindowsAzure.Storage version

* Remove target fallback
2017-04-05 16:28:43 -07:00
Ajay Bhargav Baaskaran 697745c490 [Fixes #218] Set IXmlRepository using ConfigureOptions 2017-04-05 16:08:18 -07:00
Pavel Krymets dd02ba577f Use corefxlab and corefx by source (#1612) 2017-04-05 15:37:45 -07:00
Stephen Halter b40d8b4248 Fix naming of IConnectionInformation.OutputReaderScheduler (#1608) 2017-04-04 21:30:33 -07:00
Cesar Blum Silveira 7ceea5323a Rename namespaces/directories/classes in Kestrel.Core and Transport.Libuv (#1582).
- Put everything in the libuv transport package under `Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.*` namespaces.
- Move stuff in Transport.Libuv/Internal/Http and Transport.Libuv/Internal/Infrastructure to Transport.Libuv/Internal (keep the Networking directory for the libuv wrappers).
- Add `Libuv` prefix to most libuv internal classes.
- Rename `KestrelEngine` to `LibuvTransport`.
- Rename `SocketOutputConsumer` to `LibuvOutputConsumer`.
- Rename `SocketOutputProducer` to `OutputProducer`.
- Fix namespaces in `Microsoft.AspNetCore.Server.Kestrel.Core.`
2017-04-04 13:45:02 -07:00
Pranav K 9b5a26f774 Updating versions to 2.0.0-preview1 2017-04-03 21:41:09 -07:00
Cesar Blum Silveira 6a66323a99 Remove Kestrel.Core dependency from Transport.Libuv (#1584). 2017-04-03 20:54:01 -07:00
Cesar Blum Silveira 6bd0344880 Add Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions project (#1582).
- Changes the design to have one ConnectionHandler per endpoint.
2017-04-03 15:09:03 -07:00
Stephen Halter f285b18f08 Ensure no data is written to a connection after uv_shutdown (#1600) 2017-04-03 14:58:43 -07:00
Pavel Krymets c7113e1c60 Revert "Fetch corefx lab sources and compile them into kestrel (#1581)"
This reverts commit 13ee32b7ab.
2017-04-03 14:08:27 -07:00
Pavel Krymets 13ee32b7ab Fetch corefx lab sources and compile them into kestrel (#1581) 2017-04-03 13:21:17 -07:00
David Fowler f787c5277c Remove unused span (#1599) 2017-04-02 23:53:49 -07:00
David Fowler 547ad80a27 Don't update consumed if we didn't see a new line (#1592)
* Don't update consumed if we didn't see a new line
- The start line parser incorrectly updated the consumed cursor
when it attempted to find new lines across buffers. This change fixes
that and also removes passing the span by reference (which will be illegal).
- Added a unit test
2017-04-02 00:03:06 -07:00
Nate McMaster 83958886cc
Implement IHttpRequestIdentifierFeature on Frame
This feature generates a unique ID per request. This unique ID can be
used in event source and logging.

Also, this change improves KestrelEventSource by moving it back into the
Kestrel.Core assembly and de-coupling from the Libuv transport. This
adds two new events, RequestStart and RequestStop, which can be used to
identify the correlation between connection ID and request trace
identifier.
2017-03-31 16:54:35 -07:00
Cesar Blum Silveira 6b9d54265f Call ProduceEnd() before consuming request body if response has already started (#1530). 2017-03-31 11:08:55 -07:00
David Fowler b0bd5475cd More decoupling (#1572)
- Remove Libuv and Hosting dependency from Kestrel.Core
- Kestrel.Https and Kestrel.Core depend on Hosting.Abstractions

* wip

* Added separate ServerAddressesFeature

* Review feedback
- Added TlsConnectionFeature to Https
2017-03-30 20:14:50 -07:00
David Fowler c3ad007b0d Fixed regression caused by transport refactoring (#1573)
* Fixed regression caused by transport refactoring
- Libuv should not close the socket until it has started it. Before this was enforced
by calling ReadStart before starting the frame but the flow has changed. Now that closing the connection
is communicated via the pipe, we need to start consuming writes after calling ReadStart.
- Renamed OnSocketClosed to Close and moved dispose and logging into that method.

Fixes #1571
2017-03-30 09:33:28 -07:00
Cesar Blum Silveira 1be31ae2ce Throw if UseUrls specifies HTTPS or path base (#1519). 2017-03-29 20:23:51 -07:00
Cesar Blum Silveira e64bffd25c Remove deprecated property KestrelServerOptions.MaxRequestBufferSize (#1027). 2017-03-29 20:15:08 -07:00
Nate McMaster 6b6a8347cc
Add Connection as a primary request header 2017-03-29 16:40:50 -07:00
Nate McMaster 686829d226
Add tests for WritableBuffer extensions and rename WriteAscii => WriteAsciiNoValidation 2017-03-29 16:10:31 -07:00
Stephen Halter 7f785588ef Transport agnostic kestrel refactoring (#1551)
- Add transport interfaces
- Create separate Core and Libuv projects

#828
2017-03-29 16:06:05 -07:00
Hao Kung 0e6db5af0f Bump to netstandard1.1 for options 2017-03-29 14:32:35 -07:00
Chris R d6322872ed #348 Implement IISHostingStartup 2017-03-27 15:54:34 -07:00
Pranav K f66753cc3c Remove net451 as a cross-compile target 2017-03-24 16:01:41 -07:00
Pranav K d6d13a0986 Remove net451 as a cross-compile target 2017-03-24 07:44:11 -07:00
Pranav K 91406009d3 Remove net451 as a cross-compile target 2017-03-23 17:20:12 -07:00
Pranav K 20dcccd847 Revert "Revert "Change compilation targets.""
This reverts commit 5f76cd272a.
2017-03-23 09:08:05 -07:00
David Fowler f090b7a9c6 React to corefxlab changes (#1539)
- Removed use of TryRead and follow the pin and use pattern in the other APIs

https://github.com/dotnet/corefxlab/pull/1348
2017-03-23 06:52:24 -07:00
N. Taylor Mullen 5f76cd272a Revert "Change compilation targets."
This reverts commit 42d34e4559.
2017-03-22 17:22:19 -07:00
Pranav K 42d34e4559 Change compilation targets.
* Remove net451 as a compilation target
* Upgrade to netcoreapp2.0
2017-03-22 14:37:25 -07:00
Nate McMaster f246dd3502 Upgrade test projects to .NET Core 2.0 2017-03-22 11:56:27 -07:00
Nate McMaster 13219fafa9 Remove code that moved into CommandLineUtils 2017-03-22 10:19:19 -07:00
Doug Bunting 55507de7dd Disable API Check in a project with untracked breaking changes 2017-03-22 08:33:14 -07:00
David Fowler c65734667a Optimize calls into StreamSocketOuput to WriteFast further (#1538)
* Optimize calls into StreamSocketOuput to WriteFast further
- Added overloads to array, offset, length to avoid implicit conversions to
ReadOnlySpan.
- Use similar optimizations for multi buffer writes for strings and ints
- Use ref locals in multi write instead of pointers and pinning
2017-03-22 02:16:28 -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
Pranav K 52911cd3f1 Change compilation targets.
* Remove net451 as a compilation target
* Upgrade to netcoreapp2.0
2017-03-21 16:41:15 -07:00
Nate McMaster 849319bcff
React to changes in command line utils 2017-03-21 16:31:29 -07:00
Nate McMaster 1f8e8fae5d
React to aspnet/Common#205 2017-03-21 15:48:04 -07:00
David Fowler 5fad3c7a3e Remove async from WriteAsync in SocketOutput (#1531)
- SocketOutput.WriteAsync will be synchronous for a majority of cases
(until you reach the limit) so no need to pay the async state machine
cost until then.
2017-03-21 09:52:24 -07:00
Ben Adams 32d6b42964 Respond to corefxlab rename (build break) (#1529) 2017-03-21 08:43:49 -07:00
Ben Adams 24ed93288e Use for rather than foreach on List (#1523)
List enumerator is full fat
2017-03-21 03:26:58 -07:00
David Fowler f546f16356 Forgot to WriteFast in SocketOutput (#1527) 2017-03-21 03:21:31 -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 39819d6708 Added fast path for single memory ReadableBuffer (#1512)
* Special case single buffer
* Added fast path for single span buffers in UvWriteReq
2017-03-20 00:11:41 -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 f1e0143d51 React to corefxlab changes (#1510)
* React to latest CoreFxLab changes
2017-03-19 01:31:11 -07:00
David Fowler f6e5e74d95 Update packages (#1509)
* Update packages
* React to API changes in corefxlab
2017-03-18 15:42:01 -07:00
Justin Van Patten 6d2001c67a Remove explicit static constructors (#1483)
Explicit static cctors cause the C# compiler to not mark types as
beforefieldinit, which means the JIT will add checks to each static
method and instance constructor of the type to make sure that the static
constructor was previously called.
2017-03-18 12:42:31 -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
David Fowler f4c6e0b151 Feedback from SocketOutput port (#1502)
- Fix naming convention in LibuvAwaitable
- Remove case statement in SocketOutput
2017-03-18 01:21:31 -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 4abe714f2b Consolidate dependency versions into one file and remove workarounds 2017-03-15 19:29:21 -07:00
Ajay Bhargav Baaskaran 1ce7fc7245 Use TryAdd to add services 2017-03-15 17:57:44 -07:00
Nate McMaster 832cbdcee8 Unify dependency versions to one file 2017-03-15 15:11:25 -07:00
Nate McMaster de30243c11 Unify dependency versions to one file and remove workarounds 2017-03-15 15:06:58 -07:00
Nate McMaster e3ca1d1a2c Unify dependency versions to one file and remove workarounds 2017-03-15 13:47:45 -07:00
Nate McMaster 6a61e10a4b Unify dependency versions and remove workarounds 2017-03-15 10:47:41 -07:00
Cesar Blum Silveira 632780dd16 Remove splitting of path and path base (#1050). 2017-03-15 09:57:33 -07:00
Nate McMaster d1d656d5b8 Add samples and update READMEs (#275) 2017-03-15 09:29:05 -07:00
Ajay Bhargav Baaskaran cde3b96aa7 [Fixes #134] Refactored DI support
- Refactored builder extensions and service collection extensions
- Refactored Settings/Configuration/Descriptor
- Removed ConfigurationCommon/AuthenticatedEncryptorConfigurationExtensions
- Added IAuthenticatedEncryptorFactory and implementations
- Refactored IKey to have Descriptor instead of CreateEncryptorInstance()
- Handled Repository/Encryptor special logic
- Added samples
- Updated tests
2017-03-14 19:58:46 -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 8c32731282 Update dependencies and build version to 1.2.0
Unify dependencies
Remove duplcated code from CommandLineUtils
Update appveyor image
2017-03-14 12:22:25 -07:00
Andrew Stanton-Nurse cb150de808 port dotnet/corefx#17049 (#151) 2017-03-14 12:04:59 -07:00
Nate McMaster 64f84811bd Fix incorrect debug asserts 2017-03-14 11:45:04 -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
Nate McMaster 1bfa9c4b4b
Make it possible to detect that a process is running inside dotnet-watch by setting 'DOTNET_WATCH=1' 2017-03-13 13:00:22 -07:00
Cesar Blum Silveira 49f09d5a25 Log rejected request targets. 2017-03-12 18:37:08 -07:00
Justin Van Patten b612da4e6c Avoid an unnecessary closure allocation in ListenerSecondary (#1485)
The tcs is being passed as the state, so use it from the state instead
of closing over it.
2017-03-12 12:20:41 -07:00
Justin Van Patten a26f96237b Specify StringComparison when calling string.StartsWith (#1484)
StartsWith does a culture-sensitive comparison by default. An ordinal
comparison makes more sense here.
2017-03-11 22:31:42 -08:00
arespr d755f6183a Merge branch 'dev' into knownmethods-optimizations 2017-03-11 22:50:58 +01:00
Nate McMaster c97dd446eb
Simplify console output and fix color output on CMD 2017-03-10 09:18:38 -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
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
David Fowler dbcf34388e Remove dependency on Utf8String (#1466)
- Also remove System.IO.Pipelines.Text.Primitives
2017-03-08 12:38:55 -08:00
Thierry Fleury 42d0d40b36 [Fixes #61] Move must keep object reference 2017-03-08 12:26:10 -08:00
arespr 0bca84a268 Add HttpUtilities to CodeGenerator 2017-03-08 19:17:12 +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 1f0bb14546 Clean up left over code from port to pipelines (#1465)
- Remove unused methods in PipelineExtensions
- Remove AwaitableThreadPool since we dispatch reads
2017-03-08 08:43:11 -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
Nate McMaster beb53221c3
Merge branch 'rel/1.0.0' into dev 2017-03-07 12:52:07 -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
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 da763b4873 Use ascii decoding routine that disallows null chars (#1445)
* Use ascii decoding routine that disallows null chars
- GetAsciiString() in newer corefxlab builds allows 0 (which is a valid
ascii char). To avoid future regressions, GetAsciiStringNonNullCharacters()
was added and used in place of GetAsciiString() when interpreting the
request line and headers
- Make GetAsciiStringNonNullCharacters return empty instead of null
2017-03-04 11:26:32 -08:00
David Fowler 20f75605ca Workaround rogue System.IO.Pipelines on nuget.org 2017-03-03 22:35:41 -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
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
arespr ac5fd3f29f PR feetback 2017-03-02 22:45: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
David Fowler ca31627a5e Parser clean up (#1419)
- Remove stackalloc
- Remove extra Move in ParseRequestLine
2017-03-01 22:33:37 -08:00
Pavel Krymets f2a00da811 Loop over bytes inside states of parser state machine (#1417) 2017-03-01 18:18:34 -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
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 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
Stephen Halter 39b536b402 Don't treat canceled reads as end of input 2017-02-23 10:05:53 -08:00
Stephen Halter 7d3bcd2bf8 Avoid unobserved exceptions
- Don't throw from AdaptedPipeline.ReadInputAsync
- Watch for unobserved exceptions in SampleApp
2017-02-22 16:12:20 -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 824ef2c937 Input Pipeline migration (#1277) 2017-02-17 15:38:13 -08:00
Nate McMaster ec7df544ed Use latest LTS packages 2017-02-16 13:46:11 -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
Nate McMaster 7298fb23a5 Downgrade to stable packages 2017-02-15 12:30:04 -08:00
Nate McMaster 8051f3671b
Downgrade to stable packages 2017-02-14 16:15:33 -08:00
Nate McMaster 89a63f5885
Downgrade to stable packages 2017-02-14 16:15:28 -08:00
Nate McMaster 0c714cf61b
Downgrade to stable packages 2017-02-14 16:15:27 -08:00
Doug Bunting 8ae481c9f0 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
  - except Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests; will skip that another way (later)

Also fix line endings in project files; unable to proceeed otherwise
2017-02-14 12:30:06 -08:00
Nate McMaster 60a06b2e07 Update README.md
[ci skip]
2017-02-14 12:11:39 -08:00
jhkimnew 135aa12529 Remove MAX_PATH buffersize to support long file path (#69)
This is already reviewed by Pan.
2017-02-10 14:35:51 -08:00
Nate McMaster 5a444fa75c Cleanup project files and workaround, run tests on .NET Core 1.1 2017-02-10 08:26:17 -08:00
Stephen Halter e9e0cf7325 Prevent ODE when ReadStart/Stop() is queued after disposal 2017-02-07 00:26:05 -08:00
Stephen Halter 5124adf450 Better report Kestrel crashing errors 2017-02-07 00:26:00 -08:00
Nate McMaster 7019c55219 Fix package path issues 2017-02-03 10:15:28 -08:00
Nate McMaster 330b812c78 Upgrade to VS 2017 2017-02-02 16:25:28 -08:00
John Luo 0e1dd78771 Upgrade to VS 2017 2017-02-02 13:55:14 -08:00
Nate McMaster 81acef9238
Upgrade to VS 2017 2017-02-01 13:24:34 -08:00
Nate McMaster 0668a2a52e Upgrade to VS 2017 2017-01-31 16:51:24 -08:00
Cesar Blum Silveira 1a2c438899 Upgrade to RC.3 2017-01-31 16:23:23 -08:00
Jass Bagga 48ab68bd2a Upgrade to msbuild
Addresses #57
2017-01-30 15:58:19 -08:00
Kiran Challa b240929cf4 Merge branch 'rel/1.1.1' into dev
Conflicts:
	NuGet.config
	src/Microsoft.AspNetCore.JsonPatch/project.json
	test/Microsoft.AspNetCore.JsonPatch.Test/project.json
2017-01-26 14:02:29 -08:00
Kiran Challa 7a487a880a [Fixes #48] Regression: List add must support adding items where index is same as count of elements 2017-01-26 13:48:12 -08:00
Ben Adams ecca980c91 Implement IHeaderDictionary.ContentLength 2017-01-24 14:55:48 -08:00
pan-wang 044648a213 fixing graceful shutdown on Win7 and IISExpress 2017-01-23 15:33:17 -08:00
Ben Adams cac6ade7c9 Implement Stream Flush+FlushAsync fully
Streams should pass through the flush and not assume the underlying
Stream's Flush behaviour
2017-01-23 13:51:57 +00:00
Nate McMaster fac6b44bbd Upgrade to RC.3 2017-01-20 11:08:47 -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
Stephen Halter c4762cdfd5 Better handle OnHeartbeat in 32-bit environments
- Prevent potential overflow when casting a long to an IntPtr
2017-01-17 16:57:52 -08:00
pan-wang 66b98a1c04 update 502.5 error page 2017-01-17 15:44:15 -08:00
pan-wang 87f808cc9d fixing the AV for graceful shutdown on Win7, set forwardWindowsAuthToken default to true and other minor issues 2017-01-17 15:44:15 -08:00
Nate McMaster 6e246fa583
Prepare for 1.0.0 release. Pin versions of tools and SDK 2017-01-17 12:06:38 -08:00
Nate McMaster e481df3d49 Add better errors, fix help output text, and add 'dotnet watch --list' to help us diagnose issues
Fixes #252 - help output shown twice in dotnet-watch
Fixes #250 - add dotnet-watch --list. Prints a list of all files discovered
Fixes #249 - better error message when GenerateWatchList fails
2017-01-17 11:43:44 -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
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
jhkimnew 839437ef8c Fixing issue #44 (#56) 2017-01-06 11:08:43 -08:00
pan-wang a4963aa6da fix issue #50 app_offline.htm is case sensitive (#54) 2017-01-04 15:57:09 -08:00
Nate McMaster 0f276780de Remove Microsoft.AspNetCore.DataProtection.Sources package 2017-01-04 15:24:13 -08:00
Kiran Challa e8452821b9 [Fixes #50] JsonPatchDocument.Replace() yields invalid path when [JsonProperty] is used (1.1.0) 2017-01-03 15:15:01 -08:00
Nate McMaster cc84b8402d Fix help text for dotnet-user-secrets-set to show the correct Windows example 2017-01-03 11:16:34 -08:00
Cesar Blum Silveira b46e48fe01 Merge branch 'yves57/stringvalues-for' into dev 2016-12-28 14:44:46 -08:00
David Rovani 5966024d01 Fixed minor spelling error in comments. 2016-12-23 09:33:39 -06:00
Pranav K 5b8f7c2b2b Updating to 4.4 CoreFx packages 2016-12-21 22:22:13 -08:00
Cesar Blum Silveira b41c4078bd Abort connections not closed during shutdown (#1112). 2016-12-20 14:44:34 -08:00
Pavel Krymets 8b44e8e382 Prevent closure allocations in OnHeartbeat (#1261) 2016-12-16 14:42:30 -08:00
Nate McMaster d55948cae3
React to changes in KoreBuild 2016-12-14 19:30:44 -08:00
Pranav K 4b9276bac2 Updating to 4.4 CoreFx packages 2016-12-14 14:47:32 -08:00
Pranav K 8046dcc0f2 Updating to 4.4 CoreFx packages 2016-12-14 14:47:29 -08:00
Pranav K f6eb86be78 Updating to 4.4 CoreFx packages 2016-12-14 14:47:29 -08:00
Pranav K c8c2dfaad9 Updating to 4.4 CoreFx packages 2016-12-14 14:47:29 -08:00
Pranav K b3afbc79d2 Updating to 4.4 CoreFx packages 2016-12-14 14:47:27 -08:00
Nate McMaster fd632ec654 Cleanup msbuild layout
Use one props file for whole repo, avoiding layers of dir.props
2016-12-14 09:13:00 -08:00
Cesar Blum Silveira cedbe76f52 Abort request on client FIN (#1139). 2016-12-13 12:03:33 -08:00
Nate McMaster 08e3e0b77f Cleanup dotnet-watch testing 2016-12-13 09:59:11 -08:00
Nate McMaster 44c8920412 Add RepositoryUrl and RepositoryType properties 2016-12-12 17:40:07 -08:00
Nate McMaster 346dfe8fe0 Remove dependency on Microsoft.DotNet.Cli.Utils from test project 2016-12-12 16:40:01 -08:00
Nate McMaster 67c540051b Update README.md 2016-12-12 16:24:15 -08:00
Nate McMaster d4313dae3b Use props from Korebuild 2016-12-12 16:21:18 -08:00
Nate McMaster 902ff8dce3 Build with MSBuild 2016-12-12 15:55:00 -08:00
Cesar Blum Silveira defcbdb907 Revert "Add MaxRequestBodySize limit (#478)."
This reverts commit e53a87be9c.
2016-12-09 16:30:12 -08:00
John Luo 859816bb53 Update ParseContentLength to remove unnecessary casting and unsafe 2016-12-09 11:39:25 -08:00
John Luo 4da06e8acd Move Int64 parsing logic to HttpAbstractions 2016-12-08 17:22:21 -08:00
Nate McMaster d48f2abc7c Use MSBuild project extensions instead of importing the users project
Implicit imports prevents using <Import> on a project file that has the Sdk attribute. This change instead generates a file in the MSBuildProjectExtensionsPath to inject targets require to find the UserSecretsId property in a project.

Resolves #242
2016-12-08 09:55:22 -08:00
Nate McMaster f277816556
Update packaging for tools
Move targets files in to 'toolassets'. The 'tools' folder has conventions in NuGet that we don't want applied to these packages.

Downgrade to Microsoft.NETCore.App 1.0.0

Add 'prefercliruntime' package.
2016-12-07 09:37:34 -08:00
Cesar Blum Silveira e53a87be9c Add MaxRequestBodySize limit (#478). 2016-12-05 17:06:57 -08:00
Nate McMaster 17da5242e0
Create console reporter API
The reporter API breaks down complex formatter in to composable compontents. Adds 'ReporterBuilder' and 'FormatterBuilder' as syntax sugar for creating reporters with complex formatting rules

Changes in dotnet-watch
 - Remove dependency on Microsoft.Extensions.Logging and instead use IReporter for console output
 - Only use color output when stdout and stderr are not being redirected
 - Make the default output less noisy

Changes in dotnet-user-secrets
 - Remove dependency on Microsoft.Extensions.Logging to use IReporter

Changes in dotnet-sql-cache
 - Remove dependency on Microsoft.Extensions.Logging to use IReporter
 - Add --verbose option
2016-11-30 14:51:08 -08:00
Yves57 dbaa01830b Replace 'foreach' by 'for' in StringValues (faster) 2016-11-29 22:33:18 +01:00
Cesar Blum Silveira f918279873 Merge branch 'khellang/proxy-authenticate-typo' into dev 2016-11-29 10:32:16 -08:00
Chris R 53e5c3d56c #1001 don't log stack traces for localhost bind failures. 2016-11-28 16:35:14 -08:00
Kristian Hellang e316898c9f Added missing copyright header 2016-11-23 09:17:03 +01:00
Nate McMaster e0f85971a3
Add --version options to dotnet-watch and dotnet-sql-cache 2016-11-22 17:15:21 -08:00
Pavel Krymets e55c62444b Refactor FrameTests and rename SocketInput SocketOutput properties (#1229) 2016-11-22 16:36:36 -08:00
Ben Adams 2bf5a966cd Fast path and inline HttpVersion.set 2016-11-22 15:26:38 -08:00
Kristian Hellang a0f5585d3f Fixed typo; Proxy-Authenticate #1223 2016-11-22 13:08:17 +01:00
Nate McMaster 4a64ef857c
Remove dependency on Microsoft.DotNet.Cli.Utils from dotnet-user-secrets 2016-11-21 19:14:36 -08:00
Ben Adams 2eba4017c1 MemoryPoolIterator feedback 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 2011a27bde Use ternary op rather than lazy and 2016-11-21 22:48:57 +00:00
Ben Adams 8ce47fb8b6 Move perf, share code 2016-11-21 22:48:57 +00:00
Ben Adams 5041d6c291 wasLastBlock adjustments 2016-11-21 22:48:57 +00:00
Ben Adams 7ab4442392 Feedback + Cleanup 2016-11-21 22:48:57 +00:00
Ben Adams 4cdcca212e Don't inline slow paths 2016-11-21 22:48:57 +00:00
Ben Adams 12e2f30577 MemoryPoolIterator byref structs 2016-11-21 22:48:57 +00:00
Ben Adams 53f361160e MemoryPoolIterator fast paths 2016-11-21 22:48:57 +00:00
Ben Adams 8bcbfb9971 Only LocateFirstFoundByte once 2016-11-21 22:48:57 +00:00
Ben Adams 28a21fa7a9 Move vectors closer to use 2016-11-21 22:48:57 +00:00
Ben Adams 00a63537cf And=> xor, powerOfTwoToHighByte to const 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 972d978d11 Swap for vector loop unroll detection 2016-11-21 22:48:57 +00:00
Ben Adams 9eb01d1c57 Reduce Vector register pressure by not overlapping 2016-11-21 22:48:57 +00:00
Ben Adams 4f7977d440 Use PowerOfTwoToHighByte for FindFirstEqualByte 2016-11-21 22:48:57 +00:00
Nate McMaster 40d4670463
Abstract the console 2016-11-21 11:08:56 -08:00
Pranav K 4faf89030c Pinning versions for 1.1.0 release 2016-11-18 12:12:17 -08:00
Nate McMaster 33597c7011
Merge branch 'rel/1.0.0-msbuild2' into feature/msbuild 2016-11-17 15:44:32 -08:00
Nate McMaster c8870a80a7
Remove Microsoft.DotNet.Cli.Utils from nuspec 2016-11-17 15:43:52 -08:00
Nate McMaster a0e07744c0
Pin versions 2016-11-17 14:13:21 -08:00
Nate McMaster b6b4523993
Remove dependency on Microsoft.DotNet.Cli.Utils 2016-11-17 13:37:58 -08:00
Nate McMaster 2a0e827f9b Update dependency version and explicitly require files in nuspec 2016-11-16 15:36:47 -08:00
Nate McMaster 15a877e7fb Merge branch 'rel/1.0.0-msbuild1-update1' into feature/msbuild 2016-11-16 15:33:50 -08:00
Nate McMaster ac5a9b7b73 Pin versions 2016-11-16 15:27:33 -08:00
Nate McMaster e2c4e36d78 Ensure .targets files are included in dotnet-watch 2016-11-16 15:25:31 -08: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 e780ad9516 Ensure clients connecting to Kestrel's dispatch pipe are listeners 2016-11-09 14:26:47 -08:00
Pranav K 7f6410bc55 Updating versions to 1.2.0-* 2016-11-09 14:20:20 -08:00
Pranav K 9d081d17e5 Updating versions to 1.2.0-* 2016-11-09 14:18:16 -08:00
Pranav K 6ee6220e06 Updating versions to 1.2.0-* 2016-11-09 14:18:11 -08:00
Pranav K 97d7bf7468 Updating versions to 1.2.0-* 2016-11-09 14:18:06 -08:00
Pranav K 9cdb55b59c Updating versions to 1.2.0-* 2016-11-09 14:17:51 -08:00
Pranav K 8e4ab2c6ff Updating versions to 1.2.0-* 2016-11-09 14:17:00 -08:00
Stephen Halter 757952d4d3 Always flush headers on first response write (#1202). 2016-11-09 14:02:50 -08:00
Stephen Halter c0e75dcbf8 Always flush headers on first response write (#1202). 2016-11-09 13:59:12 -08:00
Cyprien Autexier fe2453b93a Escaping support for JSON pointers 2016-11-07 22:11:22 -08:00
Nate McMaster 363ddf73a6
Pin versions 2016-11-07 09:57:56 -08:00
Nate McMaster 349980c89e
Add DOTNET_USE_POLLING_FILE_WATCHER to help output 2016-11-07 09:46:39 -08:00
Nate McMaster c84bdb35d3
dotnet-watch: add extended help to clarify usage (#218) 2016-11-07 09:46:31 -08:00
Ajay Bhargav Baaskaran 34f419f446 Added tags to project.json 2016-11-05 00:09:47 -07: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
jacalvar ed98894c93 Created public API baselines 2016-11-04 17:16:22 -07:00
jacalvar 373097e0dd Created public API baselines 2016-11-04 17:05:30 -07:00
Stephen Halter 6cbbb73ca7 Protect against NullReferenceException in Frame.StopStreams() 2016-11-04 16:01:07 -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
jacalvar 80cdeceb0b Created public API baselines 2016-11-04 15:28:08 -07:00
jacalvar 7c6583986c Created public API baselines 2016-11-04 13:06:13 -07:00
Nate McMaster 5de082e687 Upgrade Microsoft.DotNet.Cli.Utils from preview2 to preview3 2016-11-04 10:18:46 -07:00
Kiran Challa 81931e75d4 Handle exceptions for invalid operation types
Related to https://github.com/aspnet/Mvc/issues/5463
2016-11-03 14:43:35 -07:00
Nate McMaster ca70ef0b34
Change version to msbuild1 2016-11-03 12:09:19 -07:00
Andrew Stanton-Nurse 5858c0a64a fix #85 by making HandshakeHelpers internal and tidying doc comments
we don't need to share it with anything in the current implementation
2016-11-03 10:27:15 -07:00
Pranav K 0dcfa2a3fd Updating to Libuv 1.9.1 2016-11-03 10:08:01 -07:00
Andrew Stanton-Nurse f58a373704 fix #106 by removing ReplaceFeature 2016-11-02 15:58:17 -07:00
Nate McMaster 3b0947b4af
Add workaround for bug in Configuration 1.0.1 2016-11-02 13:46:23 -07:00
Nate McMaster 54031fb399
Downgrade to 1.0.1 2016-11-02 13:41:59 -07:00
Nate McMaster b4027529a7 Bundle deps.json files in tools packages 2016-11-02 10:38:39 -07:00
Nate McMaster 975e22ad06 Drop tools back to Microsoft.NETCore.App 1.0.1 2016-11-02 09:42:17 -07:00
Nate McMaster 7afad9102f Update dotnet-watch README.md 2016-11-01 18:41:58 -07:00
Nate McMaster 4698985846 Port dotnet-watch to support MSBuild 2016-11-01 18:39:51 -07:00
Nate McMaster 29df59b89c Create initial prototype of dotnet-user-secrets with MSBuild support 2016-11-01 18:39:51 -07:00
Scott Hanselman 9744f94b39 Update README for dotnet-watch to specify which version to install (#210) 2016-11-01 18:39:14 -07:00
Ben Adams 2adb6ff955 Interlocked.Read -> Volatile.Read 2016-11-01 18:06:00 -04:00
Nate McMaster a0e164f379
dotnet-user-secrets: add support for json output and piping json input 2016-10-31 14:15:52 -07:00
Cesar Blum Silveira 29408956f9 Handle tokens in Transfer-Encoding header (#1181). 2016-10-31 13:57:34 -07:00
pan-wang 4569d6d6d5 fix issue #26 AspNetCoreModule needs to abort failed responses (#34) 2016-10-31 13:03:13 -07:00
Andrew Stanton-Nurse 303f9ea2de update version to prepare for 1.1 release (#125)
* update version to prepare for 1.1 release

* update projects that reference WebSockets
2016-10-29 12:45:38 -07:00
Stephen Halter 5e97c63467 Throw PlatformNotSupportedException on big-endian platforms 2016-10-28 14:51:55 -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
Sourabh Shirhatti df997dcb3e Update LICENSE information 2016-10-26 14:08:58 -07:00
pan-wang ef19455912 sync up the code with IIS OOB branch (#21) 2016-10-26 13:44:02 -07:00
Cesar Blum Silveira d64b4c7acb Control-flow simplification in Frame.CreateResponseHeader() (#1168). 2016-10-24 11:07:06 -07:00
Nathan Anderson 610601cc6e test fixes and whitespace changes to generated code 2016-10-20 15:23:03 -07:00
Nathan Anderson 11ed34f229 add header ordering and short circuits to known headers
refactor known header changes

- create template string from Append switch
- add a check to ClearFast to bail out if too many headers are set
2016-10-19 15:49:01 -07:00
Cesar Blum Silveira fff0adeaaf Faster response Content-Length parsing. 2016-10-18 15:57:40 -07:00
Nate McMaster c7ff19c285 Remove Microsoft.Extensions.ProjectModel
Resolves #182
2016-10-18 09:45:09 -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
Nate McMaster 721cbe3435 Refactor dotnet-watch to isolate project.json dependency 2016-10-17 12:06:19 -07:00
Doug Bunting 0781b5a87c Add `HtmlContentBuilder.Count`
- precursor to PR aspnet/Mvc#5378 for issue aspnet/Mvc#3918
2016-10-17 11:26:16 -07:00
Pranav K 7d1f5f9818 Remove build quality pinning 2016-10-14 10:08:10 -07:00
Nate McMaster 4cbd904154 dotnet-watch: add --verbose and --quiet command line flags 2016-10-13 16:22:53 -07:00
Pranav K f8a1a66ab7 Revert "Updating to netcoreapp1.1"
This reverts commit fd6df3c74d.
2016-10-12 16:39:36 -07:00
Pranav K fd6df3c74d Updating to netcoreapp1.1 2016-10-12 13:45:08 -07:00
Prafull Bhosale 8fb38d3637 Add Project References to ProjectContext 2016-10-12 13:40:52 -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
Prafull Bhosale 1ae83eff70 Handle compilerOptions in project.json 2016-10-12 09:58:11 -07:00
Pavel Krymets 8d8e1ee8dc Avoid calling User.Identity.AuthenticationType (#282) 2016-10-12 09:54:11 -07:00
Prafull Bhosale 329b65fc69 Add AssemblyName to ProjectContext 2016-10-12 09:10:35 -07:00
Stephen Halter ce6e65b1d7 Don't take SocketOutput's _contextLock to return written blocks 2016-10-11 16:39:13 -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
Cesar Blum Silveira 6c2532682a Merge branch 'benaadams/callstack' into dev 2016-10-10 14:42:22 -07:00
Nate McMaster 78e35d3c6f Split ProjectModel into separate packages (#188) 2016-10-10 13:11:31 -07:00
Prafull Bhosale f7932b57a6 Add Dependency Resolution Apis to ProjectContext Abstractions 2016-10-10 11:33:49 -07:00
Nate McMaster c20b9ae894 Add PackageLockFile to IProjectContext (#187) 2016-10-10 11:30:12 -07:00
Cesar Blum Silveira 3177ba0aae Wait for frame loop completion to dispose connection stream (#1156). 2016-10-10 10:16:03 -07:00
Ben Adams adc3e63ecc Improve callstack for LoggingThreadPool 2016-10-08 05:14:00 +01:00
Kiran Challa 3b7f9b4043 Fixed version of System.Reflection.TypeExtensions package 2016-10-07 11:28:07 -07:00
Kiran Challa 393c25988a [Fixes #33] Dictionary operations fail due to contract issues 2016-10-06 15:43:42 -07:00
Nate McMaster f9412e7707
Remove unnecessary workaround. Resolves #165. 2016-10-06 13:37:33 -07:00
Nate McMaster 92a8d6d3bd Add API for multi-tfm projects (#184)
Project builder supports auto-detecting the framework
2016-10-06 13:03:05 -07:00
N. Taylor Mullen 4214884b3e Fix xml doc warning. 2016-10-06 12:38:30 -07:00
Kristian Hellang 03f8a7a217 Use HeaderUtilities.FormatDate in DateHeaderValueManager (#1132) 2016-10-06 11:56:49 -07:00
Nate McMaster dde022961c
Add MSBuildProjectFinder and update ProjectModel to handle latest MSBuild updates 2016-10-05 15:17:18 -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
Nate McMaster 40ff75d536 Create replacement API for Microsoft.DotNet.ProjectModel 2016-10-04 15:49:32 -07:00
pan-wang 64ab88fa66 fix build warning (#18) 2016-10-04 13:51:48 -07:00
Pavel Krymets 6eacfd2679 Rename Azure.Storage to AzureStorage (#183) 2016-10-04 11:51:50 -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
pan-wang b9fda49649 allowing flow app_offline to remote client (#17) 2016-10-03 14:49:16 -07:00
Pranav K 35cae5da7d Updating partner package versions 2016-10-03 14:28:45 -07:00
Pranav K f1c53378c3 Updating partner package versions 2016-10-03 14:23:59 -07:00
Cesar Blum Silveira e8fa40235b Remove unused variable in MemoryPoolIterator.Seek() (#1137). 2016-10-03 14:22:10 -07:00
Pranav K 4647a8a4bd Updating partner package versions 2016-10-03 12:21:25 -07:00
Pranav K 3d3d6a3fba Updating partner package versions 2016-10-03 12:06:50 -07:00
Pavel Krymets 89c39a6c28 Update StackExchange.Redis.StrongName (#182) 2016-10-03 10:59:04 -07:00
Martin Andreas Ullrich b8471455a7 Fix NuGet project description ASP.NET 5 > Core (#120)
changed leftover "ASP.NET 5" in project.json description to "ASP.NET Core"
2016-10-03 09:56:14 -07:00
Nate McMaster 3b1f650d3b Add custom tool for packaging as "CLI" package types.
Resolves #157
2016-09-30 14:48:02 -07:00
Chris R 3181c3f2e3 Only challenge if not already accepted. 2016-09-29 17:15:30 -07:00
Pavel Krymets 7a3fd8af33 Rename DataProtection.Azure.Blob to DataProtection.Azure.Storage (#180) 2016-09-29 15:23:42 -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
Pavel Krymets e4cf12017b Make UseIISIntegration idempotent (#274) 2016-09-29 09:43:03 -07:00
Ben Adams 310411075f Slimmer locks 2016-09-28 15:33:34 -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
Pranav K 9e8aee2478 Updating partner package versions 2016-09-28 11:51:01 -07:00
Pranav K c13a8affc0 Updating partner package versions 2016-09-28 11:50:43 -07:00
Kevin Dockx c88aa0042a Fix for issue #29 (Honor JsonProperty when serializing a JsonPatchDocument) (#35)
* Fix for issue #29 (Honor JsonProperty when serializing a JsonPatchDocument)
2016-09-28 09:37:21 -07:00
Cesar Blum Silveira 0312da7df3 Add request headers timeout (#1110). 2016-09-27 17:08:02 -07:00
Stephen Halter 7b2f7b94ab Return last block from SocketOutput when data is fully written
- This reduces Kestrel's memory usage for idle connections.
2016-09-27 15:57:45 -07:00
Stephen Halter 0edf36bd21 Return last block from SocketInput when data is fully consumed
- This reduces Kestrel's memory usage for idle connections.
2016-09-27 15:57:45 -07:00
Cesar Blum Silveira 375e8b7022 Change context relationships from inheritance to composition. 2016-09-27 11:53:06 -07:00
Sourabh Shirhatti cfd963c484 Merge branch 'shirhatti/nuget' into dev 2016-09-26 17:28:55 -07:00
Sourabh Shirhatti d245ded51d Produce fake nupkg for testing 2016-09-26 17:08:07 -07:00
Nate McMaster 61dc862e4d Merge Microsoft.DotNet.Watcher{.Core} into {.Tools}
History: in the days of DNX, there was a plan to share code between dnx-watch and Visual Studio tooling to watch the system. We split the package into two pieces with this intention. Since then, dotnet-cli has replaced DNX and MSBuild will replace project.json. The shared watch code isn't necessary, nor is it an API we want to support.
2016-09-26 12:04:12 -07:00
Nate McMaster f90594a647
Add support for '--' argument separator
Also refactors command line parsing into a separate class.
2016-09-26 10:19:43 -07:00
David Fowler 78c859d7ea Turn on warnings as errors 2016-09-25 12:25:12 -07:00
David Fowler 67930753df Merge pull request #1123 from svick/sockaddr-sequential
Specify sequential layout to avoid warning
2016-09-25 10:49:10 -07:00
Petr Onderka 782f96572d Specify sequential layout to avoid warning 2016-09-25 18:13:42 +02:00
pan-wang 191e14b276 fix build warning and a memory leak 2016-09-23 10:59:40 -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
Sourabh Shirhatti c6b3bb1243 Change output directory to work with KoreBuild 2016-09-21 17:21:37 -07:00
Pranav K 3e62285de5 Making build use Sake 2016-09-21 17:21:36 -07:00
Sourabh Shirhatti 0327e3b993 Change output directory to work with KoreBuild 2016-09-21 15:02:10 -07:00
Pranav K 210686a405 Making build use Sake 2016-09-20 17:50:54 -07:00
Sourabh Shirhatti 21b683b733 MC wasn't getting invoked for release builds 2016-09-20 16:57:03 -07:00
Sourabh Shirhatti f558c5de99 Update the filewatcher
Add a reference counter to avoid AV in case web.config was changed
2016-09-20 15:47:50 -07:00
Nate McMaster 11bbd6df8e
Support relative paths to projects.
Resolve #170
2016-09-20 14:30:37 -07:00
Nate McMaster 7bafb00f05
Improve error message when project file does not exist.
Resolve #171
2016-09-20 14:30:37 -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
Nate McMaster fb54566ff5
Add dotnet-sql-cache 2016-09-19 17:09:21 -07:00
Nate McMaster 8f2eccbd36
Move dotnet-user-secrets into current repo 2016-09-19 14:35:41 -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 2fbf0c6281 Merge branch 'DamirAinullin/single-initialize' into dev 2016-09-12 10:34:35 -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
Nate McMaster bbffd97633
⬆️ Bump tool on dev branch to 'preview4' and re-up dependencies to latest dev versions 2016-09-09 10:14:52 -07:00
Nate McMaster bf5d2f5dff
Revert deletion of makefile.shade from e0663483ed 2016-09-09 09:01:36 -07:00
Nate McMaster 359faf7e51
Remove Microsoft.AspNetCore.Server.IISIntegration.Tools 2016-09-08 15:58:30 -07:00
Nate McMaster e0663483ed
Downgrade to 1.0.0 runtime dependencies 2016-09-08 15:47:15 -07:00
Pavel Krymets 50f066579a Use TaskCache class from Microsoft.Extensions.TaskCache.Sources (#257)
Instead of Task.FromResult(0)
2016-09-08 08:46:31 -07:00
DamirAinullin 0491b49268 Remove double initializing of variable _field3 2016-09-07 14:23:06 +03:00
Pavel Krymets 7dcbb27b6f Updated Redis repository project to support .NET Core (#175) 2016-09-06 14:10:13 -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
Pavel Krymets 0e210dadea Port DataProtection blob XmlRepository (#163) 2016-09-06 08:09:13 -07:00
Pavel Krymets 8f8152f910 Fix build error 2016-09-02 16:16:41 -07:00
Andrew Stanton-Nurse b996ee39a4 port dotnet/corefx#11348 (#114)
also adds some tests and extra features to the EchoApp test sample
2016-09-02 14:02:06 -07:00
Pavel Krymets b340b0f0f7 Add Redis IXmlRepository implementation (#173) 2016-09-02 11:56:47 -07:00
David Fowler 6795ca2f78 Make the char array for utf8 decoding smaller 2016-08-31 18:54:15 -07:00
Victor Hurdugaci ac2f21514f Add a flag to specify the log level 2016-08-31 11:48:02 -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 08d7f66108 Merge branch 'benaadams/less-unsafe' into dev 2016-08-26 14:44:18 -07:00
Sourabh Shirhatti dff0db80ca Initial upload 2016-08-25 12:23:56 -07:00
Ben Adams be51e5aecb Remove unneeded unsafe modifiers 2016-08-25 08:07:15 +01:00
Ben Adams 7dc0a8c7bd Return count from trywrite 2016-08-25 07:58:36 +01:00
Ben Adams af73e519c1 Comment inlinability changes 2016-08-25 07:53:01 +01:00
Ben Adams 40636998d7 Improve inlinability of libuv success checking 2016-08-21 13:48:35 +01:00
Andrew Stanton-Nurse c51aec5292 port dotnet/corefx#10792 (#111)
* port dotnet/corefx#10792
* add EchoApp sample
2016-08-19 15:22:20 -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
John Luo 2f397d6f63 Switch to UsePathBase instead of relying on Kestrel feature #236 2016-08-16 20:20:55 -07:00
Chris R e94db64619 #242 Delay registering the url until Build. 2016-08-15 17:43:29 -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
Cesar Blum Silveira 08a91f17bf Call OnStarting and OnCompleted callbacks in LIFO order (#1042). 2016-08-10 14:52:05 -07:00
Cesar Blum Silveira 08f98f4790 Add header limit options (#475). 2016-08-09 12:31:39 -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 140dc6fcf5 Add obsoletion reason for KestrelServerOptions.MaxRequestBufferSize. 2016-08-04 10:46:42 -07:00
Andrew Stanton-Nurse 33e3e5b186 remove our WebSocket client
we'll use the one from dotnet/corefx now instead

fixes #108
2016-08-04 10:30:13 -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
Stephen Halter 5aee524768 Ensure Begin/End Read/Write methods are correctly implemented
- Add Begin/End Write methods to FrameResponseStream
- Fix state check of Begin/End Read methods in FrameRequestStream
2016-08-03 16:45:39 -07:00
Stephen Halter 4337d2a4a7 Implement Begin/End Read/Write methods in LibuvStream 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
Andrew Stanton-Nurse 45f0fe178f import WebSockets code from CoreFX (#105)
* import WebSockets code from CoreFX

* sync pr feedback from dotnet/corefx#10510
2016-08-03 11:07:01 -07:00
Mike Harder 4ece3f4b68 Change "String." to "string." to match coding convention 2016-08-01 11:09:31 -07:00
Ajay Bhargav Baaskaran 1ad5d0e317 var cleanup 2016-07-28 17:29:06 -07:00
Ajay Bhargav Baaskaran 3733b53700 Removed unnecessary methods in DataProtectionServiceDescriptors 2016-07-28 17:17:27 -07:00
Stephen Halter 00a540dcb8 Merge branch 'benaadams/more-block-collect-info' into dev 2016-07-28 16:51:35 -07:00
Cesar Blum Silveira 2244f190e1 Merge branch 'benaadams/exceptions' into dev 2016-07-25 10:31:32 -07:00
Stephen Halter 3a67cb9df5 Merge branch 'benaadams/enum-rather-than-string' into dev 2016-07-25 10:30:33 -07:00
Stephen Halter b5c117695e Stop KestrelThreads in parallel 2016-07-25 10:29:01 -07:00
Stephen Halter dc12f3150e Wait for graceful shutdown now that it usually works
- Unreference the async handle to allow the loop to stop without walking first
- Wait before walking open handles to allow earlier uv_close calls to complete
2016-07-25 10:29:01 -07:00
Ben Adams 51288e13f8 Enum to singular 2016-07-22 22:25:03 +01:00
Ben Adams 0a1ea124ee Use HttpVersionType enum rather than string compare 2016-07-22 21:34:49 +01:00
Ben Adams 0620ce5a2f Consolidate BadHttpRequestException messages 2016-07-22 21:19:44 +01:00
Ben Adams 7c811ff568 Only allocate key string when unknown 2016-07-22 20:50:43 +01:00
Stephen Halter 27f8c8dca2 Ensure libuv handles get disposed properly after binding errors 2016-07-22 12:26:27 -07: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
Stephen Halter 24fa5c0264 Merge pull request #938 from NVentimiglia/dev
As an American, I had to correct the spelling of 'independent'
2016-07-21 17:17:47 -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
Pavel Krymets 6bcf7643df Do not allocate large write task queues (#1005) 2016-07-21 16:05:50 -07:00
Pavel Krymets 7b7e2889ce Allocate less in GetIPEndPoint (#1004) 2016-07-21 12:17:55 -07:00
Ben Adams f42316af7f Remove Environment.StackTrace as crashing tests 2016-07-21 01:44:23 +01:00
Ben Adams aa385a1317 Use Environment.NewLine and Environment.StackTrace 2016-07-21 01:13:27 +01: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
David Fowler 3078f4914c Removed unneeded things from Connection 2016-07-18 22:19:45 -07:00
David Fowler 8399910a6e PR feedback 2016-07-15 15:16:03 -07:00
David Fowler 14717f2a3f Always allocate the socket closed tcs 2016-07-15 15:16:03 -07:00
David Fowler 142685c0fb Remove state lock from Connection
- Remove the state lock by creating the frame earlier
- Set properties on the frame that need to be set before calling start.
- Don't rely on the copy ctor of the *Context hierarchy to set
*everything*
2016-07-15 15:16:03 -07:00
Cesar Blum Silveira 3bb7f4e2c4 Treat ECONNRESET as a connection error (#934). 2016-07-15 14:53:21 -07:00
Victor Hurdugaci ed91ba0c2f - Fix a NullRef exception that was happening when projects have resx files
- Print the changed file name in all cases
2016-07-15 11:53:45 -07:00
Victor Hurdugaci c769d8dee9 Fix null ref exception when referencing csproj 2016-07-15 10:05:30 -07:00
Doug Bunting 4f30dddb14 To de-dupe, we must remove
- part of aspnet/Common#93
- use `WebEncoders` from Common repo

Also let VS have its way w/ test `.xproj` files
2016-07-12 16:24:41 -07:00
moozzyk ef6533cf85 Fixing wording/casing in command line tool output
Fixes #229
2016-07-11 10:58:16 -07:00
Doug Bunting 80437e878a 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 14:16:10 -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
Doug Bunting 6b08efb122 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:06:18 -07:00
Doug Bunting c4a4e86708 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:05:28 -07:00
Doug Bunting 717e4fe083 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:00:26 -07:00
Cesar Blum Silveira edd247b8e2 Merge branch 'khellang/status-451' into dev 2016-07-07 11:42:15 -07:00
Cesar Blum Silveira 176b599854 Merge branch 'khellang/status-308' into dev 2016-07-07 11:35:24 -07:00
Doug Bunting 9f6a691655 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-06 22:09:57 -07:00
Doug Bunting 332e0a0b87 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-06 22:03:23 -07:00
Cesar Blum Silveira 9f720eda90 Reset frame streams on each request (#940). 2016-07-06 14:57:43 -07:00
Nicholas Ventimiglia 6a8a4e8669 Update MemoryPoolBlock.cs 2016-06-21 17:00:59 -07:00
Nicholas Ventimiglia 3db95ddcde As an American, I had to correct the spelling of 'independent' 2016-06-21 11:08:40 -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
Pranav K 38ba07487a Updating to dev versions 2016-06-16 10:18:54 -07:00
Pranav K 36e5c0e6fa Updating to dev versions 2016-06-16 10:18:08 -07:00
Pranav K fb09e5323c Updating to dev versions 2016-06-16 10:18:06 -07:00
Pranav K 66518476af Updating to dev versions 2016-06-16 10:17:57 -07:00
Pranav K 67fe579e74 Updating to dev versions 2016-06-16 10:17:46 -07:00
Pranav K 69fa821522 Updating to dev versions 2016-06-16 10:17:41 -07:00
Kristian Hellang eb74a19f9a
Added "451 Unavailable For Legal Reasons" to ReasonPhrases
From RFC7725 - https://tools.ietf.org/html/rfc7725
2016-06-16 13:49:26 +02:00
Kristian Hellang 6414ccc2fd
Added "308 Permanent Redirect" to ReasonPhrases
From RFC7538 - https://tools.ietf.org/html/rfc7538
2016-06-16 13:48:52 +02:00
jacalvar d7d8af57f6 Update Json.NET to 9.0.1 2016-06-15 14:41:19 -07:00
Stephen Halter 01e9101543 Add more doc comments to KestrelServerOptions 2016-06-13 19:52:38 -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
Stephen Halter b4632c273e Handle exceptions thrown from Connection.Start in ListenerSecondary
- This is already done for primary listeners
2016-06-08 17:17:49 -07:00
jacalvar 8dbdc0294f Remove unncessary imports 2016-06-08 15:07:48 -07:00
jacalvar 4d77dce803 Remove unncessary imports 2016-06-08 15:07:03 -07:00
jacalvar b1af033529 Remove unncessary imports 2016-06-08 15:04:56 -07:00
jacalvar 15454ae254 Remove unncessary imports 2016-06-08 13:02:26 -07:00
Mukul Sabharwal badbc7c8f7 Downtarget Kestrel to NETStandard 1.3 2016-06-06 21:37:44 -07:00
moozzyk 69bd0dc4be Reject requests that have null characters in path 2016-06-06 09:59:42 -07:00
Pranav K 17a41597a6 Reacting to Hosting changes 2016-06-03 18:24:35 -07:00
Andrew Stanton-Nurse 09f5be1434 fix #909 by moving most classes to Internal ns 2016-06-03 14:14:21 -07:00
jacalvar 0f1836c6dd Update Json.NET to 9.0.1-beta1 2016-06-03 13:08:19 -07:00
Pavel Krymets 47d3ffdddc Add activator fallback to support rc1 keys 2016-06-03 12:27:17 -07:00
Stephen Halter d14f18012a Avoid Null ReferenceException in Frame.RequestAbortedSource
- Avoid unneeded resetting of _abortedCts and _manuallySetRequestAbortToken
2016-06-02 16:55:19 -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
Cesar Blum Silveira de022b6051 Improved handling of whitespace in headers. 2016-06-02 16:18:43 -07:00
moozzyk 6e46d9757d Improve perf of TryGetAsciiString 2016-06-02 12:52:12 -07:00
Pranav K 263d764215 Fix assembly metadata to fix package verifier warnings 2016-06-02 10:57:04 -07:00