Ben Adams
941d396942
Speed up ParseRequestLine ( #1463 )
2017-03-08 19:27:56 -08:00
David Fowler
49d058a997
No mono ( #1472 )
2017-03-08 18:47:52 -08:00
Nate McMaster
63e3c9428a
You can't have two benchmarks as the baseline.
2017-03-08 17:28:13 -08:00
Nate McMaster
3a1f3d14f9
Add absolute-uri benchmark and change plaintext, live aspnet, and unicode benchmarks to use origin-form
2017-03-08 17:21:21 -08:00
Cesar Blum Silveira
bb973decb8
Unify header rejection messages.
...
- Log bad headers with escaped non-vchar characters
2017-03-08 15:27:44 -08:00
David Fowler
dbcf34388e
Remove dependency on Utf8String ( #1466 )
...
- Also remove System.IO.Pipelines.Text.Primitives
2017-03-08 12:38:55 -08:00
Cesar Blum Silveira
e25eb418bb
Change non-printable char representation in log messages from <0xXX> to \xXX.
2017-03-08 10:05:53 -08:00
David Fowler
1f0bb14546
Clean up left over code from port to pipelines ( #1465 )
...
- Remove unused methods in PipelineExtensions
- Remove AwaitableThreadPool since we dispatch reads
2017-03-08 08:43:11 -08:00
David Fowler
13519b6079
Fix CopyTo implementation in benchmark. ( #1462 )
...
* wip
* ooops
2017-03-07 17:39:56 -08:00
Cesar Blum Silveira
5743d740b4
Convert HTTP parsing FrameTests to IHttpParser tests ( #1416 ).
...
- Also fix an issue in KestrelHttpParser where "Header: \r\n" is
parsed with a value of " " instead of "".
2017-03-07 15:51:11 -08:00
Ben Adams
e2f8c226ef
Simplify TakeSingleHeader and Vectorize ( #1457 )
...
* Sanitize unsafe code
* Vectorize
* Extract Contains and add more tests
2017-03-07 13:30:57 -08:00
Pavel Krymets
1294c00618
Cleanup unused code ( #1458 )
2017-03-07 11:52:45 -08:00
David Fowler
02a4342908
Made changes to TakeSingleHeader ( #1453 )
...
* Made changes to TakeSingleHeader
- Remove state machine and just parse in place
- Inline OnHeader into TakeSingleHeader
- Use IndexOfVectorized instead of custom indexof
- Normalize header whitespace error
- Combine IndexOf and IndexOfAny into a single IndexOfNameEnd call
2017-03-07 08:58:55 -08:00
John Luo
06134bc6e0
Add IPv6 loopback address by default #1434
2017-03-06 18:02:28 -08:00
Cesar Blum Silveira
11c7eb5665
Verify all request rejections are logged ( #1295 ).
2017-03-06 12:05:38 -08:00
John Luo
7d94abd606
Enable default server address test
2017-03-06 10:26:32 -08:00
Cesar Blum Silveira
0404bcc58c
Add more microbenchmarks.
2017-03-06 10:14:22 -08:00
David Fowler
537b06f025
Interleave multispan and single span code path ( #1442 )
...
- Attempt at making the reader better for multispan parsing
- Try tighter inner loop
- Fix boundary case and clean code up
- Update the cursor once instead of after every header
- Fix errors with not updating consumed state on incomplete header payload
- Filled a test hole, removed a condition that should never happen
- Avoid struct copies every iteration when parsing headers
2017-03-06 09:06:28 -08:00
David Fowler
0ce111d9f1
Fix write size in benchmark ( #1449 )
2017-03-06 03:31:45 -08:00
Pranav K
acf97b6102
Unpin CoreFxLab package versions
2017-03-05 08:54:51 -08:00
David Fowler
da763b4873
Use ascii decoding routine that disallows null chars ( #1445 )
...
* Use ascii decoding routine that disallows null chars
- GetAsciiString() in newer corefxlab builds allows 0 (which is a valid
ascii char). To avoid future regressions, GetAsciiStringNonNullCharacters()
was added and used in place of GetAsciiString() when interpreting the
request line and headers
- Make GetAsciiStringNonNullCharacters return empty instead of null
2017-03-04 11:26:32 -08:00
David Fowler
20f75605ca
Workaround rogue System.IO.Pipelines on nuget.org
2017-03-03 22:35:41 -08:00
Cesar Blum Silveira
83edc38e72
Use TechEmpower request as baseline for request parsing benchmarks.
2017-03-03 15:55:07 -08:00
Cesar Blum Silveira
de2c3d3608
Merge branch 'KrzysztofCwalina/NewBenchmark' into dev
2017-03-03 15:28:34 -08:00
Stephen Halter
ac60f13312
Modify RequestProcessingAsync to call single parse method ( #1427 )
...
* Modify RequestProcessingAsync to call single parse method
* Fix bad request logging
2017-03-03 14:43:32 -08:00
Krzysztof Cwalina
7cc5c537a4
Added a new benchmark
2017-03-03 13:13:11 -08:00
David Fowler
1d685e195e
Parser cleanup and remove line continuation header error ( #1431 )
...
- Cleaned up some parsing logic (removed locals etc)
- Removing line continuation errors cleaned up code duplication
a little bit
2017-03-03 10:04:44 -08:00
David Fowler
4533383612
React to hosting change
...
- Kestrel binds to ipv4 by default
Fixes #1432
2017-03-02 23:09:13 -08:00
David Fowler
4d7c6ff69f
use rtm appveyor
2017-03-02 21:44:36 -08:00
Stephen Halter
1e0f2b3951
Fix systemd activation tests ( #1429 )
2017-03-02 17:26:41 -08:00
David Fowler
8929b40527
Single span optimizations ( #1421 )
...
- Added a fast path for single span in the start line parsing
- Added a fast path for single span header parsing
- Changed the out header loop to be pointer based (instead of slicing)
2017-03-02 12:17:39 -08:00
Nate McMaster
aaea173cba
Update AppVeyor and Travis settings
2017-03-02 09:44:00 -08:00
Ben Adams
40ee51846c
Add allocations column ( #1422 )
2017-03-02 06:56:05 -08:00
David Fowler
ca31627a5e
Parser clean up ( #1419 )
...
- Remove stackalloc
- Remove extra Move in ParseRequestLine
2017-03-01 22:33:37 -08:00
Pavel Krymets
f2a00da811
Loop over bytes inside states of parser state machine ( #1417 )
2017-03-01 18:18:34 -08:00
Nate McMaster
d3924b0149
Change korebuild branch and fix argument forwarding in bootstrapper
2017-03-01 18:14:13 -08:00
David Fowler
cb6059c143
Make the IHttpParser per frame and add a reset ( #1415 )
...
* Make the IHttpParser per frame and add a reset
- Made the IHttpParser a per frame object so state can be stored
across method calls and parses.
- Added HttpParserFactory to ServiceContext
2017-03-01 13:12:03 -08:00
Pavel Krymets
d3694f085a
Add IHttpParser interface ( #1414 )
2017-03-01 11:55:36 -08:00
Krzysztof Cwalina
c56de066d3
Optimized parsing GET verb and version ( #1399 )
...
* Optimized parsing GET verb
* optimized http version parsing
* Added microbenchmarks for GetKnownMethod and GetKnownVersion
2017-02-28 17:02:52 -08:00
Stephen Halter
64b6563249
Run Travis and AppVeyor builds on feature/dev-si
2017-02-28 15:28:31 -08:00
John Luo
6ad9f3e8b0
Reacting to HeaderUtitilities renames
2017-02-28 14:50:02 -08:00
Cesar Blum Silveira
568aaff9c4
Improve HTTP parsing tests ( #1393 ).
...
- Add several more test cases
- Share data between functional and unit tests
2017-02-28 14:23:27 -08:00
Cesar Blum Silveira
f5ac8c4ebd
Don't require framework when running CodeGenerator.
2017-02-28 13:50:16 -08:00
Stephen Halter
fde0f6b2fc
Add an option to Kestrel to disable threadpool dispatching
2017-02-28 10:14:58 -08:00
Cesar Blum Silveira
a95743c5f6
Add functional test to verify generated code is up to date ( #1369 ).
2017-02-27 14:19:56 -08:00
David Fowler
c6705d8693
Convert TakeStartLine and TakeMessageHeaders to be state machines ( #1401 )
...
- Less passes over the buffer
- Single pass to find all start line delimiters instead
of calling IndexOf multiple times.
- Made TakeStartLine and TakeMessageHeaders a state machine
- Only check length against remaining bytes once
- Change variable names to match TakeStartLine
- Use ReadableBuffer.First.Span instead of ToSpan()
- Added test for missing path with a querystring
2017-02-27 11:55:30 -08:00
David Fowler
5692f51bf7
Revert "Revert "Use Spans to parse the start line and headers ( #1394 )""
...
This reverts commit 19c3107deb .
2017-02-24 10:22:05 -08:00
David Fowler
19c3107deb
Revert "Use Spans to parse the start line and headers ( #1394 )"
...
This reverts commit 8140b8cdfe .
2017-02-24 10:03:32 -08:00
David Fowler
4544f881a2
Revert "Skipping failing tests to unblock CI"
...
This reverts commit 0860981ada .
2017-02-24 09:48:44 -08:00
David Fowler
0860981ada
Skipping failing tests to unblock CI
2017-02-24 09:31:43 -08:00