@cryptotaxi247 / kubo / commits / 4900935bd

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