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