Commit Graph

67 Commits

Author SHA1 Message Date
Cesar Blum Silveira 6fbb9a0cfe Cleanup: private embedded types and readonly where appropriate (#187). 2015-12-30 12:47:13 -08:00
moozzyk aaf84afaff Don't try calling `uname` on Windows 2015-12-21 10:25:48 -08:00
Ben Adams 97d3340624 Resuse writes, initalize queues 2015-12-10 20:31:28 +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
Troy Dai 2e2dfd87c1 Fix byte[] array allocation in IsDarwin 2015-11-14 22:55:25 -08: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
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
Troy Dai d08b83a1c7 Fix get IPAddress for Darwin 2015-11-10 10:04:10 -08:00
Ben Adams d104e8a08d Reduce delegate allocation 2015-11-04 12:31:44 +00:00
Troy Dai e9a6061023 Make Frame implements IHttpConnectionFeature
Provide RemoteIPAddress as well as RemotePort
2015-10-29 10:08:35 -07:00
moozzyk d4853f9b7c Switching to using the built-in loading of native libs 2015-10-27 01:13:21 -07:00
Pranav K dea782163d Updating packages to use generations 2015-10-22 15:18:49 -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
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
Chris R 1f50f4c2a8 #231 bind to IPv6Any, add functional tests. 2015-10-05 16:13:11 -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 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
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 1f6aaebeda Changing flow control for incoming data
SocketInput is now awaitable
Input buffers are slab-allocated and pinned from large object heap
Request frame parsing is offloaded from libuv thread
2015-09-25 12:49:14 -07:00
Louis DeJardin 557f6d6993 Refactoring response control flow
- Bring through both sync and async execution paths
- Remove callback pattern from from and socketoutput write calls
2015-09-25 12:47:51 -07:00
Stephen Halter 1e39473047 uv_pipe_connect returns void
This fix prevents Libuv.pipe_connect from throwing when the stack
memory that was previously incorrectly interpreted as the int return
value happens to be negative.

When pipe_connect threw, an assertion failure would follow since the
pipe handle would be closed prematurely.

http://docs.libuv.org/en/v1.x/pipe.html#c.uv_pipe_connect

#205
2015-09-25 11:40:40 -07:00
Stephen Halter 2d01f2752b Catch and log uv_accept errors
- This is also what is done by node.js
- "tcp, pipe: don't assert on uv_accept() errors (Ben Noordhuis)"

0685707bc6
2015-09-16 18:18:58 -07:00
Stephen Halter f14af1f409 Don't swallow too many exceptions
- Swallowing too many exceptions can end up hiding issues in
  Kestrel itself. It's better to let the process die.
- If we want to handle certain exceptions we should be as
  specific as possible with our try/catch blocks.
2015-09-16 18:18:55 -07:00
Stephen Halter dc08062545 Merge branch 'drussilla/add-logging' into dev
Conflicts:
	src/Microsoft.AspNet.Server.Kestrel/Http/Connection.cs
	src/Microsoft.AspNet.Server.Kestrel/Http/ListenerSecondary.cs
2015-09-09 11:28:09 -07:00
Ivan Derevyanko ac77c11211 Make ConnectionCallback static again. 2015-09-09 02:13:49 +02:00
Ivan Derevyanko 2b2943d5b0 Restore static delegates 2015-09-09 01:27:44 +02:00
Stephen Halter 2041e4d08b Prevent pipes from being closed prematurely on OS X and Linux
This change fixes the in-process marshalling of TCP handles on Mac and Linux
that is used to support having multiple threads accepting connections from
multiple loops.

On these two platforms, the ReadStart callback somtimes gets called with a
status and pipe_pending_count equal to zero. Now when the status is zero
just exit the callback without closing the pipe.

This change more closely follows the example at
https://nikhilm.github.io/uvbook/processes.html#sending-file-descriptors-over-pipes
2015-09-08 16:21:45 -07:00
Ivan Derevyanko a93a66fe7c Replace Trace.WriteLine with ITraceLogger 2015-09-09 00:26:26 +02:00
Louis DeJardin c50aec1729 Adding comments to meaningless field names 2015-09-02 21:14:18 -07:00
Louis DeJardin dffd977c3f Fixing field names 2015-09-02 20:50:21 -07:00
Louis DeJardin b25d2d9772 Continued updates for #184
* Reordering members
- Fields
- Constructors
- Properties
- EverythingElse
- NestedTypes

* Removing commented code
2015-09-02 20:08:54 -07:00
Louis DeJardin 46604d68b3 Initial commit for style cleanup #184
* adding private keyword to fields
* one type per file
2015-09-01 22:25:51 -07:00
Stephen Halter cce9d8f09c Make SocketOutput more testable
- Added a MockLibUv class
- Create a SocketOutputTests class
2015-07-28 16:57:22 -07:00
Louis DeJardin e39fe60da0 Removing commented code 2015-07-24 16:19:15 -07:00
Louis DeJardin b93845be19 Removing debug code 2015-07-24 15:25:44 -07:00
Louis DeJardin 42246fd51b Using named pipes to dispatch connections to multiple threads 2015-07-24 13:50:13 -07:00
Louis DeJardin ceeb4edabd Adding UvPipeHandle 2015-07-24 13:50:10 -07:00
Peter Hsu 3aaae6964f Fix NPE issue where UvShutdownReq being garbage collected before the shutdown callback executed 2015-07-14 10:36:34 -07:00
Stephen Halter 0670b7ae61 Ensure all the C# files have copyright notices 2015-07-06 17:49:00 -07:00
Stephen Halter 4b66edc4fe Move non-nested classes and interfaces to their own files 2015-07-06 17:48:58 -07:00
Stephen Halter 29098d6383 Fix UvLoopHandle.ReleaseHandle on linux
Libuv.loop_close can clear the GCHandle pointer on linux
2015-06-17 17:53:56 -07:00
Stephen Halter b43e5940e5 Gracefully shutdown even when there are open connections 2015-06-11 17:06:25 -07:00
N. Taylor Mullen 063fb64c8b Update LICENSE.txt and license header on files. 2015-05-01 13:53:45 -07:00
Matt Ellis ea636140c7 Allow Kestrel to boot when on CoreCLR and *NIX
With cross platform .NET Core support coming online, we need to update
our IsWindows check to not assume running on .NET Core means running on
Windows.  Since CoreFX doesn't yet expose a method for doing this (they
are working on adding it back), we'll just call Uname and if that
returns an empty string assume that we are on Windows.
2015-04-09 23:58:03 -07:00
N. Taylor Mullen 06a82669f5 Update aspnet50/aspnetcore50 => dnx451/dnxcore50. 2015-03-08 12:51:12 -07:00