Age | Commit message (Collapse) | Author | |
---|---|---|---|
2012-10-01 | Make example README's more thorough | Josh Toft | |
2012-09-27 | Update CHANGELOG | Loïc Hoguin | |
2012-09-27 | Optimize Connection header parsing | Loïc Hoguin | |
Still optimizing the critical path. Removes cowboy_http:connection_to_atom/1. | |||
2012-09-27 | Add cowboy_req:fragment/1 | Loïc Hoguin | |
Allows retrieving the request URI fragment (the #fragment part). | |||
2012-09-26 | Optimize cowboy_protocol | Loïc Hoguin | |
* #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 | Use a single Transport:send/2 call to send the reply if possible | Loïc Hoguin | |
This gives a huge boost in performance when replies are small. | |||
2012-09-26 | Update Ranch to latest commit | Loïc Hoguin | |
2012-09-24 | Remove a '++' use when replying | Loïc Hoguin | |
2012-09-24 | Removal of binary:split from cowboy_dispatcher and small optimizations | Loïc Hoguin | |
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 | Use binary:match/2 instead of binary:split/2 in cowboy_dispatcher | Loïc Hoguin | |
Didn't replace everything, just the ones that didn't use the global option. Also removed a couple now useless code paths. | |||
2012-09-23 | Extract the buffer out of the #state{} in cowboy_protocol | Loïc Hoguin | |
This reduces the number of operations done each time the buffer changes. | |||
2012-09-23 | Use binary:match/2 instead of binary:split/2 in cowboy_http | Loïc Hoguin | |
Also fix a bug introduced in a previous commit. | |||
2012-09-23 | Improve state reset between requests | Loïc Hoguin | |
2012-09-23 | Use binary:match/2 instead of binary:split/2 | Loïc Hoguin | |
The former is a BIF while the latter is not. | |||
2012-09-21 | Update CHANGELOG | Loïc Hoguin | |
2012-09-21 | Make multipart part headers binary lowercase | Loïc Hoguin | |
Here we do not remove decode_packet yet, we just lowercase the header name and transform it into a binary if needed, to fix the consistency issue. | |||
2012-09-21 | Don't use decode_packet/3 for parsing the headers | Loïc Hoguin | |
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 | Don't use decode_packet/3 for parsing the request-line | Loïc Hoguin | |
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-17 | Update CHANGELOG | Loïc Hoguin | |
2012-09-17 | Add types for onrequest and onresponse funs | Loïc Hoguin | |
2012-09-17 | Replace many proplists:get_value/{2,3} calls by BIFs | Loïc Hoguin | |
Originally suggested by Roberto Ostinelli. | |||
2012-09-17 | Rename cowboy_req:raw_qs/1 to cowboy_req:qs/1 | Loïc Hoguin | |
2012-09-17 | Include the eunit file only if TEST is defined | Loïc Hoguin | |
2012-09-17 | Make cowboy_req:req() opaque | Loïc Hoguin | |
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 | Add the private get_connection/1 function used by cowboy_protocol | Loïc Hoguin | |
This removes cowboy_protocol's dependency on http.hrl! | |||
2012-09-17 | Add the private get_buffer/1 function used by cowboy_protocol | Loïc Hoguin | |
2012-09-17 | Add the private get_resp_state/1 function used by cowboy_protocol | Loïc Hoguin | |
2012-09-17 | Add the private set_bindings/4 function used by cowboy_protocol | Loïc Hoguin | |
2012-09-17 | Add the private set_buffer/2 function used by cowboy_protocol | Loïc Hoguin | |
2012-09-17 | Add the private add_header/3 function used by cowboy_protocol | Loïc Hoguin | |
2012-09-17 | Add the private set_connection/2 function used by cowboy_protocol | Loïc Hoguin | |
2012-09-17 | Add the private function set_host/4 used by cowboy_protocol | Loïc Hoguin | |
2012-09-17 | Add a private cowboy_req function to create a Req object | Loïc Hoguin | |
Private means you must not used it. It's meant for internal use. | |||
2012-09-17 | Use cowboy_req:version/1 in cowboy_protocol where applicable | Loïc Hoguin | |
More cleanup towards making cowboy_req:req() opaque. | |||
2012-09-17 | Remove http.hrl dependency in cowboy_rest | Loïc Hoguin | |
Only cowboy_protocol remaining now. | |||
2012-09-17 | Add a function to lock request responses instead of inlining | Loïc Hoguin | |
Just more cleanup in order to have req() opaque. | |||
2012-09-17 | Improve consistency of return types for cowboy_req API | Loïc Hoguin | |
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-16 | Add cowboy_req:delete_resp_header/2 | Loïc Hoguin | |
Both requested and better for making Req opaque. | |||
2012-09-16 | Introduce cowboy_req:host_url/1 to remove more duplicate code | Loïc Hoguin | |
2012-09-15 | Put the method in cowboy_rest's #state{} | Loïc Hoguin | |
2012-09-15 | Introduce cowboy_req:set_meta/3 to set request metadata | Loïc Hoguin | |
2012-09-15 | Use skip_body directly between requests | Loïc Hoguin | |
There's no need for more complex logic now that we have the API for it. | |||
2012-09-15 | Remove duplicate code for ensure_response | Loïc Hoguin | |
2012-09-15 | Add cowboy_req:url/1 to return the full request URL | Loïc Hoguin | |
Use it in cowboy_websocket for hixie76, replacing http by ws. | |||
2012-09-15 | Avoid a duplicate HTTP reply in cowboy_websocket:upgrade_error/1 | Loïc Hoguin | |
Do this by checking whether we received the resp_sent message. | |||
2012-09-15 | Put socket and transport into cowboy_websocket's #state{} | Loïc Hoguin | |
As part of the work to make cowboy_req:req() opaque. | |||
2012-09-15 | Add a cowboy_req:to_list/1 function | Loïc Hoguin | |
Removes a lot of duplicate code when printing error messages. | |||
2012-09-15 | Remove two unneeded Req modifications | Loïc Hoguin | |
2012-09-15 | Change type #http_req{} to cowboy_req:req() | Loïc Hoguin | |
This removes cowboy_static's dependency on http.hrl. | |||
2012-09-15 | Separate multipart from body_state | Loïc Hoguin | |