rpc: /dial_peers: only mark peers as persistent if flag is on (#3620)

## Description

also

    handle errors from DialPeersAsync
    remove nil addr from log msg
    fix TestPEXReactorDoesNotDisconnectFromPersistentPeerInSeedMode

This is a follow-up from
#3593 (review)

Fixes most of the #3617, except #3593 (comment)

## Commits

* rpc: /dial_peers: only mark peers as persistent if flag is on

also

- handle errors from DialPeersAsync
- remove nil addr from log msg
- fix TestPEXReactorDoesNotDisconnectFromPersistentPeerInSeedMode

This is a follow-up from
https://github.com/tendermint/tendermint/pull/3593#pullrequestreview-233556909

* remove a call to AddPersistentPeers

TestDialFail will trigger a reconnect
This commit is contained in:
Anton Kaliaev
2019-05-07 11:09:06 +04:00
committed by GitHub
parent 2bb1a87d41
commit 1e073817de
5 changed files with 17 additions and 9 deletions

View File

@ -196,11 +196,14 @@ func UnsafeDialPeers(ctx *rpctypes.Context, peers []string, persistent bool) (*c
return &ctypes.ResultDialPeers{}, errors.New("No peers provided")
}
logger.Info("DialPeers", "peers", peers, "persistent", persistent)
if err := p2pPeers.AddPersistentPeers(peers); err != nil {
if persistent {
if err := p2pPeers.AddPersistentPeers(peers); err != nil {
return &ctypes.ResultDialPeers{}, err
}
}
if err := p2pPeers.DialPeersAsync(peers); err != nil {
return &ctypes.ResultDialPeers{}, err
}
// parsing errors are handled above by AddPersistentPeers
_ = p2pPeers.DialPeersAsync(peers)
return &ctypes.ResultDialPeers{Log: "Dialing peers in progress. See /net_info for details"}, nil
}