Signed-off-by: Sage Weil <sage@redhat.com>
return false;
}
+bool OSDMap::is_blacklisted(const entity_addrvec_t& av) const
+{
+ if (blacklist.empty())
+ return false;
+
+ for (auto& a : av.v) {
+ // this specific instance?
+ if (blacklist.count(a))
+ return true;
+
+ // is entire ip blacklisted?
+ if (a.is_ip()) {
+ entity_addr_t b = a;
+ b.set_port(0);
+ b.set_nonce(0);
+ if (blacklist.count(b)) {
+ return true;
+ }
+ }
+ }
+
+ return false;
+}
+
void OSDMap::get_blacklist(list<pair<entity_addr_t,utime_t> > *bl) const
{
std::copy(blacklist.begin(), blacklist.end(), std::back_inserter(*bl));
const utime_t& get_modified() const { return modified; }
bool is_blacklisted(const entity_addr_t& a) const;
+ bool is_blacklisted(const entity_addrvec_t& a) const;
void get_blacklist(list<pair<entity_addr_t,utime_t > > *bl) const;
void get_blacklist(std::set<entity_addr_t> *bl) const;