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