Browse Source

Validate echo requests and replies

pull/8391/head
staphen 3 months ago committed by Anders Jenbo
parent
commit
0262550b5e
  1. 5
      Source/dvlnet/base.cpp

5
Source/dvlnet/base.cpp

@ -155,6 +155,10 @@ tl::expected<void, PacketError> base::HandleDisconnect(packet &pkt)
tl::expected<void, PacketError> base::HandleEchoRequest(packet &pkt)
{
// If we have already left the game,
// there is no need to respond to echoes
if (plr_self == PLR_BROADCAST) return {};
return pkt.Time()
.and_then([&](cookie_t &&pktTime) {
return pktfty->make_packet<PT_ECHO_REPLY>(plr_self, pkt.Source(), pktTime);
@ -168,6 +172,7 @@ tl::expected<void, PacketError> base::HandleEchoReply(packet &pkt)
{
const uint32_t now = SDL_GetTicks();
plr_t src = pkt.Source();
if (src >= MAX_PLRS) return {};
return pkt.Time().transform([&](cookie_t &&pktTime) {
PlayerState &playerState = playerStateTable_[src];
playerState.roundTripLatency = now - pktTime;

Loading…
Cancel
Save