eculocate

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit d1acb4b7f2e87ff6cb03d038fbde5aeb583c6861
parent 0275110a7c0110f7e20cf00aa5b2b5d87f310a9f
Author: Daniel Barlow <dan@telent.net>
Date:   Sun, 28 Dec 2025 16:07:17 +0000

include transitive deps in additional records

Diffstat:
Mecu-esp32/src/wifi.rs | 16++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/ecu-esp32/src/wifi.rs b/ecu-esp32/src/wifi.rs @@ -218,8 +218,20 @@ impl DnsDatabase { _ => Vec::from([]) } } -} + fn all_additional_<'a>(&'a self, r: &DnsResource, collect: &mut Vec<&'a DnsResource>) { + for r in self.additional(r) { + collect.push(r); + self.all_additional_(r, collect); + } + } + + fn all_additional(&self, r: &DnsResource) -> Vec<&DnsResource> { + let mut collect : Vec<&DnsResource> = Vec::new(); + self.all_additional_(r, &mut collect); + collect + } +} // RFC: "Multicast DNS responses MUST NOT contain any questions in the // Question Section. ". However, responses to "legacy" queries (port != 5353) @@ -251,7 +263,7 @@ async fn send_response(sock: &UdpSocket<'_>, let mut rrs = Vec::new(); for a in answers { rrs.push(a.to_resource_record()); - for r in db.additional(a).into_iter() { + for r in db.all_additional(a).into_iter() { additional.push(r.to_resource_record()); }; }