(svn r15984) -Codechange: prepare the UDP receiver to process multiple types of returned server lists.
This commit is contained in:
@@ -58,9 +58,9 @@ const char *NetworkAddress::GetAddressAsString(bool with_family)
|
||||
/* 6 = for the : and 5 for the decimal port number */
|
||||
static char buf[NETWORK_HOSTNAME_LENGTH + 6 + 7];
|
||||
char *p = buf;
|
||||
if (this->address.ss_family == AF_INET6) p = strecpy(p, "[", lastof(buf));
|
||||
if (this->GetAddress()->ss_family == AF_INET6) p = strecpy(p, "[", lastof(buf));
|
||||
p = strecpy(p, this->GetHostname(), lastof(buf));
|
||||
if (this->address.ss_family == AF_INET6) p = strecpy(p, "]", lastof(buf));
|
||||
if (this->GetAddress()->ss_family == AF_INET6) p = strecpy(p, "]", lastof(buf));
|
||||
p += seprintf(p, lastof(buf), ":%d", this->GetPort());
|
||||
|
||||
if (with_family) {
|
||||
|
@@ -90,6 +90,15 @@ enum PacketUDPType {
|
||||
PACKET_UDP_END ///< Must ALWAYS be on the end of this list!! (period)
|
||||
};
|
||||
|
||||
/** The types of server lists we can get */
|
||||
enum ServerListType {
|
||||
SLT_IPv4 = 0, ///< Get the IPv4 addresses
|
||||
SLT_IPv6 = 1, ///< Get the IPv6 addresses
|
||||
SLT_AUTODETECT, ///< Autodetect the type based on the connection
|
||||
|
||||
SLT_END = SLT_AUTODETECT ///< End of 'arrays' marker
|
||||
};
|
||||
|
||||
#define DECLARE_UDP_RECEIVE_COMMAND(type) virtual void NetworkPacketReceive_## type ##_command(Packet *p, NetworkAddress *client_addr)
|
||||
#define DEF_UDP_RECEIVE_COMMAND(cls, type) void cls ##NetworkUDPSocketHandler::NetworkPacketReceive_ ## type ## _command(Packet *p, NetworkAddress *client_addr)
|
||||
|
||||
|
Reference in New Issue
Block a user