aboutsummaryrefslogtreecommitdiffstats
path: root/src/cowboy_req.erl
AgeCommit message (Collapse)Author
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-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-30Initial support for the PROXY protocol headerLoïc Hoguin
Depend on Ranch master for now since it isn't in any release yet.
2018-09-07Add cowboy_req:read_and_match_urlencoded_body/2,3Loïc Hoguin
2018-06-27Disable warnings for erlang:get_stacktrace/0 in OTP-21+Loïc Hoguin
2018-06-25Add an undocumented stream_events functionLoïc Hoguin
I will test it on a private project before settling on it.
2018-05-16Use default port when not given in :authorityLoïc Hoguin
2018-04-04Add initial implementation of Websocket over HTTP/2Loïc Hoguin
Using the current draft: https://tools.ietf.org/html/draft-ietf-httpbis-h2-websockets-01
2018-01-23Fix an unused variable warningLoïc Hoguin
2018-01-22Don't crash in delete_resp_header if no resp headers are setLoïc Hoguin
2017-12-06Properly handle OPTIONS * requestsLoï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-11-29Don't include a content-length in 204 responsesLoïc Hoguin
2017-11-15Add preliminary support for trailers in responsesLoïc Hoguin
This depends on changes in Cowlib that are only available on master.
2017-10-29Add cowboy_req:inform/2,3Loïc Hoguin
User code can now send as many 1xx responses as necessary.
2017-10-25Introduce cowboy_req:sock/1 and cowboy_req:cert/1Loïc Hoguin
To obtain the local socket ip/port and the client TLS certificate, respectively.
2017-10-02Fix infinite loop on incomplete multipart bodyJeffrey Griffin
I have amended a lot of changes from the original commit to make it behave as expected, including returning a 400 error. LH
2017-09-27Fix error response when constraint validation failsLoïc Hoguin
2017-09-25Move body length count to cowboy_stream_h instead of protocolsLoïc Hoguin
The documentation was correct, the code was not. This should make it easier to implement new protocols. Note that for HTTP/2 we will need to add some form of counting later on to check for malformed requests, but we can do simpler and just reduce from the expected length and then check if that's 0 when IsFin=fin.
2017-09-14Improve how we detect request errorsLoïc Hoguin
When the request process exits with a {request_error, Reason, Human} exit reason, Cowboy will return a 400 status code instead of 500. Cowboy may also return a more specific status code depending on the error. Currently it may also return 408 or 413. This should prove to be more solid that looking inside the stack trace.
2017-09-05Remove transfer-encoding parsing from cowboy_reqLoïc Hoguin
The header never reaches this point.
2017-09-05Remove an unused variableLoïc Hoguin
2017-09-04Accept sendfile tuple with 0 length in cowboy_reqLoïc Hoguin
This will result in no data being sent. It's simply easier to do this than to have to handle 0 size cases in user code.
2017-07-15Req Body length can be a non_neg_integer or infinitySteven Magelowitz
2017-07-01Aggregate validation errors and pass them in exceptionLoïc Hoguin
2017-06-28Improve the interface for constraintsLoïc Hoguin
There are two important changes in this commit. Constraints are now producing an error tuple. This error tuple in turn can be provided to a function for formatting a human readable error message. Both the error tuple and the formatting code are controlled by and part of the constraint function. Constraints now also implement the reverse operation. When constraint functions only validate, the reverse operation will be the same as the forward operation. When they also do some conversion then the reverse operation will reverse it. Since constraints are now performing 3 different operations (forward, reverse and format_error), they now take the form of a function accepting two separate arguments. The operation is the first argument. In addition, the return value was changed to take the form of {ok, Value} | {error, Reason}. The value must be returned as-is if it was not modified.
2017-06-09Make cowboy_req:read_part return multipart headers as mapLoïc Hoguin
2017-05-19Preliminary h2 flow control supportLoïc Hoguin
Existing tests pass. A number of things remain to be done. Has only been tested with Gun so far. Feedback welcome!
2017-05-05length can be a non_neg_integer or infinitySteven Magelowitz
2017-02-19Change the type of bindings from a list to a mapLoïc Hoguin
Maps make more sense because the keys are unique.
2017-02-19Change the order of set_resp_cookie argumentsLoïc Hoguin
The Opts value is put last, to be more consistent with the rest of the cowboy_req module. Additionally a test handler was fixed which reduced the number of errors in http_SUITE.
2017-02-19Change the type of cookie name to binary()Loïc Hoguin
The API will be more consistent like this, and we can ensure that duplicate cookie names are never sent.
2017-02-05Remove or fix a small number of todo commentsLoïc Hoguin
One had the todo text fixed, another had the task to do done.
2017-01-04Make the new cowboy_req tests more realistic2.0.0-pre.5Loïc Hoguin
2017-01-04Add functions for getting and setting response headersJohan Lövdahl
2017-01-02Welcome to 2017Loïc Hoguin
2017-01-02Numerous Dialyzer fixesLoïc Hoguin
2016-08-12Add missing specs to an internal cowboy_req functionLoïc Hoguin
2016-08-12Merge branch 'master' of https://github.com/camshaft/cowboyLoïc Hoguin
2016-08-10Add specs for the cowboy_req:push/3,4 functionsLoïc Hoguin
2016-08-10Make reply functions return ReqLoïc Hoguin
2016-08-10Update the multipart reading interfaceLoïc Hoguin
Now named read_part/read_part_body, with a verb indicating action.
2016-08-10Add a lot of todosLoïc Hoguin
2016-08-10Add tests for responses and request body readingLoïc Hoguin
This is a large commit. The cowboy_req interface has largely changed, and will change a little more. It's possible that some examples or tests have not been converted to the new interface yet. The documentation has not yet been updated. All of this will be fixed in smaller subsequent commits. Gotta start somewhere...
2016-06-22Remove cowboy_req:get and setLoïc Hoguin
2016-06-22Remove cowboy_req:append_buffer/2Loïc Hoguin
2016-06-22Remove unused local function in cowboy_reqLoïc Hoguin
2016-06-22Remove cowboy_req:set_bindings/4Loïc Hoguin
2016-06-22Remove cowboy_req:lock/1Loïc Hoguin