path: root/src
AgeCommit message (Collapse)Author
2013-08-27Merge branch 'fix-ws-atom-responses' of git://github.com/seriyps/cowboyLoïc Hoguin
2013-08-27Merge branch 'websocket-compressed-metadata' of git://github.com/irccloud/cowboyLoïc Hoguin
2013-08-24Crash on failure, don't report errorsLoïc Hoguin
When something went wrong in a handler we used to report errors and then terminate the process normally. This doesn't work so well with links which won't detect failure. Now we still catch the error, but throw another one with more details on why it happened, including the Req object information and the stacktrace. Ranch will then print an error message with all this information. Because we crash directly, this also means that we will not hog resources unnecessarily for too long when something bad happens.
2013-08-24Simpler code for sending errors following crashesLoïc Hoguin
2013-08-15add websocket_compress metadataRJ
2013-08-13Allow atom responses in websocket handlers #563Sergey Prokhorov
2013-07-18Slight docs fix in cowboy_req.erlpmyarchon
2013-07-12Merge branch 'fix/websocket-inflate-unmask' of git://github.com/soundrop/cowboyLoïc Hoguin
2013-07-08Use the proper typespec for the websocket_deflate_frame rsv bitsAli Sabil
2013-07-05Fix decoding of chunked body.James Fish
Previously cowboy_http:te_chunked/2 would enter an incorrect state if it tried to parse an incomplete chunk when the length was known from the partial chunk. Previosuly cowboy_http:te_chunked/2 expected the trailing "\r\n" to always be present if chunk body was present in the buffer. This is not guaranteed and so this commit accommodates that situation.
2013-07-02Fix handling of websocket fragmented deflated framesAli Sabil
2013-07-02Fix websocket unmasking when compression is enabledAli Sabil
The unmasking logic was based on the length of inflated data instead of the length of the deflated data. This meant data would get corrupted when we receive a websocket frame split across multiple TCP packets.
2013-07-02Fix coding style in websocket_deflate_frame/3Ali Sabil
2013-07-02Remove usage of the inflate bufferAli Sabil
2013-06-27Remove unknown keys from .app.src fileLoïc Hoguin
2013-06-20Fix compilation < R16B010.8.6Loïc Hoguin
2013-06-20Update to 0.8.6Loïc Hoguin
2013-06-20Ignore deprecation warning for crypto:sha/1 for nowLoïc Hoguin
We can change this call when we start supporting only R16B+, which may happen when R17B is released or some time before.
2013-06-20Add support for the webkit deflate frame extensionAli Sabil
2013-06-10Avoid crashing in cowboy_req on invalid Accept-Encoding headerAli Sabil
Certain clients send malformed Accept-Encoding headers, which causes cowboy_req to crash is compression is enabled.
2013-06-08Merge branch 'dont_overwrite_stacktrace' of git://github.com/urbanserj/cowboyLoïc Hoguin
2013-06-07Merge branch 'read_with_utc' of git://github.com/narma/cowboyLoïc Hoguin
2013-06-07Don't overwrite stacktrace in `cowboy_rest:error_terminate/2`Sergey Urbanovich
This stacktrace is very useful in the `onresponse` hook. For example: ```erlang internal_error_hook(500, Headers, <<>>, Req) -> StackTrace = erlang:get_stacktrace(), Headers0 = [{N, V} || {N, V} <- Headers, N =/= <<"content-length">>], Body = io_lib:format("~p", [StackTrace]), {ok, Req0} = cowboy_req:reply(500, Headers0, Body, Req), Req0; internal_error_hook(Status, Headers, Body, Req) -> {ok, Req0} = cowboy_req:reply(Status, Headers, Body, Req), Req0. ```
2013-06-07Merge branch 'types' of git://github.com/lavrin/cowboyLoïc Hoguin
2013-06-07Merge branch 'spdy-zero-length-header-names' of git://github.com/bgentry/cowboyLoïc Hoguin
2013-06-07Use read_file_info/2 with {time, universal} optionSergey Rublev
2013-06-05Fix a couple control_frame clauses that were too largeLoïc Hoguin
2013-06-03Add sendfile support to SPDY, enabling cowboy_static useLoïc Hoguin
2013-06-02Fix cowboy:start_http/https/spdy typespecsRadosław Szymczyszyn
2013-05-31zero-length header names MUST issue a stream errorBlake Gentry
2013-05-31Don't crash on empty Cookie headerLoïc Hoguin
It's not allowed, however a heavily deployed client (Flash player) can send such an empty header, therefore we make a special condition for it and return an empty list when it happens.
2013-05-31In content-types, the charset parameter is converted to lowercaseLoïc Hoguin
We know this specific parameter is case insensitive so we automatically lowercase it to make things simpler to the developer.
2013-05-31Merge branch 'rest_method' of git://github.com/dvv/cowboyLoïc Hoguin
2013-05-30Add experimental and incomplete SPDY supportLoïc Hoguin
The SPDY connection processes are also supervisors. Missing: * sendfile support * request body reading support
2013-05-24Update Cowboy toïc Hoguin
2013-05-16Use the ranch_ssl:opts() type in cowboy:start_https/4 specLoïc Hoguin
2013-05-16Use the ranch_tcp:opts() type in cowboy:start_http/4 specLoïc Hoguin
2013-05-16Use the type ranch:ref() instead of any() where applicableLoïc Hoguin
2013-05-16Add cowboy_protocol:opts() typeLoïc Hoguin
Should improve the detection of wrong protocol options.
2013-05-16The charset iso-8859-1 is added only if not explicitely mentionedLoïc Hoguin
It was added all the time when * was missing, the RFC specifies it should only be added if it wasn't already present, though.
2013-05-16charsets_provided/2 returns a list of charsetsLoïc Hoguin
It incorrectly returned a tuple containing the charset and an associated quality which wasn't being used.
2013-05-16Move cowboy_protocol:onresponse_fun() to cowboy:onresponse_fun()Loïc Hoguin
2013-05-16Move cowboy_protocol:onrequest_fun() to cowboy:onrequest_fun()Loïc Hoguin
2013-05-16Move cowboy_http:status() to cowboy:http_status()Loïc Hoguin
2013-05-16Move cowboy_http:headers() to cowboy:http_headers()Loïc Hoguin
2013-05-16Move cowboy_http:version() to cowboy:http_version()Loïc Hoguin
2013-05-16Improve the specs for cowboy_req:init_stream/4Loïc Hoguin
2013-05-16Make the return value of AcceptResource callback consistentLoïc Hoguin
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.