diff --git a/core/commands/swarm.go b/core/commands/swarm.go index ab582aff7c0c..96da3323c288 100644 --- a/core/commands/swarm.go +++ b/core/commands/swarm.go @@ -7,6 +7,7 @@ import ( "io" "path" "sort" + "strings" cmds "github.com/ipfs/go-ipfs/commands" repo "github.com/ipfs/go-ipfs/repo" @@ -128,7 +129,11 @@ var swarmPeersCmd = &cmds.Command{ buf := new(bytes.Buffer) for _, info := range ci.Peers { - fmt.Fprintf(buf, "%s/ipfs/%s", info.Addr, info.Peer) + if strings.Contains(info.Addr, "/p2p-circuit/") { + fmt.Fprintf(buf, "%s", info.Addr) + } else { + fmt.Fprintf(buf, "%s/ipfs/%s", info.Addr, info.Peer) + } if info.Latency != "" { fmt.Fprintf(buf, " %s", info.Latency) } diff --git a/thirdparty/ipfsaddr/ipfsaddr.go b/thirdparty/ipfsaddr/ipfsaddr.go index 3e2eec0c2e89..d5c61abd9f2e 100644 --- a/thirdparty/ipfsaddr/ipfsaddr.go +++ b/thirdparty/ipfsaddr/ipfsaddr.go @@ -7,6 +7,7 @@ import ( path "github.com/ipfs/go-ipfs/path" logging "gx/ipfs/QmSpJByNKFX1sCsHBEp3R73FL4NF6FnQTEGyNAXHm2GS52/go-log" + circuit "gx/ipfs/QmVEPsD9h95ToAC7NJpYopFcXyjVJm35xV4tw43J5JdCnL/go-libp2p-circuit" peer "gx/ipfs/QmXYjuNuxVzXKJCfWasQk1RqkhVLDM9jtUKhqc2WPQmFSB/go-libp2p-peer" ) @@ -106,6 +107,13 @@ func ParseMultiaddr(m ma.Multiaddr) (a IPFSAddr, err error) { func Transport(iaddr IPFSAddr) (maddr ma.Multiaddr) { maddr = iaddr.Multiaddr() + + // /ipfs/QmId is part of the transport address for p2p-circuit + _, err := maddr.ValueForProtocol(circuit.P_CIRCUIT) + if err == nil { + return maddr + } + split := ma.Split(maddr) maddr = ma.Join(split[:len(split)-1]...) return