tangled
alpha
login
or
join now
sachy.dev
/
striker
0
fork
atom
Bevy+Ratutui powered Monitoring of Pico-Strike devices
0
fork
atom
overview
issues
pulls
pipelines
Only accept authorative mdns answers
sachy.dev
2 months ago
502ac890
76a6e562
+21
-18
1 changed file
expand all
collapse all
unified
split
src
net.rs
+21
-18
src/net.rs
···
69
69
continue;
70
70
};
71
71
72
72
-
if resp.answers.iter().any(|answer| {
73
73
-
if let Record::PTR(_) = &answer.record {
74
74
-
answer.name == "_picostrike._tcp.local"
75
75
-
} else {
76
76
-
false
77
77
-
}
78
78
-
}) && let Some(instance) = resp.additional.iter().find_map(|answer| {
79
79
-
if let Record::SRV(srv) = &answer.record {
80
80
-
Some(InstanceDetails {
81
81
-
host: answer.name.to_string(),
82
82
-
address: srv.target.to_string(),
83
83
-
port: srv.port,
84
84
-
ip: socket.ip(),
85
85
-
})
86
86
-
} else {
87
87
-
None
88
88
-
}
89
89
-
}) {
72
72
+
if resp.flags.is_authoritative()
73
73
+
&& resp.answers.iter().any(|answer| {
74
74
+
if let Record::PTR(_) = &answer.record {
75
75
+
answer.name == "_picostrike._tcp.local"
76
76
+
} else {
77
77
+
false
78
78
+
}
79
79
+
})
80
80
+
&& let Some(instance) = resp.additional.iter().find_map(|answer| {
81
81
+
if let Record::SRV(srv) = &answer.record {
82
82
+
Some(InstanceDetails {
83
83
+
host: answer.name.to_string(),
84
84
+
address: srv.target.to_string(),
85
85
+
port: srv.port,
86
86
+
ip: socket.ip(),
87
87
+
})
88
88
+
} else {
89
89
+
None
90
90
+
}
91
91
+
})
92
92
+
{
90
93
resp_tx.send(instance).await.ok();
91
94
}
92
95
}