Commit Graph

728 Commits

Author SHA1 Message Date
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