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
serge
d0f3372b7d
Fixed onrequest path-related issue
2012-11-27 11:02:21 -05:00
Loïc Hoguin
bb07b48d7f
Merge branch 'fix/websocket-check-error-on-send' of git://github.com/tillitech/cowboy
2012-11-27 16:42:02 +01:00
Loïc Hoguin
f63d3f08cf
Cosmetic changes to various documentation files
2012-11-27 16:24:08 +01:00
Loïc Hoguin
5bc5f56eb2
Do not try to keep-alive when using HTTP/1.0
2012-11-27 16:15:15 +01:00
Ali Sabil
9b0049fdd7
Check for errors when calling Transport:send in the websocket protocol
...
In some situations, the underlying socket might become "half-open" in
which case the websocket will stay in a waiting state indefinitely. The
detection of this state requires checking for errors when calling send.
2012-11-27 13:45:25 +01:00
Loïc Hoguin
8386e10dcc
Merge branch '400_Bad_Request' of git://github.com/blinkov/cowboy
2012-11-27 12:02:31 +01:00
Loïc Hoguin
9942beb58c
Fix dispatch documentation with regards to the <<"*">> path
2012-11-27 11:35:40 +01:00
Loïc Hoguin
2b5c123862
Merge branch 'master' of git://github.com/josevalim/cowboy
2012-11-26 23:13:48 +01:00
Loïc Hoguin
5e6aab756a
Fix a small typo in the rest_init error message
2012-11-26 23:06:45 +01:00
Loïc Hoguin
74ba41e239
Merge pull request #297 from puzza007/master
...
Correct spelling in rest callback name
2012-11-24 08:21:16 -08:00
Loïc Hoguin
3e891b7120
REST: Fix the status code sent if the content type isn't known
2012-11-16 14:02:38 +01:00
Loïc Hoguin
896fd7e050
Add a few more infos to the .app.src for private use
2012-11-13 13:13:10 +01:00
Julian Squires
dd6876f95c
Convert headers to lowercase
2012-11-10 17:24:25 -05:00
Ivan Blinkov
0ce16b3cea
Return "400 Bad Request" instead of crashing process on incorrect queries like /%qq
2012-10-27 02:36:33 +04:00
Paul Oliver
8706dd8834
musnt is not the correct contraction of mustn't - use must_not instead
2012-10-25 15:29:02 -04:00
Loïc Hoguin
5525369a4a
Mimetype lookup expects lowercase extensions
...
We handle extensions in a case-insensitive manner when looking
for a mimetype for a file. Extensions are thus lowered.
2012-10-25 17:21:14 +02:00
Loïc Hoguin
d3277b08ce
Fix examples in cowboy_static edoc
2012-10-19 01:32:18 +02:00
Josh Allmann
65c5d576c8
Clarify docs for known_methods and allowed_methods.
2012-10-13 15:15:15 -07:00
José Valim
0d0b962f03
Do not remove duplicated Set-Cookie entries
...
This commit closes #195 , closes #199 , closes #246 .
2012-10-11 22:27:57 +02:00
Loïc Hoguin
09914c4693
Allow websocket handlers to reply more than one frame
...
Instead of returning {text, Data}, you can now return
[{text, Data}, {text, Data2}, ...].
2012-10-11 21:46:43 +02:00
Loïc Hoguin
642a8f73c9
Fix Vary header, was wrongly named Variances previously
2012-10-11 20:44:53 +02:00
Loïc Hoguin
aeb86e70c1
Add crypto into the required applications
...
As suggested by @prof3ta.
2012-10-11 20:13:23 +02:00
Loïc Hoguin
9facad9245
Cleanup cowboy_req:parse_header/3
...
As suggested by @yrashk.
2012-10-11 20:03:34 +02:00
Loïc Hoguin
76cd1e40c9
The onresponse hook now receives 4 arguments, including the body
...
We do not always provide the body however. It is not available
when using chunked replies, or when using set_resp_body_fun.
2012-10-04 22:59:33 +02:00
Loïc Hoguin
7367f07ca0
Fix the parsing of the Connection header
2012-10-04 18:38:47 +02:00
Loïc Hoguin
0e01b82046
Remove a redundant function
2012-09-29 19:33:10 +02:00
Loïc Hoguin
1f6c324c3f
Merge pull request #254 from billiob/master
...
fix typo in doc
2012-09-29 05:20:28 -07:00
Loïc Hoguin
2e0a2a1c9e
Add max_headers option
...
It is only enforced when Cowboy needs to wait for more data.
Also fix a few types and a few status codes.
2012-09-29 13:57:30 +02:00
Loïc Hoguin
90c92850b7
Add missing options in the cowboy_protocol documentation
2012-09-29 13:24:40 +02:00
Loïc Hoguin
b4d1407d63
Fix a small edoc issue
2012-09-29 13:16:48 +02:00
Loïc Hoguin
ce9aff19f0
Remove the urldecode cowboy_protocol option
...
This allows inconsistent behavior and is not used enough to be supported.
2012-09-29 13:03:45 +02:00
Loïc Hoguin
c326a195e0
Add cowboy_req:get/2 and :set/2 private functions
...
They should not be used unless you have a very special need,
which generally involves interacting with the internals of Cowboy.
2012-09-29 11:08:59 +02:00
Loïc Hoguin
cd7f37d346
Optimize Connection header parsing
...
Still optimizing the critical path.
Removes cowboy_http:connection_to_atom/1.
2012-09-27 01:31:19 +02:00
Loïc Hoguin
681a216a24
Add cowboy_req:fragment/1
...
Allows retrieving the request URI fragment (the #fragment part).
2012-09-27 01:30:30 +02:00
Loïc Hoguin
b2243aa544
Optimize cowboy_protocol
...
* #state{} changes are avoided where possible
* #state{} is now smaller and use less memory
* the Req object is created only after the whole request is parsed
* parsing makes use of a single binary match context
* external calls are avoided in the critical path
* URL fragment is now extracted properly (retrieval API next commit)
* argument orders to local functions modified to avoid extra operations
* dispatching waits as long as possible before tokenizing host/path
* handler opts are no longer shown in the error messages except in init
The code may not look as beautiful as it was before. But it really
is, for parsing code. The parsing section of the file may be skipped
if your eyes start to burn.
2012-09-26 14:20:29 +02:00
Loïc Hoguin
bfab8d4b22
Use a single Transport:send/2 call to send the reply if possible
...
This gives a huge boost in performance when replies are small.
2012-09-26 14:20:29 +02:00
Loïc Hoguin
e30c6debdc
Remove a '++' use when replying
2012-09-24 04:53:24 +02:00
Loïc Hoguin
3c10d54883
Removal of binary:split from cowboy_dispatcher and small optimizations
...
The internal host_tokens value now has host tokens in reverse order
compared to before. This allows us to remove one lists:reverse call.
2012-09-24 04:53:12 +02:00
Loïc Hoguin
793d058125
Use binary:match/2 instead of binary:split/2 in cowboy_dispatcher
...
Didn't replace everything, just the ones that didn't use the
global option. Also removed a couple now useless code paths.
2012-09-24 00:54:05 +02:00
Loïc Hoguin
9d4f4ec9c7
Extract the buffer out of the #state{} in cowboy_protocol
...
This reduces the number of operations done each time the buffer changes.
2012-09-23 22:41:32 +02:00