0.10.2
New
- Added an optional push size limit to
MessageBuilder
. (#348) - Added
FromStr
impls forRcode
andOptRcode
. (#357) - Added
OptRcode::is_ext
to check if the code is an extended code. (#358) - Added
Rtype::is_glue
to check if the Rtype may be used as glue. (#363) - Added
MessageBuilder::start_error
, likestart_answer
but infallible. (#369) - Added
AnswerBuilder::push_ref
, likepush
but takes the record by reference. (#383) - Added
Rtype::NXNAME
andExtendedErrorCode::INVALID_QUERY_TYPE
. (#392) - Added a
Serialize
impl toAllRecordData
and as a consequence to the OPT record and all OPT options, as well asParsedName
. (#343) - Added
Display
impl totsig::Key
. (#397)
Bug fixes
- Fixed a mistake in the tsig module while calculating the start of the TSIG record when there were other records in the additional section, causing the TSIG code to fail if OPT records were in use. (#333)
- Fixed the mnemonic for the
NOTAUTH
rcode – it wasNOAUTH
. (#360) - Fixed the way the
Txt<_>
record data implements comparison-related traits. They now directly compare the underlying octets, i.e., the wire format bytes. (#374 by @dklbreitling) - Fixed the
tsig
module to reject messages with multiple TSIG records. (#334) - Fixed Display rendering of empty NSEC3 salt to be '-' per RFC 5155 section 3.3. (#407)
Unstable features
- New unstable feature
unstable-validator
that adds a DNSSEC validator. (#328) - New unstable feature
unstable-xfr
that addsXfrResponseInterpreter
for iterating over XFR responses as a sequence of high levelZoneUpdate
s, andXfrMiddlewareSvc
andXfrDataProvider
for responding to received XFR requests. (#375, #384) unstable-client-transport
:- Fixed an issue with slow responses in the
multi_stream
transport by not waiting in the first iteration if an underlying stream reports its connection being closed. (#338) - Added an option called
idle_timeout
to stream that allows a TCP or TLS connection to stay open even if no TcpKeepalive option is received from the server. (#341) - Fixed an off-by-one error in Dgram client retry count checking. (#354)
- Added support for requests that may result in multiple responses. This adds
ComposeRequestMulti
and other*Multi
types. The main change is to the stream transport, which is the only transport that implementsSendRequestMulti
. (#377) - Added a TSIG request signing and response validating passthrough transport in
net::client:tsig
. (#373)
- Fixed an issue with slow responses in the
unstable-server-transport
- Breaking changes to the
Service
and middleware traits. (#369) - Added
TsigMiddlewareSvc
request validating and response signing middleware innet::server::middleware::tsig
. (#380) - Added
NotifyMiddlewareSvc
innet::server::middleware::notify
to parse and acknowledge SOA NOTIFY requests, for use by secondary nameservers to detect outdated zones compared to the primary. (#382) CookiesMiddlewareSvc
now allows requests with invalid cookies to proceed if they are authenticated or not required to authenticate. (#336)- Added an
enabled
flag toCookiesMiddlewareSvc
. (#369) - Added trait
ResourceRecordBatcher
and implCallbackBatcher
innet::server::batcher
for pushing as many records into a response as will fit according to defined limits. (#383) - Enforce dgram max response size limit. (#398)
- Extended MandatoryMiddlewareSvc with an RFC 9619 check for opcode QUERY with QDCOUNT > 1. (#365)
- Added blanket
SendRequest
andSendRequestMulti
impls for boxes. (#397) EdnsMiddlewareSvc
fixes: (#355)- Reply with FORMERR if an OPT RR cannot be parsed.
- Don't reply with FORMERR if an edns-tcp-keepalive option is received via UDP, instead ignore it per RFC 7828 3.2.1.
- Only reserve space for an edns-tcp-keepalive option for TCP requests, not UDP requests.
- Always reserve space for an OPT RR in the response for any request that has an OPT RR, not just TCP requests.
- Servers now drop received DNS response messages. (#381)
- Improved handling of errors while sending TCP responses. (#309)
- Correctly reserve space for OPT in
EdnsMiddlewareSvc
. (#403)
- Breaking changes to the
unstable-zonetree
:- Added
ZoneUpdate
. (#375) - Added
ZoneUpdater
,ZoneDiff
,InMemoryZoneDiffBuilder
,InMemoryZoneDiff
and improvedZoneUpdate
. (#376, #384) - Improved zonefile parsing error messages. (#362).
TryFrom<inplace::Zonefile> for Zonefile
now returns the set of errors instead of logging and ignoring them. (#362)- Allow both glue (A/AAAA) and zone cuts at the same owner when zone parsing. (#363)
- Altered the logic in
Versioned::remove_all()
(formerlyVersioned::clean()
) as it made destructive changes to the zone that would have impacted readers of the current zone version while the new zone version was being created. (#376) - Removed / renamed references to
clean
inzonetree::in_memory
toremove
. (#376) - Fixed zone walking to include non-leaf CNAMEs. (#352)
- Fixed zone walking to pass the correct owner name to the callback. (#384)
- Added an
as_any
method andClone
andDebug
impls to various zonetree types. (#397) - Added
AsRef<dyn ZoneStore>
toZone
. (#397) - Added handling of the AA flag and additional records to answer generation. (#400)
- Zone walking now includes glue records. A new flag
at_zone_cut
was added to the callback interface. (#401)
- Added