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

627 commits

Author SHA1 Message Date
Loïc Hoguin
7d2a481401 Use ct_run instead of rebar ct for running ct tests
Small tweak to the autobahn test file, we look for the python2
executable now. It'll make my life easier.
2013-01-04 17:56:49 +01:00
Loïc Hoguin
54063de2ff Hello 2013 2013-01-04 15:10:03 +01:00
Loïc Hoguin
1b3f510b7e Add middleware support
Middlewares allow customizing the request processing.

All existing Cowboy project are incompatible with this commit.
You need to change `{dispatch, Dispatch}` in the protocol options
to `{env, [{dispatch, Dispatch}]}` to fix your code.
2013-01-03 22:47:51 +01:00
Loïc Hoguin
73d86057f2 Fix small error in doc comment 2013-01-03 22:31:55 +01:00
Loïc Hoguin
398d3503c4 Salvage the README and move parts into the guide 2013-01-03 16:01:49 +01:00
Loïc Hoguin
06e74355c0 Add a skeleton of the guide to ease user contributions
Has some stuff that aren't in master yet, and lacks a lot more
that is already in master.
2013-01-01 18:27:41 +01:00
Loïc Hoguin
2690d1254c Remove cowboy_req:body/2
This function was badly thought out and would cause more harm
than good if used at all. Recommendation will be for people
who need to limit body length to check it beforehand or when
not possible to use the stream_body API.
2012-12-26 18:51:41 +01:00
Loïc Hoguin
f401a84be6 Update Ranch to 0.6.0 2012-12-26 01:57:45 +01:00
Loïc Hoguin
a3049f7100 Revert "Use lists:keyreplace/4 instead of lists:keydelete/3 + cons"
This reverts commit cc65a723d7.
2012-12-23 14:43:44 +01:00
Tom Burdick
13c28b8f58 use the original request when available for error_terminate
this change makes sure that once a request has been created
the error_terminate/3 function uses the original request instead
of making a new empty one with undefined values making the request
attributes easier to look at in many error cases

Conflicts:
	src/cowboy_protocol.erl
2012-12-22 21:20:39 +01:00
Loïc Hoguin
f7929d323c Merge branch 'undefined_url' of git://github.com/treetopllc/cowboy 2012-12-22 21:14:20 +01:00
Loïc Hoguin
31c7bf7234 Merge branch 'fix-websocket-timeout' of git://github.com/jeremyong/cowboy 2012-12-22 18:32:35 +01:00
Jeremy Ong
5f122d9fa6 Cancel timer only on websocket_data receives or sends
This commit prevents erlang messages from keeping a websocket connection
alive. Previously, the timer was canceled upon any activity. Now, the
timeout is only canceled when actual data is sent from the client. The
handler_loop_timeout/1 function is called from websocket_data/4 instead
of handler_before_loop/4. It is also called after every successful reply
in handler_call/4.
2012-12-22 18:32:15 +01:00
Loïc Hoguin
7ff2a62585 Make sure an incorrect port returns a 400 error 2012-12-22 16:45:04 +01:00
Loïc Hoguin
cc65a723d7 Use lists:keyreplace/4 instead of lists:keydelete/3 + cons 2012-12-22 16:37:11 +01:00
Loïc Hoguin
a07d063fd8 Add cookie example 2012-12-20 14:40:22 +01:00
Loïc Hoguin
659ca05c54 We accept iodata() when setting cookies; fix that 2012-12-20 14:36:40 +01:00
Loïc Hoguin
8858ca240f Fix parsing of the Cookie header
This should be equivalent to what we do in Set-Cookie. Real-world
testing is needed to confirm it works as intended.
2012-12-20 14:19:39 +01:00
Loïc Hoguin
f48902cee7 Improve errors when the path provided is incorrect 2012-12-18 15:59:34 +01:00
Loïc Hoguin
06ab46c868 Merge branch 'master' of git://github.com/Menirad/cowboy 2012-12-17 15:49:54 +01:00
Loïc Hoguin
859d915d9c Add #ninenines IRC channel to the README + support options 2012-12-17 12:41:04 +01:00
Loïc Hoguin
f077c711a8 Fix cowboy_http:cookie_to_iodata/3
No more trying to quote, this is still completely broken everywhere.
2012-12-17 12:32:17 +01:00
Thomas Nordström
143ed80486 Fix multipart parser when the boundary is not fully read yet 2012-12-14 15:43:22 +01:00
Loïc Hoguin
1851032482 Improve Markdown for the examples README 2012-12-14 10:50:26 +01:00
Loïc Hoguin
d761a34380 Merge branch 'adt-consistent-errors' of git://github.com/Vagabond/cowboy 2012-12-13 17:08:06 +01:00
Loïc Hoguin
6074ce4a39 Add missing quotes to quoting for cookie values 2012-12-13 16:57:58 +01:00
Andrew Thompson
d916d739d4 Make the arguments to error_logger more consistent
The purpose of this patch is to make the arguments cowboy passes to
error_logger more consistent. With this patch there's only 3 variations
on the error_logger argument list; a 5 element list, an 8 element list
and a 10 element list. In all cases, the first 3 arguments are the
Module, Function and Arity of the function being called and the
second-to-last argument is always the Request. Additionally, for lists
longer than 5 elements, the last argument is always the stack-trace.

