Skip to content

0.10.2

Compare
Choose a tag to compare
@partim partim released this 10 Oct 13:19
· 62 commits to main since this release
3c63882

New

  • Added an optional push size limit to MessageBuilder. (#348)
  • Added FromStr impls for Rcode and OptRcode. (#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, like start_answer but infallible. (#369)
  • Added AnswerBuilder::push_ref, like push but takes the record by reference. (#383)
  • Added Rtype::NXNAME and ExtendedErrorCode::INVALID_QUERY_TYPE. (#392)
  • Added a Serialize impl to AllRecordData and as a consequence to the OPT record and all OPT options, as well as ParsedName. (#343)
  • Added Display impl to tsig::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 was NOAUTH. (#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 adds XfrResponseInterpreter for iterating over XFR responses as a sequence of high level ZoneUpdates, and XfrMiddlewareSvc and XfrDataProvider 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 implements SendRequestMulti. (#377)
    • Added a TSIG request signing and response validating passthrough transport in net::client:tsig. (#373)
  • unstable-server-transport
    • Breaking changes to the Service and middleware traits. (#369)
    • Added TsigMiddlewareSvc request validating and response signing middleware in net::server::middleware::tsig. (#380)
    • Added NotifyMiddlewareSvc in net::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 to CookiesMiddlewareSvc. (#369)
    • Added trait ResourceRecordBatcher and impl CallbackBatcher in net::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 and SendRequestMulti 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)
  • unstable-zonetree:
    • Added ZoneUpdate. (#375)
    • Added ZoneUpdater, ZoneDiff, InMemoryZoneDiffBuilder, InMemoryZoneDiff and improved ZoneUpdate. (#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() (formerly Versioned::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 in zonetree::in_memory to remove. (#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 and Clone and Debug impls to various zonetree types. (#397)
    • Added AsRef<dyn ZoneStore> to Zone. (#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)