Age | Commit message (Collapse) | Author | |
---|---|---|---|
2018-04-30 | Reject HTTP/2 requests with a body size different than content-length | 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-27 | Reject WINDOW_UPDATE frames sent after an RST_STREAM | 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-04-23 | Add missing enable_connect_protocol in typespecs | Loïc Hoguin | |
2018-04-04 | Fix Dialyzer warnings | Loïc Hoguin | |
2018-04-04 | Add initial implementation of Websocket over HTTP/2 | Loïc Hoguin | |
Using the current draft: https://tools.ietf.org/html/draft-ietf-httpbis-h2-websockets-01 | |||
2018-03-28 | Add max_frame_size option for websocket handlers | Kirill Kinduk | |
Option allows to limit a frame by size before decoding its payload. LH: I have added a test for when the limit is reached on a nofin fragmented frame (the last commit addressed that case but it had no test). I have fixed formatting and other, and changed the default value to infinity since it might otherwise be incompatible with existing code. I also added documentation and a bunch of other minor changes. | |||
2018-03-26 | Fix the flushing of messages when switching to Websocket | Loïc Hoguin | |
We now flush messages that are specific to cowboy_http only. Stream handlers should also flush their own specific messages if necessary, although timeouts will be flushed regardless of where they originate from. Also renames the http_SUITE to old_http_SUITE to distinguish new tests from old tests. Most old tests need to be removed or converted eventually as they're legacy tests from Cowboy 1.0. | |||
2018-03-23 | Add initial support for system messages in cowboy_loop | Loïc Hoguin | |
2018-03-23 | Merge the two separate receive loops in cowboy_websocket | Loïc Hoguin | |
Also rename a bunch of functions to make the code easier to read. | |||
2018-03-14 | Fix a Dialyzer warning | Loïc Hoguin | |
2018-03-14 | Add case for handling infinity for idle/request_timeout | Bartek Walkowicz | |
Currently cowboy assumes that idle_timeout or request_timeout is a number and always starts timers. Similar situation takes place in case of preface_timeout for http2. This commit adds case for handling infinity as a timeout, allowing to not start mentioned timers. | |||
2018-03-13 | Handle system messages in cowboy_websocket | Loïc Hoguin | |
2018-03-13 | Handle supervisor calls properly everywhere | Loïc Hoguin | |
2018-02-28 | Fix crash in cowboy_http2 when content-length is invalid | Loïc Hoguin | |
2018-01-24 | Fix sending HTTP/2 bodies as iolists out of order | Loïc Hoguin | |
2018-01-23 | Fix an unused variable warning | Loïc Hoguin | |
2018-01-23 | Fix a miscount of output flow control window for HTTP/2 | Loïc Hoguin | |
The miscount occurred because of a faulty iolist split function. The bug should now be corrected, a PropEr test has been added and a regression test has also been added. | |||
2018-01-22 | Don't crash in delete_resp_header if no resp headers are set | Loïc Hoguin | |
2018-01-16 | Allow colon within path segments | Paul Fisher | |
Allow `cowboy_router:compile` to handle colon characters within path segments, rather than exiting with `badarg`. This is allowed via RFC 7230 2.7 -> [RFC 3986 3.3](https://tools.ietf.org/html/rfc3986#section-3.3): ``` segment = *pchar segment-nz = 1*pchar segment-nz-nc = 1*( unreserved / pct-encoded / sub-delims / "@" ) ; non-zero-length segment without any colon ":" pchar = unreserved / pct-encoded / sub-delims / ":" / "@" ``` | |||
2017-12-13 | Fix Dialyzer warnings | Loïc Hoguin | |
2017-12-12 | Don't badmatch on HTTP/2 preface's Transport:send | Loïc Hoguin | |
Send errors produce annoying logs and we notice the connection is gone later on anyway. | |||
2017-12-12 | Fix HTTP/1.1 pipelining | Loïc Hoguin | |
Cases where a request body was involved could sometimes fail depending on timing. Also fix all of the old http_SUITE tests. | |||
2017-12-08 | Add the few remaining tests to the rfc7231 test suite | Loïc Hoguin | |
2017-12-07 | Add more rfc7231 tests and a new max_skip_body_length option | Loïc Hoguin | |
The option controls how much body we accept to skip for HTTP/1.1 connections when the user code did not consume the body fully. It defaults to 1MB. | |||
2017-12-06 | Send a 426 when Websocket is required and client didn't upgrade | Loïc Hoguin | |
2017-12-06 | Fix 408 not sending connection: close for HTTP/1.1 | Loïc Hoguin | |
Also make sure the header is sent for all types of early_error that result in the closing of the connection. | |||
2017-12-06 | Properly handle OPTIONS * requests | Loïc Hoguin | |
Support for these was broken during the development of Cowboy 2.0. It is now fixed and better handled than it ever was. | |||
2017-12-06 | Also disable the TRACE method entirely | Loïc Hoguin | |
2017-12-06 | Disable the CONNECT method completely | Loïc Hoguin | |
It's safer than allow it with the wrong behavior. | |||
2017-12-04 | Add an rfc7231 test suite, fix an HTTP/2 bug with HEAD | Loïc Hoguin | |
In some cases there could be a body sent as a response to a HEAD request when using HTTP/2. This has been corrected. | |||
2017-11-30 | Fix HTTP/2 push | Loïc Hoguin | |
2017-11-29 | Don't send chunked bodies when the method is HEAD | Loïc Hoguin | |
2017-11-29 | Don't include a content-length in 204 responses | Loïc Hoguin | |
2017-11-29 | Reject absolute URIs with no authority components | Loïc Hoguin | |
2017-11-29 | Reject absolute URIs with userinfo components in HTTP/1.1 | Loïc Hoguin | |
2017-11-29 | Reject whitespace before/after HTTP/1.1 header names properly | Loïc Hoguin | |
2017-11-29 | Don't send a GOAWAY frame on close when the h2 preface is invalid | Loïc Hoguin | |
2017-11-29 | Ignore stray HTTP/2 stream messages that we expect | 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-11-22 | Add more rfc7230 tests and better handle bad chunk sizes | Loïc Hoguin | |
Bad chunk sizes used to be accepted and could result in a badly parsed body or a timeout. They are now properly rejected. Chunk extensions now have a hard limit of 129 characters. I haven't heard of anyone using them and Cowboy does not provide an interface for them, but we can always increase or make configurable if it ever becomes necessary (but I honestly doubt it). Also a test from the old http suite could be removed. Yay! |