bugfixes with peer addressing
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Sat, 2 Apr 2022 17:38:45 +0000 (12:38 -0500)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Sat, 2 Apr 2022 17:38:45 +0000 (12:38 -0500)
src/host.onyx
src/peer.onyx

index 538da4a561aec80fb4ff70e856f33e701e238f61..3ab8264eb4df0dc38e13a55b104a676037873f33 100644 (file)
@@ -218,7 +218,7 @@ host_handle_incoming_commands :: (host: ^Host) -> bool {
     }
 
     if peer != null {
-        peer.addr = host.received_addr;
+        if peer.addr.port != host.received_addr.port do return false;
     }
 
     string.advance(^current_data, sizeof typeof *header);
index 80a273240e00a543636640573261bc7e10206067..fb3535a4d3c8e4ff398be9a799e2ace5824e2d20 100644 (file)
@@ -250,6 +250,14 @@ peer_send_acknowledgements :: (peer: ^Peer) {
 }
 
 peer_send_ping :: (peer: ^Peer) {
+    for peer.sent_reliable_commands {
+        if command_get_effective(it.command.command) == .Ping do return;
+    }
+
+    for peer.outgoing_commands {
+        if command_get_effective(it.command.command) == .Ping do return;
+    }
+
     ping := new(Protocol_Ping);
     ping.command = .Ping;
     ping.command |= .Flag_Acknowledge;