commit 7e5e7c201d54c6ad078ed8e0f177bf756038ebcf
parent 400e2e1e14d27c6c868f81e3f989ee5d229852ca
Author: Daniel Barlow <dan@telent.net>
Date: Fri, 2 Jan 2026 21:32:09 +0000
rename DnsResource as Resource and alias in client
Diffstat:
2 files changed, 24 insertions(+), 20 deletions(-)
diff --git a/ecu-esp32/src/mdns.rs b/ecu-esp32/src/mdns.rs
@@ -44,7 +44,7 @@ pub struct MdnsResponder<'a> {
impl<'a> MdnsResponder<'a> {
pub fn new(stack : Stack<'a>,
mut sock: UdpSocket<'a>,
- records: Vec<DnsResource>) -> MdnsResponder<'a> {
+ records: Vec<Resource>) -> MdnsResponder<'a> {
sock.set_hop_limit(Some(255));
log::info!("sock.bind(5353) res: {:?}", sock.bind(MDNS_PORT));
@@ -60,7 +60,7 @@ impl<'a> MdnsResponder<'a> {
}
}
- pub fn set_records(&mut self, records: Vec<DnsResource>) {
+ pub fn set_records(&mut self, records: Vec<Resource>) {
self.database = Database(records);
}
@@ -154,7 +154,7 @@ impl<'a> MdnsResponder<'a> {
id: u16,
endpoint: IpEndpoint,
question: Option<&Question<'_>>,
- answers: Vec<&DnsResource>) {
+ answers: Vec<&Resource>) {
let legacy = question != None;
@@ -359,13 +359,13 @@ impl RData {
}
#[derive(Debug)]
-pub struct DnsResource {
+pub struct Resource {
name : String,
data : RData,
data_raw : Vec<u8>
}
-impl DnsResource {
+impl Resource {
pub fn new(
name: impl Into<String>,
data: RData
@@ -412,12 +412,12 @@ impl DnsResource {
}
}
-struct Database(Vec<DnsResource>);
+struct Database(Vec<Resource>);
impl Database {
- fn find<'a>(&self, name: impl Into<String>, ty: ResourceType) -> Vec<&DnsResource> {
+ fn find<'a>(&self, name: impl Into<String>, ty: ResourceType) -> Vec<&Resource> {
let name = name.into();
- let results : Vec<&DnsResource> =
+ let results : Vec<&Resource> =
self.0.iter().filter(
|r|
((ty == ResourceType::Wildcard) || (r.data.ty() == ty)) &&
@@ -427,11 +427,11 @@ impl Database {
}
// the records we announce unsolicited at startup
- fn advertised(&self) -> Vec<&DnsResource> {
+ fn advertised(&self) -> Vec<&Resource> {
self.0.iter().filter( |r| r.name != DISCOVERY_NAME ).collect()
}
- fn additional(&self, r: &DnsResource) -> Vec<&DnsResource> {
+ fn additional(&self, r: &Resource) -> Vec<&Resource> {
match &r.data {
RData::Srv { target, port:_, priority:_, weight:_ } => {
self.find(target, ResourceType::Wildcard)
@@ -447,15 +447,15 @@ impl Database {
}
}
- fn all_additional_<'a>(&'a self, r: &DnsResource, collect: &mut Vec<&'a DnsResource>) {
+ fn all_additional_<'a>(&'a self, r: &Resource, collect: &mut Vec<&'a Resource>) {
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();
+ fn all_additional(&self, r: &Resource) -> Vec<&Resource> {
+ let mut collect : Vec<&Resource> = Vec::new();
self.all_additional_(r, &mut collect);
collect
}
diff --git a/ecu-esp32/src/wifi.rs b/ecu-esp32/src/wifi.rs
@@ -34,7 +34,8 @@ use esp_radio::{
},
};
-use crate::mdns::{MdnsResponder, MdnsResponderState, DnsResource, RData, DISCOVERY_NAME};
+use crate::mdns::Resource as DnsResource;
+use crate::mdns::{MdnsResponder, MdnsResponderState, RData, DISCOVERY_NAME};
// When you are okay with using a nightly compiler it's better to use https://docs.rs/static_cell/2.1.0/static_cell/macro.make_static.html
macro_rules! mk_static {
@@ -51,6 +52,9 @@ const PASSWORD: &str = env!("PASSWORD");
fn dns_records(my_ip_address: [u8;4], serial: Option<usize>) -> Vec<DnsResource> {
+ use crate::mdns::*;
+ use crate::mdns::RData as R;
+
let (hostname, ptr_name) =
match serial {
None => (
@@ -65,17 +69,17 @@ fn dns_records(my_ip_address: [u8;4], serial: Option<usize>) -> Vec<DnsResource>
let records = [
- DnsResource::new(&hostname, RData::A(my_ip_address)),
- DnsResource::new(
+ Resource::new(&hostname, R::A(my_ip_address)),
+ Resource::new(
&ptr_name,
- RData::Srv {
+ R::Srv {
target: String::from(hostname), port: 5000,
weight: 0, priority: 0
}
),
- DnsResource::new(&ptr_name, RData::Txt(["txtvers=1".into()].into())),
- DnsResource::new("_keihin._udp.local", RData::Ptr(ptr_name)),
- DnsResource::new(DISCOVERY_NAME, RData::Ptr("_keihin._udp.local".into()))
+ Resource::new(&ptr_name, R::Txt(["txtvers=1".into()].into())),
+ Resource::new("_keihin._udp.local", R::Ptr(ptr_name)),
+ Resource::new(DISCOVERY_NAME, R::Ptr("_keihin._udp.local".into()))
];
Vec::from(records)
}