Drop packet if destination is unspecified (0.0.0.0/0) (#8321)
This commit is contained in:
parent
73a278dc64
commit
ac1d075d73
|
@ -1323,6 +1323,7 @@ impl ClusterInfo {
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.zip(addrs.into_iter())
|
.zip(addrs.into_iter())
|
||||||
.for_each(|(response, from_addr)| {
|
.for_each(|(response, from_addr)| {
|
||||||
|
if !from_addr.ip().is_unspecified() && from_addr.port() != 0 {
|
||||||
let len = response.len();
|
let len = response.len();
|
||||||
trace!("get updates since response {}", len);
|
trace!("get updates since response {}", len);
|
||||||
inc_new_counter_debug!("cluster_info-pull_request-rsp", len);
|
inc_new_counter_debug!("cluster_info-pull_request-rsp", len);
|
||||||
|
@ -1337,6 +1338,9 @@ impl ClusterInfo {
|
||||||
.packets
|
.packets
|
||||||
.push(Packet::from_data(&from_addr, protocol))
|
.push(Packet::from_data(&from_addr, protocol))
|
||||||
})
|
})
|
||||||
|
} else {
|
||||||
|
trace!("Dropping Gossip pull response, as destination is unknown");
|
||||||
|
}
|
||||||
});
|
});
|
||||||
if packets.is_empty() {
|
if packets.is_empty() {
|
||||||
return None;
|
return None;
|
||||||
|
@ -1413,8 +1417,12 @@ impl ClusterInfo {
|
||||||
let pushes: Vec<_> = me.write().unwrap().new_push_requests();
|
let pushes: Vec<_> = me.write().unwrap().new_push_requests();
|
||||||
inc_new_counter_debug!("cluster_info-push_message-pushes", pushes.len());
|
inc_new_counter_debug!("cluster_info-push_message-pushes", pushes.len());
|
||||||
pushes.into_iter().for_each(|(remote_gossip_addr, req)| {
|
pushes.into_iter().for_each(|(remote_gossip_addr, req)| {
|
||||||
|
if !remote_gossip_addr.ip().is_unspecified() && remote_gossip_addr.port() != 0 {
|
||||||
let p = Packet::from_data(&remote_gossip_addr, &req);
|
let p = Packet::from_data(&remote_gossip_addr, &req);
|
||||||
packets.packets.push(p);
|
packets.packets.push(p);
|
||||||
|
} else {
|
||||||
|
trace!("Dropping Gossip push response, as destination is unknown");
|
||||||
|
}
|
||||||
});
|
});
|
||||||
Some(packets)
|
Some(packets)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -85,9 +85,13 @@ pub fn to_packets_with_destination<T: Serialize>(
|
||||||
);
|
);
|
||||||
out.packets.resize(dests_and_data.len(), Packet::default());
|
out.packets.resize(dests_and_data.len(), Packet::default());
|
||||||
for (dest_and_data, o) in dests_and_data.iter().zip(out.packets.iter_mut()) {
|
for (dest_and_data, o) in dests_and_data.iter().zip(out.packets.iter_mut()) {
|
||||||
|
if !dest_and_data.0.ip().is_unspecified() && dest_and_data.0.port() != 0 {
|
||||||
if let Err(e) = Packet::populate_packet(o, Some(&dest_and_data.0), &dest_and_data.1) {
|
if let Err(e) = Packet::populate_packet(o, Some(&dest_and_data.0), &dest_and_data.1) {
|
||||||
error!("Couldn't write to packet {:?}. Data skipped.", e);
|
error!("Couldn't write to packet {:?}. Data skipped.", e);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
trace!("Dropping packet, as destination is unknown");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
out
|
out
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue