1#if !defined(RESIP_GENERIC_IP_ADDRESS_HXX)
2#define RESIP_GENERIC_IP_ADDRESS_HXX
32 if (addr.sa_family == AF_INET6)
34 v6Address =
reinterpret_cast<const sockaddr_in6&
>(addr);
39 v4Address =
reinterpret_cast<const sockaddr_in&
>(addr);
55 if (
address.sa_family == AF_INET)
57 return sizeof(sockaddr_in);
60 else if (
address.sa_family == AF_INET6)
62 return sizeof(sockaddr_in6);
71 return address.sa_family == AF_INET;
77 if (
address.sa_family == AF_INET6)
return true;
87 sockaddr_in6 v6Address;
96 if (
address.sa_family == AF_INET)
104 return (v6Address.sin6_port == addr.v6Address.sin6_port &&
105 memcmp(&v6Address.sin6_addr, &addr.v6Address.sin6_addr,
sizeof(in6_addr)) == 0);
118 if (
address.sa_family == AF_INET && addr.
address.sa_family == AF_INET)
142 else if (
address.sa_family == AF_INET6 &&
143 addr.
address.sa_family == AF_INET6)
145 int c = memcmp(&v6Address.sin6_addr,
146 &addr.v6Address.sin6_addr,
156 else if (v6Address.sin6_port < addr.v6Address.sin6_port)
165 else if (
address.sa_family == AF_INET6 &&
166 addr.
address.sa_family == AF_INET)
170 else if (
address.sa_family == AF_INET &&
171 addr.
address.sa_family == AF_INET6)
#define resip_assert(x)
This file needs to work for both C and C++ code.
Handles cross-platform sockets compatibility.
This file is used to handle compatibility fixes/tweaks so reSIProcate can function on multiple platfo...
dcm! – add UnusedChecking(_enum) below;
EncodeStream & operator<<(EncodeStream &strm, const BaseException &e)
Represents an IP-address and port (V4 or V6).
friend EncodeStream & operator<<(EncodeStream &strm, const GenericIPAddress &addr)
bool operator<(const GenericIPAddress &addr) const
bool operator==(const GenericIPAddress &addr) const
GenericIPAddress(const sockaddr_in &v4)
GenericIPAddress(const sockaddr &addr)