aboutsummaryrefslogtreecommitdiffstats
path: root/src/cowboy_http.erl
AgeCommit message (Collapse)Author
2012-03-09Make media type parsing more relaxedAli Sabil
Certain user agents send slightly invalid media types, like the following: "text/html, image/gif, image/jpeg, ; q=.2, */; q=.2" The user agent with which this behavior was observed presented itself with the User-Agent string: "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (FlipboardProxy/0.0.5; +http://flipboard.com/browserproxy)"
2012-02-27Remove the redundant include/ from -include("http.hrl")Loïc Hoguin
2012-02-23Add cowboy_http:x_www_form_urlencoded/2Loïc Hoguin
This was initially an internal function, it has been made public due to popular demand as it can sometimes be needed.
2012-02-20Add 'Expect' header parsingLoïc Hoguin
At the same time renaming cowboy_http:content_type_params/3 to cowboy_http:params/2 (with a default Acc of []) as this code isn't useful only for content types.
2012-01-23Rename the type http_status/0 to cowboy_http:status/0Loïc Hoguin
2012-01-23Rename the type http_header/0 to cowboy_http:header/0Loïc Hoguin
At the same time rename http_headers/0 to cowboy_http:headers/0.
2012-01-23Rename the type http_version/0 to cowboy_http:version/0Loïc Hoguin
2012-01-23Rename the type http_uri/0 to cowboy_http:uri/0Loïc Hoguin
2012-01-23Rename the type http_method/0 to cowboy_http:method/0Loïc Hoguin
Exported types are much better than include files.
2012-01-23Merge branch 'multipart' of https://github.com/nox/cowboyLoïc Hoguin
Conflicts: src/cowboy_http_req.erl test/http_SUITE.erl
2012-01-23Add multipart supportAnthony Ramine
2011-12-12Merge branch 'hipe-compilation-fix' of github.com:klaar/cowboyLoïc Hoguin
2011-12-10update /bits in binary expressions to /binaryMagnus Klaar
This is a workaround for an issue in the hipe compiler where compilation of code matching on binaries using patterns of the form Data = <<Char, _Ignore/bits>> fails because _Ignore is expected to be used. Using /binary instead of /bits resolves the issue. We're applying this change to all binary expressions in cowboy_http because all functions in this module process human readable text formats which are always expected to be bytestrings. Two uses of /bits has been changed to /binary in cowboy_http_websocket in two clauses of a single function, websocket_data/4. This is safe to change because the data is later passed to binary:match/2 which will always fail with a badarg error if the input is a bitstring instead of a bytestring.
2011-12-09add cowboy_http:urlencode/2 and urlencode/1Magnus Klaar
This function complements the cowboy_http:urldecode/2 and urldecode/1 functions. We should have this encoding covered now. urldecode is only expected to be invoked by user code, no further changes needed to integrate this.
2011-12-07replace quoted:from_url with cowboy_http:urldecodeMagnus Klaar
This change makes the dependency on quoted optional by adding a minimal urldecode function to cowboy. A protocol option for setting the urldecoding function has been added to the cowboy_http_protocol module. The default value for this option is set to be equivalent to the default settings for quoted. {fun cowboy_http:urldecode/2, crash} A note has been added in the README to document how to use quoted instead of this function. A field to store this option value has been added to the state record in the cowboy_http_protocol module and the http_req record in include/http.hrl Functions that previously used quoted:from_url/1 has been updated to require an equivalent function in addition to the previously required arguments. This change removes a C compiler from the build requirements of cowboy. It also removes the requirement to cross compile the code if the target arch/OS is different from the arch/OS used to build it.
2011-12-01Change the returned value for language_range parsingLoïc Hoguin
Considering how it must be used, a simple binary is much better than a tag and a list of subtags. We still parse them like this to make sure they follow the specs, though.
2011-11-28Weekdays are binaries and not listsLoïc Hoguin
Spotted by devinus on IRC.
2011-11-24Fix specs for cowboy_http:language_range_ret/3Loïc Hoguin
2011-11-10Support 'Content-Type' in parse_header/2Anthony Ramine
2011-11-10Introduce cowboy_http:media_type/2Anthony Ramine
2011-11-10Introduce cowboy_http:word/2Anthony Ramine
Used to parse either a token or a quoted string in parameters values.
2011-11-09Add 'If-Match' and 'If-None-Match' to parse_header/2Loïc Hoguin
2011-11-07Add 'Accept-Language' to cowboy_http_req:parse_header/2Loïc Hoguin
2011-11-05Remove the IS_DIGIT macroLoïc Hoguin
2011-11-05Add 'If-Modified-Since' and 'If-Unmodified-Since' to parse_header/2Loïc Hoguin
Implementing the full HTTP-date type (RFC1123, RFC850, asctime).
2011-11-04Merge branch 'parse_header-content-length' of https://github.com/nox/cowboyLoïc Hoguin
Conflicts: src/cowboy_http.erl
2011-11-04Support 'Content-Length' in parse_header/2Anthony Ramine
2011-11-04Remove unneeded whitespaces according to the HTTP specLoïc Hoguin
2011-11-04Rename cowboy_http:charset/2 to conneg/2 and use it for Accept-EncodingLoïc Hoguin
Sorry I apparently used an outdated RFC when I was doing this.
2011-10-26Add 'Accept-Charset' to cowboy_http_req:parse_header/2Loïc Hoguin
2011-10-26Rename private function quality/2 into qvalue/2Loïc Hoguin
2011-10-26cowboy_http:media_range/2 should expect to not have whitespace before itLoïc Hoguin
2011-10-26Add 'Accept' header parsingLoïc Hoguin
Rework the cowboy_http_req:parse_header/2 function while I was at it.
2011-10-25Rewrite list/tokens parsing with an added whitespace functionLoïc Hoguin
2011-10-20Parse Connection header tokens in a case-insensitive mannerLoïc Hoguin
2011-10-17Rewrite the token list parsing into separate, modulable functionsLoïc Hoguin
Introduce cowboy_http's list/2, nonempty_list/2, token/2 functions.
2011-10-05Parse 'Connection' headers as a list of tokensLoïc Hoguin
Replaces the 'Connection' interpretation in cowboy_http_protocol from raw value to the parsed value, looking for a single token matching close/keep-alive instead of the whole raw value (which could contain more than one token, for example with Firefox 6+ using websocket). Introduce the functions cowboy_http_req:parse_header/2 and /3 to semantically parse the header values and return a proper Erlang term.