0
Fork 0
mirror of https://github.com/ninenines/cowboy.git synced 2025-07-15 20:50:24 +00:00
Commit graph

1146 commits

Author SHA1 Message Date
Ali Sabil
c5c9c398ff Use the proper typespec for the websocket_deflate_frame rsv bits 2013-07-08 09:49:35 +02:00
James Fish
f0cc2d01e6 Fix decoding of chunked body.
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-05 22:45:18 +01:00
Ali Sabil
6f0b8804bc Fix handling of websocket fragmented deflated frames 2013-07-02 13:46:28 +02:00
Ali Sabil
a3b9438d16 Fix websocket unmasking when compression is enabled
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-02 13:46:28 +02:00
Ali Sabil
373f2e8134 Fix coding style in websocket_deflate_frame/3 2013-07-02 11:02:32 +02:00
Ali Sabil
4edef3c45c Remove usage of the inflate buffer 2013-07-02 10:58:12 +02:00
Loïc Hoguin
116acaead7 Remove unknown keys from .app.src file 2013-06-27 19:25:43 +02:00
Loïc Hoguin
9eaee45c09 Fix compilation < R16B01 2013-06-20 18:44:36 +02:00
Loïc Hoguin
0529f85492 Update to 0.8.6 2013-06-20 16:02:33 +02:00
Loïc Hoguin
11493a40f1 Ignore deprecation warning for crypto:sha/1 for now
We can change this call when we start supporting only R16B+,
which may happen when R17B is released or some time before.
2013-06-20 16:01:58 +02:00
Ali Sabil
a63faff35e Add support for the webkit deflate frame extension 2013-06-20 13:09:13 +02:00
Ali Sabil
ba1eca6b97 Avoid crashing in cowboy_req on invalid Accept-Encoding header
Certain clients send malformed Accept-Encoding headers, which causes
cowboy_req to crash is compression is enabled.
2013-06-10 15:22:05 +02:00
Loïc Hoguin
a55c20c4ef Merge branch 'dont_overwrite_stacktrace' of git://github.com/urbanserj/cowboy 2013-06-08 21:50:58 +02:00
Loïc Hoguin
830d4c85c8 Merge branch 'read_with_utc' of git://github.com/narma/cowboy 2013-06-07 19:07:38 +02:00
Sergey Urbanovich
1577ec8364 Don't overwrite stacktrace in cowboy_rest:error_terminate/2
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-07 21:06:27 +04:00
Loïc Hoguin
a8737cb763 Merge branch 'types' of git://github.com/lavrin/cowboy 2013-06-07 18:40:44 +02:00
Loïc Hoguin
be0f7a214c Merge branch 'spdy-zero-length-header-names' of git://github.com/bgentry/cowboy 2013-06-07 18:36:29 +02:00
Sergey Rublev
d6c9bb27ad Use read_file_info/2 with {time, universal} option 2013-06-07 22:21:42 +07:00
Loïc Hoguin
5179b0647b Fix a couple control_frame clauses that were too large 2013-06-05 10:47:04 +02:00
Loïc Hoguin
1fc69977da Add sendfile support to SPDY, enabling cowboy_static use 2013-06-03 19:10:03 +02:00
Radosław Szymczyszyn
e4f407e426 Fix cowboy:start_http/https/spdy typespecs 2013-06-02 00:40:22 +02:00
Blake Gentry
157f64b49b zero-length header names MUST issue a stream error 2013-05-31 11:15:20 -07:00
Loïc Hoguin
c1a1fd125d Don't crash on empty Cookie header
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-31 18:59:52 +02:00
Loïc Hoguin
4fde6cba94 In content-types, the charset parameter is converted to lowercase
We know this specific parameter is case insensitive so we
automatically lowercase it to make things simpler to the
developer.
2013-05-31 18:38:43 +02:00
Loïc Hoguin
cab1a8fb45 Merge branch 'rest_method' of git://github.com/dvv/cowboy 2013-05-31 15:13:24 +02:00
Loïc Hoguin
9a2d35c2e8 Add experimental and incomplete SPDY support
The SPDY connection processes are also supervisors.

