Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-09-05 | Fix and optimize sending of WINDOW_UPDATE frames | Loïc Hoguin | |
For long-running connections it was possible for the connection window to become larger than allowed by the protocol because the window increases claimed by stream handlers were never reclaimed even if no data was consumed. The new code applies heuristics to fix this and reduce the number of WINDOW_UPDATE frames that are sent. It includes six new options to control that behavior: margin, max and threshold for both the connection and stream windows. The margin is some extra space added on top of the requested read size. The max is the maximum window size at any given time. The threshold is a minimum window size that must be reached before we even consider sending more WINDOW_UPDATE frames. We also avoid sending WINDOW_UPDATE frames when there is already enough space in the window, or when the read size is 0. Cowlib is set to master until a new tag is done. | |||
2019-07-26 | Add a zero-length DATA frame in the lingering_data test | Tony Han | |
2019-07-16 | Data received after RST_STREAM counts toward window | Tony Han | |
2019-04-01 | Fallback to host header if authority is missing | Fredrik Enestad | |
2018-11-19 | Use try..after in tests that start their own listeners | Loïc Hoguin | |
2018-11-19 | Use ?FUNCTION_NAME instead of ct_helper:name() | Loïc Hoguin | |
Cowboy is 19+ so it's OK to use it. | |||
2018-05-22 | Fix intermittent test failures in rfc7540_SUITE | Loïc Hoguin | |
2018-05-22 | Ensure tests in rfc7540_SUITE can be repeated | Loïc Hoguin | |
2018-05-16 | Honor the SETTINGS_ENABLE_PUSH from clients | Loïc Hoguin | |
This fixes curl when fetching resources that use push. | |||
2018-04-30 | Fix some intermittent test issues in rfc7540 | Loïc Hoguin | |
2018-04-30 | Fix some rfc7540 tests that had an empty :path | Loïc Hoguin | |
2018-04-30 | Reject HTTP/2 requests with a body size different than content-length | Loïc Hoguin | |
2018-04-29 | Add tests for rejecting streams depending on themselves | Loïc Hoguin | |
2018-04-29 | Receive and ignore HTTP/2 request trailers if any | Loïc Hoguin | |
This is a first step toward properly supporting request trailers. | |||
2018-04-28 | Add SETTINGS ack timeout and option settings_timeout | Loïc Hoguin | |
2018-04-28 | Fix intermittent test failures for rfc7540 | Loïc Hoguin | |
2018-04-27 | Fix an rfc7540 test to have a different error reason | Loïc Hoguin | |
2018-04-27 | Add options controlling maximum h2 frame sizes | Loïc Hoguin | |
2018-04-26 | Add options controlling initial control flow windows | Loïc Hoguin | |
2018-04-25 | Add the max_concurrent_streams h2 option | Loïc Hoguin | |
2018-04-25 | Add options to control h2's SETTINGS_HEADER_TABLE_SIZE | Loïc Hoguin | |
2018-04-23 | HTTP/2 informational responses don't end the stream | Loïc Hoguin | |
2018-02-28 | Fix crash in cowboy_http2 when content-length is invalid | Loïc Hoguin | |
2017-11-29 | Fix a broken test case in the rfc7540 suite | Loïc Hoguin | |
2017-11-29 | Fix an intermittent test failure in the rfc7540 suite | Loïc Hoguin | |
2017-11-29 | Add nowarn_export_all to all test suites | Loïc Hoguin | |
2017-11-29 | Add many rfc7540 tests, improve detection of malformed requests | Loïc Hoguin | |
2017-11-27 | Add more flow control tests to rfc7540 and fix related issues | Loïc Hoguin | |
2017-11-27 | Add more rfc7540 tests along with their respective fixes | Loïc Hoguin | |
2017-11-27 | Fix a few rfc7540 tests | Loïc Hoguin | |
Cowboy takes a few shortcuts to avoid wasting resources when there is a protocol error. The RFC wants us to send a different error depending on the state of the stream at the time of the error, and for us to maintain the connection in cases where we would have to spend valuable resources to decode headers. In all these cases Cowboy will simply close the connection with an appropriate error. | |||
2017-10-23 | Fix a bug in HTTP/2 where connection gets closed prematurely | Loïc Hoguin | |
When the user code was sending a response fully without reading the request body, the connection could get closed when receiving DATA frames for that body. We now ask the client to stop sending data via a NO_ERROR RST_STREAM, and linger any stream that has been reset so that we can skip any pending frames from that stream. This fixes a number of intermittent failures in req_SUITE, which now passes reliably. In addition a small number of rfc7540_SUITE test cases have been corrected as they were incorrect. | |||
2017-05-23 | Add many tests for RFC7540 5.1 and 5.1.1 and related fixes | Loïc Hoguin | |
2017-03-02 | Add more HTTP/2 tests for RFC7540 4.1 and 4.3 | Loïc Hoguin | |
2017-02-26 | Unknown HTTP/2 frames are ignored | Loïc Hoguin | |
2017-02-25 | Add many test cases covering RFC7540 4.2 | Loïc Hoguin | |
These tests cover frame sizes. It's mostly edge cases for sure (ie misbehaving clients and us having to reject them properly). I had these almost ready for a long time, so I'm glad I can push them out. This requires updating Cowlib too (we currently track master). | |||
2017-01-02 | Welcome to 2017 | Loïc Hoguin | |
2016-03-14 | Clarify comments about remaining tests to add to rfc7540_SUITE | Loïc Hoguin | |
2016-03-13 | Fix most remaining HTTP/2 handshake tests | Loïc Hoguin | |
One category of tests involving the SETTINGS ack still fails. It is probably wise to leave these until more SETTINGS related tests are written. | |||
2016-03-13 | Fix more HTTP/2 handshake test cases | Loïc Hoguin | |
2016-03-12 | Add initial HTTP/1.1 Upgrade to HTTP/2 | Loïc Hoguin | |
The same edge cases that fail with other handshake methods also fail here (mostly bad preface/timeouts stuff). In addition, the HTTP2-Settings header contents are currently not checked and so the related edge case tests also fail. | |||
2016-03-10 | Add the beginning of the rfc7540 test suite | Loïc Hoguin | |
Currently only testing handshake. Tests that pass currently involve no request/response. ALPN and prior knowledge support have some edge cases left to fix. HTTP/1.1 Upgrade has not been implemented yet. |