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
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
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
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
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
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
Stephen Halter
f609f41a7c
Reject non-ASCII chars in headers in addition to control chars
2016-06-01 16:01:15 -07:00
Pavel Krymets
bb92cc1c29
Fix NRE when aborting connection or client disconects
2016-06-01 15:52:05 -07:00
Chris R
6224f5b6e8
Perf: Remove unnecessary path checks
2016-06-01 14:56:49 -07:00
moozzyk
0753f06c28
Aborting request if a string can't be converted to ASCII
2016-05-31 17:11:31 -07:00
moozzyk
5d77ad24c2
Refactoring out GetAsciiString from MemoryPoolIteratorExtensions
2016-05-31 16:27:01 -07:00
Cesar Blum Silveira
50208a3a79
Implement IHttpRequestFeature.RawTarget ( aspnet/HttpAbstractions#596 ).
2016-05-31 15:30:12 -07:00
Andrew Stanton-Nurse
290e1e3f3f
improve validation of HTTP methods
2016-05-31 14:13:13 -07:00
Mike Harder
306084356e
ServerAddress.FromUrl() should throw if Host is missing ( #860 )
2016-05-31 11:54:38 -07:00
BrennanConroy
6b25ee7343
Replace PlatformAbstractions with RuntimeInformation
2016-05-31 08:17:02 -07:00
Cesar Blum Silveira
0a181b1f3f
Reset Frame's IHttpRequestFeature.Headers and IHttpResponseFeature.Headers between requests ( #879 ).
2016-05-27 16:02:55 -07:00
Stephen Halter
1a6ec294bc
Merge branch 'stephentoub/remove_valuetask_casts' into dev
2016-05-27 15:47:13 -07:00
Cesar Blum Silveira
80a2bc124d
Remove Frame.RequestUri.
2016-05-27 12:40:14 -07:00
Mike Harder
2453047fe2
ServerAddress.FromUrl() should throw for invalid url ( #875 )
2016-05-27 12:02:30 -07:00
Stephen Toub
69d8b17095
Remove uses of ValueTask<T>'s implicit casts
...
These are being removed.
2016-05-27 10:28:24 -04:00
Stephen Halter
b9b67f6bf4
Merge branch 'khellang/set-headers-on-response-start' into dev
2016-05-26 15:35:01 -07:00
Kristian Hellang
72cc0ffbd5
Set Date and Server headers at response start
...
Closes #223
2016-05-26 17:38:16 +02:00
Cesar Blum Silveira
a3d0bd0ec4
Bind to both IPv4 and IPv6 when localhost is specified ( #231 ).
2016-05-25 21:23:29 -07:00
Cesar Blum Silveira
3f4e2323f4
Throw when setting Frame.StatusCode or Frame.ReasonPhrase after response has already started ( #805 ).
2016-05-24 16:32:54 -07:00
Stephen Halter
cb284b9d58
Fix race that would allow GetDateHeaderValues to return null
2016-05-24 16:28:46 -07:00
Stephen Halter
d164f350b4
Add comment explaining why ForChunkedEncoding._vectorCRs is not static
2016-05-24 16:05:20 -07:00
Mike Harder
5ca6592677
Don't bind if only port is specified ( #814 ) ( #861 )
...
- Also renamed ServerAddressFacts to ServerAddressTests to match existing test classes
2016-05-23 14:06:46 -07:00
Ben Adams
6098880132
Reset connection info not using interface
2016-05-21 00:41:55 +01:00
Cesar Blum Silveira
925d8e0200
Always cache headers and streams across frames ( #754 ).
2016-05-20 16:16:19 -07:00
Stephen Halter
5495610e5c
Merge branch 'benaadams/fastpath-connectioncheck' into dev
2016-05-20 16:02:46 -07:00
Stephen Halter
a38a437efb
Merge branch 'khellang/server-header-option' into dev
2016-05-20 15:56:29 -07:00
Stephen Halter
c39546352a
Merge branch 'shanewalters/remote-cert' into dev
2016-05-20 15:53:51 -07:00
Kristian Hellang
2ab01c09fd
Add option to remove the Server header
2016-05-20 13:18:18 +02:00
Ben Adams
5eb1466487
Fast-path response header connection check
2016-05-20 03:37:32 +01:00
shanewalters
b17c070e1c
Updated to not use handle, centralize conversion logic.
2016-05-19 14:40:29 -06:00
Cesar Blum Silveira
59aef9a443
Merge branch 'benaadams/remove-framecontext' into dev
2016-05-19 12:25:04 -07:00
Cesar Blum Silveira
1f494b168b
Remove Frame._requestProcessingStarted field.
2016-05-19 11:48:50 -07:00
Cesar Blum Silveira
9960cb8c23
Remove unused Frame static fields.
2016-05-19 11:47:58 -07:00
Cesar Blum Silveira
8e9df409c4
Remove dead code in ReasonPhrases.
2016-05-19 11:46:48 -07:00
Ben Adams
e8647c0cb4
Remove extra FrameContext class
...
Resolves #837
2016-05-19 19:22:39 +01:00
shanewalters
9232029950
Use SslStream.RemoteCertificate to recreate disposed certificate.
2016-05-19 12:17:23 -06:00
Cesar Blum Silveira
9a06bf39ab
Move ECONNRESET value check to server initialization.
2016-05-18 22:11:10 -07:00
Stephen Halter
7e7f21ec49
Merge branch 'benaadams/dateheader' into dev
2016-05-18 17:11:01 -07:00
Stephen Halter
369512369f
Merge branch 'benaadams/return-blocks-out-of-lock' into dev
2016-05-18 17:03:24 -07:00
Nathan Anderson
e1c64d2119
reuse typeof results in generated Frame code
2016-05-18 16:52:34 -07:00
Stephen Halter
185ad000bb
Prevent NullReferenceException in KestrelThread.OnStopRude
...
- UvMemory.FromIntPtr looks up a weak reference so we need to null check.
2016-05-18 16:21:55 -07:00
Cesar Blum Silveira
8c8ee150f7
Send 'Connection: close' in all 400 responses to HTTP/1.1 requests ( #840 ).
2016-05-18 15:03:31 -07:00
Cesar Blum Silveira
3e841ccba1
Always send HTTP/1.1 responses ( #792 ).
2016-05-16 16:11:37 -07:00
Cesar Blum Silveira
3186e1bd72
Make TakeStartLine more robust ( #683 ).
2016-05-12 12:07:08 -07:00
Ben Adams
a3b0f809de
Only call PrepareDateValues if not already called for tick
2016-05-10 20:38:27 +01:00
Ben Adams
0e8cbe5df6
Return SocketInput blocks out of lock
2016-05-10 01:18:24 +01:00
Stephen Halter
388841c1d8
Merge branch 'release' into dev
2016-05-09 16:37:40 -07:00
Stephen Halter
12a3816c12
Make some MemoryPoolBlock operations volatile
...
- Making MemoryPoolBlock.End volatile and using Volatile.Write for
MemoryPoolBlock.Next prevents a race that could cause threads consuming
blocks to skip produced bytes.
2016-05-05 15:13:28 -07:00
Stephen Halter
4c39374dc0
Always check if block is last in linked list before consuming it
...
- This prevents a race where we could read into the "Next" Block without
completely consuming the previous one.
2016-05-05 15:13:17 -07:00
Nathan Anderson
132263e767
narrow lock scope when connections end
2016-05-04 16:50:08 -07:00
Stephen Halter
fed7c44829
Merge branch 'halter73/validate-header' into dev
2016-05-04 12:35:26 -07:00
Stephen Halter
c1e5640a65
Don't allow response headers to contain control characters
...
- For the purposes of this commit, control characters are everything < 0x20.
- Immediately throw an InvalidOperationException when the header is added to
the IHttpResponseFeature.Headers dictionary.
2016-05-04 12:24:31 -07:00
Mike Harder
14bbba0641
Update addresses in IServerAddressesFeature with assigned dynamic ports ( #758 )
...
- Change most tests to use dynamic ports, rather than a fixed port obtained from GetNextPort().
- Add several new cases to `AddressRegistrationTests` and `ServerAddressFacts`.
- Remove project `test\Microsoft.AspNetCore.Server.Kestrel.TestCommon`. It's not longer needed, since only `AddressRegistrationTests` uses `GetNextPort()`.
2016-05-04 11:27:23 -07:00
Stephen Halter
f8c2c2470f
Merge branch 'benaadams/memorypool' into dev
2016-05-02 21:58:53 -07:00
Pranav K
ff510875f2
Merge branch 'release' into dev
2016-05-02 14:56:30 -07:00
Pranav K
f0358182e4
Fix build warnings
2016-05-02 11:27:18 -07:00
Ben Adams
3a424f6aba
Remove unnecessary fixed blocks
2016-04-30 11:17:06 +01:00
Ben Adams
2aa10a64a2
Remove noop pin+unpin w/ memory blocks
...
+ Only use pooled blocks in tests
2016-04-30 11:17:06 +01:00
Kristian Hellang
8a9840216c
Use type's namespace instead of assembly FullName
2016-04-29 12:02:56 -07:00
moozzyk
75adbc18a2
Use IOCP on secondary listener threads on Windows
...
Addresses #679
2016-04-29 08:45:12 -07:00
Cesar Blum Silveira
ebca8db7dc
Merge branch 'justinvp/taskutilities' into dev
2016-04-28 11:28:42 -07:00
Justin Van Patten
68f14c06cb
Use Task.FromCanceled<TResult>() on NETSTANDARD1_3
...
Task.FromCanceled<int>(cancellationToken) can be used on
NETSTANDARD1_3 in TaskUtilities.GetCancelledZeroTask().
2016-04-27 22:26:31 -07:00
Cesar Blum Silveira
5a8cba878d
Merge branch 'benaadams/async-write' into dev
2016-04-27 11:25:45 -07:00
Justin Van Patten
8f7c0ff041
Minor Stream improvements
...
- Unsupported members should throw NotSupportedException instead of
NotImplementedException per MSDN docs for CanRead/CanSeek/CanWrite.
- Position should throw NotSupportedException when CanSeek is false.
- FrameRequestStream.Flush/FlushAsync should not throw
NotImplementedException.
- Use expression-bodied members for CanRead/CanSeek/CanWrite on
FrameRequestStream to match FrameResponseStream.
- Provide no-op override of LibuvStream.FlushAsync to match Flush.
2016-04-25 22:19:30 -07:00
Ben Adams
216aa9343e
Remove redundent null coalesce
2016-04-25 11:49:48 +01:00
Ben Adams
4626833e51
StreamSocketOutput WriteAsync as async
2016-04-25 09:52:33 +01:00
Cesar Blum Silveira
0a21b94609
Make ECONNRESET value platform-specific ( #649 ).
2016-04-22 16:06:08 -07:00
Cesar Blum Silveira
179b57b01f
Remove SocketInputStream ( #753 ).
2016-04-21 15:10:12 -07:00
Cesar Blum Silveira
7ca0fbeb3d
Merge branch 'release' into dev
2016-04-19 22:22:48 -07:00
Cesar Blum Silveira
f29dd60999
Fix connection termination issues when using connection filters ( #737 , #747 ).
...
- If we're done before the client sends a FIN, force a FIN into the raw
SocketInput so the task in FileteredStreamAdapter finishes gracefully
and we dispose everything in proper order.
- If there's an error while writing to a stream (like ObjectDisposedException),
log it once and prevent further write attempts. This means the client closed
the connection while we were still writing output.
- This also fixes a bug related to the point above, where memory blocks were
being leaked instead of returned to the pool (because we weren't catching
the exception from Write()).
2016-04-19 22:04:33 -07:00
Mike Harder
8b83f1ee6b
Merge branch 'release' into dev
2016-04-18 16:59:08 -07:00
Mike Harder
0453e4af70
Add KestrelServerOptionsSetup before KestrelServerOptions ( #755 ) ( #757 )
...
- Required to ensure that options.ApplicationServices is available after during UseKestrel(options)
2016-04-18 16:57:59 -07:00
Mike Harder
0d9dc1a205
Merge branch 'release' into dev
2016-04-18 15:33:21 -07:00
Mike Harder
bbf2c83a7d
Add KestrelServerOptionsSetup to IServiceCollection in UseKestrel() ( #755 )
...
- Previously, KestrelServerOptionsSetup was only added to IServiceCollection in UseKestrel(options)
- Required to ensure that options.ApplicationServices is available after calling UseKestrel()
2016-04-18 15:32:09 -07:00
Chris R
20a1f4a548
Merge branch 'release' into dev
2016-04-15 16:06:15 -07:00
Chris R
c48353f4ef
Hosting#698 Remove IServerFactory
2016-04-15 16:05:01 -07:00
Mike Harder
38c70a6fec
Merge branch 'release' into dev
2016-04-13 15:12:37 -07:00
Mike Harder
6047a62c07
Add IWebHostBuilder.UseKestrel(options) overload to configure Kestrel ( #720 )
...
- Replace KestrelServerInformation with KestrelServerOptions.
- Move properties from KestrelServerPoolingParameters to KestrelServerOptions.
- Stop reading default options from "kestrel.*" config settings.
- Move extension method IApplicatonBuilder.UseKestrelConnectionLogging() to KestrelServerOptions.UseConnectionLogging()
2016-04-13 14:57:54 -07:00
Stephen Halter
c9a1d4000f
Merge branch 'release' into dev
2016-04-13 12:51:56 -07:00
David Fowler
5354005a1a
Remove support for DNX on osx on mono
...
- Remove mono osx specific PInvokes
- Use PlatformAbstractions to detect darwin instead of direct pinvoke
#742
2016-04-12 23:47:36 -07:00
Eilon Lipton
795fc36cde
Fix package metadata
2016-04-12 18:47:35 -07:00
Cesar Blum Silveira
7b63846357
Prevent crash when aborting connection before Frame is created ( #738 ).
2016-04-12 14:18:41 -07:00
Stephen Halter
7d4fcfeb23
Depend on separate libuv package
2016-04-10 21:15:43 -07:00
Pranav K
29a8d5b7c5
Removing imports from src projects
2016-04-08 06:49:01 -07:00
Stephen Halter
056b4ac41d
Never call Thread.Abort
...
- This API isn't available on .NET Core so we should rely entirely on
our other methods of terminating the libuv threads.
2016-04-06 14:48:01 -07:00
Stephen Halter
50f187aa3e
Ensure entire request body is consumed before handling fin
...
This completes the fix for #704
2016-04-05 11:16:09 -07:00
David Fowler
21de2aee13
Remove unused dependency on TraceSource
...
- TraceSource is RID specific (see https://github.com/dotnet/corefx/issues/7480 ) and it
causes 2 dlls to end up in the output of every ASP.NET application. We don't even
use it anymore.
2016-04-04 20:04:17 -07:00
BrennanConroy
109c56713a
React to logging changes
2016-04-01 11:53:47 -07:00
Mike Harder
228c34b500
Remove duplicate calls to FrameRequestHeaders and FrameResponseHeaders ctors ( #695 )
2016-03-31 17:34:59 -07:00
Doug Bunting
c828fafe1b
React to HttpAbstractions namespace changes
...
- aspnet/HttpAbstractions#549 and aspnet/HttpAbstractions#592
- clean up `using`s
2016-03-30 16:04:43 -07:00
Mike Harder
088b7e5779
Add UseKestrel() extension method to IWebHostBuilder ( #713 )
2016-03-30 12:08:32 -07:00
Stephen Halter
aa17125f9e
Fix spelling of "timeout" in kestrel.shutdownTimeout
2016-03-30 11:14:35 -07:00
Stephen Halter
f0e438f65f
Remove IKestrelTrace.ApplicationError overload without connection id
...
Add test verifying that exceptions thrown from application tcs continuations
run by the LoggingThreadPool don't get logged as general exceptions.
2016-03-30 11:13:13 -07:00
Stephen Halter
a8e5c0ce30
Log connection id in KestrelTrace.ApplicationError
2016-03-30 10:16:01 -07:00
Cesar Blum Silveira
3f0e65495e
Merge branch 'shalter/last-request' into dev
2016-03-22 17:57:26 -07:00
Cesar Blum Silveira
fd70fb732d
Add explanatory comments for previous commit.
2016-03-22 17:55:21 -07:00
Doug Bunting
f13c418a65
React to HttpAbstractions change: No features in `.Internal` namespace
...
- see issue aspnet/HttpAbstractions#561 and pull aspnet/HttpAbstractions#589
2016-03-18 19:01:53 -07:00
Stephen Halter
792f3ad089
Fix race preventing handling of the last request sent over a connection
...
We need to attempt to consume start lines and headers even after
SocketInput.RemoteIntakeFin is set to true to ensure we don't close a
connection without giving the application a chance to respond to a request
sent immediately before the a FIN from the client.
2016-03-17 23:08:30 -07:00
Stephen Halter
84a68208d0
Remove race condition from socket input that could stall reads
...
- Without the _sync lock, if new data was produced as ConsumingComplete
was called, the next "await SocketInput" might never complete despite not
all data being examined.
- If more data is produced afterward, the stall would be prevented, but this
isn't always the case such as during the end of the request.
2016-03-17 07:44:32 -07:00
Cesar Blum Silveira
8e24c3a708
Fix deadlock when connection is simultaneously aborted and ended ( #684 ).
2016-03-12 21:35:21 -08:00
Pranav K
7c67366e84
Fix CI build failure
2016-03-11 21:41:09 -08:00
Brice Lambson
fb8cf86f71
Don't reference facades in NuSpec
...
These can be removed entirely after dotnet/cli#164
2016-03-11 08:45:06 -08:00
Cesar Blum Silveira
88367ccf2d
Wait for more input while request hasn't finished ( #672 ).
2016-03-09 15:20:02 -08:00
Cesar Blum Silveira
37b0917ac1
Use TLS 1.1 or 1.2 only ( #637 ).
2016-03-09 12:09:31 -08:00
moozzyk
5f6293110c
Adding libuv.so to the package
2016-03-07 13:21:35 -08:00
Cesar Blum Silveira
cd8e8f0a11
Prevent DebugAssertException from blocks not returned by non-graceful shutdowns ( #667 ).
2016-03-03 23:57:22 -08:00
Ajay Bhargav Baaskaran
65f83015e3
Added Company, Copyright and Product attributes to AssemblyInfo
2016-03-03 17:32:50 -08:00
Stephen Halter
f15471bcf2
Remove 2 from MemoryPool2 and related types
...
- This was merely an artifact from when this was the second of 2 pools
2016-03-03 12:11:25 -08:00
Doug Bunting
bb2e76c7f1
Remove project name from output path
...
- aspnet/Coherence-Signed#187
- remove `<RootNamespace>` settings but maintain other unique aspects e.g. `<DnxInvisibleContent ... />`
- in a few cases, standardize on VS version `14.0` and not something more specific
2016-03-02 18:57:23 -08:00
Cesar Blum Silveira
41f77ee3fd
Handle uploads larger than 2GB.
2016-03-02 16:09:52 -08:00
Stephen Halter
4e5920fd09
KestrelThread.Stop should wait for StartAsync to complete
...
- Previously KestrelThread.Stop might assume start failed prematurely
- This could cause a background thread to run indefinitely in the background
2016-03-02 15:04:29 -08:00
N. Taylor Mullen
c33b422d7a
Transition to netstandard.
...
- dotnet5.X => netstandard1.y (where y = x-1).
- DNXCore50 => netstandardapp1.5.
- Applied the same changes to ifdefs.
2016-03-01 13:36:06 -08:00
Ben Adams
dab1a1fa8d
bug dodge: Invalid Program Excep on Clr
2016-02-27 13:23:54 +00:00
Ben Adams
766803c573
Return 400 for bad requests and close conn
2016-02-27 12:35:12 +00:00
Ben Adams
4bfcd7ba1f
Drain chunked extensions + refactor
2016-02-26 23:48:51 +00:00
Ben Adams
e0f7bb06dd
Parse chunked trailing headers
2016-02-26 23:48:50 +00:00
Ben Adams
8d8176f14a
Consume chunked request fully
2016-02-26 23:48:49 +00:00
Cesar Blum Silveira
f21cb128e8
Handle 0-byte reads correctly ( #520 ).
2016-02-26 15:21:11 -08:00
Ben Adams
c2e5124d5a
Fix XML Comment
2016-02-22 22:43:30 -08:00
Ben Adams
58e07a8b2b
Put threads into background before starting
2016-02-20 06:15:11 +00:00
Ajay Bhargav Baaskaran
e14b86ebe0
Enabled xml doc generation
2016-02-18 16:27:55 -08:00
N. Taylor Mullen
795bbfce69
Update System.Linq 4.0.2-* => 4.1.0-*.
2016-02-18 15:36:17 -08:00
Chris R
aef612bdac
Add IHttpConnectionFeature.ConnectionId.
2016-02-18 11:10:55 -08:00
Cesar Blum Silveira
aa48ad2933
Merge branch 'benaadams/loopback-fastpath' into dev
2016-02-18 10:52:42 -08:00
Stephen Halter
bc56d11d8c
Set IsBackground property to true on libuv Threads for non-debug builds
...
- If libuv doesn't shutdown as expected, the process will still stop. Thanks @benaadams!
- Address other minor PR feedback.
2016-02-17 16:40:05 -08:00
Stephen Halter
53ecef0f98
Use libuv to track connections instead of ConcurrentDictionaries
...
- This means connections become untracked sooner than before and not all blocks will
necessarily be returned.
- The assertion in the MemoryPoolBlock2 finalizer was weakened because FilteredStreamAdapter
will continue to use blocks after libuv stops tracking the associated connection.
- Make 100% sure we don't accept new connections after we dispose the listen socket by using a flag.
- Add a (currently unused) AllowStop method to KestrelThread. This is meant to be called from
listeners when we stop accepting new connections, but needs investigation to prevent flakiness.
2016-02-17 16:05:35 -08:00
Stephen Halter
f4bb8d5eff
Verify that memory pool blocks aren't leaked in tests
2016-02-17 16:05:34 -08:00
Stephen Halter
304016fc3b
Close UvAsyncHandle properly to avoid zombie threads
...
- Even when safe handles are disposed explicitly, ReleaseHandle is sometimes
called on another thread which breaks uv_close.
- Ensure we close the UvAsyncHandle the uv loop so that the second call
to uv_run always completes without a timeout/Thread.Abort.
- Re-enable some tests. Add skip conditions for those that aren't passing.
2016-02-17 16:05:32 -08:00
Stephen Halter
54caf3071c
Close connections as quickly and gracefully as possible on shutdown
...
- Make the time given for requests to complete gracefully configurable.
- Complete all async reads so calling code can re-check whether to stop
request processing and exit if in between requests.
- Don't wait for a FIN from the client since some browsers (e.g. IE & Chrome)
will take a long time to send one.
- Ensure all ConnectionFilters complete before the memory pool is disposed.
- Ensure blocks get returned even when a ConnectionFilter produces a failed read
2016-02-17 16:05:23 -08:00
Stephen Halter
9c31907bac
Don't rely on the finalizer to return blocks referenced by SocketInput
2016-02-17 16:01:35 -08:00
Stephen Halter
87bd60746b
Merge branch 'benaadams/pool-headers' into dev
2016-02-17 16:00:20 -08:00
Ben Adams
020e0b9dc5
Enable TCP Loopback Fast Path (Windows)
...
Enable TCP Loopback Fast Path; where the IP layer is skipped, for lower
latency for localhost comms, like HttpPlatformHandler+IIS reverse proxy
http://blogs.technet.com/b/wincat/archive/2012/12/05/fast-tcp-loopback-performance-and-low-latency-with-windows-server-2012-tcp-loopback-fast-path.aspx
Have to do it this way due to open issue in libuv
Loopback fast path: libuv/libuv#489
Related: "Confirm HttpPlatformHandler uses Fast TCP Loopback"
aspnet/IISIntegration#29
2016-02-14 04:44:20 +00:00
Ben Adams
b473402cb1
Fast header clear
2016-02-13 11:49:00 +00:00
Ben Adams
f8aa1a676a
Pass ServerInformation as property of ServiceContext
2016-02-13 05:51:54 +00:00
Ben Adams
460dbb15c2
RO Headers & rationalise exceptions
2016-02-13 03:35:26 +00:00
Ben Adams
e533d5da89
Fast path Consume when already complete
2016-02-13 01:52:16 +00:00
Ben Adams
c293bbbd1a
Reuse headers to prevent values moving to higher GC gens
2016-02-13 01:16:17 +00:00
Stephen Halter
f89c959f4f
Merge branch 'benaadams/no-spin' into dev
2016-02-12 10:54:48 -08:00
moozzyk
fe75aa47db
Enabling Kestrel on OSx Mono when not running with dnx
...
Before moving to dotnet dnx on OSx on Mono would load libuv.dll into the process and Kestrel would use DllImport with __Internal to import functions from the native libraries loaded into the Mono process. With the move to dotnet nothing is preloading libuv to the process so Kestrel must no longer use DllImports with __Internal but the regular ones. Mono seems to load native libraries from the app folder so, the user won't have to install libuv on their own since libuv.dylib is published with the app.
2016-02-11 16:05:32 -08:00
Pranav K
c5a8792ece
Reacting to CoreCLR package version changes
2016-02-08 09:33:46 -08:00
Cesar Blum Silveira
6757a31fd2
Build with dotnet ( #571 ).
2016-02-01 14:37:47 -08:00
Cesar Blum Silveira
1209eca3fa
Normalize request path to NFC and resolve dot segments ( #273 ).
2016-01-28 15:29:29 -08:00
Brennan
15ed03eb26
React to Logging API changes
2016-01-27 14:25:52 -08:00
Stephen Halter
a2fe59fb2c
Speed up unit tests
...
- Remove unnecessary uses of Task.Delay
- Change all usages to CancellationToken.None to default(CancellationToken)
for consistency
2016-01-27 13:01:44 -08:00
Ben Adams
00b8a13b55
Merge+rename+rename resolve
2016-01-26 11:33:14 +00:00
Ben Adams
9f2d685cbf
Merge remote-tracking branch 'refs/remotes/aspnet/shalter/always-immediate' into combined-fixes
2016-01-26 02:15:56 +00:00
Stephen Halter
a4b8b01c99
Remove immediate parameter from Frame.ProduceStart
...
- Simply call SocketOutput.WriteAsync(_emptyData) to force headers to be flushed
2016-01-25 11:09:15 -08:00
Stephen Halter
7570da9daa
Flush chunked writes before the entire response completes
...
Ensure chunked writes force an "immediate" write by removing the now
unused immediate parameter from ISocketOutput.Write
2016-01-25 10:34:15 -08:00
Ben Adams
3f414782b9
Remove spinning for blocked socket ops
...
As per https://github.com/dotnet/corefx/pull/5655
2016-01-24 14:49:25 +00:00
Ben Adams
de34d14abb
WriteChunked immediate for large responses
2016-01-23 10:48:24 +00:00
Ben Adams
0ca8ca0328
Update FrameResponseStream Cancellation
2016-01-23 10:17:09 +00:00
Stephen Halter
735c0fbbef
Added new test to verify failed writes complete all pending write tasks
...
- Changed MockLibuv to never fall back to real libuv methods.
- Fixed EngineTests.ConnectionCanReadAndWrite
2016-01-23 10:17:07 +00:00
Ben Adams
e5238ff383
Only log connection error once
2016-01-23 10:17:06 +00:00
Ben Adams
cd621509d0
Complete all writes after error
2016-01-23 10:17:05 +00:00
Ben Adams
a97cb81f92
MockConnection Abort
2016-01-23 10:17:03 +00:00
Ben Adams
73bb0ab5b8
SocketOutput Cancellation handling
2016-01-23 10:17:02 +00:00
N. Taylor Mullen
b062f851dc
Rename AspNet 5 file contents.
...
See https://github.com/aspnet/Announcements/issues/144 for more information.
2016-01-22 12:23:51 -08:00
N. Taylor Mullen
3cfe2f3070
Rename AspNet 5 folders and files.
...
See https://github.com/aspnet/Announcements/issues/144 for more information.
2016-01-22 12:23:44 -08:00
Pranav K
40824999c6
Reacting to CoreCLR package version change
2016-01-20 20:58:22 -08:00
Stephen Halter
8ea24f05f4
Merge branch 'benaadams/reduce-sync-over-async' into dev
2016-01-19 16:35:51 -08:00
Ben Adams
fa8fe3d085
Complete sync-blocked calls directly
2016-01-19 22:38:08 +00:00
Brennan
63cd6149d1
Removed IsLocal from ConnectionInfo
2016-01-19 08:37:47 -08:00
Ben Adams
d3d9c8d546
Write async chunks async
2016-01-18 13:39:13 +00:00
Stephen Halter
129a5ad474
Bypass LibuvStream if no ConnectionFilter wraps it
2016-01-14 15:28:54 -08:00
Stephen Halter
e5ad019575
Revert "Merge branch 'benaadams/copyfrom-perf' into dev"
...
This reverts commit ce61282320 , reversing
changes made to 7ef70bc145 .
2016-01-14 11:47:23 -08:00
Stephen Halter
ce61282320
Merge branch 'benaadams/copyfrom-perf' into dev
2016-01-12 14:24:35 -08:00
Ben Adams
caaf9d473b
Faster CopyFrom
2016-01-12 21:43:37 +00:00
Stephen Halter
7ef70bc145
Merge branch 'anderman/FindFirstByteFast' into dev
2016-01-12 12:51:50 -08:00
Stephen Halter
d9f6ac70a0
Merge branch 'benaadams/using-reorder' into dev
2016-01-12 12:15:54 -08:00
Stephen Halter
f32f1c4440
Merge branch 'henkollema/projectjson' into dev
2016-01-12 12:14:35 -08:00
Stephen Halter
ab5ef547e1
Make chunked writes atomic
2016-01-11 16:53:46 -08:00
Stephen Halter
daa2b7e383
Remove _tasksCompleted from SocketOutput
...
- _tasksCompleted no longer helps avoid locking longer
2016-01-11 12:40:01 -08:00
Stephen Halter
df695accb0
Use TryEnter to acquire SocketOutput._contextLock on the libuv event loop
2016-01-11 12:39:59 -08:00
Stephen Halter
e90b61e6c5
Move call to CopyFrom in SocketOutput.WriteAsync inside lock to make writes atomic
2016-01-11 12:39:57 -08:00
Ben Adams
8ac119df76
using reorder (nit)
2016-01-11 19:02:51 +00:00
Thom Kiesewetter
1b09a76ebb
Find First Byte Fast
2016-01-11 08:31:52 +01:00
clrjunkie
63e39a257e
One-time-use allocated blocks keep reference to source pool / Assert that a block is returned to it's source pool / Managed block are only returned to active Slabs
2016-01-09 19:41:35 +02:00
clrjunkie
8260e5d93f
Remove null-conditional operators and asserts (Blocks must return to pools)
2016-01-09 19:36:26 +02:00