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
Cesar Blum Silveira
e8fa40235b
Remove unused variable in MemoryPoolIterator.Seek() ( #1137 ).
2016-10-03 14:22:10 -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
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
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
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
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
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
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
DamirAinullin
0491b49268
Remove double initializing of variable _field3
2016-09-07 14:23:06 +03: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
David Fowler
6795ca2f78
Make the char array for utf8 decoding smaller
2016-08-31 18:54:15 -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
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
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
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
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
Mike Harder
4ece3f4b68
Change "String." to "string." to match coding convention
2016-08-01 11:09:31 -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
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
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
Stephen Halter
849ff2016c
Use object.ReferenceEquals when comparing Actions in SocketInput
2016-01-08 15:40:07 -08:00
Stephen Halter
b63dd40efb
Protect SocketInput against concurrent consumption
2016-01-08 11:14:15 -08:00
Stephen Halter
f3a39d98da
Merge branch 'benaadams/socket-input' into dev
2016-01-08 11:12:43 -08:00
Henk Mollema
b4b5f07a08
Detect mono using PlatformAbstractions
2016-01-07 00:48:36 +01:00
Henk Mollema
db11368d26
Remove StandardsPoliceCompileModule usage
...
Just a test - this seems to fix the build
2016-01-07 00:35:51 +01:00
Henk Mollema
e81c5adce2
Change #ifdefs
2016-01-07 00:35:50 +01:00
Henk Mollema
97a5149dd9
Remove dnx451 and dnxcore50 TFM's
2016-01-07 00:35:49 +01:00
Stephen Halter
ffd950966e
Merge branch 'benaadams/string-construct' into dev
2016-01-06 12:14:15 -08:00
Stephen Halter
c4605bea20
Merge branch 'benaadams/pendingwrites' into dev
2016-01-05 12:57:23 -08:00
Stephen Halter
b1a4e8cd1e
Merge branch 'anderman/faster-unsafe' into dev
2016-01-05 12:33:14 -08:00
Stephen Halter
48233cd081
Merge branch 'benaadams/memorypool-seek' into dev
2016-01-05 12:09:04 -08:00
Ben Adams
bc19a07291
ifdef comments on own line
2016-01-05 12:08:39 -08:00
sergey-tom
406d785b5e
Fix typo
...
Looks like value from wrong variable is passed to Marshal.FreeHGlobal method. So IntPtr.Zero is passed to the method and actual pointer is lost.
2016-01-05 15:14:49 +01:00
Ben Adams
e6bc0bc335
Only scheduleWrites on the threadpool
2016-01-05 11:42:41 +00:00
Ben Adams
480996433e
Only queue write when not queued
2016-01-05 11:33:29 +00:00
Ben Adams
4c39800ea4
Seek perf extra
...
See https://github.com/aspnet/KestrelHttpServer/issues/541
2016-01-05 09:37:50 +00:00
Ben Adams
1eda5178de
Seek perf + faster non vector path
2016-01-05 09:37:49 +00:00
Cesar Blum Silveira
7cc51959d9
Merge branch 'Anderman/TakeStartLine' into dev
2016-01-04 13:54:51 -08:00
Cesar Blum Silveira
a53949c33e
Add CORS headers to known headers ( #389 ).
2016-01-04 12:26:21 -08:00
Stephen Halter
11e046e017
Merge branch 'benaadams/name-thread' into dev
2016-01-04 11:55:53 -08:00
Ben Adams
cf77efc2ff
Fast path pre-completed Input reads
2016-01-02 03:57:02 +00:00
Ben Adams
afe944c053
Simplify SocketInput, remove locks, only use pooled blocks
2016-01-02 03:50:55 +00:00
David Fowler
4f8ec86b54
React to HttpAbstractions changes
2015-12-31 14:04:47 -08:00
Stephen Halter
5296d89337
Merge branch 'benaadams/messagebody.for' into dev
2015-12-30 17:38:48 -08:00
Stephen Halter
072f2b1a20
Merge branch 'benaadams/valuetask' into dev
2015-12-30 16:51:48 -08:00
Thom Kiesewetter
36e9e8759a
Optimize TakeFirst Line with Known method and Version
2015-12-31 01:24:59 +01:00
Ben Adams
ea3e64ab87
Loop unrolled direct string inject
2015-12-30 23:09:59 +00:00
Cesar Blum Silveira
6fbb9a0cfe
Cleanup: private embedded types and readonly where appropriate ( #187 ).
2015-12-30 12:47:13 -08:00
Ben Adams
f7ac457b40
Use ValueTask
2015-12-30 19:41:55 +00:00
Ben Adams
5c58d48272
Name KestrelThreads
...
Helps with debugging, profiling
2015-12-30 13:06:27 +00:00
Cesar Blum Silveira
acc80bcbc5
Merge branch 'benaadams/take' into dev
2015-12-29 11:46:24 -08:00
Thom Kiesewetter
8fdfef460a
Faster unsafe pointers
2015-12-29 15:03:52 +01:00
Ben Adams
80dc284407
Checked length
2015-12-29 08:52:05 +00:00
Ben Adams
9019ac39ae
Faster Take
2015-12-29 00:46:45 +00:00
Cesar Blum Silveira
0f389f01cb
Merge branch 'benaadams/peek' into dev
2015-12-28 16:14:27 -08:00
Cesar Blum Silveira
1eeb0e380c
Merge branch 'benaadams/generic-boxing' into dev
2015-12-28 15:46:30 -08:00
Ben Adams
982ab99b45
Make callback adapters readonly
2015-12-28 23:02:41 +00:00
Cesar Blum Silveira
67ed24896a
Dispose socket on Accept() error.
2015-12-28 12:19:35 -08:00
Ben Adams
eb8f860bd6
Avoid generic boxing in Post
2015-12-26 15:07:00 +00:00
Ben Adams
f220a9f200
Faster Peek
2015-12-26 07:38:08 +00:00
Ben Adams
11b360b667
Faster MessageBody.For
2015-12-26 07:11:54 +00:00
Cesar Blum Silveira
ada61f8181
Merge branch 'benaadams/readonly-static' into dev
2015-12-22 11:12:00 -08:00
moozzyk
aaf84afaff
Don't try calling `uname` on Windows
2015-12-21 10:25:48 -08:00
Ben Adams
02fa0c306d
Jit readonly static optimization
2015-12-20 00:34:42 +00:00
John Luo
bd10d507f8
Reacting to new Hosting API
2015-12-17 15:08:17 -08:00
Cesar Blum Silveira
717b355bfd
Merge branch 'benaadams/horizontal-initalize' into dev
2015-12-17 14:37:48 -08:00
Ben Adams
7625f65e6c
Faster MemoryPoolIterator2.CopyFrom
2015-12-17 11:32:01 +00:00
Ben Adams
186f6d0a05
Horizontal initialize repeat vectors once
2015-12-17 10:18:20 +00:00
Stephen Halter
5d6fdc5eb5
Merge branch 'benaadams/vector.dot' into dev
2015-12-16 17:39:40 -08:00
Stephen Halter
67a0165aec
Merge branch 'benaadams/headers.clearfast' into dev
2015-12-16 15:48:01 -08:00
Ben Adams
559cd51255
Faster Headers.ClearFast
2015-12-16 22:23:33 +00:00
Ben Adams
9fa9c45eda
ReuseStreams config and tests
2015-12-16 21:27:07 +00:00
Ben Adams
841ec73497
Prevent OnComplete modifying Streams
2015-12-16 20:51:45 +00:00
Ben Adams
f5e45accac
Amortize Stream Costs
2015-12-16 20:51:44 +00:00
Cesar Blum Silveira
349af50977
Pre-allocate standard method and version strings.
2015-12-16 10:47:59 -08:00
Ben Adams
4460cd3470
Don't use Vector<byte>.Dot
2015-12-16 16:24:45 +00:00
moozzyk
83cff16715
Changing the folder of ARM version of libuv to win7-arm
...
Depends on: https://github.com/aspnet/libuv-build/pull/4
Fixes: https://github.com/aspnet/Home/issues/1111
2015-12-15 10:37:29 -08:00
Ben Adams
dc9f5c433b
Update reason phrases to current
...
Update HTTP reason phrases to current values; are currently original
phrases.
2015-12-13 23:17:03 +00:00
Ben Adams
5665eba646
Pool WriteContexts additionally
2015-12-10 20:31:30 +00:00
Stephen Halter
3e42904096
Pool UvWriteReqs instead of SocketOutput.WriteContexts
...
- This allows all connections accepted by the same thread to share a pool
2015-12-10 20:31:30 +00:00
Ben Adams
992664e0dc
Process cascaded work immediately
...
Without waiting for next libuv pass
Fix for potential regression in #363 due to bug fix.
2015-12-10 20:31:29 +00:00
Ben Adams
97d3340624
Resuse writes, initalize queues
2015-12-10 20:31:28 +00:00
Stephen Halter
f9d70e601c
Set error before changing state in SocketInput.AbortAwaiting
...
- This fixes a tight race where awaiting code might continue but not see
the ODE that moved SocketInput into the completed state.
2015-12-10 12:21:20 -08:00
Stephen Halter
f42bb02f24
Merge branch 'benaadams/server-crash' into dev
2015-12-10 12:18:13 -08:00
Ben Adams
9e8b07ecf8
Error concurrent reads gracefully
2015-12-10 16:25:06 +00:00
John Luo
fd33475c05
Ignore null valued headers #429
2015-12-09 17:23:34 -08:00
Stephen Halter
ebf642457d
Merge branch 'khellang/kestrel-server-tests' into dev
2015-12-09 15:27:51 -08:00
Stephen Halter
dd02a1c442
Fix compiler warnings
2015-12-08 17:31:57 -08:00
Kristian Hellang
6fbc3b8832
Added null check in KestrelServerInformation
2015-12-08 10:58:42 +01:00
Stephen Halter
90ece575f7
Merge branch 'khellang/configurable-thread-count' into dev
2015-12-08 00:13:56 -08:00
Stephen Halter
de5dd4ca57
Merge branch 'benaadams/trim-streams' into dev
2015-12-08 00:11:29 -08:00
Stephen Halter
d0dca75241
Remove count parameter from ISocketOutput.ProducingComplete
...
- This makes the calling code cleaner with a (hopefully) minimal pref impact
2015-12-08 00:09:24 -08:00
John Luo
dff3a4f231
Reacting to verbose rename
2015-12-07 17:42:13 -08:00
Kristian Hellang
4c68807a05
Split out ProcessorThreadCount, added InvariantCulture to TryParse
2015-12-07 22:14:05 +01:00
Kristian Hellang
8d6a999bc3
Made NoDelay configurable
2015-12-07 22:09:04 +01:00
Kristian Hellang
12ee74c09c
server.threadCount -> kestre.threadCount
2015-12-07 22:00:03 +01:00
Ben Adams
59bfb9ba10
Trim req/resp streams by a field each
2015-12-07 15:31:14 +00:00
Kristian Hellang
b6b8ea3c38
Made ThreadCount configurable
2015-12-07 15:38:06 +01:00
Kristian Hellang
75cfe2c3bb
Moved GetThreadCount into KestrelServerInformation
2015-12-07 15:38:05 +01:00
Stephen Halter
706ff04160
Merge branch 'benaadams/statemachines' into dev
2015-12-07 00:07:14 -08:00
Stephen Halter
c451ce1863
Merge branch 'khellang/thread-count-init' into dev
2015-12-06 23:32:57 -08:00
Kristian Hellang
5eaa7e51c8
Initialize ThreadCount as early as possible
...
This will allow you to inspect the property
in the Configure method.
Closes #404
2015-12-04 20:55:37 +01:00
Ben Adams
35a06369d7
Pooled block always has pool
2015-12-04 08:23:12 +00:00
Stephen Halter
1c320d7a74
Merge branch 'benaadams/dont-use-default-buffer-size' into dev
2015-12-03 18:28:24 -08:00
Stephen Halter
737aac4cfc
Merge branch 'benaadams/over-the-edge' into dev
2015-12-03 18:28:05 -08:00
Ben Adams
858e5ab3a2
Moar stopping power, Timeout is total timout
2015-12-03 23:37:54 +00:00
Ben Adams
1ca67695ed
Use pooled memory for filtered stream
2015-12-03 19:17:40 +00:00
Ben Adams
9af9dea72c
Smaller default buffer
2015-12-03 18:46:43 +00:00
Ben Adams
c41b449681
Lighter & less async sMachines
...
Selected excerpts from "Value tasks + Less Async" #432
2015-12-03 11:10:20 +00:00
Ben Adams
b1e8f0cdea
Add IThreadPool interface
2015-12-03 10:37:52 +00:00
Ben Adams
850d2b0c7e
Construct ThreadPoolActions in KestrelServer
2015-12-03 09:56:21 +00:00
Ben Adams
5ae9b3c383
Log user code threadpool continuation execptions
2015-12-03 09:56:21 +00:00
Stephen Halter
10490888d3
Merge branch 'tenor/speed-up-date' into dev
2015-12-02 19:52:48 -08:00
Stephen Halter
b84d8dbd07
Minor style changes to tenor/speed-up-date
...
- Removed some code required to support sub-second timer intervals
2015-12-02 19:50:55 -08:00
Stephen Halter
7cbbf68e9d
Merge branch 'benaadams/connectionfilter' into dev
2015-12-02 19:21:05 -08:00
Stephen Halter
bb2c17a779
Merge branch 'benaadams/req-delegate' into dev
2015-12-02 19:17:16 -08:00
Ben Adams
a55be21469
Empty buffer when null buffer
2015-12-03 02:10:36 +00:00
Ben Adams
b7c60de98a
Don't allocate request processing delegate
2015-12-02 15:23:09 +00:00
John Luo
168f4770f4
Reacting to new IServer and IHttpApplication design
2015-12-01 13:03:46 -08:00
Stephen Halter
0c33cad343
Merge branch 'benaadams/kestrel-thread-api' into dev
2015-12-01 12:20:41 -08:00
Sunny Ahuwanya
6251b8f3e6
Changed timer interval to 1 second.
2015-12-01 09:29:54 -05:00
Cesar Blum Silveira
921c338a40
Support PathBase ( #214 ).
2015-11-30 16:42:02 -08:00
Ben Adams
9102c1bb92
Remove unused IMemoryPool
2015-11-29 10:13:14 +00:00
Ben Adams
2937fc3c98
OnConnection->OnConnectionAsync
...
Resolves #433
2015-11-29 03:57:47 +00:00
Sunny Ahuwanya
67a0f2d420
Reverted ISystemClock to use DateTimeOffset
2015-11-28 21:27:51 -05:00
Sunny Ahuwanya
7f025a6bd4
Speed up DateHeaderValueManager
...
Replaced PumpTimer() method with StartTimer(), introduced StopTimer()
method which pauses timer when idle instead of disposing it,
ISystemClock returns DateTime instead of DateTimeOffset.
2015-11-28 20:15:17 -05:00
David Fowler
ea7f40c592
Merge pull request #408 from benaadams/CancellationTokenSource
...
Remove CreateLinkedTokenSource
2015-11-25 01:32:04 -08:00
Stephen Halter
07c0b414f0
Merge branch 'benaadams/faster-headers' into dev
2015-11-23 15:10:24 -08:00
Ben Adams
81dba3961d
less work in locks
2015-11-21 14:13:23 +00:00
stephentoub
c7d7f0e575
Lazily allocate the RequestAborted CTS
...
Avoid allocating the CancellationTokenSource unless it's actually requested. This makes it pay-for-play with regards to code that actually asks for the RequestAborted token and requests that are aborted.
2015-11-21 08:38:48 -05:00
Cesar Blum Silveira
e4fd91bb68
Fix hang on Connection: close requests. ( #406 )
2015-11-20 20:43:52 -08:00
Ben Adams
feb40402de
merge preamble-output, socket-output
2015-11-21 04:18:06 +00:00
Ben Adams
a3173c487a
Precomputed header bytes
2015-11-21 00:22:44 +00:00
Stephen Halter
0dbf108353
Smarter unpinning of MemoryPoolBlock2 in SocketOutput
2015-11-20 12:59:53 -08:00
Stephen Halter
2572256d3f
Use MemoryPool2 for SocketOutput Buffers
...
Add ProducingStart and ProducingComplete methods to ISocketOutput.
These new methods can help prevent double buffering when encoding.
2015-11-20 04:41:33 -08:00
Ben Adams
9d852632c0
Remove _nullBuffer
...
Was meant to be removed as part of #335
/cc @rynowak
2015-11-20 05:51:25 +00:00
Ben Adams
174ec739bb
Don't log ODEs thrown from _abortedCts.Cancel
2015-11-20 00:30:08 +00:00
Chris R
1c40548928
Add LoggingConnectionFilter.
2015-11-19 16:28:45 -08:00
Ben Adams
3c7431aa35
Change disconnect to abort cts
2015-11-19 23:25:31 +00:00
Ben Adams
58d8c851c5
Remove CreateLinkedTokenSource
...
Resolves #407
2015-11-19 21:50:10 +00:00
Cesar Blum Silveira
307e020703
Don't crash the server if a connection filter throws synchronously.
2015-11-19 13:27:43 -08:00
Master T
efec0feda2
Fix merge
2015-11-18 08:29:30 +01:00
Master T
2cdd659e67
Fix indentation
2015-11-18 05:11:57 +01:00
Master T
592d802fde
Add test for https scheme, code cleanup
2015-11-18 05:06:30 +01:00
Master T
85eb6ab600
Code cleanup
2015-11-18 05:06:29 +01:00
Master T
ba63c894be
Remove Console.WriteLine
2015-11-18 05:06:28 +01:00
Master T
8e910baf04
Improve based on pull request feedback
2015-11-18 05:06:27 +01:00
Master T
bed8c67181
Add SslProtocols option to HttpsConnectionFilter
2015-11-18 05:05:50 +01:00
Master T
bd30f28dfd
Implement client certificate authentication
2015-11-18 05:05:50 +01:00
David Fowler
b8f01cf674
Merge pull request #378 from benaadams/thread-count
...
Network thread count defaults
2015-11-17 07:34:29 -08:00
Stephen Halter
5d59a20178
Merge branch 'benaadams/no-delay' into dev
2015-11-16 20:56:26 -08:00
David Fowler
b1a772f19c
Merge pull request #393 from benaadams/patch-1
...
Disconnect is Debug not Error
2015-11-16 20:29:50 -08:00
David Fowler
9c47796ec0
Merge pull request #312 from benaadams/MemoryPoolIterator2-GetString
...
Reduce GetString allocs and conversions
2015-11-16 20:13:38 -08:00
Ben Adams
4dc4346fca
Reduce GetString allocs and conversions
2015-11-17 03:46:09 +00:00
Stephen Halter
f7a5c38f65
Follow common pattern for implementing IHttpRequestLifetimeFeature
2015-11-16 16:03:55 -08:00
Stephen Halter
b73e42b617
Abort request on any write failure
2015-11-16 16:03:53 -08:00
Stephen Halter
874bd29ce1
Throw IOExceptions instead of ODEs after a request is aborted
2015-11-16 16:03:51 -08:00
Stephen Halter
062caf16be
Support for IHttpRequestLifetimeFeature
2015-11-16 16:03:50 -08:00
Ben Adams
1cbb273b0d
Corrected Exception messages
2015-11-16 16:03:48 -08:00
Ben Adams
5e883827e0
Explain why dispose can't be used
2015-11-16 16:03:46 -08:00
Ben Adams
f60f6c92ca
Stop streams on finish
...
Can't use dispose (or close) as can be disposed too early by user code
Resolves #263
2015-11-16 16:03:44 -08:00
David Fowler
5774cf9f1e
Merge pull request #390 from benaadams/stack2queue
...
ConcurrentStack -> ConcurrentQueue
2015-11-16 15:36:29 -08:00
David Fowler
7ba0f7da19
Merge pull request #377 from benaadams/legacy
...
Result -> GetAwaiter().GetResult() for legacy
2015-11-16 12:13:45 -08:00
David Fowler
e3a62ff09f
Merge pull request #335 from benaadams/used-pool-array
...
Consume body without allocating or reading
2015-11-16 11:47:18 -08:00
Ben Adams
8941d4b620
Disconnect is Debug not Error
...
Resolves #392
2015-11-16 17:44:24 +00:00
Ben Adams
7691a7cc23
Improved Send100 Check
2015-11-16 06:43:49 +00:00
Ben Adams
ecc439555e
Reuse ReadAsync for Consume
2015-11-15 22:27:39 +00:00
Ben Adams
1589b54018
Early bail, completed tasks+Interlocked
2015-11-15 21:56:20 +00:00
Ben Adams
f089abd337
Consume in single call
2015-11-15 21:39:36 +00:00
Ben Adams
f48e6ba51a
Add Async in method name
2015-11-15 21:28:36 +00:00
Ben Adams
f7bdc5a4e9
Skip non-consumed rather than reading
2015-11-15 21:28:33 +00:00
Ben Adams
bd6e181d93
ConcurrentStack -> ConcurrentQueue
2015-11-15 21:17:14 +00:00
Troy Dai
2e2dfd87c1
Fix byte[] array allocation in IsDarwin
2015-11-14 22:55:25 -08:00
Cesar Blum Silveira
a3a49d21b8
Reset Frame.Scheme on each request ( #366 ).
2015-11-13 16:05:10 -08:00
Ben Adams
96c1668c54
Result -> GetAwaiter().GetResult() for legacy
2015-11-13 20:08:59 +00:00
Ben Adams
558b0ae643
statics to instance
2015-11-13 20:08:11 +00:00
Ben Adams
d82c571831
Trim exposed KestrelThread api
2015-11-13 20:08:11 +00:00
Ben Adams
a95318c616
Network thread count defaults
2015-11-13 20:00:32 +00:00
Ben Adams
59a95f43a3
Set NoDelay as default
...
Resolves #374
2015-11-13 19:33:24 +00:00
Murat Girgin
52fe469688
Update project.json
2015-11-12 22:59:34 -08:00
Stephen Halter
fc346f7768
Avoid some closure allocations in SocketOutput
2015-11-12 17:08:44 -08:00
Stephen Halter
59cdd60af6
Don't pre-complete too many writes
2015-11-12 17:08:43 -08:00
Stephen Halter
6b995362f1
Merge branch 'benaadams/odd-sync' into dev
2015-11-12 16:47:27 -08:00
Stephen Halter
983997ab9c
Merge branch 'nickcraver/cancellation' into dev
2015-11-12 16:15:59 -08:00
Stephen Halter
9958427db7
Merge branch 'benaadams/result-getawaiter' into dev
2015-11-12 16:05:50 -08:00
Stephen Halter
0ead24680d
Merge branch 'benaadams/reduce-log-boxing' into dev
2015-11-12 16:01:06 -08:00
Stephen Halter
fdfd7dcf36
Merge branch 'benaadams/Task.Run-QueueUserWorkItem' into dev
2015-11-12 15:51:42 -08:00
N. Taylor Mullen
86e1924cad
Remove System beta tag in project.json for coreclr packages.
2015-11-12 12:23:45 -08:00
Nick Craver
a45a671b22
Make ReadAsync state overload 451 only and private.
2015-11-11 18:55:56 -05:00
Stephen Halter
e5ff33eda2
Remove UvAsyncHandle.DangerousClose
...
- This should stop the AVs we've been seeing in some of our test runs
2015-11-11 15:24:09 -08:00
Ben Adams
0500043cc9
.Result -> .GetAwaiter().GetResult()
2015-11-11 09:46:56 +00:00
Nick Craver
d1221e82c1
Pass cancellation tokens down consistently
...
I'm assuming these are oversights since the usage is inconsistent.
Otherwise this served only as a mild waste of time :)
2015-11-10 22:58:19 -05:00
Stephen Halter
55f6f21d5a
Build Microsoft.AspNet.Server.Kestrel.Https for dotnet5.4
2015-11-10 17:15:35 -08:00
Stephen Halter
bdbd9ae7a6
Merge branch 'benaadams/socketoutput-tasks' into dev
2015-11-10 15:55:10 -08:00
Ben Adams
d32937eafe
Add tests for non-immediate byte counting
2015-11-10 23:17:40 +00:00
Ben Adams
34cec3448d
SocketOutput to Tasks
2015-11-10 19:53:43 +00:00
Troy Dai
d0bdede709
Update the reference link in comments of SockAddr
2015-11-10 11:11:32 -08:00
Troy Dai
d9c15e0180
Add references to socket in comments
2015-11-10 10:37:12 -08:00
Ben Adams
344c821f83
Remove sync block->task
...
await rather than synchronously blocking and then returning a
Task.FromResult
2015-11-10 18:23:44 +00:00
Troy Dai
d08b83a1c7
Fix get IPAddress for Darwin
2015-11-10 10:04:10 -08:00
Ben Adams
c0f82765aa
Move logging to new style
2015-11-10 10:43:51 +00:00
Ben Adams
a2c4e3a654
Task.Run -> ThreadPool.QueueUserWorkItem
...
Task.Run eventually ends up being QueueUserWorkItem.
The returned task is ignored, so no added goodness.
Short running item.
Cut out the middleman
2015-11-10 07:28:17 +00:00
Ben Adams
278bd9c962
Completed Task opt
2015-11-09 04:32:08 +00:00
Stephen Halter
9d19eed88f
Merge branch 'benaadams/memorypool2-allocate' into dev
2015-11-05 12:16:43 -08:00
Stephen Halter
bb9f83186b
Remove unused parameter from ListenerSecondary.ReadStartCallback
2015-11-05 12:09:50 -08:00
Stephen Halter
fff28990fe
Ensure ListenerSecondary buffer isn't double freed or freed too early
...
- Call buf_init in StartAsync so we have access to a KestrelThread
2015-11-04 16:21:29 -08:00
Stephen Halter
74f08c16df
Merge branch 'benaadams/listenersecondary-allocs' into dev
2015-11-04 15:34:42 -08:00
Ben Adams
3e7969cefe
Move handle creation to constructor
2015-11-04 22:44:30 +00:00
Stephen Halter
272ce27c79
Merge branch 'benaadams/delegates' into dev
2015-11-04 14:21:13 -08:00
Ben Adams
5cef608e52
Dispose _ptr
2015-11-04 22:20:51 +00:00
Ben Adams
22dfd31261
More readable loop condition
2015-11-04 22:04:19 +00:00
Stephen Halter
35bbddf9b5
Merge branch 'benaadams/listener-primary-alloc' into dev
2015-11-04 10:14:52 -08:00
Stephen Halter
04b2885f10
Merge branch 'benaadams/listener-allocation' into dev
2015-11-04 10:12:33 -08:00
Stephen Halter
f4be290d4a
Merge branch 'benaadams/connection-allocs' into dev
2015-11-04 10:08:36 -08:00
Ben Adams
cc84097016
Listener - remove closure allocation
2015-11-04 12:36:32 +00:00
Ben Adams
1d4b9d6633
ListenerPrimary - reduce closure allocation
...
Still captures string pipeName
2015-11-04 12:33:51 +00:00
Ben Adams
d104e8a08d
Reduce delegate allocation
2015-11-04 12:31:44 +00:00
Ben Adams
34c1a671f0
ListenerSecondary - reduce closure allocation
2015-11-04 12:20:00 +00:00
Ben Adams
5ae1c4ecb2
MemoryPool2 Allocate returns newest
...
Rather than a while loop on Allocate; return last memory block created
rather than returning it to the pool and checking if one can be removed.
2015-11-04 08:37:12 +00:00
Ben Adams
c113c0d3a2
Don't alloc array per header
...
i.e `new StringValues(string)` rather than `new StringValues(new [] {
string } )`
2015-11-04 07:11:55 +00:00
Cesar Blum Silveira
889a24278d
Merge branch 'release' into dev
2015-11-02 17:36:41 -08:00
Cesar Blum Silveira
eaee76dfeb
Strong name everything.
2015-11-02 16:16:55 -08:00
Ben Adams
ea6f6b10dc
Don't capture connection on closure
2015-11-01 13:27:17 +00:00
John Luo
b466c3b7d7
Reacting to Hosting changes
2015-10-30 14:19:55 -07:00
Stephen Halter
fe654598f6
Merge branch 'release' into dev
2015-10-29 14:30:02 -07:00
Stephen Halter
85202b0174
Merge branch 'benaadams/read-to-null-buffer' into release
2015-10-29 12:24:40 -07:00
Stephen Halter
1722150ee9
Do nothing in KestrelThread.Stop if libuv fails to load
...
This prevents DllNotFoundExceptions from being masked by NullReferenceExceptions
2015-10-29 12:21:25 -07:00
Troy Dai
e9a6061023
Make Frame implements IHttpConnectionFeature
...
Provide RemoteIPAddress as well as RemotePort
2015-10-29 10:08:35 -07:00
Ben Adams
bdadc8a3da
Move comment into loop, remove noop
2015-10-28 22:44:35 +00:00
Ben Adams
4bba074d77
Read to null buffer
...
Read to null buffer rather than Stream.Null as the CopyToAsync will
create a `new byte[]` on each call
bc14660885/src/mscorlib/src/System/IO/Stream.cs (L218)
of size 81920 bytes!
bc14660885/src/mscorlib/src/System/IO/Stream.cs (L48)
2015-10-28 08:53:11 +00:00
moozzyk
c1b21b89d5
Removing dependency on Microsoft.Extensions.PlatformAbstractions
2015-10-27 01:40:28 -07:00
moozzyk
d4853f9b7c
Switching to using the built-in loading of native libs
2015-10-27 01:13:21 -07:00
Stephen Halter
fb01ea3918
Consume the full request body when the app does not
2015-10-26 11:13:07 -07:00
Stephen Halter
094b8efbf8
Properly handle headers with empty values
2015-10-25 01:40:22 -07:00
Troy Dai
52f4fa91e3
Unescape string in memory
...
1. In place unescape;
1. UTF-8 verification;
2. MemoryPoolIterator2.Put
3. Tests
2015-10-23 15:26:59 -07:00
Ryan Nowak
f88631efb3
React to breaking changes in StringValues
2015-10-23 15:05:09 -07:00
Pavel Krymets
eb2c3a1ce8
Rename Microsoft.Runtime.Abstractions to Microsoft.Extensions.PlatformAbstractions
2015-10-22 18:22:05 -07:00
Pranav K
dea782163d
Updating packages to use generations
2015-10-22 15:18:49 -07:00
Troy Dai
a1e4e022b9
Clean up
2015-10-21 22:08:03 -07:00
Pavel Krymets
f8fd2f9ac9
React to hosting changes
2015-10-21 10:23:53 -07:00
Stephen Halter
8f0d1179ab
Allow Nagle’s algorithm to be disabled via IKestrelServerInformation.NoDelay
2015-10-19 12:44:21 -07:00
Stephen Halter
c809beec18
Don't allocate Exceptions unnecessarily
...
- Allocate Exceptions in the ReadStart callbacks if necessary instead
of in UvStreamHandle.
- This also fixes a bug in ListenerSecondary where it should have
previously been looking at the error code instead of the read count.
#237
2015-10-16 15:25:37 -07:00
Stephen Halter
8e818e3549
Address PR feedback
2015-10-15 16:52:37 -07:00
Stephen Halter
7b315d2470
Close connection gracefully in Frame.ProduceEnd
...
- Try sending a FIN before closing the socket
- Don't attempt to send a FIN twice for the same connection
2015-10-15 15:35:40 -07:00
Stephen Halter
513abb4561
Log errors in OnStarting and OnCompleted
2015-10-15 15:35:38 -07:00
Stephen Halter
b98425d3b1
Log unhandled exceptions thrown from the AppFunc
2015-10-15 15:35:36 -07:00
Stephen Halter
7c27c5c0e7
Better handle blocks not taken taken from slabs
...
- If the block needs to be larger than 4032 bytes it won't be backed by a slab
2015-10-14 16:05:35 -07:00
David Fowler
6aaa3cbe06
Use IApplicationLifetime.StopApplication instead of
...
IApplicationShutdown.
React to hosting changes 374526b270
2015-10-14 01:09:11 -07:00
David Fowler
ef38f5589d
React to hosting changes to IApplicationLifetime
2015-10-14 00:46:18 -07:00
Chris R
cfe6e22a29
React to IHeaderDictionary changes.
2015-10-12 09:29:34 -07:00
Stephen Halter
3eec43a0c3
Move static BitCount method to base class
...
- Updated comment to point to a specific commit in corefx
- This is more consistent with AppendValue since BitCount doesn't need
to be generated
2015-10-09 17:27:33 -07:00
Stephen Halter
a33a5d0f1b
Merge branch 'benaadams/bitcount-fast' into dev
2015-10-09 17:17:03 -07:00
Louis DeJardin
78177e7082
Fixing rebase errors
2015-10-09 13:26:34 -07:00
Louis DeJardin
6ae0f5d505
PR feedback - code formatting
2015-10-09 13:19:10 -07:00
Louis DeJardin
29b0b124ee
Moving non-changing methods into .cs partial
2015-10-09 13:19:09 -07:00
Ben Adams
ccfeef6353
All features to have backing object
2015-10-09 13:18:32 -07:00
Ben Adams
8f41e47eca
Remove bitfield for locally implemented interface items
...
Only generate type statics for cached features
2015-10-09 13:18:09 -07:00
Ben Adams
3c20053d9a
Don used cached typeof for tests
2015-10-09 13:15:39 -07:00
Ben Adams
56893df7f9
Don't iterate overriden features twice
2015-10-09 13:11:48 -07:00
Louis DeJardin
cbc3b4e6f5
PR Feedback
...
* Sorting namespaces
* Removing `as` casting for Frame's implemented interfaces
2015-10-09 13:10:27 -07:00
Louis DeJardin
dc0eb679ae
Updating unit tests for Frame IFeatureCollection update
2015-10-09 13:09:37 -07:00
Louis DeJardin
71fc2bf2e5
Rough implementation of feature collection optimization
2015-10-09 13:09:35 -07:00
Ben Adams
6b0fa776ca
More comment clarity
2015-10-09 12:16:54 -07:00
Ben Adams
47973541b5
Remove redundant cast
2015-10-09 12:16:53 -07:00
Ben Adams
e107c47913
Add comment explanation
2015-10-09 12:16:52 -07:00
Ben Adams
05702e81e6
more typeof caching
2015-10-09 12:16:50 -07:00
Ben Adams
d48a27dd59
Use bitflag for override and cache typeof in statics
2015-10-09 12:16:49 -07:00
Louis DeJardin
dcf591c832
Rough implementation of feature collection optimization
2015-10-09 12:16:48 -07:00
Stephen Halter
0c1b05ce2d
Merge branch 'release' into dev
2015-10-08 16:40:13 -07:00
Ben Adams
6f506ba988
subsequent block has data - IsEnd is false
...
Resolves #249
2015-10-08 16:18:47 -07:00
Stephen Halter
24c0a8e142
Fix MemoryPoolIterator2.CopyTo's block traversal
...
- This fix prevents large request streams from being corrupted
#234
2015-10-08 16:16:41 -07:00
Ben Adams
9d251cdb54
subsequent block has data - IsEnd is false
...
Resolves #249
2015-10-08 18:13:22 -04:00
Chris R
0b36382448
Merge pull request #236 from benaadams/sanitize-loops
...
Sanitize loops
2015-10-08 10:05:17 -07:00
Ben Adams
0a297688b4
Use Jit recongised, standard loop construct
...
For bounds check elimination.
Convey intent more clearly; eliminate bounds checks
2015-10-08 12:31:21 -04:00
Ben Adams
4250d35347
PR feeback
2015-10-08 01:11:41 -04:00
Ben Adams
05418dd18a
Use corefx implementation
2015-10-07 16:51:10 -04:00
Ben Adams
8bf2c814d6
Add BitCount LongExtensions
2015-10-07 12:23:20 -04:00
Chris R
1f50f4c2a8
#231 bind to IPv6Any, add functional tests.
2015-10-05 16:13:11 -07:00
Ryan Nowak
f545f99dab
Add attributes to fix the build
2015-10-05 11:22:30 -07:00
Stephen Halter
2f3a00625a
Initial work to support HTTPS using SslStream
...
- Add extension method "UseKestrelHttps" to IApplicationBuilder
2015-10-05 03:15:18 -07:00
Pranav K
49451fb11e
Renaming Microsoft.Framework.* -> Microsoft.Extensions.*
2015-10-03 15:44:45 -07:00
Stephen Halter
6d3e5d3bf2
Merge branch 'benaadams/fastpath-header-enumerator' into dev
2015-09-28 12:21:58 -07:00
moozzyk
d2f282f54f
Consuming Libuv from NuGet package
...
Fixes #50
2015-09-26 18:00:50 -07:00
Chris R
e3f141fcde
#227 Fix OverflowException in MemoryPool
2015-09-26 06:56:54 -07:00
Stephen Halter
f0137b7b9e
Bind to specific IP addresses if provided with any
...
This still only applies to IPv4.
#98
2015-09-25 16:26:01 -07:00
Ben Adams
1718b69f22
Fast path header enumerator
...
Use strongly typed enumerable as interface's allocates.
2015-09-26 00:16:42 +01:00
damianedwards
a7b65efa75
CR feedback
2015-09-25 14:59:47 -07:00
damianedwards
3c2408db68
Fix tests after rebase
2015-09-25 14:59:47 -07:00
damianedwards
7c46b2bd3b
Use a timer to generate the value for the Date header in responses:
...
- Doing it on each request is expensive
- The Timer is started when the first request comes in and fires every second
- Every request flips a bool so the Timer knows requests are coming in
- The Timer stops itself after a period of no requests coming in (10 seconds)
- #163
2015-09-25 14:59:47 -07:00
Louis DeJardin
5070b8073e
Temporarily commenting out the Debug.Assert of block freeing
...
Unit tests using ad-hoc contexts aren't guaranteed to dispose pools.
That's kinda making unit tests fail, more or less, because Debug...
2015-09-25 14:17:09 -07:00
Louis DeJardin
318f3b7145
Changing Trace.Assert to Debug.Assert
...
* Also Debug.Assert for unreturned memory blocks
2015-09-25 13:01:54 -07:00
Louis DeJardin
f740616573
disposedValue changed to _disposedValue
...
Boilerplate code didn't have _
2015-09-25 12:49:30 -07:00
Louis DeJardin
c42dace9e6
consts looked like local vars
2015-09-25 12:49:30 -07:00
Louis DeJardin
0adbbd0217
Using the well-known-header field without checking set bit
2015-09-25 12:49:29 -07:00
Stephen Halter
dc902f5fc4
Update SocketOutput to not call QueueUserWorkItem unnecessarily
2015-09-25 12:49:28 -07:00
Louis DeJardin
789d5b3595
Writes which are not immediate always return completed tasks
...
They must always be followed with Writes which are immediate, and
returning an incomplete task put them in a state where the callback
might not have been initiated.
2015-09-25 12:49:27 -07:00
Louis DeJardin
5e678fdbaa
Adding volatile keyword to stopping boolean
2015-09-25 12:49:27 -07:00