|
2 | 2 |
|
3 | 3 | ## pre-v4.0.0 |
4 | 4 |
|
5 | | - * Headers are now properly treated as case-insensitive |
6 | | - * Original headers that have not had `string:casefold/1` run on each header |
7 | | - name are still available in the request through `elli_request:original_headers` |
| 5 | +* Headers are now properly treated as case-insensitive |
| 6 | +* Original headers that have not had `string:casefold/1` run on each header |
| 7 | +name are still available in the request through `elli_request:original_headers` |
8 | 8 |
|
9 | 9 | ## v3.3.0 |
10 | 10 |
|
11 | | - * Do not use x-forwarded-for for peer #75 |
12 | | - * Handle arguments with no value in (post|get)_arg_decoded #82 |
13 | | - * Fix compile-time warnings on missing record info. from aleppo #81 |
| 11 | +* Do not use x-forwarded-for for peer #75 |
| 12 | +* Handle arguments with no value in (post|get)_arg_decoded #82 |
| 13 | +* Fix compile-time warnings on missing record info. from aleppo #81 |
14 | 14 |
|
15 | 15 | ## v3.2.0 |
16 | 16 |
|
17 | | - * Quell warnings on OTP-21: https://github.com/elli-lib/elli/pull/61 |
| 17 | +* Quell warnings on OTP-21: <https://github.com/elli-lib/elli/pull/61> |
18 | 18 |
|
19 | | - * Generate HTML docs: https://github.com/elli-lib/elli/pull/58 |
| 19 | +* Generate HTML docs: <https://github.com/elli-lib/elli/pull/58> |
20 | 20 |
|
21 | | - * Add OTP-21 to Travis build matrix: https://github.com/elli-lib/elli/pull/62 |
| 21 | +* Add OTP-21 to Travis build matrix: <https://github.com/elli-lib/elli/pull/62> |
22 | 22 |
|
23 | | - * Remove unnecessary `stacktrace_compat` dependency: https://github.com/elli-lib/elli/pull/63 |
| 23 | +* Remove unnecessary `stacktrace_compat` dependency: <https://github.com/elli-lib/elli/pull/63> |
24 | 24 |
|
25 | | - * Export `elli_request/uri_decode/1` and improve performance: https://github.com/elli-lib/elli/pull/67 |
| 25 | +* Export `elli_request:uri_decode/1` and improve performance: <https://github.com/elli-lib/elli/pull/67> |
26 | 26 |
|
27 | | - * Update Travis config: https://github.com/elli-lib/elli/pull/69 |
| 27 | +* Update Travis config: <https://github.com/elli-lib/elli/pull/69> |
28 | 28 |
|
29 | | - * Drop support for OTP-16: https://github.com/elli-lib/elli/pull/71 |
| 29 | +* Drop support for OTP-16: <https://github.com/elli-lib/elli/pull/71> |
30 | 30 |
|
31 | | - * Prefer `OTP_RELEASE` over `rebar_erl_vsn` plugin: https://github.com/elli-lib/elli/pull/73 |
| 31 | +* Prefer `OTP_RELEASE` over `rebar_erl_vsn` plugin: <https://github.com/elli-lib/elli/pull/73> |
32 | 32 |
|
33 | | - * Remove old `maintainers` metadata: https://github.com/elli-lib/elli/pull/74 |
| 33 | +* Remove old `maintainers` metadata: <https://github.com/elli-lib/elli/pull/74> |
34 | 34 |
|
35 | 35 | ## v3.1.0 |
36 | 36 |
|
37 | | - * Update docs: https://github.com/elli-lib/elli/pull/57 |
| 37 | +* Update docs: <https://github.com/elli-lib/elli/pull/57> |
38 | 38 |
|
39 | | - * Logging and stacktrace OTP-21 support: https://github.com/elli-lib/elli/pull/55 |
| 39 | +* Logging and stacktrace OTP-21 support: <https://github.com/elli-lib/elli/pull/55> |
40 | 40 |
|
41 | | - * Include req_body size in sizes list: https://github.com/elli-lib/elli/pull/52 |
| 41 | +* Include req_body size in sizes list: <https://github.com/elli-lib/elli/pull/52> |
42 | 42 |
|
43 | | - * Update CHANGELOG.md for 3.0.0: https://github.com/elli-lib/elli/pull/49 |
| 43 | +* Update CHANGELOG.md for 3.0.0: <https://github.com/elli-lib/elli/pull/49> |
44 | 44 |
|
45 | 45 | ## v3.0.0 |
46 | 46 |
|
47 | | - * `scheme`, `host`, and `port` added to the `#req{}` record. Corresponding |
48 | | - helper functions added to the `elli_request` module. |
| 47 | +* `scheme`, `host`, and `port` added to the `#req{}` record. Corresponding |
| 48 | + helper functions added to the `elli_request` module. |
49 | 49 |
|
50 | 50 | ## v2.1.2 |
51 | 51 |
|
52 | | - * Update dependencies and re-enable linting |
| 52 | +* Update dependencies and re-enable linting |
53 | 53 |
|
54 | | - * Increase test coverage |
| 54 | +* Increase test coverage |
55 | 55 |
|
56 | | - * Declare optional callbacks to elli_handler |
| 56 | +* Declare optional callbacks to elli_handler |
57 | 57 |
|
58 | | - * Add TLS sendfile implementation by James Fish (from Andrew Thompson) |
| 58 | +* Add TLS sendfile implementation by James Fish (from Andrew Thompson) |
59 | 59 |
|
60 | | - * Use hackney instead of httpc in tests, due to httpc bug |
| 60 | +* Use hackney instead of httpc in tests, due to httpc bug |
61 | 61 |
|
62 | 62 | ## v2.0.2 |
63 | 63 |
|
64 | | - * Adapt [knutin/elli#108](https://github.com/knutin/elli/pull/108) by Michael Zazaian |
| 64 | +* Adapt [knutin/elli#108](https://github.com/knutin/elli/pull/108) by Michael Zazaian |
65 | 65 |
|
66 | | - * Incomplete request regression fix by Evan Vigil-McClanahan |
| 66 | +* Incomplete request regression fix by Evan Vigil-McClanahan |
67 | 67 |
|
68 | | - * Handle binary URIs on OTP >=20 |
| 68 | +* Handle binary URIs on OTP >=20 |
69 | 69 |
|
70 | | - * Bespoke uri_decode/1 to obviate inets dependency by Christoffer Vikström |
| 70 | +* Bespoke uri_decode/1 to obviate inets dependency by Christoffer Vikström |
71 | 71 |
|
72 | 72 | ## v2.0.1 |
73 | 73 |
|
74 | | - * Miscellaneous tooling, test, and type spec tweaks |
| 74 | +* Miscellaneous tooling, test, and type spec tweaks |
75 | 75 |
|
76 | | - * Helper functions to reduce redundancy |
| 76 | +* Helper functions to reduce redundancy |
77 | 77 |
|
78 | | - * Request start timing fix |
| 78 | +* Request start timing fix |
79 | 79 |
|
80 | 80 | ## v2.0.0 |
81 | 81 |
|
82 | | - * Code and documentation cleanup |
| 82 | +* Code and documentation cleanup |
83 | 83 |
|
84 | | - * Instrumentation facilities |
| 84 | +* Instrumentation facilities |
85 | 85 |
|
86 | | - * RFC 2616 section 8.2.3 implementation by Martin Karlsson |
| 86 | +* RFC 2616 section 8.2.3 implementation by Martin Karlsson |
87 | 87 |
|
88 | | - * Send 500 and close connection if file operations fail |
| 88 | +* Send 500 and close connection if file operations fail |
89 | 89 |
|
90 | 90 | ## v1.0.5 |
91 | 91 |
|
92 | | - * Optimization of SSL accept by Tristan Sloughter |
| 92 | +* Optimization of SSL accept by Tristan Sloughter |
93 | 93 |
|
94 | | - * Dependency cleanup by Adam Lindberg |
| 94 | +* Dependency cleanup by Adam Lindberg |
95 | 95 |
|
96 | 96 | ## v1.0.4 |
97 | 97 |
|
98 | | - * OTP 18.0 compatibility, contributed by Florian Odronitz. |
| 98 | +* OTP 18.0 compatibility, contributed by Florian Odronitz. |
99 | 99 |
|
100 | 100 | ## v1.0.3 |
101 | 101 |
|
102 | | - * Various internal cleanup fixes from Andreas Stenius (github.com/kaos) |
| 102 | +* Various internal cleanup fixes from Andreas Stenius (github.com/kaos) |
103 | 103 |
|
104 | 104 | ## v1.0.2 |
105 | 105 |
|
106 | | - * Added `elli_request:get_args_decoded/1` which returns the list of |
107 | | - query args decoded each time it's called. |
108 | | - |
| 106 | +* Added `elli_request:get_args_decoded/1` which returns the list of |
| 107 | + query args decoded each time it's called. |
109 | 108 |
|
110 | 109 | ## v1.0.1 |
111 | 110 |
|
112 | | - * Fix bug in SSL acceptor pool where due to failed handshakes, Elli |
113 | | - runs out of acceptors. Thanks to Stefan Grundmann. |
| 111 | +* Fix bug in SSL acceptor pool where due to failed handshakes, Elli |
| 112 | + runs out of acceptors. Thanks to Stefan Grundmann. |
114 | 113 |
|
115 | | - * In case a handler (or middleware) returns a response Elli does not |
116 | | - understand, Elli will now respond with a 500 error. Thanks to |
117 | | - Johannes Huning. |
| 114 | +* In case a handler (or middleware) returns a response Elli does not |
| 115 | + understand, Elli will now respond with a 500 error. Thanks to |
| 116 | + Johannes Huning. |
118 | 117 |
|
119 | | - * Added `elli_request:get_arg_decoded/2,3` which HTTP URI decodes the |
120 | | - value passed in the request. Thanks to Mariano Valles. |
| 118 | +* Added `elli_request:get_arg_decoded/2,3` which HTTP URI decodes the |
| 119 | + value passed in the request. Thanks to Mariano Valles. |
121 | 120 |
|
122 | 121 | ## v1.0 |
123 | 122 |
|
124 | | - * SSL using built-in ssl from Erlang/OTP. Thanks to Maas-Maarten Zeeman. |
| 123 | +* SSL using built-in ssl from Erlang/OTP. Thanks to Maas-Maarten Zeeman. |
125 | 124 |
|
126 | | - * "Handover" a socket to user code, making it possible to implement |
127 | | - WebSockets(https://github.com/mmzeeman/elli_websocket |
| 125 | +* "Handover" a socket to user code, making it possible to implement |
| 126 | + WebSockets(<https://github.com/mmzeeman/elli_websocket>). |
128 | 127 |
|
129 | | - * Type fixes from Ingo Struck and Andreas Hasselberg. |
| 128 | +* Type fixes from Ingo Struck and Andreas Hasselberg. |
130 | 129 |
|
131 | 130 | ## v0.4.1 |
132 | 131 |
|
133 | | - * Fix from Christian Lundgren for browsers that include spaces in the |
134 | | - value of the Content-Length header. |
| 132 | +* Fix from Christian Lundgren for browsers that include spaces in the |
| 133 | + value of the Content-Length header. |
135 | 134 |
|
136 | 135 | ## v0.4 |
137 | 136 |
|
138 | | - * Added support for sending ranges of a file with sendfile by |
139 | | - returning `{Code, Headers, {file, Filename, {Offset, Length}}}`. If |
140 | | - no offset and length is specified, the entire file is sent. The |
141 | | - user must provide an appropriate "Content-Length" and |
142 | | - "Content-Range" header, see the example in |
143 | | - `elli_example_callback.erl` |
144 | | - (https://github.com/knutin/elli/blob/master/src/elli_example_callback.erl#L99). Thanks |
145 | | - Vincent Siliakus (zambal). |
146 | | - |
| 137 | +* Added support for sending ranges of a file with sendfile by |
| 138 | + returning `{Code, Headers, {file, Filename, {Offset, Length}}}`. If |
| 139 | + no offset and length is specified, the entire file is sent. The |
| 140 | + user must provide an appropriate "Content-Length" and |
| 141 | + "Content-Range" header, see the example in |
| 142 | + `elli_example_callback.erl` |
| 143 | + (<https://github.com/knutin/elli/blob/master/src/elli_example_callback.erl#L99>). |
| 144 | + Thanks Vincent Siliakus (zambal). |
147 | 145 |
|
148 | 146 | ## v0.3 |
149 | 147 |
|
150 | | - * Breaking change: Timeouts used in the HTTP protocol are now |
151 | | - configurable. To implement this, changing a record and some |
152 | | - callbacks was necessary. To upgrade, a restart of Elli is needed. |
| 148 | +* Breaking change: Timeouts used in the HTTP protocol are now |
| 149 | + configurable. To implement this, changing a record and some |
| 150 | + callbacks was necessary. To upgrade, a restart of Elli is needed. |
153 | 151 |
|
154 | | - * Elli now supports pipelining of any type of request. Some proxies |
155 | | - or special clients (like ibrowse) will pipeline requests to reduce |
156 | | - latency. |
| 152 | +* Elli now supports pipelining of any type of request. Some proxies |
| 153 | + or special clients (like ibrowse) will pipeline requests to reduce |
| 154 | + latency. |
157 | 155 |
|
158 | | - * If there are no more file descriptors, Elli will shut down. This |
159 | | - mimics the behaviour found in Yaws. |
| 156 | +* If there are no more file descriptors, Elli will shut down. This |
| 157 | + mimics the behaviour found in Yaws. |
160 | 158 |
|
161 | | - * Chunked transfer responses will now exit the Elli process when the |
162 | | - client closes the connection. Sending a synchronous chunk will |
163 | | - return `{error, closed}` if client has closed the connection and |
164 | | - the `chunk_complete` event is sent to your callback including which |
165 | | - end closed the connection. |
| 159 | +* Chunked transfer responses will now exit the Elli process when the |
| 160 | + client closes the connection. Sending a synchronous chunk will |
| 161 | + return `{error, closed}` if client has closed the connection and |
| 162 | + the `chunk_complete` event is sent to your callback including which |
| 163 | + end closed the connection. |
166 | 164 |
|
167 | 165 | ## v0.2.0 |
168 | 166 |
|
169 | | - * Breaking change: moved elli_access_log into a separate repository |
170 | | - at github.com/wooga/elli_access_log. Thanks martinrehfeld. |
| 167 | +* Breaking change: moved elli_access_log into a separate repository |
| 168 | + at github.com/wooga/elli_access_log. Thanks martinrehfeld. |
171 | 169 |
|
172 | 170 | ## v0.1.3 |
173 | 171 |
|
174 | | - * Added elli_test which makes it easy to write unit tests for your |
175 | | - callbacks. Thanks anha0825. |
| 172 | +* Added elli_test which makes it easy to write unit tests for your |
| 173 | + callbacks. Thanks anha0825. |
176 | 174 |
|
177 | | - * Added sendfile support. Thanks chrisavl. |
| 175 | +* Added sendfile support. Thanks chrisavl. |
178 | 176 |
|
179 | 177 | ## v0.1.2 |
180 | 178 |
|
181 | | - * Added option to specify listen IP address. Thanks hukl. |
| 179 | +* Added option to specify listen IP address. Thanks hukl. |
182 | 180 |
|
183 | 181 | ## v0.1.1 |
184 | 182 |
|
185 | | - * Don't look up the peer ip address on every request anymore, do it |
186 | | - on demand using elli_request:peer/1. |
| 183 | +* Don't look up the peer ip address on every request anymore, do it |
| 184 | + on demand using elli_request:peer/1. |
187 | 185 |
|
188 | 186 | ## v0.1 |
189 | 187 |
|
190 | | - * Initial release. |
| 188 | +* Initial release. |
0 commit comments