Use a single function for address to text translation (instead of duplicating code)
git-svn-id: https://warzone2100.svn.sourceforge.net/svnroot/warzone2100/trunk@7302 4a71c877-e1ca-e34f-864e-861f7616d084master
parent
dc70524cd2
commit
a3cbe4c0c3
|
@ -331,6 +331,27 @@ static void freeaddrinfo(struct addrinfo *res)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static int addressToText(const struct sockaddr* addr, char* buf, size_t size)
|
||||||
|
{
|
||||||
|
switch (addr->sa_family)
|
||||||
|
{
|
||||||
|
case AF_INET:
|
||||||
|
{
|
||||||
|
unsigned char* address = (unsigned char*)&((const struct sockaddr_in*)addr)->sin_addr.s_addr;
|
||||||
|
|
||||||
|
return snprintf(buf, size,
|
||||||
|
"%i.%i.%i.%i",
|
||||||
|
(int)(address[0]),
|
||||||
|
(int)(address[1]),
|
||||||
|
(int)(address[2]),
|
||||||
|
(int)(address[3]));
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
ASSERT(!"Unknown address famliy", "Got non IPv4 address!");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static const char* strSockError(int error)
|
static const char* strSockError(int error)
|
||||||
{
|
{
|
||||||
#if defined(WZ_OS_WIN)
|
#if defined(WZ_OS_WIN)
|
||||||
|
@ -648,7 +669,7 @@ static Socket* socketAccept(Socket* sock)
|
||||||
|
|
||||||
static Socket* SocketOpen(const struct addrinfo* addr, unsigned int timeout)
|
static Socket* SocketOpen(const struct addrinfo* addr, unsigned int timeout)
|
||||||
{
|
{
|
||||||
const unsigned char* address;
|
char textAddress[40];
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
Socket* const conn = malloc(sizeof(*conn));
|
Socket* const conn = malloc(sizeof(*conn));
|
||||||
|
@ -661,8 +682,8 @@ static Socket* SocketOpen(const struct addrinfo* addr, unsigned int timeout)
|
||||||
|
|
||||||
ASSERT(addr != NULL, "NULL Socket provided");
|
ASSERT(addr != NULL, "NULL Socket provided");
|
||||||
|
|
||||||
address = (unsigned char*)&((const struct sockaddr_in*)addr->ai_addr)->sin_addr.s_addr;
|
addressToText(addr->ai_addr, textAddress, sizeof(textAddress));
|
||||||
debug(LOG_NET, "Connecting to %i.%i.%i.%i:%hd", (int)address[0], (int)address[1], (int)address[2], (int)address[3], ntohs(((const struct sockaddr_in*)addr->ai_addr)->sin_port));
|
debug(LOG_NET, "Connecting to %s:%hd", textAddress, ntohs(((const struct sockaddr_in*)addr->ai_addr)->sin_port));
|
||||||
|
|
||||||
conn->ready = false;
|
conn->ready = false;
|
||||||
conn->fd = socket(addr->ai_family, addr->ai_socktype, addr->ai_protocol);
|
conn->fd = socket(addr->ai_family, addr->ai_socktype, addr->ai_protocol);
|
||||||
|
@ -2944,16 +2965,7 @@ BOOL NETfindGame(void)
|
||||||
|
|
||||||
if (NetPlay.games[gamecount].desc.host[0] == '\0')
|
if (NetPlay.games[gamecount].desc.host[0] == '\0')
|
||||||
{
|
{
|
||||||
ASSERT(cur->ai_addr->sa_family == AF_INET, "Got non IPv4 address!");
|
addressToText(cur->ai_addr, NetPlay.games[gamecount].desc.host, sizeof(NetPlay.games[gamecount].desc.host));
|
||||||
|
|
||||||
unsigned char* address = (unsigned char*)&((const struct sockaddr_in*)cur->ai_addr)->sin_addr.s_addr;
|
|
||||||
|
|
||||||
snprintf(NetPlay.games[gamecount].desc.host, sizeof(NetPlay.games[gamecount].desc.host),
|
|
||||||
"%i.%i.%i.%i",
|
|
||||||
(int)(address[0]),
|
|
||||||
(int)(address[1]),
|
|
||||||
(int)(address[2]),
|
|
||||||
(int)(address[3]));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
++gamecount;
|
++gamecount;
|
||||||
|
@ -3025,14 +3037,7 @@ BOOL NETjoinGame(UDWORD gameNumber, const char* playername)
|
||||||
if (NETrecvGAMESTRUCT(&NetPlay.games[gameNumber])
|
if (NETrecvGAMESTRUCT(&NetPlay.games[gameNumber])
|
||||||
&& NetPlay.games[gameNumber].desc.host[0] == '\0')
|
&& NetPlay.games[gameNumber].desc.host[0] == '\0')
|
||||||
{
|
{
|
||||||
unsigned char* address = (unsigned char*)&((const struct sockaddr_in*)cur->ai_addr)->sin_addr.s_addr;
|
addressToText(cur->ai_addr, NetPlay.games[gameNumber].desc.host, sizeof(NetPlay.games[gameNumber].desc.host));
|
||||||
|
|
||||||
snprintf(NetPlay.games[gameNumber].desc.host, sizeof(NetPlay.games[gameNumber].desc.host),
|
|
||||||
"%i.%i.%i.%i",
|
|
||||||
(int)(address[0]),
|
|
||||||
(int)(address[1]),
|
|
||||||
(int)(address[2]),
|
|
||||||
(int)(address[3]));
|
|
||||||
}
|
}
|
||||||
freeaddrinfo(hosts);
|
freeaddrinfo(hosts);
|
||||||
// Allocate memory for a new socket
|
// Allocate memory for a new socket
|
||||||
|
|
Loading…
Reference in New Issue