Commit Graph

1001 Commits

Author SHA1 Message Date
Chris Ross 9ab6dbd593
Fix Server_RegisterUnavailablePrefix_ThrowsActionableHttpSysException #26156 (#26203) (#29368) 2021-02-09 18:42:22 -08:00
Chris Ross 7991a9a2e2
Allow/ignore upgrades with bodies #17081 (#28896) 2021-01-13 10:23:53 -08:00
Brennan Conroy 8e57b5e3b6 Merged PR 11157: Run callbacks outside of locks 2020-12-10 00:19:53 +00:00
Sourabh Shirhatti e47cbf6de6
[release/5.0] DelegationRule.Dispose() unsets delegation property on the queue (#28514)
* Unset delegation propery from source queue. This removes the process from the target URL group and allows the delegation rule to be added back later on in the processes lifetime

* Add test

* Add disposing pattern

Co-authored-by: Nolan Glore <nglore@microsoft.com>
2020-12-09 13:33:10 -08:00
Sourabh Shirhatti 050c257590
[release/5.0] Fix null ref in UrlGroup.Dispose due to logger not set (#28494)
* Fix null ref in UrlGroup.Dispose due to logger not set

* PR Feedback: make _logger readonly

Co-authored-by: Nolan Glore <nglore@microsoft.com>
2020-12-09 13:00:16 -08:00
Sourabh Shirhatti 9654539fe7
[release/5.0] Don't call HttpCloseUrlGroup if you didn't create it (#28511)
* Add created bool

* Be explicit in setting the flag
2020-12-09 12:59:53 -08:00
Doug Bunting 415875625c
[release/5.0] Update API baseline files (#27653)
* Move all PublicAPI.Unshipped.txt files to PublicAPI.Shipped.txt
- we have now shipped this API surface

* Add eng/PublicAPI.empty.txt file
- make it easier to add new implementation projects

* Add missing public API baseline files
- #26784 part 1/2
- a few unexpected files turned up missing beyond the #26784 list&hellip;

* Reference Microsoft.CodeAnalysis.PublicApiAnalyzers more often
- #27484 part 2/2
- emit errors when API baseline files are missing
- update categorization of some projects
  - specification tests are not implementation projects
    - but _were_ project reference providers (keep that)
  - correct `$(IsTestAssetProject)` setting for Razor shims et cetera
  - correct `$(IsSampleProject)` setting for casing of some Sample directories
  - Microsoft.AspNetCore.Analyzer.Testing should be treated as test asset
- add `$(AddPublicApiAnalyzers)` property to support overrides
  - e.g. for `msbuild` task projects and tools

nit:
- remove useless `$(IsTestProject)` setting in a specification test project
- wrap some long `Condition`s

* Do not run public API analyzer in `RazorCoreCompile` target

* Remove old `$(EnableApiCheck)` settings
- property does nothing
- also remove a dangling ApiCheck comment
2020-11-12 10:28:52 -08:00
Stephen Halter c15cd69b65
Prevent WebSockets from throwing during graceful shutdown (#27123)
- Fix canceled ReadResult handling in Http1UpgradeMessageBody
- Add UpgradeTests.DoesNotThrowGivenCanceledReadResult
2020-10-23 11:05:58 -07:00
Pranav K b3aa220af6
Quarantine flaky test (#26627) 2020-10-12 15:02:50 -07:00
Stephen Halter 053052d405
Remove KestrelEventSource events with broken ActivityId tracking (#26684)
* Remove KestrelEventSource events with broken ActivityId tracking

* Skip test requiring ALPN on macOS
2020-10-08 11:47:48 -07:00
William Godbe 8118a25e7f
Add API ref docs for HTTPSys (#26649)
* Add API ref docs for HTTPSys

* Spacing

* Feedback
2020-10-07 22:28:49 -07:00
Stephen Halter 96c082f285
Fix WebSockets Negotiate Auth in Kestrel (#26480)
* Don't close connections after upgrade requests without a 101 response

* Add test

* Add DefautCredentials_WebSocket_Success
2020-10-02 14:47:20 -07:00
Stephen Halter b740b6a23b
Keep Http2Connection's ExecutionContext in middleware (#26304)
* Add Http2EndToEndTests

* Finish MiddlewareIsRunWithConnectionLoggingScopeForHttp2Requests

* Keep Http2Connection's ExecutionContext in middleware

* Restore EC before awaiting next request

* Update src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs

Co-authored-by: James Newton-King <james@newtonking.com>

* Move InitialExecutionContext to HttpConnectionContext

Co-authored-by: James Newton-King <james@newtonking.com>
2020-09-30 13:13:40 -07:00
Justin Kotalik 75e707bc38
API docs for IIS (#26387) 2020-09-29 14:12:28 -07:00
Stephen Halter ccc59b91c4
Revert breaking KestrelServer ctor change (#26367) 2020-09-29 11:06:32 -07:00
Doug Bunting 32e3353e69
Quarantine recent test failures (#26295)
- see #26291 and #26294
2020-09-24 16:29:31 -07:00
Pranav K 611ee61e0e
Quarantine tests (#26062) 2020-09-18 13:08:30 -07:00
Chris Ross b5515a8dac IIS: Identify if a request has a body (#25381) 2020-09-11 17:43:36 -07:00
Stephen Halter 3932156a95
Improve Http1ContentLengthMessageBody's reset logic (#25799) 2020-09-11 13:57:23 -07:00
Brennan 83e31342a1
[Kestrel] Deflake app abort test (#25484)
* [Kestrel] Deflake app abort test

* better

* fb
2020-09-11 10:53:45 -07:00
Brennan 2ab6436cdd
Set ShutdownTimeout in Kestrel tests (#25743) 2020-09-11 09:21:18 -07:00
Pranav K 690c717314
Update to latest SDK (#25421)
* React to platform compatibility analyzer warnings
* React to new warnings
* Add platform compatibility attributes
2020-09-10 15:12:17 -07:00
Kevin Pilch 6828192780
Add public API baselines for Servers (#25652) 2020-09-09 21:07:55 -07:00
dotnet-maestro[bot] 95763af89a
[release/5.0-rc2] Update dependencies from dotnet/arcade dotnet/runtime dotnet/efcore (#25555)
[release/5.0-rc2] Update dependencies from dotnet/arcade dotnet/runtime dotnet/efcore
- Updates:
  - System.ComponentModel.Annotations: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - System.Diagnostics.DiagnosticSource: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - System.Diagnostics.EventLog: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - System.DirectoryServices.Protocols: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Logging.Abstractions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Logging.Configuration: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Logging.Console: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Logging.Debug: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Logging.EventLog: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Logging.EventSource: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Logging.TraceSource: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Options: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Options.ConfigurationExtensions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Options.DataAnnotations: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Primitives: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Logging: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Internal.Transport: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Http: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Hosting.Abstractions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Caching.Abstractions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Caching.Memory: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Configuration: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Configuration.Abstractions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Configuration.Binder: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Configuration.CommandLine: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Configuration.EnvironmentVariables: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Configuration.FileExtensions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Configuration.Ini: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Configuration.UserSecrets: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Configuration.Xml: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.DependencyInjection: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.DependencyInjection.Abstractions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.DependencyModel: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.FileProviders.Abstractions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.FileProviders.Composite: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.FileProviders.Physical: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.FileSystemGlobbing: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.HostFactoryResolver.Sources: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Hosting: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Extensions.Configuration.Json: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.NETCore.App.Runtime.win-x64: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.NETCore.BrowserDebugHost.Transport: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.NETCore.Platforms: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Win32.Registry: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.Win32.SystemEvents: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.NETCore.App.Internal: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - Microsoft.NETCore.App.Ref: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - System.Drawing.Common: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - System.Threading.Channels: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - System.Windows.Extensions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - System.Text.Json: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - System.Text.Encodings.Web: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - System.ServiceProcess.ServiceController: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - System.IO.Pipelines: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - System.Net.Http.Json: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - System.Net.Http.WinHttpHandler: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - System.Net.WebSockets.WebSocketProtocol: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - System.Reflection.Metadata: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - System.Runtime.CompilerServices.Unsafe: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - System.Security.AccessControl: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - System.Security.Cryptography.Cng: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - System.Security.Cryptography.Pkcs: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - System.Security.Cryptography.Xml: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - System.Security.Permissions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - System.Security.Principal.Windows: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25
  - System.Resources.Extensions: from 5.0.0-rc.2.20452.8 to 5.0.0-rc.2.20454.25

- Updates:
  - Microsoft.EntityFrameworkCore.Tools: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20458.4
  - Microsoft.EntityFrameworkCore.SqlServer: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20458.4
  - dotnet-ef: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20458.4
  - Microsoft.EntityFrameworkCore: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20458.4
  - Microsoft.EntityFrameworkCore.Design: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20458.4
  - Microsoft.EntityFrameworkCore.Relational: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20458.4
  - Microsoft.EntityFrameworkCore.Sqlite: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20458.4
  - Microsoft.EntityFrameworkCore.InMemory: from 5.0.0-rc.2.20452.4 to 5.0.0-rc.2.20458.4

- Updates:
  - Microsoft.DotNet.Build.Tasks.Installers: from 5.0.0-beta.20431.1 to 5.0.0-beta.20452.19
  - Microsoft.DotNet.Helix.Sdk: from 5.0.0-beta.20431.1 to 5.0.0-beta.20452.19
  - Microsoft.DotNet.Arcade.Sdk: from 5.0.0-beta.20431.1 to 5.0.0-beta.20452.19

 - System.IO.Pipelines Fix

(cherry picked from commit 520b9e23f027d7cca49d33f1dc6b2a0e57c893b3)

 - Skip reference check of System.IO.Pipelines ref/ assembly
- add Framework projects to solution
- add Framework.slnf and startvs.cmd in src/Framework

 - Merge branch 'release/5.0-rc2' into darc-release/5.0-rc2-d6b9c1c0-be36-4d12-b860-e7e54a75cb6d
2020-09-08 23:34:53 +00:00
Justin Kotalik d2c31edc14
Improving logs from hostfxr (#25541) 2020-09-02 15:54:41 -07:00
Stephen Halter 6ec1b48118
Quarantine UseHttpsWithAsyncCallbackDoeNotFallBackToDefaultCert (#25543) 2020-09-02 14:40:37 -07:00
Ben Adams ab3799f651
Make CertificateConfig linker friendly (#25515) 2020-09-02 09:19:13 -07:00
Doug Bunting 5438f84ae5
Merge pull request #25500 from dotnet-maestro-bot/merge/release/5.0-to-release/5.0-rc2
[automated] Merge branch 'release/5.0' => 'release/5.0-rc2'
2020-09-01 16:00:06 -07:00
Justin Kotalik ee712265d5
Make startup timeout recycle worker process (#25321) 2020-09-01 15:30:28 -07:00
Stephen Halter 04f23ecfc4
Add async ServerOptionsSelectionCallback UseHttps overload (#25390) 2020-08-31 17:13:19 -07:00
Justin Kotalik 071a539ae5
Avoid build race between x64 and x86 (#25465) 2020-08-31 15:21:21 -07:00
David Fowler 5292fed790
Restore legacy behavior for certs without private keys (#25344)
* Restore legacy behavior for certs without private keys
- When trying to use an SSL certificate without a private key, SslStream would try to find another certificate in the cert store matching the thumbprint. Now that we're using the SslStreamCertificateContext, that behavor is no longer included so we need to restore it in Kestrel.

* Handle cert store failing to open
2020-08-29 16:14:00 -07:00
Chris Ross 9f0eefb4c1
Skip hanging IIS tests (#25379)
* Report IIS Express Startup failures

* Skip hanging IIS tests #25107
2020-08-29 16:09:39 -07:00
Doug Bunting 31bd4d4b1d
[release/5.0] Correct baseline checks (#25227)
- mostly duplicates #25217
- update `BaselineGenerator` to produce baselines useful in 6.0 (too)
- update Baseline.Designer.props using new generator (matching 3.1.7 release)
- always suppress references expressed only in `*.nuspec` files
  - needed even in servicing builds
- restore warning and errors about removed references (new for 5.0)
  - adjust exclusions to handle `@(_ProjectReferenceByAssemblyName)` removal

nit: do not generate empty `<ItemGroup />` elements

* Correct `@(SuppressBaselineReference)` items
  - remove out-of-date `@(SuppressBaselineReference)` items
    - either 3.1.7 baselines we're using don't include reference or still using package
    - fix some comments and `Condition` attributes to make remainder easy to find
  - add missing `@(SuppressBaselineReference)` items
2020-08-28 09:53:20 -07:00
William Godbe ce058f639c
Add net461 TFM to netstandard2.0 projects (#25094)
* Add net461 TFM to netstandard2.0 projects

* Fix a couple of errors

* Fix some errors

* Get rid of Sockets reference

* Respond to feedback

* net461 -> property

* Fixup clientSample

* Remove net461 from analyzers/razor

* Remove net461 from test projects

* Feedback

* Add net461 test configs

* Remove some incompatible test configs

* Fix test
2020-08-27 16:05:40 -07:00
Justin Kotalik 6333040b5a
Fix MaxRequestBodySize in IIS (#25096)
* Fix MaxRequestBodySize

* Apply suggestions from code review

Co-authored-by: Chris Ross <Tratcher@Outlook.com>

* Update test

* Keep IIS limit default and update API comment

* Update tests

Co-authored-by: Chris Ross <Tratcher@Outlook.com>
2020-08-25 09:12:58 -07:00
Chris Ross 11bae8a112
Identifying if a request has a body #24175 (#24984) 2020-08-24 06:38:40 +00:00
Sourabh Shirhatti 826bc84183
Add wireshark logging. Replaces #23088 (#25139)
* Add wireshark style logging in Kestrel

* More Append!

* Update third party notices

Co-authored-by: Kahbazi <A.Kahbazi@gmail.com>
2020-08-22 03:16:54 +00:00
James Newton-King 920d93590d
Remove HTTP/2 headers from request primary headers (#24900) 2020-08-21 07:39:40 +12:00
Brennan 5193f8f428
Quarantine a couple kestrel flaky tests (#25047) 2020-08-19 16:00:18 -07:00
Justin Kotalik 9f398d9a56
Fix Http/3 and mark multiplexed factory as experimental (#25012)
* Fix Http/3 and mark multiplexed factory as experimental

* mark apis as internal and delete quic samples

* Remove extra public api

* Mark kestrel server as obsolete

* Fixing obsoletion and improved message

* Revert "Fixing obsoletion and improved message"

This reverts commit acdae8713d467264b4b3762b56fb4b882fa9127d.

* Revert "Mark kestrel server as obsolete"

This reverts commit fbd861f53afe93951b1f9cd004859551e085952d.

* Internalize SocketCOnnectionFactory

* nit

* fixup
2020-08-19 14:27:25 -07:00
Sourabh Shirhatti b140c09c02
Add support delegating requests in HttpSysServer (#24857)
* Add new ctors for RequestQueue and UrlGroup

* Add DelegateRequest pinvokes

* Add Request Transfer Feature

* Fix accessibility of feature

* Test cleanup

* Update ref assembly

* hack: Make HttpSysServer packable

* Cleanup based on PR feedback

* Avoid sending headers after transfer

* Fix ref assembly

* Fix rebase conflict

* Switch to DelegateRequestEx

* Add feature detection

* Delete ref folder

* Add server feature

* s/RequestQueueWrapper/DelegationRule

* Fix UrlGroup was null issue

* Add light-up for ServerDelegationPropertyFeature

* Revert changes to sample

* Revert changes to sample take 2

* PR feedback

* s/Transfered/Transferred

* DelegateAfterRequestBodyReadShouldThrow

* Make DelegationRule disposable

* More license headers

* Incomplete XML doc

* PR feedback

* Fix broken test

* PR feedback

* Fixup test

* s/Transfer/Delegate

* s/transfer/delegate

* PR feedback
2020-08-19 10:27:18 -07:00
Martin Costello b22512de0e
Right-size Lists when created (#23714)
Create new instances of List<T> with an appropriate capacity for the items that will be added.
Use Array.Empty<T>() where appropriate, rather than create an empty list and then return it.
2020-08-19 09:45:52 -07:00
Justin Kotalik 187eacd570
Reenable concurrent read/write test (#25017) 2020-08-19 09:28:01 -07:00
Justin Kotalik cdb3cbd620
Remove \r\n for \n when writing to ostream (#24980) 2020-08-18 09:34:43 -07:00
James Newton-King f68f5b0ee8
Fix HTTP/2 tests that use HttpClient and H2C (#24981) 2020-08-18 21:12:52 +12:00
James Newton-King 592cea6a2b
Optimize writing single segment sequences (#24929) 2020-08-18 19:37:48 +12:00
James Newton-King 28dc9bffab
HTTP2: Write data and trailers under one lock (#24822) 2020-08-18 18:20:04 +12:00
Brennan c92eaa28f4
Add inline scheduler option for Sockets transport (#24638) 2020-08-17 22:00:15 -07:00
James Newton-King 58a75925f7
HTTP2: Optimize header processing (#24945) 2020-08-18 14:31:57 +12:00