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
34021666cb
Don't use decode_packet/3 for parsing the headers
...
Header names are now binaries. Since header names are case insensitive
they are all converted to lowercase. For example: <<"content-length">>.
The max_line_length option was removed. Three new options have been
added instead:
* max_request_line_length (defaults to 4096)
* max_header_name_length (defaults to 64)
* max_header_value_length (defaults to 4096)
2012-09-21 09:18:56 +02:00
Loïc Hoguin
8497c8bbcd
Don't use decode_packet/3 for parsing the request-line
...
First step in making all methods and header names binaries to
get rid of many inconsistencies caused by decode_packet/3.
Methods are all binary now. Note that since they are case
sensitive, the usual methods become <<"GET">>, <<"POST">> and so on.
2012-09-21 08:54:57 +02:00
Loïc Hoguin
c2be7c1920
Add types for onrequest and onresponse funs
2012-09-17 13:57:29 +02:00
Loïc Hoguin
18be3a8021
Rename cowboy_req:raw_qs/1 to cowboy_req:qs/1
2012-09-17 13:57:29 +02:00
Loïc Hoguin
13b743ba26
Include the eunit file only if TEST is defined
2012-09-17 13:57:29 +02:00
Loïc Hoguin
183bf7f143
Make cowboy_req:req() opaque
...
Remove http.hrl in the process.
If you feel furious about this change after reaching this commit,
don't worry! You probably just need a few access or modification
functions to be added in cowboy_req for your needs. Problem is,
I don't know these. I'll be very thankful if you can open a ticket
and tell me all about it so the best solution can be swiftly
implemented to make you happy again.
2012-09-17 13:57:29 +02:00
Loïc Hoguin
58edd4c35a
Add the private get_connection/1 function used by cowboy_protocol
...
This removes cowboy_protocol's dependency on http.hrl!
2012-09-17 13:57:29 +02:00
Loïc Hoguin
cf0e905c52
Add the private get_buffer/1 function used by cowboy_protocol
2012-09-17 13:57:28 +02:00
Loïc Hoguin
e55ec7d43d
Add the private get_resp_state/1 function used by cowboy_protocol
2012-09-17 13:57:28 +02:00
Loïc Hoguin
c1dd5b5176
Add the private set_bindings/4 function used by cowboy_protocol
2012-09-17 13:57:28 +02:00
Loïc Hoguin
5b56dd780b
Add the private set_buffer/2 function used by cowboy_protocol
2012-09-17 13:57:28 +02:00
Loïc Hoguin
fc02b7f767
Add the private add_header/3 function used by cowboy_protocol
2012-09-17 13:57:28 +02:00
Loïc Hoguin
905083a7fd
Add the private set_connection/2 function used by cowboy_protocol
2012-09-17 13:57:28 +02:00
Loïc Hoguin
350d4ae3f2
Add the private function set_host/4 used by cowboy_protocol
2012-09-17 13:57:28 +02:00
Loïc Hoguin
6dbc1f9ef9
Add a private cowboy_req function to create a Req object
...
Private means you must not used it. It's meant for internal use.
2012-09-17 13:57:28 +02:00
Loïc Hoguin
f205d44518
Add a function to lock request responses instead of inlining
...
Just more cleanup in order to have req() opaque.
2012-09-17 13:57:28 +02:00
Loïc Hoguin
8d5f8db90a
Improve consistency of return types for cowboy_req API
...
The signature of parse_header, body_qs, multipart_data and
the set_resp_* functions has changed.
See the cowboy_req module edoc for more details.
2012-09-17 13:56:58 +02:00
Loïc Hoguin
e13ab806ea
Add cowboy_req:delete_resp_header/2
...
Both requested and better for making Req opaque.
2012-09-16 03:50:56 +02:00
Loïc Hoguin
527477bd4a
Introduce cowboy_req:host_url/1 to remove more duplicate code
2012-09-16 01:13:44 +02:00
Loïc Hoguin
9ef94fb64e
Introduce cowboy_req:set_meta/3 to set request metadata
2012-09-15 22:51:37 +02:00
Loïc Hoguin
0aaa717575
Remove duplicate code for ensure_response
2012-09-15 22:19:39 +02:00
Loïc Hoguin
27d591180c
Add cowboy_req:url/1 to return the full request URL
...
Use it in cowboy_websocket for hixie76, replacing http by ws.
2012-09-15 22:03:00 +02:00
Loïc Hoguin
bb4bd9ac96
Add a cowboy_req:to_list/1 function
...
Removes a lot of duplicate code when printing error messages.
2012-09-15 20:33:57 +02:00
Loïc Hoguin
4040a9f72d
Separate multipart from body_state
2012-09-15 00:59:49 +02:00
Loïc Hoguin
79839b7bb5
Replace cowboy_req:path/1 with cowboy_req:raw_path/1
...
The latter is much more useful than the former, which ends up
being removed.
2012-09-10 12:26:04 +02:00
Loïc Hoguin
6fa734b487
Replace cowboy_req:host/1 with cowboy_req:raw_host/1
...
The latter is much more useful than the former, which ends up
being removed.
2012-09-10 12:25:57 +02:00
Loïc Hoguin
e17e18668d
Introduce a cowboy_req:req/0 type
...
Cleanup the typespecs of the cowboy_req module following this.
2012-08-27 14:27:41 +02:00
Loïc Hoguin
d3dcaf109b
Rename cowboy_http_req to cowboy_req
2012-08-27 13:28:57 +02:00