mirror of
https://github.com/TrustTunnel/TrustTunnelClient.git
synced 2026-05-22 19:41:36 +00:00
7da863b1b9
Co-authored-by: github-actions[bot] <github-actions[bot]@adguard.com>
15 KiB
15 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
Unreleased
Added
Changed
Deprecated
Removed
Fixed
Security
1.1.4 - 2026-05-22
Added
- Linux C API wrappers vpn_linux_tunnel_create and vpn_linux_tunnel_destroy
Changed
- Opt-in Linux package build mode for exporting WIN_EXPORT symbols in C API builds without affecting default Linux builds
[1.1.3] - 2026-05-08
Added
- Added C++ ring buffer implementation for use in Flutter Client
Changed
- Improved network change detection under Linux
Fixed
- Fixed link-local IPv6 system DNS server detection under macOS
1.0.63 - 2026-05-04
Added
- Add
tcp_recv_buf_sizeandtcp_send_buf_sizeoptions to[listener.tun]section. These allow tuning TCP window and send buffer sizes per connection. Default (0) uses optimized compile-time values (256 KB each). Adjust only for constrained environments or specific network conditions. - Add periodic heap trimming to reduce RSS after traffic bursts. Frees fragmented heap pages back to the OS, preventing memory growth over long sessions.
1.0.62 - 2026-04-30
Added
- Improve control over TUN device configuration.
- Add
device_namefield that controls the TUN interface name on Linux, the requestedutun<N>unit on macOS, and the Wintun adapter name on Windows. - Add
use_existingboolean field that allows opening an existing TUN device specified bydevice_name. Linux only. - Correctly handle
included_routes = []and skip route/rule setup and cleanup in this case (except DNS routes controlled bychange_system_dns). - Remove the Windows-specific
adapter_nameconfiguration field; Windows adapter naming is now configured viadevice_name.
- Add
1.0.56 - 2026-04-28
Added
- Add wildcard port syntax (
*:port) toVpnSettings::exclusions. Any connection to the specified port is matched regardless of the destination address.
1.0.49 - 2026-04-09
Fixed
- Protect service socket for DNS query forwarding with securely generated password #62
1.0.45 - 2026-04-07
Added
- Support importing DNS upstreams and server name from deep-link.
The
dns_upstreamsfield is moved to[endpoint]section. For backward compatibility,dns_upstreamsin the root config section is still supported for old configs.
1.0.18 - 2026-03-04
Changed
- Added support for updated
tt://?deep-link format.
1.0.9 - 2026-02-25
Added
- Support deep-link config import.
- Add
--deeplinkflag to setup_wizard non-interactive mode. - Add an interactive menu option to import config from a deep-link.
- Add
1.0.6 - 2026-02-18
Added
- Support hostnames in endpoint addresses. Hostnames are resolved via DNS at connect time, producing multiple endpoints for each resolved IP address.
1.0.3 - 2026-02-17
Added
- Add
custom_snifield to the endpoint configuration. This allows specifying the TLS SNI value separately from the hostname, replacing the pipe (|) syntax in thehostnamefield. The old syntax is still supported for backward compatibility, but using both simultaneously is now an error.
0.99.118 - 2026-02-13
Added
- Add a new error code,
VPN_EC_CERTIFICATE_VERIFICATION_FAILED, indicating that an endpoint's certificate could not be verified. This is a recoverable error which may be handled by re-requesting information from the backend and reconnecting, similar to codesVPN_EC_AUTH_REQUIREDandVPN_EC_LOCATION_UNAVAILABLE.
0.99.108 - 2026-02-05
Fixed
- Fixed segfault when running on FreshTomato-RT-AC66U MIPS firmware
0.99.104 - 2026-02-03
Added
- Add GPG signing for TrustTunnel executables.
0.99.102 - 2026-02-01
Added
- Add functions to get default VPN settings and free allocated resources.
- See
vpn_get_default_settingsandvpn_free_default_settings.
- See
Changed
- Post-quantum cryptography is now enabled by default
0.99.96 - 2026-01-27
Fixed
- [Windows] Fixed certificate validation failing with
WCRYPT_E_POLICY_STATUSerror.
0.99.93 - 2026-01-23
Fixed
- Fixed setup_wizard architecture in Linux builds #5
0.99.92 - 2026-01-22
Added
- Added prebuilt trusttunnel_client binaries for Windows
0.99.63 - 2025-12-16
Added
- Add option to allow inbound connections to the specified UDP/TCP ports when
ag::VpnWinTunnelSettings::block_untunneledis enabled.- See
ag::VpnWinTunnelSettings::block_untunneled_exclude_ports.
- See
0.95.31 - 2025-06-27
Added
- IPv6 support must now be explicitly specified on each
VpnEndpoint. Previously, the library assumed that all endpoints in a location have IPv6 support if any of the endpoints in a location had an IPv6 address.- See
VpnEndpoint::has_ipv6.
- See
0.94.7 - 2024-12-24
Added
- Add an option to use a post-quantum group for key exchange in TLS handshakes.
- See
vpn_post_quantum_group_set_enabled.
- See
0.93.28 - 2024-09-24
Changed
- Handler profiling is now disabled by default.
0.93.18 - 2024-09-17
Added
- Add an option to profile VPN handler execution: if enabled, a warning will be written to the log
whenever a handler call is taking too long. Profiling is enabled by default. Applications might want to disable
it when running in production.
- See
ag::vpn_handler_profiling_set_enabled.
- See
0.92.182 - 2024-02-19
Added
- The library now notify an application with information about connection. This event contain info
about source ip, destination (ip, domain or both), transport protocol and action (bypass/tunnel).
For this purpose, new event
VPN_EVENT_CONNECTION_INFOwas introduced inVpnEvent.
0.92.115 - 2023-10-03
Changed
- Added a new
VpnConnectAction:VPN_CA_REJECT.
0.92.107 - 2023-09-22
Changed
- Added
VpnConnectedInfo::relay_address.
0.92.100 - 2023-09-19
Changed
- Added
VpnEndpoint::remote_id. See the field's doc for details.
0.92.94 - 2023-09-13
Changed
- Changes in pinging behaviour.
- See the updated doc comments for the fields of
LocationsPingerInfoandPingInfo,locations_pinger_start,ping_startfor details. - The pinging timeout is now per connection attempt, NOT for the whole pinging procedure. Applications may need to adjust.
- See the updated doc comments for the fields of
0.92.90 - 2023-09-08
Changed
- Changes in pinging and locations API.
- Removed
VpnUpstreamConfig::relay_addressesandLocationsPingerInfo::relay_address. - Added
VpnLocation::relay_addresses. - When a
VpnLocationis used as part of aVpnUpstreamConfig, its relay addresses shall be used exactly in the same manner asVpnUpstreamConfig::relay_addresseswere used before. - The documentation for
ag::locations_pinger_starthas been updated to include a note about how the location's relay addresses are used by the pinger.
- Removed
0.92.88 - 2023-09-06
Added
- Support connecting to endpoints through a set of SNI proxies.
VpnUpstreamConfig::relay_addressescan now be specified when connecting to a location. The client shall try using one of the relay addresses to connect to an endpoint if it's unavailable on its normal address. The client shall automatically disqualify relay addresses that don't work.LocationsPingerInfo::relay_addresscan now be specified when pinging a location. The pinger shall try to use it if an endpoint is unavailable on its normal address.PingResult::through_relaywill be non-zero if the relay is used. The application should try pinging with a different relay address if there are pinging errors through the relay.LocationsPingerwill now send ClientHello/QUIC Initial to "ping" the endpoints.LocationsPinger::anti_dpican now be specified to enable or disable anti-DPI measures during pinging.
0.92.74 - 2023-08-14
Added
- The library now notifies an application about the amount of traffic passed through
connections that have been routed through an endpoint.
For this purpose, two events were introduced in
VpnEvent:VPN_EVENT_TUNNEL_CONNECTION_STATS- raised only for connections that have been routed through an endpoint,VPN_EVENT_TUNNEL_CONNECTION_CLOSED- raised for any user connection.
0.92.46 - 2023-06-20
Added
- The library now accepts CIDR range in exclusion list.
0.92.28 - 2023-04-19
Changed
- Removed
vpn_network_manager_update_tun_interface_dns()as redundant.
0.92.23 - 2023-04-07
Changed
- The library now accepts a list of DNS upstreams instead of a single one.
dns_upsteamfield ofVpnListenerConfigrenamed todns_upsteams.dns_upsteamfield removed fromVpnDnsUpstreamUnavailableEvent.
0.92.11 - 2023-03-07
Added
h3://scheme is now allowed for DNS upstream.
0.91.88 - 2023-02-14
Changed
- DNS queries are now routed according to VPN settings. I.e., queries with domains
matching exclusions are routed directly to the target resolver in the general mode,
but queries not matching exclusions are routed through the endpoint. To do it correctly
the library needs to know the system (see
dns_manager_set_tunnel_interface_servers()) and TUN interface DNS servers (seevpn_network_manager_update_tun_interface_dns()). - The library now has one centralized point for setting the outbound network
interface for I/O operations -
vpn_network_manager_set_outbound_interface().- [Windows] Use the method above instead of the removed
vpn_win_set_bound_if().
- [Windows] Use the method above instead of the removed
0.91.82 - 2023-01-19
Fixed
- Introduced an error code indicating that no connection attempts left
after initial connect() call
VPN_EC_INITIAL_CONNECT_FAILED.
0.91.45 - 2022-11-09
Changed
Location unavailablesemantics:- It is now considered as a fatal error, i.e. the client goes in the disconnected state. It is up to application to refresh a location data and restart the client.
- It is now raised only after the client receives the abandon command. It is up to application to detect infinite recovery loop in case there are some connectivity issues.
- [Windows]
vpn_abandon_endpoint()now takes an endpoint as a parameter
0.91.20 - 2022-10-18
Changed
- [Windows] Calling
vpn_win_set_bound_if()now turns off the socket protection instead of detecting an active network interface by itself. It's up to the application to call the new methodvpn_win_detect_active_if()and pass its result tovpn_win_set_bound_if()to activate the socket protection.
0.91.10 - 2022-10-07
Added
- Added Wintun support. Dll downloaded from www.wintun.net is needed for standalone_client to run under Windows.
0.90.15 - 2022-08-17
Added
- Route QUIC connections according to the VPN mode instead of always dropping or redirecting them
0.90.13 - 2022-08-05
Fixed
- Fix leaks and memory bugs in
tls_serialize_cert_chain,tls_free_serialized_chain. Add tests.
0.90.12 - 2022-08-04
Fixed
- Change signature of some exported functions to be more consistent with the rest and simpler for C# bindings.
0.90.6 - 2022-08-03
Fixed
- Fix version increment script.
0.90.4 - 2022-08-02
Added
- VpnLibs is now open-source.