The added consistency of the argument ordering makes it much easier to
write code in lager's error_logger handler to catch these messages and
write a pretty one-liner (while writing the full message to the
crash.log).
2012-12-13 03:38:38 -05:00
Loïc Hoguin
ea7af4b724 Merge pull request #335 from derdesign/master
Fix broken 'make docs'
2012-12-10 15:32:48 -08:00
derdesign
0ed805439a Fix broken 'make docs' 2012-12-10 19:30:30 -04:00
Loïc Hoguin
08a4975c34 Fix charset not working properly for REST 2012-12-11 00:05:42 +01:00
Loïc Hoguin
6d4e15705f Add {close, StatusCode, Payload} and fix {close, Payload} 2012-12-08 19:11:56 +01:00
Loïc Hoguin
d2ccd2e090 Merge branch 'websocket_terminate_not_called' of git://github.com/dergraf/cowboy 2012-12-07 16:35:40 +01:00
Loïc Hoguin
181d0edc52 Small Markdown fixes to better follow the specs 2012-12-07 16:19:08 +01:00
Loïc Hoguin
fb07493279 Update CHANGELOG 2012-12-07 16:09:07 +01:00
Loïc Hoguin
27da09282d Make cookies use universal time instead of local time
Includes:
  * cowboy_clock:rfc2109/1 now expects UTC datetime
  * Rewrite of the cookie code to cowboy_http
  * Removal of cowboy_cookies
  * Add type cowboy_req:cookie_opts/0

Cookies should now be set using cowboy_req:set_resp_cookie/3.
Code calling cowboy_cookies directly will need to be updated.
2012-12-07 15:13:35 +01:00
Andre Graf
ae2a6cfb68 call websocket_terminate in case of a handshake error 2012-12-06 23:02:15 +01:00
Loïc Hoguin
db6b1596ae Make a few more missing headers lowercase 2012-12-05 13:43:25 +01:00
Loïc Hoguin
8bc6bde62f Remove the dependency on httpd_util
Add the function cowboy_clock:rfc1123/1 that formats the given
date to the RFC1123 format.
2012-12-03 15:57:27 +01:00
Loïc Hoguin
5ef4a15b48 Allow passing the Req and an updated Opts when upgrading protocols 2012-12-03 15:52:09 +01:00
Loïc Hoguin
067958abd2 Add more frame types available in websocket replies
We can now reply empty close, ping and pong frames, or close
frames with a payload.

This means that we can send a frame and then close the connection
in a single operation.

If a close packet is sent, the connection is closed immediately,
even if there was frames that remained to be sent. Cowboy will
silently drop any extra frames in the list given as a reply.
2012-12-02 21:37:24 +01:00
Magnus Klaar
3e0e507311 Return full packet as multipart body if possible 2012-12-01 14:11:21 +01:00
Loïc Hoguin
72b26c6d0c Use Transport:sendfile/2 from Ranch
This removes a bunch of unneeded code, including code that was
made for R14 which we don't support anymore.

Note that the dependency on Ranch was updated, so you will need
to update Ranch for the new code to work.
2012-12-01 10:29:26 +01:00
Loïc Hoguin
5c315ab142 Return a 400 error if the Accept header was incorrect 2012-11-30 16:44:57 +01:00
Loïc Hoguin
5f6b6b6f6d Add a better error message when user callbacks are not exported 2012-11-29 16:15:28 +01:00
Loïc Hoguin
6ec12f7ce8 static: Allow passing the mimetype fun as a {M, F} tuple 2012-11-29 11:18:57 +01:00
Loïc Hoguin
7142016955 Update the cowboy_websocket_handler specs
We can send many payloads at once.
2012-11-28 19:37:15 +01:00
Loïc Hoguin
45dd67741f Clarify error reports indicating they come from Cowboy 2012-11-28 18:30:53 +01:00
Loïc Hoguin
8cd9183272 Merge branch 'master' of git://github.com/chancila/cowboy 2012-11-28 17:32:01 +01:00
Cristian Hancila
4ddacaf6f6 charsets_provided in rest module to return [binary()] 2012-11-27 15:40:44 -05:00
Tom Burdick
b63502e32e url and host_url may return undefined
this can happen when the request parsing fails and onresponse
needs the url, its perfectly possible that the url has not
yet been defined
2012-11-27 13:22:38 -06:00