Browse Source

Add CHANGELOG.md file

Loïc Hoguin 13 years ago
parent
commit
52c177fa6f
1 changed files with 183 additions and 0 deletions
  1. 183 0
      CHANGELOG.md

+ 183 - 0
CHANGELOG.md

@@ -0,0 +1,183 @@
+CHANGELOG
+=========
+
+0.4.0
+-----
+
+*   Set the cowboy_listener process priority to high
+
+    As it is the central process used by all incoming requests
+    we need to set its priority to high to avoid timeouts that
+    would happen otherwise when reaching a huge number of
+    concurrent requests.
+
+*   Add cowboy:child_spec/6 for embedding in other applications
+
+*   Add cowboy_http_rest, an experimental REST protocol support
+
+    Based on the Webmachine diagram and documentation. It is a
+    new implementation, not a port, therefore a few changes have
+    been made. However all the callback names are the same and
+    should behave similarly to Webmachine.
+
+    There is currently no documentation other than the Webmachine
+    resource documentation and the comments found in cowboy_http_rest,
+    which itself should be fairly easy to read and understand.
+
+*   Add cowboy_bstr module for binary strings related functions
+
+*   Add cowboy_http module for HTTP parsing functions
+
+    This module so far contains various functions for HTTP header
+    parsing along with URL encoding and decoding.
+
+*   Remove quoted from the default dependencies
+
+    This should make Cowboy much easier to compile and use by default.
+    It is of course still possible to use quoted as your URL decoding
+    library in Cowboy thanks to the newly added urldecode option.
+
+*   Fix supervisor spec for non dynamic modules to allow upgrades to complete
+
+*   Add cowboy:accept_ack/1 for a cleaner handling of the shoot message
+
+    Before, when the listener accepted a connection, the newly created
+    process was waiting for a message containing the atom 'shoot' before
+    proceeding. This has been replaced by the cowboy:accept_ack/1 function.
+
+    This function should be used where 'shoot' was received because the
+    contents of the message have changed (and could change again in the
+    distant future).
+
+*   Update binary parsing expressions to avoid hype crashes
+
+    More specifically, /bits was replaced by /binary.
+
+*   Rename the type cowboy_dispatcher:path_tokens/0 to :tokens/0
+
+*   Add cacertfile configuration option to cowboy_ssl_transport
+
+*   Add cowboy_protocol behaviour
+
+*   Remove -Wbehaviours dialyzer option unavailable in R15B
+
+*   Many tests and specs improvements
+
+### cowboy_http_req
+
+*   Fix a crash when reading the request body
+
+*   Add parse_header/2 and parse_header/3
+
+    The following headers can now be semantically parsed: Connection, Accept,
+    Accept-Charset, Accept-Encoding, Accept-Language, Content-Length,
+    Content-Type, If-Match, If-None-Match, If-Modified-Since,
+    If-Unmodified-Since, Upgrade
+
+*   Add set_resp_header/3, set_resp_cookie/4 and set_resp_body/2
+
+    These functions allow handlers to set response headers and body
+    without having to reply directly.
+
+*   Add peer_addr/1
+
+    This function tries to guess the real peer IP based on the HTTP
+    headers received.
+
+*   Add meta/2 and meta/3 to save useful protocol information
+
+    Currently used to save the Websocket protocol version currently used,
+    and to save request information in the REST protocol handler.
+
+*   Add reply/2 and reply/3 aliases to reply/4
+
+*   Add a cowboy_http_req:upgrade_reply/3 function
+
+### cowboy_http_protocol
+
+*   Add the {urldecode, fun urldecode/2} option
+
+    Added when quoted was removed from the default build. Can be used to
+    tell Cowboy to use quoted or any other URL decoding routine.
+
+*   Add the max_keepalive option
+
+*   Add the max_line_length option
+
+*   Allow HTTP handlers to stop during init/3
+
+    To do so they can return {shutdown, Req, State}.
+
+*   Add loops support in HTTP handlers for proper long-polling support
+
+    A loop can be entered by returning either of {loop, Req, State},
+    {loop, Req, State, hibernate}, {loop, Req, State, Timeout} or
+    {loop, Req, State, Timeout, hibernate} from init/3.
+
+    Loops are useful when we cannot reply immediately and instead
+    are waiting for an Erlang message to be able to complete the request,
+    as would typically be done for long-polling.
+
+    Loop support in the protocol means that timeouts and hibernating
+    are well tested and handled so you can use those options without
+    worrying. It is recommended to set the timeout option.
+
+    When a loop is started, handle/2 will never be called so it does
+    not need to be defined. When the request process receives an Erlang
+    message, it will call the info/3 function with the message as the
+    first argument.
+
+    Like in OTP, you do need to set timeout and hibernate again when
+    returning from info/3 to enable them until the next call.
+
+*   Fix a crash when the server is sent HTTP responses
+
+*   Fix HTTP timeouts handling when the Request-Line wasn't received
+
+*   Fix the handling of the max number of empty lines between requests
+
+*   Fix the handling of HEAD requests
+
+*   Fix HTTP/1.0 Host header handling
+
+*   Reply status 400 if we receive an unexpected value or error for headers
+
+*   Properly close when the application sends "Connection: close" header
+
+*   Close HTTP connections on all errors
+
+*   Improve the error message for HTTP handlers
+
+### cowboy_http_websocket
+
+*   Add websocket support for all versions up to RFC 6455
+
+    Support isn't perfect yet according to the specifications, but
+    is working against all currently known client implementations.
+
+*   Allow websocket_init/3 to return with the hibernate option set
+
+*   Add {shutdown, Req} return value to websocket_init/3 to fail an upgrade
+
+*   Fix websocket timeout handling
+
+*   Fix error messages: wrong callback name was reported on error
+
+*   Fix byte-by-byte websocket handling
+
+*   Fix an issue when using hixie-76 with certain proxies
+
+*   Fix a crash in the hixie-76 handshake
+
+*   Fix the handshake when SSL is used on port 443
+
+*   Fix a crash in the handshake when cowboy_http_req:compact/1 is used
+
+*   Fix handshake when a query string is present
+
+*   Fix a crash when the Upgrade header contains more than one token
+
+0.2.0
+-----
+
+*   Initial release.