Commit Graph

350 Commits

Author SHA1 Message Date
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
Louis DeJardin 99fc7e4e50 Moving the Start/Stop logic into Frame.
Also formalizes the relationship between the function's Task and
how it relates to graceful shutdown. Specifically how it relates
to finishing the requests currently in progress.
2015-09-25 12:49:26 -07:00
Louis DeJardin f89a586b75 Removing boilerplate-generated #region 2015-09-25 12:49:25 -07:00
Louis DeJardin 37f7dfd01f Typo in comments 2015-09-25 12:49:25 -07:00