6.7 KiB
6.7 KiB
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
andhandle_data
callbacks to return tuples to callhandle_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
orsni_fun
in place ofcert
/certfile
andkey
/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
- Add
- 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
andmax_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