- Fix from Christian Lundgren for browsers that include spaces in the value of the Content-Length header.
- Added support for sending ranges of a file with sendfile by
returning
{Code, Headers, {file, Filename, {Offset, Length}}}
. If no offset and length is specified, the entire file is sent. The user must provide an appropriate "Content-Length" and "Content-Range" header, see the example inelli_example_callback.erl
(https://github.com/knutin/elli/blob/master/src/elli_example_callback.erl#L99). Thanks Vincent Siliakus (zambal).
-
Breaking change: Timeouts used in the HTTP protocol are now configurable. To implement this, changing a record and some callbacks was necessary. To upgrade, a restart of Elli is needed.
-
Elli now supports pipelining of any type of request. Some proxies or special clients (like ibrowse) will pipeline requests to reduce latency.
-
If there are no more file descriptors, Elli will shut down. This mimics the behaviour found in Yaws.
-
Chunked transfer responses will now exit the Elli process when the client closes the connection. Sending a synchronous chunk will return
{error, closed}
if client has closed the connection and thechunk_complete
event is sent to your callback including which end closed the connection.
- Breaking change: moved elli_access_log into a separate repository at github.com/wooga/elli_access_log. Thanks martinrehfeld.
-
Added elli_test which makes it easy to write unit tests for your callbacks. Thanks anha0825.
-
Added sendfile support. Thanks chrisavl.
- Added option to specify listen IP address. Thanks hukl.
- Don't look up the peer ip address on every request anymore, do it on demand using elli_request:peer/1.
- Initial release.