PeerAdd: send cluster multiaddresses to new peer before adding it to raft

It seems more logical that the new peer should know how to contact
everyone before it needs to start doing it, but it probably does not
matter much. Still, more logical.

License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
This commit is contained in:
Hector Sanjuan 2017-11-14 21:04:33 +01:00
parent 5a7c1fc847
commit 5e465c3f62

View File

@ -662,14 +662,6 @@ func (c *Cluster) PeerAdd(addr ma.Multiaddr) (api.ID, error) {
return id, err
}
// Log the new peer in the log so everyone gets it.
err = c.consensus.AddPeer(pid)
if err != nil {
logger.Error(err)
id := api.ID{ID: pid, Error: err.Error()}
return id, err
}
// Send cluster peers to the new peer.
clusterPeers := append(c.peerManager.addresses(peers),
addrSerial.ToMultiaddr())
@ -682,6 +674,14 @@ func (c *Cluster) PeerAdd(addr ma.Multiaddr) (api.ID, error) {
logger.Error(err)
}
// Log the new peer in the log so everyone gets it.
err = c.consensus.AddPeer(pid)
if err != nil {
logger.Error(err)
id := api.ID{ID: pid, Error: err.Error()}
return id, err
}
// Ask the new peer to connect its IPFS daemon to the rest
err = c.rpcClient.Call(pid,
"Cluster",