303 lines
6.7 KiB
Markdown
303 lines
6.7 KiB
Markdown
## 1.3.14 (25 May 2025)
|
|
|
|
### Enhancements
|
|
|
|
* Add support for `ThousandIsland.Socket.connection_information/1` to get info
|
|
about the underlying SSL connection, if one is present.
|
|
|
|
## 1.3.13 (29 Apr 2025)
|
|
|
|
### Enhancements
|
|
|
|
* Allow `handle_connection` and `handle_data` callbacks to return tuples to call
|
|
`handle_continue` per GenServer conventions (#166)
|
|
|
|
## 1.3.12 (21 Mar 2025)
|
|
|
|
### Fixes
|
|
|
|
* Do not kill off acceptors when encountering an `:einval` socket status (#162,
|
|
thanks @marschro!)
|
|
|
|
## 1.3.11 (23 Feb 2025)
|
|
|
|
### Fixes
|
|
|
|
* Properly support `inet_backend` transport option for TCP connections (#155, thanks @paulswartz!)
|
|
|
|
## 1.3.10 (17 Feb 2025)
|
|
|
|
### Enhancements
|
|
|
|
* Add support for `certs_keys` TLS config option (#153, thanks @joshk!)
|
|
|
|
## 1.3.9 (6 Jan 2025)
|
|
|
|
### Fixes
|
|
|
|
* Explicitly ignore several Handler return values to silence Dialyzer in dependent libraries
|
|
|
|
## 1.3.8 (5 Jan 2025)
|
|
|
|
### Changes
|
|
|
|
* Refactor `ThousandIsland.Handler` implementation to facilitate partial reuse
|
|
by custom Handler authors (#146 thanks @mruoss!)
|
|
|
|
## 1.3.7 (29 Nov 2024)
|
|
|
|
### Fixes
|
|
|
|
* Use socket as returned from transport handshake (#142, thanks @danielspofford!)
|
|
|
|
## 1.3.6 (18 Nov 2024)
|
|
|
|
### Fixes
|
|
|
|
* Don't consider remote end closure as an error condition for telemetry
|
|
* Fix typo & clarify docs (#117)
|
|
* Update security policy (#138)
|
|
|
|
## 1.3.5 (24 Feb 2024)
|
|
|
|
### Fixes
|
|
|
|
* Fix regression on non-keyword options (such as `:inet6`) introduced in 1.3.4
|
|
(#113, thanks @danschultzer!)
|
|
|
|
## 1.3.4 (23 Feb 2024)
|
|
|
|
### Fixes
|
|
|
|
* Fix the ability to override default options (and not override hardcoded
|
|
options) for both TCP and SSL transports (#111, thanks @moogle19!)
|
|
|
|
## 1.3.3 (21 Feb 2024)
|
|
|
|
### Changes
|
|
|
|
* Do not set `:linger` as a default option on either TCP or SSL transports. This
|
|
was causing oddball node hangs on larger instances (#110, thanks @jonjon &
|
|
@pojiro!)
|
|
|
|
## 1.3.2 (31 Dec 2023)
|
|
|
|
### Changes
|
|
|
|
* Allow `sni_hosts` or `sni_fun` in place of `cert`/`certfile` and
|
|
`key`/`keyfile`
|
|
|
|
### Fixes
|
|
|
|
* Move `handle_info` fallback clause to module compilation hook (#105)
|
|
|
|
## 1.3.1 (30 Dec 2023)
|
|
|
|
### Fixes
|
|
|
|
* Fix downstream dialyzer error introduced by #86
|
|
|
|
## 1.3.0 (30 Dec 2023)
|
|
|
|
### Fixes
|
|
|
|
* Fix issue with eventual acceptor starvation when handling certain network
|
|
conditions (#103)
|
|
|
|
### Enhancements
|
|
|
|
* Add check (and logging) for cases where a Handler implementation does not
|
|
return the expected state from GenServer handle_* calls (#96, thanks
|
|
@elfenlaid!)
|
|
* Allow protocol upgrades within an active connection (#86, thanks @icehaunter!)
|
|
|
|
### Changes
|
|
|
|
* Improve file list for hex packaging (#98, thanks @patrickjaberg and
|
|
@wojtekmach!)
|
|
|
|
## 1.2.0 (11 Nov 2023)
|
|
|
|
### Enhancements
|
|
|
|
* Add `supervisor_options` option to specify top-level supervisor options (#97)
|
|
|
|
## 1.1.0 (23 Oct 2023)
|
|
|
|
### Enhancements
|
|
|
|
* Add support for `silent_terminate_on_error` option to run quietly in case of
|
|
error (#92)
|
|
|
|
## 1.0.0 (18 Oct 2023)
|
|
|
|
### Changes
|
|
|
|
* Do not consider `ECONNABORTED` errors to be exceptional at socket start time
|
|
(#72, thanks @dch!)
|
|
|
|
## 1.0.0-pre.7 (12 Aug 2023)
|
|
|
|
### Fixes
|
|
|
|
* Fix file handle leak when calling `c:Socket.sendfile` (#78)
|
|
|
|
## 1.0.0-pre.6 (28 Jun 2023)
|
|
|
|
### Enhancements
|
|
|
|
* Add support for suspending the acceptance of new requests while continuing to
|
|
process existing ones (#70)
|
|
|
|
### Changes
|
|
|
|
* Drop Elixir 1.12 as a supported target (it should continue to work, but is no
|
|
longer covered by CI)
|
|
|
|
## 1.0.0-pre.5 (16 Jun 2023)
|
|
|
|
### Changes
|
|
|
|
* **BREAKING CHANGE** Refactor socket informational functions to mirror the
|
|
underlying `:gen_tcp` and `:ssl` APIs (#76, thanks @asakura!). Details:
|
|
* Add `ThousandIsland.Socket.sockname/1`
|
|
* Add `ThousandIsland.Socket.peername/1`
|
|
* Add `ThousandIsland.Socket.peercert/1`
|
|
* Remove `ThousandIsland.Socket.local_info/1`
|
|
* Remove `ThousandIsland.Socket.peer_info/1`
|
|
* Refactor telemetry (#65 thanks @asakura!)
|
|
|
|
## 1.0.0-pre.4 (13 Jun 2023)
|
|
|
|
### Enhancements
|
|
|
|
* Improve typespecs (thanks @asakura!)
|
|
* Clean up docs & various internal cleanups (thanks @asakura!)
|
|
|
|
## 1.0.0-pre.3 (2 Jun 2023)
|
|
|
|
### Enhancements
|
|
|
|
* Total overhaul of typespecs throughout the library (thanks @asakura!)
|
|
* Internal refactor of several ancillary functions (thanks @asakura!)
|
|
|
|
## 1.0.0-pre.2 (3 May 2023)
|
|
|
|
### Enhancements
|
|
|
|
* Doc improvements
|
|
|
|
## 1.0.0-pre.1 (19 Apr 2023)
|
|
|
|
### Changes
|
|
|
|
* None
|
|
|
|
## 0.6.7 (9 Apr 2023)
|
|
|
|
### Changes
|
|
|
|
* Thousand Island now sets its `id` field in its spec to be `{ThousandIsland, ref()}`
|
|
* `num_connections` defaults to 16384 connections per acceptor
|
|
|
|
### Enhancements
|
|
|
|
* Doc improvements
|
|
|
|
## 0.6.6 (7 Apr 2023)
|
|
|
|
### Enhancements
|
|
|
|
* Added `num_connections` parameter to specify the max number of concurrent
|
|
connections allowed per acceptor
|
|
* Added `max_connections_retry_count` and `max_connections_retry_wait`
|
|
parameters to configure how Thousand Island behaves when max connections are
|
|
reached
|
|
* Added `[:thousand_island, :acceptor, :spawn_error]` telemetry event to track
|
|
when max connections are reached
|
|
* Added max connection logging as part of the
|
|
`ThousandIsland.Logger.attach_logger(:error)` level
|
|
|
|
### Changes
|
|
|
|
* Refactored connection startup logic to move some burden from acceptor to
|
|
connection process
|
|
|
|
## 0.6.5 (27 Mar 2023)
|
|
|
|
### Changes
|
|
|
|
* Handshake errors no longer loudly crash the handler process
|
|
* `handle_error/3` documentation updated to explicitly mention handshake errors
|
|
|
|
## 0.6.4 (17 Mar 2023)
|
|
|
|
### Changes
|
|
|
|
* Modified telemetry event payloads to match the conventions espoused by
|
|
`:telemetry.span/3`
|
|
|
|
## 0.6.3 (14 Mar 2023)
|
|
|
|
### Enhancements
|
|
|
|
* Added `shutdown_timeout` configuration parameter to configure how long to wait
|
|
for existing connections to shutdown before forcibly killing them at shutdown
|
|
|
|
### Changes
|
|
|
|
* Default value for `num_acceptors` is now 100
|
|
* Default value for `read_timeout` is now 60000 ms
|
|
|
|
### Fixes
|
|
|
|
* Added missing documentation for read_timeout configuration parameter
|
|
|
|
## 0.6.2 (22 Feb 2023)
|
|
|
|
### Fixes
|
|
|
|
* Fixes a race condition at application shutdown that caused spurious acceptor
|
|
crashes to litter the logs (#44). Thanks @danschultzer!
|
|
|
|
|
|
## 0.6.1 (19 Feb 2023)
|
|
|
|
### Changes
|
|
|
|
* Expose ThousandIsland.Telemetry.t() as a transparent type
|
|
* Pass telemetry errors in metadata rather than metrics
|
|
* Allow explicit passing of start times into telemetry spans
|
|
|
|
## 0.6.0 (4 Feb 2023)
|
|
|
|
### Enhancements
|
|
|
|
* (Re)introduce telemetry support as specified in the `ThousandIsland.Telemetry`
|
|
module
|
|
|
|
# Changelog for 0.5.x
|
|
|
|
## 0.5.17 (31 Jan 2023)
|
|
|
|
### Enhancements
|
|
|
|
* Add `ThousandIsland.connection_pids/1` to enumerate connection processes
|
|
|
|
## 0.5.16 (21 Jan 2023)
|
|
|
|
### Enhancements
|
|
|
|
* Narrow internal pattern matches to enable Handlers to use their own socket calls (#39)
|
|
|
|
### Fixes
|
|
|
|
* Fix documentation typos
|
|
|
|
## 0.5.15 (10 Jan 2023)
|
|
|
|
### Enhancements
|
|
|
|
* Do not emit GenServer crash logs in connection timeout situations
|
|
* Doc updates
|