diff options
| author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2016-09-07 15:47:20 -0700 |
|---|---|---|
| committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2016-09-07 15:47:20 -0700 |
| commit | daf8a66ced4ce2bf48ec005d915899d888458b06 (patch) | |
| tree | f1e935f6f63a0986dde18d60e6cc709d3d27bd50 /node/Network.hpp | |
| parent | 20278bb9e47ec0cc16619d281224473f90f7b048 (diff) | |
| download | infinitytier-daf8a66ced4ce2bf48ec005d915899d888458b06.tar.gz infinitytier-daf8a66ced4ce2bf48ec005d915899d888458b06.zip | |
More correct and efficient to initialize member relationship push stuff lazily when member is learned.
Diffstat (limited to 'node/Network.hpp')
| -rw-r--r-- | node/Network.hpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/node/Network.hpp b/node/Network.hpp index 4d0e25b7..bcef2872 100644 --- a/node/Network.hpp +++ b/node/Network.hpp @@ -353,7 +353,7 @@ public: if (com.networkId() != _id) return -1; Mutex::Lock _l(_lock); - return _memberships[com.issuedTo()].addCredential(RR,this,com); + return _membership(com.issuedTo()).addCredential(RR,com); } /** @@ -365,7 +365,7 @@ public: if (cap.networkId() != _id) return -1; Mutex::Lock _l(_lock); - return _memberships[cap.issuedTo()].addCredential(RR,cap); + return _membership(cap.issuedTo()).addCredential(RR,cap); } /** @@ -377,7 +377,7 @@ public: if (tag.networkId() != _id) return -1; Mutex::Lock _l(_lock); - return _memberships[tag.issuedTo()].addCredential(RR,tag); + return _membership(tag.issuedTo()).addCredential(RR,tag); } /** @@ -388,7 +388,7 @@ public: inline void blacklistBefore(const Address &peerAddress,const uint64_t ts) { Mutex::Lock _l(_lock); - _memberships[peerAddress].blacklistBefore(ts); + _membership(peerAddress).blacklistBefore(ts); } /** @@ -412,6 +412,7 @@ private: void _announceMulticastGroups(const MulticastGroup *const onlyThis); void _announceMulticastGroupsTo(const Address &peer,const std::vector<MulticastGroup> &allMulticastGroups); std::vector<MulticastGroup> _allMulticastGroups() const; + Membership &_membership(const Address &a); // also lazily sends COM and MULTICAST_LIKE(s) if this is a new member const RuntimeEnvironment *RR; void *_uPtr; |
