(svn r15917) -Codechange: remove the latest traces of NetworkAddress::GetIP.

This commit is contained in:
rubidium 2009-04-02 20:39:30 +00:00
parent 1e205e01b8
commit c5160c7c8e
6 changed files with 21 additions and 38 deletions

View File

@ -21,17 +21,6 @@ const char *NetworkAddress::GetHostname()
return this->hostname;
}
uint32 NetworkAddress::GetIP()
{
assert(this->address.ss_family == AF_INET);
if (!this->resolved) {
((struct sockaddr_in *)&this->address)->sin_addr.s_addr = NetworkResolveHost(this->hostname);
this->resolved = true;
}
return ((struct sockaddr_in *)&this->address)->sin_addr.s_addr;
}
uint16 NetworkAddress::GetPort() const
{
switch (this->address.ss_family) {
@ -66,7 +55,10 @@ const char *NetworkAddress::GetAddressAsString()
const sockaddr_storage *NetworkAddress::GetAddress()
{
if (!this->resolved) this->GetIP();
if (!this->resolved) {
((struct sockaddr_in *)&this->address)->sin_addr.s_addr = NetworkResolveHost(this->hostname);
this->resolved = true;
}
return &this->address;
}

View File

@ -97,13 +97,6 @@ public:
*/
const sockaddr_storage *GetAddress();
/**
* Get the IP address. If the IP has not been resolved yet this will resolve
* it possibly blocking this function for a while
* @return the IP address
*/
uint32 GetIP();
/**
* Get the port
* @return the port
@ -131,12 +124,20 @@ public:
*/
bool operator == (NetworkAddress &address)
{
if (this->IsResolved() != address.IsResolved()) return false;
if (this->IsResolved()) return memcmp(&this->address, &address.address, sizeof(this->address)) == 0;
if (this->IsResolved() && address.IsResolved()) return memcmp(&this->address, &address.address, sizeof(this->address)) == 0;
return this->GetPort() == address.GetPort() && strcmp(this->GetHostname(), address.GetHostname()) == 0;
}
NetworkAddress& operator = (const NetworkAddress &other)
{
if (this != &other) { // protect against invalid self-assignment
free(this->hostname);
memcpy(this, &other, sizeof(*this));
if (other.hostname != NULL) this->hostname = strdup(other.hostname);
}
return *this;
}
};
#endif /* ENABLE_NETWORK */

View File

@ -41,13 +41,8 @@ void TCPConnecter::Connect()
if (!SetNoDelay(this->sock)) DEBUG(net, 1, "Setting TCP_NODELAY failed");
struct sockaddr_in sin;
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = address.GetIP();
sin.sin_port = htons(address.GetPort());
/* We failed to connect for which reason what so ever */
if (connect(this->sock, (struct sockaddr*) &sin, sizeof(sin)) != 0) {
if (connect(this->sock, (struct sockaddr*)this->address.GetAddress(), sizeof(*this->address.GetAddress())) != 0) {
closesocket(this->sock);
this->sock = INVALID_SOCKET;
this->aborted = true;

View File

@ -1090,7 +1090,6 @@ void NetworkStartDebugLog(NetworkAddress address)
{
extern SOCKET _debug_socket; // Comes from debug.c
SOCKET s;
struct sockaddr_in sin;
DEBUG(net, 0, "Redirecting DEBUG() to %s:%d", address.GetHostname(), address.GetPort());
@ -1102,12 +1101,8 @@ void NetworkStartDebugLog(NetworkAddress address)
if (!SetNoDelay(s)) DEBUG(net, 1, "Setting TCP_NODELAY failed");
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = address.GetIP();
sin.sin_port = htons(address.GetPort());
if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) != 0) {
DEBUG(net, 0, "Failed to redirection DEBUG() to %s:%d", address.GetHostname(), address.GetPort());
if (connect(s, (struct sockaddr *)address.GetAddress(), sizeof(*address.GetAddress())) != 0) {
DEBUG(net, 0, "Failed to redirection DEBUG() to %s", address.GetAddressAsString());
return;
}

View File

@ -65,7 +65,7 @@ static void NetworkGameListHandleDelayedInsert()
* @return a point to the newly added or already existing item */
NetworkGameList *NetworkGameListAddItem(NetworkAddress address)
{
if (!address.IsResolved()) return NULL;
if (StrEmpty(address.GetHostname())) return NULL;
NetworkGameList *item, *prev_item;

View File

@ -429,7 +429,7 @@ void NetworkUDPQueryServerThread(void *pntr)
/* Clear item in gamelist */
NetworkGameList *item = CallocT<NetworkGameList>(1);
item->address = NetworkAddress(*info);
item->address = *info;
strecpy(item->info.server_name, info->GetHostname(), lastof(item->info.server_name));
strecpy(item->info.hostname, info->GetHostname(), lastof(item->info.hostname));
item->manually = info->manually;