msgr: init local_pipe peer_{addr,type}

This commit is contained in:
Sage Weil 2010-03-30 13:19:30 -07:00
parent 9b552c753f
commit 2a0ed8301e
2 changed files with 10 additions and 0 deletions

View File

@ -136,6 +136,8 @@ int SimpleMessenger::Accepter::bind(int64_t force_nonce)
messenger->ms_addr.nonce = getpid(); // FIXME: pid might not be best choice here.
}
messenger->init_local_pipe();
dout(1) << "accepter.bind ms_addr is " << messenger->ms_addr << " need_addr=" << messenger->need_addr << dendl;
messenger->did_bind = true;
return 0;
@ -2430,5 +2432,12 @@ void SimpleMessenger::learned_addr(entity_addr_t peer_addr_for_me)
ms_addr.set_port(port);
dout(1) << "learned my addr " << ms_addr << dendl;
need_addr = false;
init_local_pipe();
lock.Unlock();
}
void SimpleMessenger::init_local_pipe()
{
dispatch_queue.local_pipe->connection_state->peer_addr = messenger->ms_addr;
dispatch_queue.local_pipe->connection_state->peer_type = messenger->my_type;
}

View File

@ -525,6 +525,7 @@ public:
int send_keepalive(const entity_inst_t& addr);
void learned_addr(entity_addr_t peer_addr_for_me);
void init_local_pipe();
void set_default_policy(Policy p) {
default_policy = p;