mirror of
https://github.com/fluencelabs/rust-libp2p
synced 2025-06-12 09:31:20 +00:00
[mdns] Split response packets if necessary. (#1877)
* [mdns] Split response packets. Prevent MDNS response packets becoming too large by creating multi-packet responses. Also skip addresses that don't fit into a TXT record or contain invalid characters. * Update protocols/mdns/src/dns.rs Co-authored-by: Max Inden <mail@max-inden.de> * Refactor response packet construction. * Update mdns changelog. Co-authored-by: Max Inden <mail@max-inden.de>
This commit is contained in:
@ -199,13 +199,14 @@ impl NetworkBehaviour for Mdns {
|
||||
MdnsPacket::Query(query) => {
|
||||
// MaybeBusyMdnsService should always be Free.
|
||||
if let MdnsBusyWrapper::Free(ref mut service) = self.service {
|
||||
let resp = build_query_response(
|
||||
for packet in build_query_response(
|
||||
query.query_id(),
|
||||
params.local_peer_id().clone(),
|
||||
params.listened_addresses().into_iter(),
|
||||
MDNS_RESPONSE_TTL,
|
||||
);
|
||||
service.enqueue_response(resp.unwrap());
|
||||
) {
|
||||
service.enqueue_response(packet)
|
||||
}
|
||||
} else { debug_assert!(false); }
|
||||
},
|
||||
MdnsPacket::Response(response) => {
|
||||
|
Reference in New Issue
Block a user