summaryrefslogtreecommitdiff
path: root/node/Multicaster.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'node/Multicaster.hpp')
-rw-r--r--node/Multicaster.hpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/node/Multicaster.hpp b/node/Multicaster.hpp
index 5758badd..7d67aada 100644
--- a/node/Multicaster.hpp
+++ b/node/Multicaster.hpp
@@ -152,15 +152,15 @@ public:
* @param prefixBits Number of bits in propagation restriction prefix
* @param prefix Propagation restrition prefix
*/
- AddToPropagationQueue(unsigned char **ptr,unsigned char *end,unsigned char *bloom,uint16_t bloomNonce,const Address &origin,unsigned int prefixBits,unsigned int prefix)
+ AddToPropagationQueue(unsigned char **ptr,unsigned char *end,unsigned char *bloom,uint16_t bloomNonce,const Address &origin,unsigned int prefixBits,uint64_t prefix)
throw() :
_origin(origin),
_bloomNonce((uint64_t)bloomNonce),
- _prefixMask(0xffffffffffffffffULL >> (64 - prefixBits)),
- _prefix((uint64_t)prefix & _prefixMask),
+ _prefix(prefix),
_ptr(ptr),
_end(end),
- _bloom(bloom) {}
+ _bloom(bloom),
+ _prefixBits(prefixBits) {}
inline bool operator()(const Address &a)
throw()
@@ -170,7 +170,7 @@ public:
return true;
// Exclude addresses not in this prefix domain
- if ((a.toInt() & _prefixMask) != _prefix)
+ if (!a.withinMulticastPropagationPrefix(_prefix,_prefixBits))
return true;
// Exclude addresses remembered in bloom filter -- or else remember them
@@ -189,11 +189,11 @@ public:
private:
const Address _origin;
const uint64_t _bloomNonce;
- const uint64_t _prefixMask;
const uint64_t _prefix;
unsigned char **const _ptr;
unsigned char *const _end;
unsigned char *const _bloom;
+ unsigned int _prefixBits;
};
private: