}
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);
}
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;