// first message?
if (rank.need_addr) {
+ entity->_set_myaddr(m->get_dest_inst().addr);
rank.rank_addr = m->get_dest_inst().addr;
- entity->_set_myaddr(rank.rank_addr);
+ rank.rank_addr.erank = 0;
dout(2) << "reader my rank addr is " << rank.rank_addr << dendl;
rank.need_addr = false;
}
{
size_t operator()( const entity_name_t m ) const
{
- return rjhash32(m.type()) ^ rjhash32(m.num());
+ return rjhash32(m.type() ^ m.num());
}
};
}
size_t operator()( const entity_addr_t& x ) const
{
static blobhash H;
- return H((const char*)&x, sizeof(x));
+ return H((const char*)&x.ipaddr, sizeof(x.ipaddr)) ^
+ rjhash32(x.erank ^ x.nonce);
}
};
}
{
size_t operator()( const entity_inst_t& x ) const
{
- static blobhash H;
- return H((const char*)&x, sizeof(x));
+ static hash< entity_name_t > H;
+ static hash< entity_addr_t > I;
+ return H(x.name) ^ I(x.addr);
}
};
}