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,
Dname
has becomeName
,ToDname
has becomeToName
, andToDname::to_dname
has becomeToName::to_name
. (#290) - The
ToName
andToRelativeName
traits have been changed to have a pair of methods a latry_to_name
andto_name
for octets builders with limited and unlimited buffers, reflecting the pattern used elsewhere. (#285) - The types for IANA-registered parameters in
base::iana
have 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
Txt
record data type now rejects empty record data as invalid. As a consequenceTxtBuilder
converts an empty builder into TXT record data consisting of one empty character string which requiresTxtBuilder::finish
to be able to return an error. (#267) Txt
record 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
CharStr
has been redesigned. TheDisplay
impl 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::RrsigExt
trait 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
Transport
type has been changed to be eitherTransport::UdpTcp
for trying UDP and if that leads to a truncated answer try TCP andTransport::Tcp
for 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_zsk
tois_zone_key
. (#292) - Split RRSIG timestamp handling from
Serial
into a new typerdata::dnssec::Timestamp
. ([#294]) - Upgraded
octseq
to 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_dots
to format an absolute chained name with a final dot. (#253) - Added a new
ParseAnyRecordData
trait for record data types that can parse any type of record data. (#256) - Added implementations of
OctetsFrom
andDebug
toAllOptData
and 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_addr
that creates a domain name for the reverse lookup of an IP address. (#289) - Added
OptBuilder::clone_from
to replace the OPT record with the content of another OPT record. (#299) - Added
Message::for_slice_ref
that 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 theInt
variant inOptRcode::to_int
. (#258) - Fixed a bug in the
inplace
zonefile parser that made it reject character string of length 255. (#284)
Unstable features
- Added the module
net::client
with 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-transport
feature. (#215,#275) - Added the module
net::server
with experimental support for server transports, processing requests through a middleware chain and a service trait.
This is gated by theunstable-server-transport
feature. (#274) - Added the module
zonetree
providing basic traits representing a collection of zones and their data. Thezonetree::in_memory
module provides an in-memory implementation. Thezonetree::parsed
module provides a way to classify RRsets before inserting them into a tree.
This is gated by theunstable-zonetree
feature. (#286)