Missing:
 *  sendfile support
 *  request body reading support
2013-05-30 20:21:01 +02:00
Loïc Hoguin
bfbe1cc5c6 Update Cowboy to 0.8.5 2013-05-24 15:16:48 +02:00
Loïc Hoguin
0e0ec7b120 Use the ranch_ssl:opts() type in cowboy:start_https/4 spec 2013-05-16 19:17:01 +02:00
Loïc Hoguin
e4bb2ffc77 Use the ranch_tcp:opts() type in cowboy:start_http/4 spec 2013-05-16 19:16:13 +02:00
Loïc Hoguin
bb89bf6f8d Use the type ranch:ref() instead of any() where applicable 2013-05-16 19:13:36 +02:00
Loïc Hoguin
6d1344319a Add cowboy_protocol:opts() type
Should improve the detection of wrong protocol options.
2013-05-16 17:56:45 +02:00
Loïc Hoguin
2e787fed56 The charset iso-8859-1 is added only if not explicitely mentioned
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-16 17:38:29 +02:00
Loïc Hoguin
08fcb38a18 charsets_provided/2 returns a list of charsets
It incorrectly returned a tuple containing the charset and an
associated quality which wasn't being used.
2013-05-16 17:32:07 +02:00
Loïc Hoguin
1d413ea51b Move cowboy_protocol:onresponse_fun() to cowboy:onresponse_fun() 2013-05-16 17:01:38 +02:00
Loïc Hoguin
488dcc967b Move cowboy_protocol:onrequest_fun() to cowboy:onrequest_fun() 2013-05-16 16:52:20 +02:00
Loïc Hoguin
df73a4d0a5 Move cowboy_http:status() to cowboy:http_status() 2013-05-16 16:29:24 +02:00
Loïc Hoguin
f8a7856127 Move cowboy_http:headers() to cowboy:http_headers() 2013-05-16 16:16:32 +02:00
Loïc Hoguin
c0c333e41b Move cowboy_http:version() to cowboy:http_version() 2013-05-16 16:06:52 +02:00
Loïc Hoguin
ba7e6c07ec Improve the specs for cowboy_req:init_stream/4 2013-05-16 15:54:30 +02:00
Loïc Hoguin
934393a168 Make the return value of AcceptResource callback consistent 2013-05-16 15:14:11 +02:00
Loïc Hoguin
28186a68d0 Make the HTTP version type more practical
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-16 12:56:01 +02:00
Loïc Hoguin
e0b5526f1e Remove cowboy_req:fragment/1
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-15 15:17:33 +02:00
Loïc Hoguin
7577ce4920 Fix the cowboy_websocket:frame/0 type
It accepts iodata() and not binary() for the payload.
2013-05-15 14:53:45 +02:00
Loïc Hoguin
a45787208e Fix two incorrect comments in cowboy_req 2013-05-15 14:53:28 +02:00
Loïc Hoguin
76c6aa2183 The cookie value can only be binary() 2013-05-15 14:50:40 +02:00
Loïc Hoguin
c582335c5b The return value of cowboy_req:peer/1 is never undefined 2013-05-15 14:49:44 +02:00
Loïc Hoguin
ce7981deb3 Fix incorrect spec for the middleware callback 2013-05-15 14:49:09 +02:00
Loïc Hoguin
bf2b8181cc Add two missing terminate reasons to http/loop handlers specs 2013-05-15 14:47:37 +02:00
Loïc Hoguin
517a31086b Change some module calls to local function calls 2013-05-15 14:46:24 +02:00
Vladimir Dronnikov
cacf924936 Empty methods list allowed 2013-04-30 19:02:58 +04:00