From 3202112a77c42ae0f0b5eed14503779c69148746 Mon Sep 17 00:00:00 2001 From: Jonathan Schleifer Date: Sat, 15 Mar 2025 23:05:30 +0000 Subject: [PATCH] Fix accidentally dropped if statement FossilOrigin-Name: a6b27050840a017db78c30418d5417252f478685c687408dfe8f99fd6eaf9117 --- src/server.mm | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/server.mm b/src/server.mm index 0cf0db1..720c5ed 100644 --- a/src/server.mm +++ b/src/server.mm @@ -207,8 +207,8 @@ process(ENetPacket *packet, int sender) // sender may be -1 char text[MAXTRANS]; int cn = -1, type; - while (p < end) - switch (type = getint(p)) { + while (p < end) { + switch ((type = getint(p))) { case SV_TEXT: sgetstr(); break; @@ -294,13 +294,11 @@ process(ENetPacket *packet, int sender) // sender may be -1 send(sender, recvmap(sender)); return; - case SV_EXT: // allows for new features that require no server - // updates - { + // allows for new features that require no server updates + case SV_EXT: for (int n = getint(p); n; n--) getint(p); break; - } default: { int size = msgsizelookup(type); @@ -311,11 +309,13 @@ process(ENetPacket *packet, int sender) // sender may be -1 loopi(size - 1) getint(p); } } + } if (p > end) { disconnect_client(sender, @"end of packet"); return; } + multicast(packet, sender); } @@ -352,14 +352,16 @@ multicast(ENetPacket *packet, int sender) { size_t count = clients.count; for (size_t i = 0; i < count; i++) - send(i, packet); + if (i != sender) + send(i, packet); } void localclienttoserver(ENetPacket *packet) { process(packet, 0); - if (!packet->referenceCount) + + if (packet->referenceCount == 0) enet_packet_destroy(packet); }