summaryrefslogtreecommitdiffstats
path: root/watchlink/netlink_event.hh
diff options
context:
space:
mode:
Diffstat (limited to 'watchlink/netlink_event.hh')
-rw-r--r--watchlink/netlink_event.hh20
1 files changed, 19 insertions, 1 deletions
diff --git a/watchlink/netlink_event.hh b/watchlink/netlink_event.hh
index 91ab8f33..76ccefa6 100644
--- a/watchlink/netlink_event.hh
+++ b/watchlink/netlink_event.hh
@@ -19,6 +19,10 @@
#include <ostream>
#include <linux/rtnetlink.h>
+uint32_t
+apply_mask_ipv4 (const uint32_t p, const unsigned char m);
+
+
class Mac
{
public:
@@ -75,7 +79,7 @@ public:
this->_addr = 0;
return;
}
- this->_addr = a_val;
+ this->_addr = apply_mask_ipv4(a_val,_mask_length);
}
uint32_t
@@ -84,6 +88,18 @@ public:
char
get_mask_length() {return _mask_length;}
+ bool
+ contains(IPv4 &addr) {
+ //check if addr is within specified addr range
+ return (apply_mask_ipv4(addr.get(),_mask_length) == _addr);
+ }
+
+ bool
+ contains(IPv4 addr) {
+ //check if addr is within specified addr range
+ return (apply_mask_ipv4(addr.get(),_mask_length) == _addr);
+ }
+
std::string
str()
{
@@ -253,4 +269,6 @@ private: //variables
};
+
+
#endif // __NETLINK_EVENT_HH__