summaryrefslogtreecommitdiff
path: root/src/network/core/address.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/network/core/address.h')
-rw-r--r--src/network/core/address.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/network/core/address.h b/src/network/core/address.h
index d2d43b4a9..9fd40eaee 100644
--- a/src/network/core/address.h
+++ b/src/network/core/address.h
@@ -33,6 +33,7 @@ private:
char hostname[NETWORK_HOSTNAME_LENGTH]; ///< The hostname
int address_length; ///< The length of the resolved address
sockaddr_storage address; ///< The resolved address
+ bool resolved; ///< Whether the address has been (tried to be) resolved
/**
* Helper function to resolve something to a socket.
@@ -50,7 +51,8 @@ public:
*/
NetworkAddress(struct sockaddr_storage &address, int address_length) :
address_length(address_length),
- address(address)
+ address(address),
+ resolved(address_length != 0)
{
*this->hostname = '\0';
}
@@ -61,7 +63,8 @@ public:
* @param address_length The length of the address.
*/
NetworkAddress(sockaddr *address, int address_length) :
- address_length(address_length)
+ address_length(address_length),
+ resolved(address_length != 0)
{
*this->hostname = '\0';
memset(&this->address, 0, sizeof(this->address));
@@ -75,7 +78,8 @@ public:
* @param family the address family
*/
NetworkAddress(const char *hostname = "", uint16 port = 0, int family = AF_UNSPEC) :
- address_length(0)
+ address_length(0),
+ resolved(false)
{
/* Also handle IPv6 bracket enclosed hostnames */
if (StrEmpty(hostname)) hostname = "";
@@ -123,7 +127,7 @@ public:
*/
bool IsResolved() const
{
- return this->address_length != 0;
+ return this->resolved;
}
bool IsFamily(int family);