Codechange: use scoped enum for PacketUDPType

This commit is contained in:
Rubidium
2026-01-16 20:52:05 +01:00
committed by rubidium42
parent 02e73ae4ba
commit fb817f456d
3 changed files with 23 additions and 17 deletions
+4 -4
View File
@@ -162,8 +162,8 @@ void NetworkUDPSocketHandler::HandleUDPPacket(Packet &p, NetworkAddress &client_
PacketUDPType type = static_cast<PacketUDPType>(p.Recv_uint8());
switch (type) {
case PACKET_UDP_CLIENT_FIND_SERVER: this->Receive_CLIENT_FIND_SERVER(p, client_addr); break;
case PACKET_UDP_SERVER_RESPONSE: this->Receive_SERVER_RESPONSE(p, client_addr); break;
case PacketUDPType::ClientFindServer: this->ReceiveClientFindServer(p, client_addr); break;
case PacketUDPType::ServerResponse: this->ReceiveServerResponse(p, client_addr); break;
default:
Debug(net, 0, "[udp] Received invalid packet type {} from {}", type, client_addr.GetAddressAsString());
@@ -181,5 +181,5 @@ void NetworkUDPSocketHandler::ReceiveInvalidPacket(PacketUDPType type, NetworkAd
Debug(net, 0, "[udp] Received packet type {} on wrong port from {}", type, client_addr.GetAddressAsString());
}
void NetworkUDPSocketHandler::Receive_CLIENT_FIND_SERVER(Packet &, NetworkAddress &client_addr) { this->ReceiveInvalidPacket(PACKET_UDP_CLIENT_FIND_SERVER, client_addr); }
void NetworkUDPSocketHandler::Receive_SERVER_RESPONSE(Packet &, NetworkAddress &client_addr) { this->ReceiveInvalidPacket(PACKET_UDP_SERVER_RESPONSE, client_addr); }
void NetworkUDPSocketHandler::ReceiveClientFindServer(Packet &, NetworkAddress &client_addr) { this->ReceiveInvalidPacket(PacketUDPType::ClientFindServer, client_addr); }
void NetworkUDPSocketHandler::ReceiveServerResponse(Packet &, NetworkAddress &client_addr) { this->ReceiveInvalidPacket(PacketUDPType::ServerResponse, client_addr); }
+13 -7
View File
@@ -13,11 +13,17 @@
#include "address.h"
#include "packet.h"
/** Enum with all types of UDP packets. The order MUST not be changed **/
enum PacketUDPType : uint8_t {
PACKET_UDP_CLIENT_FIND_SERVER, ///< Queries a game server for game information
PACKET_UDP_SERVER_RESPONSE, ///< Reply of the game server with game information
PACKET_UDP_END, ///< Must ALWAYS be on the end of this list!! (period)
/**
* Enum with all types of UDP packets.
* @important The order MUST not be changed.
*/
enum class PacketUDPType : uint8_t {
ClientFindServer, ///< Queries a game server for game information
ServerResponse, ///< Reply of the game server with game information
};
/** Mark PacketUDPType as PacketType. */
template <> struct IsEnumPacketType<PacketUDPType> {
static constexpr bool value = true; ///< This is an enumeration of a PacketType.
};
/** Base socket handler for all UDP sockets */
@@ -35,14 +41,14 @@ protected:
* @param p The received packet.
* @param client_addr The origin of the packet.
*/
virtual void Receive_CLIENT_FIND_SERVER(Packet &p, NetworkAddress &client_addr);
virtual void ReceiveClientFindServer(Packet &p, NetworkAddress &client_addr);
/**
* Response to a query letting the client know we are here.
* @param p The received packet.
* @param client_addr The origin of the packet.
*/
virtual void Receive_SERVER_RESPONSE(Packet &p, NetworkAddress &client_addr);
virtual void ReceiveServerResponse(Packet &p, NetworkAddress &client_addr);
void HandleUDPPacket(Packet &p, NetworkAddress &client_addr);
public:
+6 -6
View File
@@ -52,7 +52,7 @@ static UDPSocket _udp_server("Server"); ///< udp server socket
/** Helper class for handling all server side communication. */
class ServerNetworkUDPSocketHandler : public NetworkUDPSocketHandler {
protected:
void Receive_CLIENT_FIND_SERVER(Packet &p, NetworkAddress &client_addr) override;
void ReceiveClientFindServer(Packet &p, NetworkAddress &client_addr) override;
public:
/**
* Create the socket.
@@ -62,9 +62,9 @@ public:
~ServerNetworkUDPSocketHandler() override = default;
};
void ServerNetworkUDPSocketHandler::Receive_CLIENT_FIND_SERVER(Packet &, NetworkAddress &client_addr)
void ServerNetworkUDPSocketHandler::ReceiveClientFindServer(Packet &, NetworkAddress &client_addr)
{
Packet packet(this, PACKET_UDP_SERVER_RESPONSE);
Packet packet(this, PacketUDPType::ServerResponse);
this->SendPacket(packet, client_addr);
Debug(net, 7, "Queried from {}", client_addr.GetHostname());
@@ -75,12 +75,12 @@ void ServerNetworkUDPSocketHandler::Receive_CLIENT_FIND_SERVER(Packet &, Network
/** Helper class for handling all client side communication. */
class ClientNetworkUDPSocketHandler : public NetworkUDPSocketHandler {
protected:
void Receive_SERVER_RESPONSE(Packet &p, NetworkAddress &client_addr) override;
void ReceiveServerResponse(Packet &p, NetworkAddress &client_addr) override;
public:
~ClientNetworkUDPSocketHandler() override = default;
};
void ClientNetworkUDPSocketHandler::Receive_SERVER_RESPONSE(Packet &, NetworkAddress &client_addr)
void ClientNetworkUDPSocketHandler::ReceiveServerResponse(Packet &, NetworkAddress &client_addr)
{
Debug(net, 3, "Server response from {}", client_addr.GetAddressAsString());
@@ -96,7 +96,7 @@ static void NetworkUDPBroadCast(NetworkUDPSocketHandler &socket)
for (NetworkAddress &addr : _broadcast_list) {
Debug(net, 5, "Broadcasting to {}", addr.GetHostname());
Packet p(&socket, PACKET_UDP_CLIENT_FIND_SERVER);
Packet p(&socket, PacketUDPType::ClientFindServer);
socket.SendPacket(p, addr, true, true);
}
}