|
|
|
|
@ -52,8 +52,8 @@ namespace ZeroTier {
|
|
|
|
|
* |
|
|
|
|
* This is basically a "mixin" for sockaddr_storage. It adds methods and |
|
|
|
|
* operators, but does not modify the structure. This can be cast to/from |
|
|
|
|
* sockaddr_storage and used interchangeably. Don't change this as it's |
|
|
|
|
* used in a few places. |
|
|
|
|
* sockaddr_storage and used interchangeably. DO NOT change this by e.g. |
|
|
|
|
* adding non-static fields, since much code depends on this identity. |
|
|
|
|
*/ |
|
|
|
|
struct InetAddress : public sockaddr_storage |
|
|
|
|
{ |
|
|
|
|
@ -326,7 +326,7 @@ struct InetAddress : public sockaddr_storage
|
|
|
|
|
inline bool isV6() const throw() { return (ss_family == AF_INET6); } |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @return pointer to raw IP address bytes |
|
|
|
|
* @return pointer to raw address bytes or NULL if not available |
|
|
|
|
*/ |
|
|
|
|
inline const void *rawIpData() const |
|
|
|
|
throw() |
|
|
|
|
@ -338,19 +338,6 @@ struct InetAddress : public sockaddr_storage
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @return pointer to raw IP address bytes |
|
|
|
|
*/ |
|
|
|
|
inline void *rawIpData() |
|
|
|
|
throw() |
|
|
|
|
{ |
|
|
|
|
switch(ss_family) { |
|
|
|
|
case AF_INET: return (void *)&(reinterpret_cast<struct sockaddr_in *>(this)->sin_addr.s_addr); |
|
|
|
|
case AF_INET6: return (void *)(reinterpret_cast<struct sockaddr_in6 *>(this)->sin6_addr.s6_addr); |
|
|
|
|
default: return 0; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Performs an IP-only comparison or, if that is impossible, a memcmp() |
|
|
|
|
* |
|
|
|
|
|