account for p2p-circuit address intricacies
License: MIT Signed-off-by: vyzo <vyzo@hackzen.org>
vyzo committed
Jul 26, 2017 at 19:40 UTC
4900935bd823b58d5887468d6eacc56efee3b29c
2 files changed
+14
-1
core/commands/swarm.go
+6
-1
@@ -7,6 +7,7 @@ import (
7
"io"
8
"path"
9
"sort"
10
+ "strings"
11
12
cmds "github.com/ipfs/go-ipfs/commands"
13
repo "github.com/ipfs/go-ipfs/repo"
@@ -128,7 +129,11 @@ var swarmPeersCmd = &cmds.Command{
129
130
buf := new(bytes.Buffer)
131
for _, info := range ci.Peers {
131
- fmt.Fprintf(buf, "%s/ipfs/%s", info.Addr, info.Peer)
132
+ if strings.Contains(info.Addr, "/p2p-circuit/") {
133
+ fmt.Fprintf(buf, "%s", info.Addr)
134
+ } else {
135
+ fmt.Fprintf(buf, "%s/ipfs/%s", info.Addr, info.Peer)
136
+ }
137
if info.Latency != "" {
138
fmt.Fprintf(buf, " %s", info.Latency)
139
}
thirdparty/ipfsaddr/ipfsaddr.go
+8
@@ -7,6 +7,7 @@ import (
7
8
path "github.com/ipfs/go-ipfs/path"
9
logging "gx/ipfs/QmSpJByNKFX1sCsHBEp3R73FL4NF6FnQTEGyNAXHm2GS52/go-log"
10
+ circuit "gx/ipfs/QmVEPsD9h95ToAC7NJpYopFcXyjVJm35xV4tw43J5JdCnL/go-libp2p-circuit"
11
peer "gx/ipfs/QmXYjuNuxVzXKJCfWasQk1RqkhVLDM9jtUKhqc2WPQmFSB/go-libp2p-peer"
12
)
13
@@ -106,6 +107,13 @@ func ParseMultiaddr(m ma.Multiaddr) (a IPFSAddr, err error) {
107
108
func Transport(iaddr IPFSAddr) (maddr ma.Multiaddr) {
109
maddr = iaddr.Multiaddr()
110
+
111
+ // /ipfs/QmId is part of the transport address for p2p-circuit
112
+ _, err := maddr.ValueForProtocol(circuit.P_CIRCUIT)
113
+ if err == nil {
114
+ return maddr
115
+ }
116
+
117
split := ma.Split(maddr)
118
maddr = ma.Join(split[:len(split)-1]...)
119
return