1
0
mirror of https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git synced 2025-07-18 11:19:10 +00:00

Remove almost all uses of NetAddress.

This probably has a bunch of bugs because of Network Order/Host Order
issues. If we intend to actually support BE architectures, these
problems are going to get much much worse :(
This commit is contained in:
Darryl Pogue
2012-03-12 21:59:10 -07:00
parent 4b3d4a0d83
commit 4737e791cb
10 changed files with 38 additions and 80 deletions

View File

@ -547,12 +547,11 @@ static SOCKET ListenSocket (NetAddress * listenAddr) {
sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_port = htons((uint16_t)port);
addr.sin_addr.S_un.S_addr = htonl(node);
addr.sin_addr.S_un.S_addr = node;
memset(addr.sin_zero, 0, sizeof(addr.sin_zero));
if (bind(s, (sockaddr *) &addr, sizeof(addr))) {
wchar_t str[32];
NetAddressToString(*listenAddr, str, arrsize(str), kNetAddressFormatAll);
LogMsg(kLogError, "bind to addr %s failed (err %u)", str, WSAGetLastError());
plString str = listenAddr->AsString();
LogMsg(kLogError, "bind to addr %s failed (err %u)", str.c_str(), WSAGetLastError());
break;
}

View File

@ -340,13 +340,10 @@ void AsyncAddressLookupAddr (
lookup->lookupProc = lookupProc;
lookup->port = 1;
lookup->param = param;
NetAddressToString(
address,
lookup->name,
arrsize(lookup->name),
kNetAddressFormatNodeNumber
);
plString str = address.GetHostString();
lookup->name = str.toUtf16().GetData();
s_critsect.Enter();
{
// Start the lookup thread if it wasn't started already

View File

@ -57,7 +57,7 @@ plNetAddress::plNetAddress(uint32_t addr, uint16_t port)
SetPort(port);
}
plNetAddress::plNetAddress(const char * addr, uint16_t port)
plNetAddress::plNetAddress(const char* addr, uint16_t port)
{
Clear();
SetHost(addr);
@ -103,6 +103,11 @@ plString plNetAddress::GetHostString() const
}
uint32_t plNetAddress::GetHost() const
{
return ntohl(fAddr.sin_addr.s_addr);
}
uint32_t plNetAddress::GetHostBE() const
{
return fAddr.sin_addr.s_addr;
}
@ -122,6 +127,13 @@ bool plNetAddress::SetHost(const char* hostname)
}
bool plNetAddress::SetHost(uint32_t addr)
{
fAddr.sin_addr.s_addr = htonl(addr);
fAddr.sin_family = AF_INET;
return true;
}
bool plNetAddress::SetHostBE(uint32_t addr)
{
memcpy(&fAddr.sin_addr, &addr,sizeof(addr));
fAddr.sin_family = AF_INET;

View File

@ -95,8 +95,10 @@ public:
bool SetPort(uint16_t port);
uint32_t GetHost() const;
uint32_t GetHostBE() const;
bool SetHost(const char* hostname);
bool SetHost(uint32_t ip4addr);
bool SetHostBE(uint32_t addr);
const AddressType& GetAddressInfo() const { return fAddr; }
AddressType& GetAddressInfo() { return fAddr; }

View File

@ -94,30 +94,6 @@ static NetAddressNode NodeFromString (const wchar_t * string[]) {
*
***/
//===========================================================================
void NetAddressToString (
const NetAddress & addr,
wchar_t * str,
unsigned chars,
ENetAddressFormat format
) {
ASSERT(str);
static const wchar_t * s_fmts[] = {
L"%S", // kNetAddressFormatNodeNumber
L"%S:%u", // kNetAddressFormatAll
};
ASSERT(format < arrsize(s_fmts));
const sockaddr_in & inetaddr = * (const sockaddr_in *) &addr;
StrPrintf(
str,
chars,
s_fmts[format],
inet_ntoa(inetaddr.sin_addr),
ntohs(inetaddr.sin_port)
);
}
//===========================================================================
bool NetAddressFromString (NetAddress * addr, const wchar_t str[], unsigned defaultPort) {
ASSERT(addr);
@ -146,14 +122,3 @@ bool NetAddressFromString (NetAddress * addr, const wchar_t str[], unsigned defa
// address already zeroed
return false;
}
//===========================================================================
void NetAddressNodeToString (
NetAddressNode node,
wchar_t * str,
unsigned chars
) {
in_addr addr;
addr.S_un.S_addr = htonl(node);
StrPrintf(str, chars, L"%S", inet_ntoa(addr));
}

View File

@ -74,19 +74,6 @@ typedef uint32_t NetAddressNode;
*
***/
enum ENetAddressFormat {
kNetAddressFormatNodeNumber,
kNetAddressFormatAll,
kNumNetAddressFormats
};
void NetAddressToString (
const NetAddress & addr,
wchar_t * str,
unsigned chars,
ENetAddressFormat format
);
// 'str' must be in the form of a dotted IP address (IPv4 or IPv6)
// - names which require DNS lookup will cause the function to return false
bool NetAddressFromString (
@ -95,10 +82,4 @@ bool NetAddressFromString (
unsigned defaultPort
);
void NetAddressNodeToString (
NetAddressNode node,
wchar_t * str,
unsigned chars
);
#endif