-
Optimization of SSL accept by Tristan Sloughter
-
Dependency cleanup by Adam Lindberg
- OTP 18.0 compatibility, contributed by Florian Odronitz.
- Various internal cleanup fixes from Andreas Stenius (github.com/kaos)
- Added
elli_request:get_args_decoded/1
which returns the list of query args decoded each time it's called.
-
Fix bug in SSL acceptor pool where due to failed handshakes, Elli runs out of acceptors. Thanks to Stefan Grundmann.
-
In case a handler (or middleware) returns a response Elli does not understand, Elli will now respond with a 500 error. Thanks to Johannes Huning.
-
Added
elli_request:get_arg_decoded/2,3
which HTTP URI decodes the value passed in the request. Thanks to Mariano Valles.
-
SSL using built-in ssl from Erlang/OTP. Thanks to Maas-Maarten Zeeman.
-
"Handover" a socket to user code, making it possible to implement WebSockets(https://github.com/mmzeeman/elli_websocket
-
Type fixes from Ingo Struck and Andreas Hasselberg.
- 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.