commit 35e09a23434298f901ca37354f7f514b3d1ceaf4
parent 5cb10f9383dc526421c14b0a962a25f761105ddd
Author: Daniel Barlow <dan@telent.net>
Date: Sun, 28 Dec 2025 17:56:36 +0000
send unsolicited response at startup
Diffstat:
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/ecu-esp32/src/wifi.rs b/ecu-esp32/src/wifi.rs
@@ -204,6 +204,12 @@ impl DnsDatabase {
results
}
+ // the records we announce unsolicited at startup
+ fn advertised(&self) -> Vec<&DnsResource> {
+ self.records.iter().filter( |r| r.name != DISCOVERY_NAME ).collect()
+ }
+
+
fn additional(&self, r: &DnsResource) -> Vec<&DnsResource> {
match &r.data {
RData::Srv { target, port:_, priority:_, weight:_ } => {
@@ -407,12 +413,12 @@ pub async fn start_wifi(spawner: &Spawner,
);
-// send_advert(&sock, rng.random() as u16, MDNS_ENDPOINT, None, &my_address).await;
-
let mut data_buf = [0; 4096];
let dns_db = DnsDatabase::create(&my_address);
+ send_response(&sock, 0, MDNS_ENDPOINT, &dns_db, None, dns_db.advertised()).await;
+
loop {
if sock.may_recv() {
let mut questions = [Question::default(); 64];