diff options
Diffstat (limited to 'common/netd/libnetdutils/include/netdutils/InternetAddresses.h')
| -rw-r--r-- | common/netd/libnetdutils/include/netdutils/InternetAddresses.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/common/netd/libnetdutils/include/netdutils/InternetAddresses.h b/common/netd/libnetdutils/include/netdutils/InternetAddresses.h index d5cbe2b..d10cec7 100644 --- a/common/netd/libnetdutils/include/netdutils/InternetAddresses.h +++ b/common/netd/libnetdutils/include/netdutils/InternetAddresses.h @@ -221,6 +221,12 @@ class IPPrefix { in_addr addr4() const noexcept { return mData.ip.v4; } in6_addr addr6() const noexcept { return mData.ip.v6; } constexpr int length() const noexcept { return mData.cidrlen; } + bool contains(const IPPrefix& other) { + return length() <= other.length() && IPPrefix(other.ip(), length()).ip() == ip(); + } + bool contains(const IPAddress& other) { + return IPPrefix(other, length()).ip() == ip(); + } bool isUninitialized() const noexcept; std::string toString() const noexcept; |
