forwarder::address_type forwarder::check_forwading_rules(std::string const &h,std::string const &s,std::string const &p) { booster::shared_lock<booster::shared_mutex> lock(mutex_); for(rules_type::const_iterator it=rules_.begin();it!=rules_.end();++it) { if(it->first->match(h,s,p).first) return it->second; } return address_type(std::string(),0); }
void load(Archive& ar, address_type& ip, const unsigned int version) { unsigned long addr; ar & BOOST_SERIALIZATION_NVP(addr); ip = address_type(addr); }
void forwarder::add_forwarding_rule(booster::shared_ptr<mount_point> p,std::string const &ip,int port) { booster::unique_lock<booster::shared_mutex> lock(mutex_); rules_[p]=address_type(ip,port); }