aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2018-11-14Document the proxy_header protocol optionLoïc Hoguin
2018-11-13Remove two unnecessary debug callsLoïc Hoguin
2018-11-13Add the {deflate, boolean()} Websocket commandLoïc Hoguin
It allows to temporarily disable Websocket compression when it was negotiated. It's ignored otherwise. This can be used as fine-grained control when some frames do not compress well.
2018-11-12Add deflate options for Websocket compressionLoïc Hoguin
They allow the server to configure what it is willing to accept for both the negotiated configuration (takeover and window bits) and the other zlib options (level, mem_level and strategy). This can be used to reduce the memory and/or CPU footprint of the compressed data, which comes with a cost in compression ratio.
2018-11-11Enable range requests support in cowboy_staticLoïc Hoguin
2018-11-11Add ProvideRangeCallback tests using sendfileLoïc Hoguin
And fix this case when multiple ranges are requested.
2018-11-11Add automatic ranged request handling for bytes unitsLoïc Hoguin
Returning the atom auto instead of a callback informs Cowboy that it needs to handle range requests automatically. This changes the behavior so that the ProvideCallback function is called and then Cowboy splits the data on its own and sends the response without any other user involvement other than defining the ranges_provided/2 callback. This is a quick and dirty way to add range request support to resources, and will be good enough for many cases including for cowboy_static as it also works when the normal response body is a sendfile tuple.
2018-11-09Add sendfile support to cowboy_req:stream_bodyLoïc Hoguin
It is now possible to stream one or more sendfile tuples. A simple example of what can now be done would be for example to build a tar file on the fly using the sendfile syscall for sending the files, or to support Range requests with more than one range with the sendfile syscall. When using cowboy_compress_h unfortunately we have to read the file in order to send it. More options will be added at a later time to make sure users don't read too much into memory. This is a new feature however so existing code is not affected. Also rework cowboy_http's data sending to be flatter.
2018-11-07Add support for range requests (RFC7233) in cowboy_restLoïc Hoguin
This is currently undocumented but is planned to be documented in the next version.
2018-11-05Fix unused type in cowboy_staticLoïc Hoguin
2018-11-05Simplify the code that calls REST callbacksLoïc Hoguin
2018-11-05Test stop against all relevant REST callbacksLoïc Hoguin
2018-11-05Test switch_handler against all relevant REST callbacksLoïc Hoguin
2018-11-04Add the rate_limited/2 REST callbackLoïc Hoguin
2018-11-03Add a test suite for RFC6585Loïc Hoguin
2018-11-03Add an option to disable sendfile for a listenerLoïc Hoguin
2018-11-02Add a charset option to cowboy_staticLoïc Hoguin
2018-11-02Add RFC6657 to the list of related documentsLoïc Hoguin
2018-11-02Remove the default charset iso-8859-1 in cowboy_restLoïc Hoguin
This requirement was removed in RFC7231 and the rationale behind it was documented in RFC6657.
2018-11-02Add tests for charsets_providedLoïc Hoguin
Fix cases where the q-value is 0 and where a wildcard was sent in the accept-charset header. Also don't send a charset in the content-type of the response if the media type is not text. Thanks to Philip Witty for help figuring this out.
2018-11-02Better handle content negotiation when accept contains charsetsLoïc Hoguin
Thanks to Philip Witty for help figuring this out.
2018-11-01Accept a broader media type as input in rest_pastebin exampleLoïc Hoguin
2018-10-31Add a cowboy_rest test for malformed if-*-match headersLoïc Hoguin
2018-10-31Add compress_threshold protocol optionSteve Domin
Currently the compression threshold is set to 300 and hardcoded in the codebase. There are cases where it make sense to allow this to be configured, for instance when you want to enforce all responses to be compressed regarldess of their size.
2018-10-31Make sure we don't send error_responses on the wrong streamLoïc Hoguin
2018-10-31Handle error_response command in cowboy_metrics_hGrigory Starinkin
2018-10-31Improve a few types, including cowboy_req:req()Loïc Hoguin
2018-10-31Always dialyze tests and fix some cowboy_req specsLoïc Hoguin
2018-10-31Fix a test listener not being stoppedLoïc Hoguin
2018-10-30Initial support for the PROXY protocol headerLoïc Hoguin
Depend on Ranch master for now since it isn't in any release yet.
2018-10-28Fix the sys trap_exit testsLoïc Hoguin
The processes go down slower now so that caused intermittent issues.
2018-10-28Remove a useless todoLoïc Hoguin
2018-10-28Rename a few functions and shuffle argumentsLoïc Hoguin
2018-10-28Remove an unnecessary functionLoïc Hoguin
2018-10-28Exit gracefully on parent exit/sys:terminate/2,3Loïc Hoguin
2018-10-27Fix small issues introduced in the previous commitLoïc Hoguin
2018-10-27Use cow_http2_machine's timer handlingLoïc Hoguin
2018-10-26Use cow_http2:parse_sequence/1Loïc Hoguin
2018-10-26Switch cowboy_http2 to the new cow_http2_machineLoïc Hoguin
The new module is a merge of the Cowboy and Gun HTTP/2 state machines. Using a common code will help future developments rather than duplicating the work. A notable change is in how streams are terminated when the handler stops before the body is sent. The cowboy_stream:terminate function is now called only after the body has been sent fully (or the stream is reset in-between), not when the stop command is returned. This will most likely have an impact on metrics but will be closer to reality. I had to comment a broken test in rfc7231_SUITE that was cheating, cheating is no longer possible. This depends on Cowlib master for the time being. A new Cowlib version will be released once both Cowboy and Gun are ported to use cow_http2_machine and I'm satisfied with it.
2018-10-26Simplify a case clauseLoïc Hoguin
2018-10-26Add yet another RFC to the listLoïc Hoguin
2018-10-02Fix Cowboy version in the getting started chapter2.5.0Loïc Hoguin
2018-10-02Fix ranch:start_tls when transport options are a mapLoïc Hoguin
2018-10-02Shorten a command in the MakefileLoïc Hoguin
2018-09-26Use gun:info instead of hacks for test socket operationsLoïc Hoguin
2018-09-23Update Ranch to 1.6.2getong
2018-09-23Rename handler modules to _hHerman Singh
2018-09-23Add a spec to the listLoïc Hoguin
2018-09-23Fix stream_handler_SUITE test failures due to compressionLoïc Hoguin
We always compress when streaming the body back to the client regardless of the size actually streamed.
2018-09-23Correct two tests that introspect the Gun stateLoïc Hoguin
It has changed in Gun 1.2.