aboutsummaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Collapse)Author
2013-05-16Make the HTTP version type more practicalLoïc Hoguin
Now instead of {1, 1} we have 'HTTP/1.1', and instead of {1, 0} we have 'HTTP/1.0'. This is more efficient, easier to read in crash logs, and clearer in the code.
2013-05-15Remove cowboy_req:fragment/1Loïc Hoguin
Clients do not send it. We skip the value if we receive it now, as it shouldn't happen, and won't for all the mainstream clients.
2013-05-15Fix the cowboy_websocket:frame/0 typeLoïc Hoguin
It accepts iodata() and not binary() for the payload.
2013-05-15Fix two incorrect comments in cowboy_reqLoïc Hoguin
2013-05-15The cookie value can only be binary()Loïc Hoguin
2013-05-15The return value of cowboy_req:peer/1 is never undefinedLoïc Hoguin
2013-05-15Fix incorrect spec for the middleware callbackLoïc Hoguin
2013-05-15Add two missing terminate reasons to http/loop handlers specsLoïc Hoguin
2013-05-15Change some module calls to local function callsLoïc Hoguin
2013-04-29Fix a bug in REST when allowed_methods is defined when method is OPTIONSLoïc Hoguin
2013-04-26Add chunked response body funJames Fish
Adds a new type of streaming response fun. It can be set in a similar way to a streaming body fun with known length: Req2 = cowboy_req:set_resp_body_fun(chunked, StreamFun, Req) The fun, StreamFun, should accept a fun as its single argument. This fun, ChunkFun, is used to send chunks of iodata: ok = ChunkFun(IoData) ChunkFun should not be called with an empty binary or iolist as this will cause HTTP 1.1 clients to believe the stream is over. The final (0 length) chunk will be sent automatically - even if it has already been sent - assuming no exception is raised. Also note that the connection will close after the last chunk for HTTP 1.0 clients.
2013-04-26Update to 0.8.4Loïc Hoguin
2013-04-26Merge branch 'range_header' of git://github.com/Egobrain/cowboyLoïc Hoguin
2013-04-26Added range header parserEgobrain
2013-04-26Merge branch 'remove_asserts' of git://github.com/Egobrain/cowboyLoïc Hoguin
2013-04-26Removed asserts from unit testsEgobrain
2013-04-26Merge branch 'pr-381-fix' of git://github.com/seletskiy/cowboyLoïc Hoguin
2013-04-26Fix indenting issues in `cowboy_rest.erl`Seletskiy Stanislav
2013-04-26Add default CTP: "text/html" maps to `to_html`Seletskiy Stanislav
2013-04-25Cookie names are case sensitiveLoïc Hoguin
This should be more in line with what browsers are doing, and will prevent errors due to failed expectations.
2013-04-22Fix an outdated commentLoïc Hoguin
2013-04-20REST is no longer experimentalLoïc Hoguin
2013-04-20Fix POST behavior in RESTLoïc Hoguin
The resource accept callback can trigger the following responses: * returns true, new resource, location header set: 201 * returns true, otherwise: 200, 204 or 300 (depends on body) * returns false: 422 * returns URL, new resource: 201 * returns URL, otherwise: 303
2013-04-15Build Allow header with a binary comprehensionLoïc Hoguin
2013-04-12Add default operations for OPTIONS method in RESTLoïc Hoguin
It defaults to setting the Allow header to "HEAD, GET, OPTIONS".
2013-04-12Don't receive data from the socket only once in the loop handlerLoïc Hoguin
2013-04-12Ensure we can fetch the body in the info/3 function of loop handlersLoïc Hoguin
2013-04-12rest: reject incorrect content-type headerVladimir Dronnikov
2013-04-12missing comma in documentation of static examplesAndrzej Sliwa
2013-04-11Merge branch 'iolist_path_support' of git://github.com/tsloughter/cowboyLoïc Hoguin
2013-04-11Merge branch 'fix/sendfile-error-handling' of git://github.com/soundrop/cowboyLoïc Hoguin
2013-04-11Don't accept TRACE or CONNECT methods by default in RESTLoïc Hoguin
For the simple reason that the REST code does nothing about them.
2013-04-11Remove process_post, post_is_create, create_path, created_path callbacksLoïc Hoguin
Instead it will always go through content_types_accepted and it is up to the resource code to do any creation and to return the created path if the method is POST and the client should be redirected to the created resource's location. This removes the meta value 'put_path' as it is not needed anymore. This fixes an issue with PATCH where content types were not normalized.
2013-04-11Remove cowboy_req:peer_addr/1Loïc Hoguin
This kind of function is highly dependent on the proxy used, therefore parsing was added for x-forwarded-for instead and we just let users write the function that works for them. The code can be easily extracted if anyone was using the function.
2013-04-11Parse the x-forwarded-for header as a list of tokensLoïc Hoguin
2013-04-11Shorten the parse_header clausesLoïc Hoguin
2013-04-11No need for fully qualified call to the same moduleLoïc Hoguin
2013-04-09Switch the arguments to cowboy_req:stream_body/2Loïc Hoguin
Make them consistent with the rest of the module.
2013-04-08Do not crash if connection times out while sending a file using sendfileAli Sabil
2013-04-03Update to 0.8.30.8.3Loïc Hoguin
2013-04-03Update Ranch to 0.8.0Loïc Hoguin
2013-04-02Replace init_stream/5 with stream_body/2Loïc Hoguin
This allows us to change the max chunk length on a per chunk basis instead of for the whole stream. It's also much easier to use this way even if we don't want to change the chunk size.
2013-03-24add iolist support to route_matchTristan Sloughter
2013-03-09Update to 0.8.20.8.2Loïc Hoguin
2013-03-06Merge branch 'check-body-length' of git://github.com/rambocoder/cowboyLoïc Hoguin
2013-03-06Stop using binary:match in cowboy_protocolLoïc Hoguin
It's been found slower than a custom equivalent to what we were using it for. As this is the critical path we prefer the custom solution.
2013-03-06Check the length before reading the body in body/1 and body_qs/1rambocoder
2013-03-05Make streamed chunk size configurableLoïc Hoguin
Defaults to a maximum of 1000000 bytes. Also standardize the te_identity and te_chunked decoding functions. Now they both try to read as much as possible (up to the limit), making body reading much faster when not using chunked encoding.
2013-03-05Handle identity transfer-encoding when determining body lengthLoïc Hoguin
2013-03-03Add '*' matcher for parametersSlava Yurin
For get_type_provided: '*' will be match any parameters of media-range in "accept" header. If '*' matched, then '*' is replaced by the matching parameters. If Accept header is missing and '*' using, then in media_type in parameters will be '*' and reply content-type will be without any parameters. For content_types_accepted: '*' will be match any parameters in "content-type" header.