mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2026-07-21 01:59:44 +00:00
Codechange: use scoped enum for PacketUDPType
This commit is contained in:
@@ -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
@@ -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:
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user