Commit Graph

46 Commits

Author SHA1 Message Date
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
David Fowler e421b3f01c Throw better error when libuv can't be loaded
- Throw more specific exception for *nix machines
2014-12-26 21:24:35 -08:00
Louis DeJardin e550d1f1ec Updating Darwin OS detection 2014-10-20 16:11:48 -07:00
David Fowler 77d6318cfc Updated to use the new target framework in project.json 2014-08-28 23:39:13 -07:00
Louis DeJardin de6c32dc4b Guarding against leaking GCHandles in read/write operations
See #19
2014-07-08 18:11:09 -07:00
Louis DeJardin 2da561cb7a Garbage collecting safe handles need to queue the uv_close
All of the uv_* calls must be called on the original thread
the finalizer thread cleaning up safehandle classes needs
special handling

see #16
2014-07-08 16:02:09 -07:00
Louis DeJardin 836be5565a Using weak gchandles from native to managed
See #15
2014-07-08 14:51:13 -07:00
Louis DeJardin 8624b82b2b Improving callback exception support
Also renaming KestralTests to KestrelTests
2014-07-07 13:08:25 -07:00
Louis DeJardin 0f1a72e7e0 Tiny CLR won't tell you what the OS is. Assume tiny CLR is running on Windows. 2014-06-27 20:59:39 -07:00
Louis DeJardin 9c29ccdd32 Cross-platform LoadLibrary, adjusting libuv apis 2014-06-27 19:45:31 -07:00
Louis DeJardin 9e4bc60205 Adding amd64 support
Moves Libuv.dll into nupkg
Uses ILibraryManager to locate location for native libraries
Updates version numbers to 1.0.0-*
Throws exceptions with error text provided by libuv.dll
Bind to ip4 or ip6 endpoints
Getting server defaults from ini
Enabling "Kestrel" to be used as a Main entrypoint
2014-06-20 21:09:44 -07:00
Louis DeJardin 660babcd7f Adding core clr configurations 2014-06-10 00:29:16 -07:00
Louis DeJardin ebd6af0fd6 Trying to get 100 Continue working again 2014-06-08 01:03:56 -07:00
Louis DeJardin 044bbb83e6 Getting request body variations to work 2014-06-07 02:49:25 -07:00
Louis DeJardin 313db3f0cf Removing unnecessary using statements 2014-06-06 22:16:08 -07:00
Louis DeJardin e517e39aac Not working, but worth taking a snapshot of the source 2014-06-06 22:13:31 -07:00
Louis DeJardin c9d6db14bc Adding an engine, a thread manager, an accept loop 2014-06-03 16:41:55 -07:00
Louis DeJardin 1b412bc99f Adding libuv p/invokes 2014-06-02 16:32:31 -07:00