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
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
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
Pranav K
7cdfdddaa0
Unpinnng Dnx.Runtime.Abstractions package version
2015-08-18 21:34:43 -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
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
Stephen Halter
c0cc511b5b
Prevent access to closed socket in in Connection.End
2015-08-14 11:49:45 -07:00
Stephen Halter
b162202519
Properly close keep alive connections
2015-08-14 11:49:43 -07:00
Chris R
43ebf710ab
Fix regression in reading config
2015-08-14 09:33:02 -07:00
Kirthi Krishnamraju
c7535f127c
fix build break due to aspnet\configuration #246
2015-08-13 22:42:48 -07:00
Stephen Halter
097fb35ddf
Fix startup when you reference the assembly directly instead of Hosting
...
- I missed this change in Program.cs when doing the initial package merging
2015-08-12 15:14:01 -07:00
Stephen Halter
d97b02696f
Merge Kestrel into Microsoft.AspNet.Server.Kestrel
2015-08-11 14:56:20 -07:00
Stephen Halter
0ac3c3dad6
More ConfigureAwait(false)
2015-08-11 12:46:08 -07:00
Stephen Halter
688ad9bee7
Merge branch 'benaadams/configure-awaits' into dev
2015-08-11 12:34:53 -07:00
Stephen Halter
5dfca955b3
Move GeneratedCode project so no NuGet package gets created
2015-08-05 12:22:59 -07:00
Stephen Halter
7dd256f26e
Add a "dnu restore" prepare step before generating code
...
- This ensures the generated code project's project.lock.json is created
2015-08-05 11:54:17 -07:00
Stephen Halter
51693304c1
Update dependencies after rename to Microsoft.Dnx.Compilation.CSharp
2015-08-05 11:07:13 -07:00
Troy Dai
b8f930bb4c
Update CoreCLR versions
2015-08-04 10:15:28 -07:00
Stephen Halter
e5144e3139
Include Server and Date in the initial response header dictionary
2015-08-03 16:20:34 -07:00
Stephen Halter
978dd39924
Update the prepare script used to generate code
...
- The syntax to run dnx with a modified appbase has recently changed
2015-08-03 16:20:32 -07:00
Stephen Halter
7446fe4cc7
Update SocketOutputTests to account for the "immediate" Write param
2015-08-03 16:20:30 -07:00
Louis DeJardin
6ff894bb19
Using masked byte sequences to recognize well-known header names
2015-08-03 16:20:28 -07:00
Louis DeJardin
b999b47218
String concatination showed up in profiler
2015-08-03 16:20:26 -07:00
Louis DeJardin
f6dc72544c
Response headers don't need to be queued before subsequent write
2015-08-03 16:20:24 -07:00
Louis DeJardin
c0728edda7
Linq .Any() was causing enumeration
2015-08-03 16:20:22 -07:00
Louis DeJardin
f9cf9f1936
Improvements to appending request header
2015-08-03 16:20:20 -07:00
Louis DeJardin
96b03ee212
Perf - enumerate with struct
...
Conflicts:
src/Microsoft.AspNet.Server.Kestrel/project.json
2015-08-03 16:20:18 -07:00
Louis DeJardin
ad089be477
Removing "I like pie" diagnostics
2015-08-03 16:20:16 -07:00
Louis DeJardin
963f086eb0
Prototypeing a fast header dictionary
...
Conflicts:
src/Microsoft.AspNet.Server.Kestrel/project.json
2015-08-03 16:20:14 -07:00
Chris R
83b2c95385
React to IFeatureCollection changes.
2015-08-03 15:13:58 -07:00
anurse
07304640ed
react to DNX renames
2015-07-31 11:54:52 -07:00
Stephen Halter
4a9515d2e0
Gracefully handle uncaught exceptions in user code when possible
2015-07-30 16:01:33 -07:00
Troy Dai
07de3cafd1
Clean build warnings
2015-07-30 12:14:13 -07:00
Victor Hurdugaci
343d698286
React to DNX renames
2015-07-29 01:04:59 -07:00
Stephen Halter
47d7f73bdc
Fix SocketOutput so that it can now complete large writes
...
- Complete in this context means that the callback gets invoked.
- Previously, calls to write would never complete if the buffer contained
more than 64 KB (_maxBytesPreCompleted).
- This is tested by SocketOutputTests.CanWrite1MB.
2015-07-28 16:57:24 -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
Stephen Halter
c345849707
Don't use QueueUserWorkItem to trigger write callbacks immediately
...
- In this case we are off the event loop, so we can invoke the callback directly.
- Increase _maxBytesBufferedBeforeThrottling
2015-07-28 16:57:21 -07:00
Stephen Halter
74fa82bca7
Complete WriteAsync Tasks early when there are less than 64KB buffered
2015-07-28 16:57:19 -07:00
Stephen Halter
d723f9da21
Reduce calls to uv_write by calling it with multiple buffers when possible
2015-07-28 16:57:16 -07:00
Louis DeJardin
5e6e5fec01
Adding an IKestralServerInformation.ThreadCount property
...
Will default to 1 until multi-loop stability is ensured
2015-07-27 11:40:39 -07:00
Louis DeJardin
e39fe60da0
Removing commented code
2015-07-24 16:19:15 -07:00
Louis DeJardin
baeb3e7962
Fixing write2.Dispose() to avoid creating closure
2015-07-24 15:47:31 -07:00
Louis DeJardin
17a846ad8e
Method not used by descendants
2015-07-24 15:44:27 -07:00
Louis DeJardin
62ec11be7e
Adding internal Constants class
2015-07-24 15:43:43 -07:00
Louis DeJardin
f935567cfd
Read callback status is always 0 for any error and EOF
2015-07-24 15:36:45 -07:00
Louis DeJardin
b93845be19
Removing debug code
2015-07-24 15:25:44 -07:00
Louis DeJardin
3d45602513
Catch Accept because of EAGAIN
2015-07-24 14:02:42 -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
Stephen Halter
a457f6da25
Merge branch 'release' into dev
2015-07-21 14:18:37 -07:00
Stephen Halter
4a284e5f81
Revert "React to FeatureModel package change."
...
This should not have been in the release branch yet!
This reverts commit 3cc0dd7a25 .
2015-07-21 14:17:11 -07:00
Stephen Halter
c199e5eee1
Wait on user-defined OnStarting and OnCompleted callbacks
2015-07-21 12:44:57 -07:00
Chris R
3cc0dd7a25
React to FeatureModel package change.
2015-07-21 12:44:56 -07:00
Stephen Halter
88689ccdb8
Merge branch 'release' into dev
2015-07-21 12:14:46 -07:00
Stephen Halter
b9901c3bfe
Surface fatal exceptions that stop the event loop
...
- Request an app Shutdown so KestrelEngine gets disposed
- Ensure Listener.Dispose doesn't deadlock before the engine
can be disposed
- Rely on the existing logic to rethrow in the fatal error when
the engine gets disposed
2015-07-21 11:58:26 -07:00
Ben Adams
23ffc3fea9
ConfigureAwait(false)
2015-07-19 15:50:42 +01:00
Ben Adams
e69f63e494
ConfigureAwait(false)
2015-07-19 15:47:39 +01:00
Chris R
93477efb41
React to FeatureModel package change.
2015-07-17 09:58:55 -07:00
Pranav K
853ee00ff5
Merge remote-tracking branch 'origin/release' into dev
2015-07-16 08:43:59 -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
Steve Smith
94dba8ff0e
Moved address parsing to ServerAddress
2015-07-13 11:10:25 -07:00
markrendle
98995132de
Pre-create Continue bytes in Frame
2015-07-13 10:43:05 -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
Victor Hurdugaci
fd038b7b91
Add repository information to project files
2015-07-01 20:13:32 -07:00
Hao Kung
f724fefbda
React to HttpChanges
2015-06-25 17:28:07 -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
1592459a0b
Dispose Listeners if they fail to start
2015-06-15 10:08:03 -07:00
Stephen Halter
a992c78548
Dispatch user defined callback so it can't block the event loop
2015-06-15 10:07:58 -07:00
Stephen Halter
adc0310491
Ensure all handles still get released after graceful shutdown
2015-06-15 09:43:01 -07:00
Stephen Halter
31057f65bc
Gracefully shutdown even when there are open connections
2015-06-15 09:41:33 -07:00
Stephen Halter
5c6a53c491
Dispose Listeners if they fail to start
2015-06-12 17:02:31 -07:00
Stephen Halter
7e125faa73
Dispatch user defined callback so it can't block the event loop
2015-06-12 17:02:27 -07:00
Chris R
08c0bbbd60
React to OnSendingHeaders rename.
2015-06-12 15:05:45 -07:00
Stephen Halter
106edf8c86
Ensure all handles still get released after graceful shutdown
2015-06-12 12:49:52 -07:00
Stephen Halter
b43e5940e5
Gracefully shutdown even when there are open connections
2015-06-11 17:06:25 -07:00
Kirthi Krishnamraju
7e78374053
React to aspnet/Configuration #195,#198
2015-05-20 17:26:00 -07:00
Chris R
bff13b2e9b
React to Http namespace changes.
2015-05-07 13:43:34 -07:00
N. Taylor Mullen
063fb64c8b
Update LICENSE.txt and license header on files.
2015-05-01 13:53:45 -07:00
Brennan
cb4361b253
React to DNX package renames
2015-05-01 11:07:18 -07:00
N. Taylor Mullen
01a13bfa1d
Add serviceable attribute to projects.
...
aspnet/DNX#1600
2015-04-14 15:00:26 -07:00
Chris Ross
a23b665e8d
Update IServerInformation namespace.
2015-04-10 10:47:31 -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
Doug Bunting
5ad7aea8b4
Update .xproj files for Microsoft.Web.AspNet.* -> Microsoft.DNX.* rename
2015-04-02 13:49:26 -07:00
Ajay Bhargav Baaskaran
c1e298b010
React to aspnet/HttpAbstractions#160 - Implementing OnResponseCompleted
2015-03-16 15:10:53 -07:00
N. Taylor Mullen
8d8c6ea823
Update .kproj => .xproj.
2015-03-11 14:09:00 -07:00
N. Taylor Mullen
f796e1a5fc
Remove BOM from project.json, *.cmd, *.sh and *.shade files.
2015-03-09 12:55:39 -07:00
N. Taylor Mullen
06a82669f5
Update aspnet50/aspnetcore50 => dnx451/dnxcore50.
2015-03-08 12:51:12 -07:00
Praburaj
620e83b590
Rename Microsoft.AspNet.Http.Interfaces => Microsoft.AspNet.Http
2015-03-05 16:23:18 -08:00
Praburaj
cb3def5668
Changing signature of AppFunc to pass on IFeatureCollection
...
Reaction to this fix: https://github.com/aspnet/Hosting/issues/162
2015-02-25 17:40:17 -08:00
David Fowler
e8d9414d92
Removed build time dependency
2015-02-10 10:08:16 -08:00
Stephen Halter
cc720bd3fe
Handle HttpFeature rename
2015-01-18 21:04:13 -08: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
Pranav K
2e943eb3ab
Reacting to System.Diagnostics.Tracing version change
2014-12-15 16:20:40 -08:00
Pranav K
10a32fda26
Reacting to System.Threading version changes
...
* Sorting project.json references alphabetically
2014-12-15 14:44:33 -08:00
Victor Hurdugaci
4a2dd8f279
Add schema version to kproj files
2014-11-25 10:54:18 -08:00
Victor Hurdugaci
1b8f25f7d4
Update KProj to the latest format
2014-11-12 15:15:40 -08:00
Chris Ross
045a6eb4ba
Add new HeadersSent API.
2014-11-06 12:10:15 -08:00
David Fowler
0174d213d1
Added package descriptions
2014-10-31 01:48:15 -07:00
Louis DeJardin
e550d1f1ec
Updating Darwin OS detection
2014-10-20 16:11:48 -07:00
Louis DeJardin
dcf55abc9f
Changing shared library name on Unix OS type
2014-10-13 22:48:47 -07:00
Pranav K
ba0e3321bf
Reacting to CLR package versioning changes
2014-10-10 10:33:06 -07:00
David Fowler
72c32367a4
Fixup references and the sample
2014-10-05 11:26:15 -07:00
Pranav K
1b1e02e9dd
Reacting to System.Text.Encoding package version change
2014-09-11 10:06:52 -07:00
David Fowler
418f745292
Updated to use the new target framework in project.json
2014-09-04 01:52:19 -07:00
David Fowler
77d6318cfc
Updated to use the new target framework in project.json
2014-08-28 23:39:13 -07:00
Pranav K
226e6f3291
Reacting to System.IO package version change
2014-08-20 06:56:34 -07:00
David Fowler
26084c7f13
Removed source files from the project
2014-08-15 08:17:40 -07:00
Pranav K
4fc0be86b6
Reacting to System.Collections version change
2014-07-14 15:11:48 -07:00
David Fowler
33cd0d89aa
Renamed configurations to frameworks in project.json
2014-07-13 22:12:48 -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
21778f631a
Guarding against more read_cb cases
2014-07-07 14:01:02 -07:00
Louis DeJardin
8624b82b2b
Improving callback exception support
...
Also renaming KestralTests to KestrelTests
2014-07-07 13:08:25 -07:00
Chris Ross
6edd238f38
Rename IHttpOpaqueUpgradeFeature to IHttpUpgradeFeature.
2014-07-03 14:14:07 -07:00
Louis DeJardin
747777ab54
Adding dylib binary to source control
2014-07-03 11:30:01 -07:00
Pranav K
be88722cb5
Moving SampleApp from src to samples
2014-07-01 09:24:32 -07:00
David Fowler
9118d037fe
Updated the kproj
2014-06-27 23:02:52 -07:00
Louis DeJardin
7c626431a1
Adding Upgrade support, using WebSocket middleware from sample app
2014-06-27 22:25:38 -07:00
Louis DeJardin
5e51783087
Recompiling windows binaries because uv_loop_size was added
2014-06-27 21:00:06 -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
e4b9bd265c
Adjusting Kestrel to run cross platform
2014-06-27 20:01:44 -07:00
Louis DeJardin
9c29ccdd32
Cross-platform LoadLibrary, adjusting libuv apis
2014-06-27 19:45:31 -07:00
Louis DeJardin
08a3685f53
Moving native resources, updating loading code
2014-06-27 19:33:48 -07:00
Louis DeJardin
63637be073
Listener.Dispose should block until operation is complete
2014-06-25 20:57:12 -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
17e566c5d1
Adding "server.urls" configuration support to kestrel
2014-06-17 22:45:53 -07:00
Louis DeJardin
6ac6419f4f
Adding support for 'k web --server kestrel'
2014-06-13 13:10:46 -07:00
Louis DeJardin
9c7cb6a958
Adding some tests for Http11
...
Requires updating to test utilities
Adding initial EventSource to try to see some order of events
2014-06-11 17:09:25 -07:00
Louis DeJardin
660babcd7f
Adding core clr configurations
2014-06-10 00:29:16 -07:00
David Fowler
ad738561af
Fixed project.json casing
2014-06-08 23:39:09 -07:00
David Fowler
75d0b29954
Renamed Project.json to Project.json2
2014-06-08 23:39:08 -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
Louis DeJardin
3404100f08
Adding empty projects and solution
2014-06-02 16:31:33 -07:00