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