Commit Graph

266 Commits

Author SHA1 Message Date
Doug Bunting fea510f1d0 React to `xunit.runner.aspnet` package updates
- aspnet/aspnet.xunit@5a12e89
2015-09-09 19:45:47 -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
Ivan Derevyanko ed4850a2b1 Style fix 2015-09-05 18:32:16 +02:00
Ivan Derevyanko 6d47227975 KestrelTrace refactored and added to the ServiceContext. Close aspnet/KestrelHttpServer#141 2015-09-05 18:17:17 +02:00
David Fowler 8a6495364e Merge pull request #192 from Tragetaschen/patch-1
Fix bug #191 introduced by b25d2d9
2015-09-05 07:51:06 -07:00
Kai Ruhnau 5ee80e0155 Fix bug #191 introduced by b25d2d9 2015-09-05 12:29:00 +02:00
Stephen Halter f10c989d90 Add ServiceContext to make it easier to flow new services through ctors 2015-09-04 15:04:25 -07:00
Stephen Halter 1584d70e1f Clean up if an exception is thrown in the middle of ServerFactory.Start 2015-09-03 15:26:30 -07: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 5c7007a4e9 Fixing member field name 2015-09-02 20:37:11 -07:00
Louis DeJardin 0859d82d6b Adding private keyword to private enums 2015-09-02 20:33:51 -07:00
Louis DeJardin 3bbb77f9d0 Alphabetizing using statements 2015-09-02 20:31:11 -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 bf6a163f46 Generalizing type member order rule 2015-09-02 13:34:43 -07:00
Louis DeJardin 2467cf2ade Nested types must be last 2015-09-02 00:07:58 -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
Chris R c2192d7bd1 Change IServerInformation to IFeatureCollection. 2015-09-01 15:27:57 -07:00
David Fowler e8b6908b04 Update README.md 2015-09-01 02:20:22 -07:00
Stephen Halter e1b472ddc4 Add ServerAddress tests 2015-08-31 10:46:50 -07:00
Stephen Halter d0bd2b3dd0 Configure unix pipes via the hostname instead of the scheme. 2015-08-31 10:46:48 -07:00
Stephen Halter a919ea8d0a Remove unnecessary listener interfaces 2015-08-31 10:46:46 -07:00
Stephen Halter a9b8cfa582 Remove unnecessary use of generics in listeners 2015-08-31 10:46:40 -07:00
Chris R 803ec38073 React to string[] -> StringValues changes. 2015-08-28 12:59:00 -07:00
Stephen Halter 40ca61b640 Merge branch 'release' into dev 2015-08-26 16:32:19 -07:00
Stephen Halter 2642c84bf9 Don't automatically set Content-Length: 0 in some circumstances
- When in response to a HEAD Request
- For 101, 204, 205 and 304 responses
- For non keep-alive connections
2015-08-26 16:16:35 -07:00
Stephen Halter 69759231ff Set Content-Length: 0 when an AppFunc completes without a write
- Previously an incomplete chunked response would be written instead.
- Add test to verify Content-Length: 0 is set automatically.
- Add test to verify HTTP/1.0 keep-alive isn't used if no Content-Length
  is set for the response.
- Add tests to verify errors are handled properly after chunked writes.

#173
2015-08-25 23:17:41 -07:00
Stephen Halter ca0a42a01e Merge branch 'Daniel15/unix-sockets' into dev 2015-08-24 12:53:31 -07:00
N. Taylor Mullen 41b7ce4b23 Update 'build.sh' to pull Sake from v2 NuGet feed. 2015-08-20 20:46:47 -07:00
N. Taylor Mullen 6bddf101ed Update 'build.cmd' to pull Sake from v2 NuGet feed. 2015-08-20 15:37:56 -07:00
Stephen Halter 87d53700da Make the GeneratedCode project work on CoreCLR 2015-08-19 17:08:00 -07:00
N. Taylor Mullen f61a7b64ff Update NuGet feed from v2 => v3. 2015-08-19 14:54:19 -07:00
Pranav K 7cdfdddaa0 Unpinnng Dnx.Runtime.Abstractions package version 2015-08-18 21:34:43 -07:00
Pranav K 06551cda3d Updating to aspnetliterelease. 2015-08-18 14:00:22 -07:00
Pranav K b9dec6acfe Updating to aspnetlitedev. 2015-08-18 14:00:22 -07:00
Pranav K d4b686ebea Merge branch 'release' into dev 2015-08-18 14:00:22 -07:00
Stephen Halter 58292c6620 Update "Kestrel" dependency in samples after rename 2015-08-17 15:55:04 -07:00
Pranav K c46fc555ae Merge branch 'release' into dev 2015-08-17 14:48:46 -07:00
Pranav K ed9cd0ec11 Updating to release NuGet.config. 2015-08-17 14:48:44 -07:00
Daniel Lo Nigro 9ade227abb Implement support for UNIX sockets.
The common use-case for Kestrel in production will be behind a reverse proxy such as Nginx. In cases where the reverse proxy is located on the same machine as the application, connecting via a UNIX socket is more efficient than a TCP socket, as it avoids going through the network layer. Accessing 127.0.0.1 through TCP still needs to initiate a TCP connection and perform handshaking, checksumming, etc, all of which is avoided by using UNIX sockets.

 - Moved TCP-specific stuff from Listener into new TcpListener class (same with ListenerPrimary and ListenerSecondary)
 - Made Listener abstract
 - Created new PipeListener. Note that while the use case is for UNIX sockets, this is called "Pipe" in uv, so I've called this "PipeListener" so the terminology is consistant
 - Uses "unix" URL scheme to determine whether to use socket. "http://127.0.0.1:5000" is for listening via TCP while "unix:///var/run/kestrel-test.sock" is for listening via UNIX socket

#156
2015-08-15 15:50:34 -07:00
David Fowler 62a909d1a7 Handle broken assembly versions on mono 2015-08-15 03:12:59 -07:00
Stephen Halter 753d64660d Ignore zero length writes when automatically chunking responses
- Zero length writes would previously be interpreted as the end of response
- Optimize writing the chunked response suffix
- Add tests for automatic response chunking
2015-08-14 15:59:47 -07:00
Stephen Halter 3fb33119ee Initial non-optimized support for automatically chunking responses 2015-08-14 15:59:39 -07:00
Stephen Halter 32c4f314b6 Lock around Connection.End to make it thread-safe 2015-08-14 12:17:06 -07:00
Stephen Halter 4f0480a4d0 Gracefully handle exceptions thrown from OnStarting callbacks
- If OnStarting is being called after the app func has completed, return a 500.
- If Onstarting is being called due to a call to write, throw from write.
2015-08-14 12:05:43 -07:00
Stephen Halter 6a01043e1a Fix ListenerSecondary so it reliably accepts new connections on Windows
Calling uv_read_start on a named pipe with a larger than necessary buffer
would cause pieces of the next uv_ipc_frame_uv_stream struct to be read into
the uv_read_start buffer when a lot of tcp handles were passed quickly over
the pipe.

This prevented the struct from properly being queued for the next call to
uv_accept to consume. The empty queue caused the call to uv_accept in
ListenerSecondary to fail and return WSAEWOULDBLOCK leaving the connection
in a zombie state.
2015-08-14 11:57:21 -07:00