Age | Commit message (Collapse) | Author | |
---|---|---|---|
2014-12-31 | Remove an extraneous empty line | Loïc Hoguin | |
2014-12-29 | Add cow_http_hd:parse_x_forwarded_for/1 | Loïc Hoguin | |
From thin air. | |||
2014-12-29 | Add cow_http_hd:parse_host/1, remove cow_http:parse_fullhost/1 | Loïc Hoguin | |
From RFC7230 and RFC3986. The new function now validates that the characters are correct, but does not go as far as validate segment sizes or number of segments. Its main purpose is still to split host and port. | |||
2014-12-28 | Add cow_http_hd:parse_pragma/1 | Loïc Hoguin | |
We go for an exact <<"no-cache">> match because this is the only directive that was ever defined, because the header is only kept for backward compatible reasons with HTTP/1.0 caches, and because for all other uses the cache-control header is preferred. | |||
2014-12-28 | Add a test for cow_http_hd:parse_content_length/1 | Loïc Hoguin | |
Negative number. | |||
2014-12-28 | Add cow_http_hd:parse_content_range/1 | Loïc Hoguin | |
From RFC7233. | |||
2014-12-27 | Add cow_http_hd:parse_range/1 | Loïc Hoguin | |
From RFC7233. | |||
2014-12-26 | Add cow_http_hd:parse_if_range/1 | Loïc Hoguin | |
From RFC7233. | |||
2014-12-26 | Add cow_http_hd:parse_accept_ranges/1 | Loïc Hoguin | |
From RFC7233. | |||
2014-12-26 | Fix a parse_max_forwards test | Loïc Hoguin | |
2014-12-26 | Add cow_http_hd:parse_retry_after/1 | Loïc Hoguin | |
From RFC7231. | |||
2014-12-26 | Add specs to cow_date:parse_date/1 | Loïc Hoguin | |
2014-12-26 | Improve internal cow_http_hd function token_ci_list/2 | Loïc Hoguin | |
We now ensure that the tokens are made of token characters only. | |||
2014-12-26 | Add cow_http_hd:parse_allow/1 | Loïc Hoguin | |
From RFC7231. | |||
2014-12-26 | Add cow_http_hd:parse_age/1 | Loïc Hoguin | |
From RFC7234. | |||
2014-12-26 | Add cow_http_hd:parse_vary/1 | Loïc Hoguin | |
From RFC7231. | |||
2014-12-26 | Fix a parse_upgrade test | Loïc Hoguin | |
2014-12-26 | Add missing export for second previous commit | Loïc Hoguin | |
2014-12-26 | Simplify the code for parsing 1*DIGIT header values | Loïc Hoguin | |
Follow-up from the change that ensured we don't get any extra whitespace following the value. We can now call binary_to_integer/1 which is more efficient. | |||
2014-12-25 | Add cow_http_hd:parse_sec_websocket_version_resp/1 | Loïc Hoguin | |
From RFC6455. Ho ho ho! | |||
2014-12-24 | Add cow_http_hd:parse_sec_websocket_protocol_resp/1 | Loïc Hoguin | |
From RFC6455. | |||
2014-12-24 | Use _req instead of _client for request-specific parsers | Loïc Hoguin | |
2014-12-24 | Add dummy functions for Sec-WebSocket-(Accept|Key) headers | Loïc Hoguin | |
From RFC6455. These base64 values are expected to be matched directly in the first case, or hashed to generate a new base64 value, therefore no parsing or validation is required. | |||
2014-12-24 | Fix a variable shadow issue in the tests | Loïc Hoguin | |
2014-12-24 | Add cow_http_hd:parse_te/1 | Loïc Hoguin | |
From RFC7230. | |||
2014-12-21 | Do not attempt to skip whitespace after single value headers | Loïc Hoguin | |
We now expect Cowboy or any other application to remove it before calling the header parse function. | |||
2014-12-21 | Add cow_http_hd:parse_cache_control/1 | Loïc Hoguin | |
From RFC7234. | |||
2014-12-20 | Speed up the two slowest properties in cow_http_hd | Loïc Hoguin | |
We limit input to 50 items maximum. | |||
2014-12-20 | Use choose/2 and elements/1 where appropriate instead of oneof/1 | Loïc Hoguin | |
2014-12-20 | Add cow_http_hd:parse_trailer/1 | Loïc Hoguin | |
From RFC7230. | |||
2014-12-20 | Simplify generators for language ranges | Loïc Hoguin | |
2014-12-20 | Speed up a few properties by limiting parameters input | Loïc Hoguin | |
2014-12-20 | Add cow_http_hd:parse_content_language/1 | Loïc Hoguin | |
From RFC7231 and RFC5646. The ABNF for language tags is terrible. It makes parsing efficiently a big challenge and the result is this huge ugly set of functions. Thankfully triq allows us to make sure the implementation is correct. A large number of examples has also been extracted from both RFCs. The various ?IS_ALPHA(C), ?IS_TOKEN(C) and so on have received a change: they now use 'orelse' instead of ';'. This is because in this new code we need to check more than one character per clause. The compilation time for this module increased dramatically. Apparently happens because the guards are too big. Using ranges ($a =< C =< $z) instead of the current solution makes compilation much faster, but the function executes twice as slow which is not acceptable. | |||
2014-12-19 | Add cow_http_hd:parse_content_encoding/1 | Loïc Hoguin | |
From RFC7231. | |||
2014-12-18 | Improve cow_http_hd:parse_max_forwards/1 spec | Loïc Hoguin | |
2014-12-18 | Add cow_http_hd:parse_sec_websocket_extensions/1 | Loïc Hoguin | |
From RFC6455. This function is about 3 times faster than the current Cowboy code. | |||
2014-12-18 | Add cow_http_hd:parse_sec_websocket_protocol_client/1 | Loïc Hoguin | |
2014-12-18 | Add cow_http_hd:parse_sec_websocket_version_client/1 | Loïc Hoguin | |
From RFC6455. The code is slower than a plain binary_to_integer(Version), because it enforces that the value is in the 0..255 range as per the specification, and that the input binary is no longer than 3 characters. It is however better to enforce this because the client could also send a huge integer and we don't really want to convert it and waste resources. | |||
2014-12-18 | Add cow_http_hd:parse_expires/1 | Loïc Hoguin | |
From RFC7234. | |||
2014-12-18 | Rename a local cow_http_hd function for better precision | Loïc Hoguin | |
2014-12-18 | Add cow_http_hd:parse_etag/1 | Loïc Hoguin | |
From RFC7232. | |||
2014-12-18 | Add cow_http_hd:parse_if_none_match/1 | Loïc Hoguin | |
From RFC7232. | |||
2014-12-18 | Add cow_http_hd:parse_if_match/1 | Loïc Hoguin | |
From RFC7232. Nearly twice as fast as current Cowboy code. | |||
2014-12-17 | Add test cases taken from RFC7230 | Loïc Hoguin | |
2014-12-17 | Add cow_http_hd:parse_upgrade/1 | Loïc Hoguin | |
From RFC7230. Compared to the current Cowboy implementation we added support for protocol-version. We return protocol-name/protocol-version as a single binary as these will typically be matched directly. | |||
2014-12-17 | Add cow_date:parse_date/1 and move date parsing code there | Loïc Hoguin | |
2014-12-16 | Add cow_http_hd:parse_last_modified/1 | Loïc Hoguin | |
From RFC7232. | |||
2014-12-16 | Add cow_http_hd:parse_date/1 | Loïc Hoguin | |
From RFC7231. | |||
2014-12-16 | Add cow_http_hd:parse_if_unmodified_since/1 | Loïc Hoguin | |
2014-12-16 | Add cow_http_hd:parse_if_modified_since/1 | Loïc Hoguin | |
From RFC7231 and RFC7232. The new code is faster than the one in Cowboy: 2 times faster for fixdate format, 2.5 times faster for rfc850 format and 3+ times faster for asctime format. Unlike previous code, there is no parsing speed difference between the 3 different date formats. |