0.10.0
Breaking changes
- All types and functions referring to domain names have been changed from using the term “dname” to just “name.” For instance,
Dnamehas becomeName,ToDnamehas becomeToName, andToDname::to_dnamehas becomeToName::to_name. (#290) - The
ToNameandToRelativeNametraits have been changed to have a pair of methods a latry_to_nameandto_namefor octets builders with limited and unlimited buffers, reflecting the pattern used elsewhere. (#285) - The types for IANA-registered parameters in
base::ianahave been changed from enums to a newtypes around their underlying integer type and associated constants for the registered values. (This was really always the better way to structure this.) (#276, #298) - The
Txtrecord data type now rejects empty record data as invalid. As a consequenceTxtBuilderconverts an empty builder into TXT record data consisting of one empty character string which requiresTxtBuilder::finishto be able to return an error. (#267) Txtrecord data serialization has been redesigned. It now serialized as a sequence of character strings. It also deserializes from such a sequence. If supported by the format, it alternatively deserializes from a string that is broken up into 255 octet chunks if necessary. (#268)- The text formatting for
CharStrhas been redesigned. TheDisplayimpl now uses a modified version of the representation format that doesn’t escape white space but also doesn’t enclose the string in quotes. Methods for explicitly formatting in quoted and unquoted presentation format are provided. (#270) - The
validate::RrsigExttrait now accepts anything that implsAsRef<Record<..>>to allow the use of smart pointers. (#288 by @hunts) - The stub resolver now uses the new client transports. This doesn’t change how it is used but does change how it queries the configured servers. (#215)
- The sub resolver’s server configuration
Transporttype has been changed to be eitherTransport::UdpTcpfor trying UDP and if that leads to a truncated answer try TCP andTransport::Tcpfor only trying TCP. The stub resolver uses these accordingly now (#296) - Many error types have been changed from enums to structs that hide internal error details. Enums have been kept for errors where distinguishing variants might be meaningful for dealing with the error. (#277)
- Renamed
Dnskey::is_zsktois_zone_key. (#292) - Split RRSIG timestamp handling from
Serialinto a new typerdata::dnssec::Timestamp. ([#294]) - Upgraded
octseqto 0.5. (#257) - The minimum Rust version is now 1.70. (#304)
New
- Add impls for
AsRef<RelativeDname<[u8]>>andBorrow<RelativeDname<[u8]>>toRelativeDname<_>. (#251 by @torin-carey) - Added
name::Chain::fmt_with_dotsto format an absolute chained name with a final dot. (#253) - Added a new
ParseAnyRecordDatatrait for record data types that can parse any type of record data. (#256) - Added implementations of
OctetsFromandDebugtoAllOptDataand the specific options types that didn’t have them yet. (#257) - Added missing ordering impls to
ZoneRecordData,AllRecordData,Opt, andSvcbRdata. (#293) - Added
Name::reverse_from_addrthat creates a domain name for the reverse lookup of an IP address. (#289) - Added
OptBuilder::clone_fromto replace the OPT record with the content of another OPT record. (#299) - Added
Message::for_slice_refthat returns aMessage<&[u8]>. (#300)
Bug fixes
- Fixed the display implementation of
name::Chain<_, _>. (#253) - Fixed the display implementation of
rdata::Txt<..>. It now displays each embedded character string separately in quoted form. (#259) - Fixed the extended part returned by
OptRcode::to_parts(it was shifted by 4 bits too many) and return all 12 bits for theIntvariant inOptRcode::to_int. (#258) - Fixed a bug in the
inplacezonefile parser that made it reject character string of length 255. (#284)
Unstable features
- Added the module
net::clientwith experimental support for client message transport, i.e., sending of requests and receiving responses as well as caching of responses.
This is gated by theunstable-client-transportfeature. (#215,#275) - Added the module
net::serverwith experimental support for server transports, processing requests through a middleware chain and a service trait.
This is gated by theunstable-server-transportfeature. (#274) - Added the module
zonetreeproviding basic traits representing a collection of zones and their data. Thezonetree::in_memorymodule provides an in-memory implementation. Thezonetree::parsedmodule provides a way to classify RRsets before inserting them into a tree.
This is gated by theunstable-zonetreefeature. (#286)