summaryrefslogtreecommitdiff
path: root/common/netd/libnetdutils/include/netdutils/InternetAddresses.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/netd/libnetdutils/include/netdutils/InternetAddresses.h')
-rw-r--r--common/netd/libnetdutils/include/netdutils/InternetAddresses.h6
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;