Commit 5a8aa1af authored by Juan Batiz-Benet's avatar Juan Batiz-Benet

ipfsaddr: Transport part.

parent d0dd22b7
......@@ -18,6 +18,7 @@ var ErrInvalidAddr = errors.New("invalid ipfs address")
type IPFSAddr interface {
ID() peer.ID
Multiaddr() ma.Multiaddr
Transport() ma.Multiaddr
String() string
Equal(b interface{}) bool
}
......@@ -35,6 +36,10 @@ func (a ipfsAddr) Multiaddr() ma.Multiaddr {
return a.ma
}
func (a ipfsAddr) Transport() ma.Multiaddr {
return Transport(a)
}
func (a ipfsAddr) String() string {
return a.ma.String()
}
......@@ -98,3 +103,10 @@ func ParseMultiaddr(m ma.Multiaddr) (a IPFSAddr, err error) {
return ipfsAddr{ma: m, id: id}, nil
}
func Transport(iaddr IPFSAddr) (maddr ma.Multiaddr) {
maddr = iaddr.Multiaddr()
split := ma.Split(maddr)
maddr = ma.Join(split[:len(split)-1]...)
return
}
......@@ -115,3 +115,23 @@ func TestMultiaddrMatches(t *testing.T) {
}
}
}
func TestTransport(t *testing.T) {
for _, g := range good {
a, err := ParseString(g)
if err != nil {
t.Error("failed to parse", g, err)
continue
}
m := newMultiaddr(t, g)
split := ma.Split(m)
m = ma.Join(split[:len(split)-1]...)
if a.Multiaddr().Equal(m) {
t.Error("should not be equal", a.Multiaddr(), m)
}
if !Transport(a).Equal(m) {
t.Error("should be equal", Transport(a), m)
}
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment