0
Fork 0
mirror of https://github.com/ninenines/cowboy.git synced 2025-07-15 12:40:25 +00:00
Commit graph

871 commits

Author SHA1 Message Date
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
Loïc Hoguin
68a365b85a Fix a bug in REST when allowed_methods is defined when method is OPTIONS 2013-04-29 16:36:54 +02:00
James Fish
c8242ab396 Add chunked response body fun
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-26 21:02:10 +01:00
Loïc Hoguin
0099078c90 Update to 0.8.4 2013-04-26 16:43:32 +02:00
Loïc Hoguin
9bc276df3b Merge branch 'range_header' of git://github.com/Egobrain/cowboy 2013-04-26 15:48:06 +02:00
Egobrain
2f40a69c11 Added range header parser 2013-04-26 17:46:32 +04:00
Loïc Hoguin
9ccfbb66ef Merge branch 'remove_asserts' of git://github.com/Egobrain/cowboy 2013-04-26 15:13:24 +02:00
Egobrain
3bf5b46786 Removed asserts from unit tests 2013-04-26 17:08:53 +04:00
Loïc Hoguin
e73780975c Merge branch 'pr-381-fix' of git://github.com/seletskiy/cowboy 2013-04-26 13:45:47 +02:00
Seletskiy Stanislav
72a9ccacdd Fix indenting issues in cowboy_rest.erl 2013-04-26 18:34:10 +07:00
Seletskiy Stanislav
f316b47d13 Add default CTP: "text/html" maps to to_html 2013-04-26 18:34:01 +07:00
Loïc Hoguin
61b3157ad1 Cookie names are case sensitive
This should be more in line with what browsers are doing,
and will prevent errors due to failed expectations.
2013-04-25 21:07:04 +02:00
Loïc Hoguin
cf0e005894 Fix an outdated comment 2013-04-22 14:54:22 +02:00
Loïc Hoguin
97b8401c45 REST is no longer experimental 2013-04-20 17:46:29 +02:00
Loïc Hoguin
711c21ac4f Fix POST behavior in REST
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-20 15:52:31 +02:00
Loïc Hoguin
8d7350fa84 Build Allow header with a binary comprehension 2013-04-15 22:15:45 +02:00
Loïc Hoguin
b58a0549e1 Add default operations for OPTIONS method in REST
It defaults to setting the Allow header to "HEAD, GET, OPTIONS".
2013-04-12 19:02:00 +02:00
Loïc Hoguin
61ca459feb Don't receive data from the socket only once in the loop handler 2013-04-12 14:34:36 +02:00
Loïc Hoguin
2aabc73045 Ensure we can fetch the body in the info/3 function of loop handlers 2013-04-12 14:32:37 +02:00
Vladimir Dronnikov
180143f9b2 rest: reject incorrect content-type header 2013-04-12 14:58:08 +04:00
Andrzej Sliwa
1ff1ac85cd missing comma in documentation of static examples 2013-04-12 08:26:44 +02:00
Loïc Hoguin
55cd18e4d8 Merge branch 'iolist_path_support' of git://github.com/tsloughter/cowboy 2013-04-11 23:28:37 +02:00
Loïc Hoguin
2a98ae05e3 Merge branch 'fix/sendfile-error-handling' of git://github.com/soundrop/cowboy 2013-04-11 23:14:27 +02:00
Loïc Hoguin
ae45cecfcd Don't accept TRACE or CONNECT methods by default in REST
For the simple reason that the REST code does nothing about
them.
2013-04-11 22:25:36 +02:00
Loïc Hoguin
5a171d0f80 Remove process_post, post_is_create, create_path, created_path callbacks
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-11 22:25:36 +02:00
Loïc Hoguin
6256429dc9 Remove cowboy_req:peer_addr/1
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-11 22:25:36 +02:00