fix(commands): print consistent addresses in ipfs id

Consistently append `/p2p/QmMyId` to addresses when calling `ipfs id Me` and `ipfs id NotMe`.

Fixes https://github.com/ipfs/go-ipfs/issues/7378.
This commit is contained in:
Steven Allen 2020-05-29 18:47:21 -07:00
parent 91b1db5422
commit 3aa86f8ed9
2 changed files with 18 additions and 1 deletions

View File

@ -154,7 +154,13 @@ func printPeer(ps pstore.Peerstore, p peer.ID) (interface{}, error) {
info.PublicKey = base64.StdEncoding.EncodeToString(pkb)
}
for _, a := range ps.Addrs(p) {
addrInfo := ps.PeerInfo(p)
addrs, err := peer.AddrInfoToP2pAddrs(&addrInfo)
if err != nil {
return nil, err
}
for _, a := range addrs {
info.Addresses = append(info.Addresses, a.String())
}

View File

@ -123,6 +123,17 @@ test_expect_success "/p2p addresses work" '
[ $(ipfsi 0 swarm peers | wc -l) -eq 1 ]
'
test_expect_success "ipfs id is consistent for node 0" '
ipfsi 1 id "$(iptb attr get 0 id)" > 1see0 &&
ipfsi 0 id > 0see0 &&
test_cmp 1see0 0see0
'
test_expect_success "ipfs id is consistent for node 1" '
ipfsi 0 id "$(iptb attr get 1 id)" > 0see1 &&
ipfsi 1 id > 1see1 &&
test_cmp 0see1 1see1
'
test_expect_success "stopping cluster" '
iptb stop
'