Cleanup and refactor a bit.

This commit is contained in:
Adam Ierymenko 2022-09-29 15:03:51 -04:00
parent 75f407c137
commit ceacc932de
No known key found for this signature in database
GPG key ID: C8877CF2D7A5D7F3
2 changed files with 20 additions and 20 deletions

View file

@ -835,20 +835,20 @@ impl<HostSystemImpl: HostSystem> Node<HostSystemImpl> {
debug_assert!(!addresses.is_empty()); debug_assert!(!addresses.is_empty());
if !addresses.is_empty() { if !addresses.is_empty() {
if let Some(root) = self.best_root() { if let Some(root) = self.best_root() {
let mut packet = PacketBuffer::new(); let mut packet = host_system.get_buffer();
packet.set_size(v1::HEADER_SIZE); packet.set_size(v1::HEADER_SIZE);
let _ = packet.append_u8(verbs::VL1_WHOIS); let _ = packet.append_u8(verbs::VL1_WHOIS);
for a in addresses.iter() { for a in addresses.iter() {
if (packet.len() + ADDRESS_SIZE) > UDP_DEFAULT_MTU { if (packet.len() + ADDRESS_SIZE) > UDP_DEFAULT_MTU {
root.send(host_system, None, self, time_ticks, &mut packet); root.send(host_system, None, self, time_ticks, packet);
packet.clear(); packet = host_system.get_buffer();
packet.set_size(v1::HEADER_SIZE); packet.set_size(v1::HEADER_SIZE);
let _ = packet.append_u8(verbs::VL1_WHOIS); let _ = packet.append_u8(verbs::VL1_WHOIS);
} }
let _ = packet.append_bytes_fixed(&a.to_bytes()); let _ = packet.append_bytes_fixed(&a.to_bytes());
} }
if packet.len() > (v1::HEADER_SIZE + 1) { if packet.len() > (v1::HEADER_SIZE + 1) {
root.send(host_system, None, self, time_ticks, &mut packet); root.send(host_system, None, self, time_ticks, packet);
} }
} }
} }

View file

@ -218,7 +218,7 @@ impl<HostSystemImpl: HostSystem> Peer<HostSystemImpl> {
local_socket: Option<&HostSystemImpl::LocalSocket>, local_socket: Option<&HostSystemImpl::LocalSocket>,
local_interface: Option<&HostSystemImpl::LocalInterface>, local_interface: Option<&HostSystemImpl::LocalInterface>,
max_fragment_size: usize, max_fragment_size: usize,
packet: &PacketBuffer, packet: PooledPacketBuffer,
) { ) {
let packet_size = packet.len(); let packet_size = packet.len();
if packet_size > max_fragment_size { if packet_size > max_fragment_size {
@ -270,7 +270,7 @@ impl<HostSystemImpl: HostSystem> Peer<HostSystemImpl> {
path: Option<&Arc<Path<HostSystemImpl>>>, path: Option<&Arc<Path<HostSystemImpl>>>,
node: &Node<HostSystemImpl>, node: &Node<HostSystemImpl>,
time_ticks: i64, time_ticks: i64,
packet: &mut PacketBuffer, mut packet: PooledPacketBuffer,
) -> bool { ) -> bool {
let mut _path_arc = None; let mut _path_arc = None;
let path = if let Some(path) = path { let path = if let Some(path) = path {
@ -286,7 +286,7 @@ impl<HostSystemImpl: HostSystem> Peer<HostSystemImpl> {
let max_fragment_size = path.endpoint.max_fragment_size(); let max_fragment_size = path.endpoint.max_fragment_size();
if self.remote_node_info.read().remote_protocol_version >= 12 || self.identity.p384.is_some() { if self.remote_node_info.read().remote_protocol_version >= 12 {
let flags_cipher_hops = if packet.len() > max_fragment_size { let flags_cipher_hops = if packet.len() > max_fragment_size {
v1::HEADER_FLAG_FRAGMENTED | v1::CIPHER_AES_GMAC_SIV v1::HEADER_FLAG_FRAGMENTED | v1::CIPHER_AES_GMAC_SIV
} else { } else {
@ -388,7 +388,7 @@ impl<HostSystemImpl: HostSystem> Peer<HostSystemImpl> {
let max_fragment_size = destination.max_fragment_size(); let max_fragment_size = destination.max_fragment_size();
let time_ticks = host_system.time_ticks(); let time_ticks = host_system.time_ticks();
let mut packet = PacketBuffer::new(); let mut packet = host_system.get_buffer();
{ {
let message_id = self.v1_proto_next_message_id(); let message_id = self.v1_proto_next_message_id();
@ -408,7 +408,7 @@ impl<HostSystemImpl: HostSystem> Peer<HostSystemImpl> {
} }
debug_assert_eq!(packet.len(), 41); debug_assert_eq!(packet.len(), 41);
assert!(node.identity.write_public(&mut packet, self.identity.p384.is_none()).is_ok()); assert!(node.identity.write_public(packet.as_mut(), self.identity.p384.is_none()).is_ok());
let (_, poly1305_key) = v1_proto_salsa_poly_create( let (_, poly1305_key) = v1_proto_salsa_poly_create(
&self.v1_proto_static_secret, &self.v1_proto_static_secret,
@ -416,7 +416,7 @@ impl<HostSystemImpl: HostSystem> Peer<HostSystemImpl> {
packet.len(), packet.len(),
); );
let mac = poly1305::compute(&poly1305_key, packet.as_bytes_starting_at(v1::HEADER_SIZE).unwrap()); let mac = poly1305::compute(&poly1305_key, packet.as_bytes_starting_at(v1::HEADER_SIZE).unwrap());
packet.as_mut()[v1::MAC_FIELD_INDEX..v1::MAC_FIELD_INDEX + 8].copy_from_slice(&mac[0..8]); packet.as_bytes_mut()[v1::MAC_FIELD_INDEX..v1::MAC_FIELD_INDEX + 8].copy_from_slice(&mac[0..8]);
self.last_send_time_ticks.store(time_ticks, Ordering::Relaxed); self.last_send_time_ticks.store(time_ticks, Ordering::Relaxed);
@ -436,11 +436,11 @@ impl<HostSystemImpl: HostSystem> Peer<HostSystemImpl> {
Some(&p.local_socket), Some(&p.local_socket),
Some(&p.local_interface), Some(&p.local_interface),
max_fragment_size, max_fragment_size,
&packet, packet,
); );
p.log_send_anything(time_ticks); p.log_send_anything(time_ticks);
} else { } else {
self.v1_proto_internal_send(host_system, destination, None, None, max_fragment_size, &packet); self.v1_proto_internal_send(host_system, destination, None, None, max_fragment_size, packet);
} }
return true; return true;
@ -594,7 +594,7 @@ impl<HostSystemImpl: HostSystem> Peer<HostSystemImpl> {
); );
} }
let mut packet = PacketBuffer::new(); let mut packet = host_system.get_buffer();
packet.set_size(v1::HEADER_SIZE); packet.set_size(v1::HEADER_SIZE);
{ {
let f: &mut ( let f: &mut (
@ -611,7 +611,7 @@ impl<HostSystemImpl: HostSystem> Peer<HostSystemImpl> {
f.1.version_revision = VERSION_REVISION.to_be_bytes(); f.1.version_revision = VERSION_REVISION.to_be_bytes();
} }
self.send(host_system, Some(source_path), node, time_ticks, &mut packet); self.send(host_system, Some(source_path), node, time_ticks, packet);
return PacketHandlerResult::Ok; return PacketHandlerResult::Ok;
} }
} }
@ -756,7 +756,7 @@ impl<HostSystemImpl: HostSystem> Peer<HostSystemImpl> {
f.in_re_message_id = message_id.to_ne_bytes(); f.in_re_message_id = message_id.to_ne_bytes();
}; };
let mut packet = PacketBuffer::new(); let mut packet = host_system.get_buffer();
init_packet(&mut packet); init_packet(&mut packet);
let mut addresses = payload.as_bytes(); let mut addresses = payload.as_bytes();
@ -766,8 +766,8 @@ impl<HostSystemImpl: HostSystem> Peer<HostSystemImpl> {
if let Some(peer) = node.peer(zt_address) { if let Some(peer) = node.peer(zt_address) {
if let Ok(id_bytes) = peer.identity.to_public_bytes(self.identity.p384.is_none()) { if let Ok(id_bytes) = peer.identity.to_public_bytes(self.identity.p384.is_none()) {
if (packet.capacity() - packet.len()) < id_bytes.len() { if (packet.capacity() - packet.len()) < id_bytes.len() {
self.send(host_system, None, node, time_ticks, &mut packet); self.send(host_system, None, node, time_ticks, packet);
packet.clear(); packet = host_system.get_buffer();
init_packet(&mut packet); init_packet(&mut packet);
} }
let _ = packet.append_bytes(id_bytes.as_bytes()); let _ = packet.append_bytes(id_bytes.as_bytes());
@ -780,7 +780,7 @@ impl<HostSystemImpl: HostSystem> Peer<HostSystemImpl> {
} }
} }
self.send(host_system, None, node, time_ticks, &mut packet); self.send(host_system, None, node, time_ticks, packet);
} }
return PacketHandlerResult::Ok; return PacketHandlerResult::Ok;
} }
@ -808,7 +808,7 @@ impl<HostSystemImpl: HostSystem> Peer<HostSystemImpl> {
payload: &PacketBuffer, payload: &PacketBuffer,
) -> PacketHandlerResult { ) -> PacketHandlerResult {
if inner.should_communicate_with(&self.identity) || node.is_peer_root(self) { if inner.should_communicate_with(&self.identity) || node.is_peer_root(self) {
let mut packet = PacketBuffer::new(); let mut packet = host_system.get_buffer();
packet.set_size(v1::HEADER_SIZE); packet.set_size(v1::HEADER_SIZE);
{ {
let mut f: &mut v1::message_component_structs::OkHeader = packet.append_struct_get_mut().unwrap(); let mut f: &mut v1::message_component_structs::OkHeader = packet.append_struct_get_mut().unwrap();
@ -817,7 +817,7 @@ impl<HostSystemImpl: HostSystem> Peer<HostSystemImpl> {
f.in_re_message_id = message_id.to_ne_bytes(); f.in_re_message_id = message_id.to_ne_bytes();
} }
if packet.append_bytes(payload.as_bytes()).is_ok() { if packet.append_bytes(payload.as_bytes()).is_ok() {
self.send(host_system, None, node, time_ticks, &mut packet); self.send(host_system, None, node, time_ticks, packet);
} }
} else { } else {
debug_event!( debug_event!(