v1.4.0
- Minimum Ruby version is now v3.1.
- Drop dependency on
Async::IO and refactor internal network code to use IO::Endpoint and Socket directly.
- Introduce
Async::DNS::Endpoint for getting the default endpoint for a given name server.
- Remove old hacks for IPv6 on Ruby v2.3.
- Introduce
Async::DNS::Cache for caching DNS lookups.
- Remove
logger as an option and instance variable in favour of using Console.logger directly. This is a breaking change.
- Update error logging to include more details.
- Use keyword arguments
**options where possible. This is a breaking change.
Async::DNS::StreamHandler and Async::DNS::DatagramHandler have been refactored to use IO::Endpoint and have minor breaking interface changes.
Async::DNS::Resolver.default should be used to get a default resolver instance.
- The resolver now supports
ndots: when resolving names.
Async::DNS::Resolver#fully_qualified_name is replaced by Async::DNS::Resolver#fully_qualified_names and can yield multiple names.
- If the host system supports IPv6, the resolver will also try to resolve IPv6 addresses.
Async::DNS::Server::DEFAULT_ENDPOINTS is removed and replaced by Async::DNS::Server.default_endpoint(port = 53).
Async::DNS::Server#fire is removed with no replacement.
- The default
Async::DNS::Server#process fails with NXDomain instead of NotImplementedError.
Async::DNS::System implementation is updated to support IPv6 and resolv.conf options.