Skip to content

Commit 785181f

Browse files
authored
chore: Update go-multiaddr to v0.15 (#3145)
1 parent 90bb5ef commit 785181f

File tree

32 files changed

+187
-155
lines changed

32 files changed

+187
-155
lines changed

core/peer/addrinfo.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ func AddrInfoToP2pAddrs(pi *AddrInfo) ([]ma.Multiaddr, error) {
109109
return nil, err
110110
}
111111
if len(pi.Addrs) == 0 {
112-
return []ma.Multiaddr{p2ppart}, nil
112+
return []ma.Multiaddr{p2ppart.Multiaddr()}, nil
113113
}
114114
addrs := make([]ma.Multiaddr, 0, len(pi.Addrs))
115115
for _, addr := range pi.Addrs {

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ require (
3838
github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b
3939
github.com/mr-tron/base58 v1.2.0
4040
github.com/multiformats/go-base32 v0.1.0
41-
github.com/multiformats/go-multiaddr v0.14.0
41+
github.com/multiformats/go-multiaddr v0.15.0
4242
github.com/multiformats/go-multiaddr-dns v0.4.1
4343
github.com/multiformats/go-multiaddr-fmt v0.1.0
4444
github.com/multiformats/go-multibase v0.2.0

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,8 +230,8 @@ github.com/multiformats/go-base32 v0.1.0/go.mod h1:Kj3tFY6zNr+ABYMqeUNeGvkIC/UYg
230230
github.com/multiformats/go-base36 v0.2.0 h1:lFsAbNOGeKtuKozrtBsAkSVhv1p9D0/qedU9rQyccr0=
231231
github.com/multiformats/go-base36 v0.2.0/go.mod h1:qvnKE++v+2MWCfePClUEjE78Z7P2a1UV0xHgWc0hkp4=
232232
github.com/multiformats/go-multiaddr v0.1.1/go.mod h1:aMKBKNEYmzmDmxfX88/vz+J5IU55txyt0p4aiWVohjo=
233-
github.com/multiformats/go-multiaddr v0.14.0 h1:bfrHrJhrRuh/NXH5mCnemjpbGjzRw/b+tJFOD41g2tU=
234-
github.com/multiformats/go-multiaddr v0.14.0/go.mod h1:6EkVAxtznq2yC3QT5CM1UTAwG0GTP3EWAIcjHuzQ+r4=
233+
github.com/multiformats/go-multiaddr v0.15.0 h1:zB/HeaI/apcZiTDwhY5YqMvNVl/oQYvs3XySU+qeAVo=
234+
github.com/multiformats/go-multiaddr v0.15.0/go.mod h1:JSVUmXDjsVFiW7RjIFMP7+Ev+h1DTbiJgVeTV/tcmP0=
235235
github.com/multiformats/go-multiaddr-dns v0.4.1 h1:whi/uCLbDS3mSEUMb1MsoT4uzUeZB0N32yzufqS0i5M=
236236
github.com/multiformats/go-multiaddr-dns v0.4.1/go.mod h1:7hfthtB4E4pQwirrz+J0CcDUfbWzTqEzVyYKKIKpgkc=
237237
github.com/multiformats/go-multiaddr-fmt v0.1.0 h1:WLEFClPycPkp4fnIzoFoV9FVd49/eQsuaL3/CWe167E=

p2p/host/autonat/svc.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,8 +167,8 @@ func (as *autoNATService) handleDial(p peer.ID, obsaddr ma.Multiaddr, mpi *pb.Me
167167
default:
168168
continue
169169
}
170-
addr = hostIP
171-
if rest != nil {
170+
addr = hostIP.Multiaddr()
171+
if len(rest) > 0 {
172172
addr = addr.Encapsulate(rest)
173173
}
174174
}

p2p/host/autorelay/addrsplosion_test.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"testing"
55

66
ma "github.com/multiformats/go-multiaddr"
7-
"github.com/stretchr/testify/require"
7+
matest "github.com/multiformats/go-multiaddr/matest"
88
)
99

1010
func TestCleanupAddrs(t *testing.T) {
@@ -21,7 +21,7 @@ func TestCleanupAddrs(t *testing.T) {
2121
"/ip4/1.2.3.4/udp/4002/quic-v1",
2222
"/dnsaddr/somedomain.com/tcp/4002/ws",
2323
)
24-
require.ElementsMatch(t, clean, cleanupAddressSet(addrs), "cleaned up set doesn't match expected")
24+
matest.AssertMultiaddrsMatch(t, clean, cleanupAddressSet(addrs))
2525
})
2626

2727
t.Run("with default port", func(t *testing.T) {
@@ -38,7 +38,7 @@ func TestCleanupAddrs(t *testing.T) {
3838
"/ip4/1.2.3.4/tcp/4001",
3939
"/ip4/1.2.3.4/udp/4002/quic-v1",
4040
)
41-
require.ElementsMatch(t, clean, cleanupAddressSet(addrs), "cleaned up set doesn't match expected")
41+
matest.AssertMultiaddrsMatch(t, clean, cleanupAddressSet(addrs))
4242
})
4343

4444
t.Run("with default port, but no private addrs", func(t *testing.T) {
@@ -54,7 +54,7 @@ func TestCleanupAddrs(t *testing.T) {
5454
"/ip4/1.2.3.4/tcp/4001",
5555
"/ip4/1.2.3.4/udp/4002/quic-v1",
5656
)
57-
require.ElementsMatch(t, clean, cleanupAddressSet(addrs), "cleaned up set doesn't match expected")
57+
matest.AssertMultiaddrsMatch(t, clean, cleanupAddressSet(addrs))
5858
})
5959

6060
t.Run("with non-standard port", func(t *testing.T) {
@@ -68,7 +68,9 @@ func TestCleanupAddrs(t *testing.T) {
6868
clean := makeAddrList(
6969
"/ip4/1.2.3.4/tcp/12345",
7070
)
71-
require.ElementsMatch(t, clean, cleanupAddressSet(addrs), "cleaned up set doesn't match expected")
71+
if !matest.AssertEqualMultiaddrs(t, clean, cleanupAddressSet(addrs)) {
72+
t.Log("cleaned up set doesn't match expected")
73+
}
7274
})
7375

7476
t.Run("with a clean address set", func(t *testing.T) {
@@ -77,7 +79,7 @@ func TestCleanupAddrs(t *testing.T) {
7779
"/ip4/1.2.3.4/tcp/4001",
7880
"/ip4/1.2.3.4/udp/4001/quic-v1",
7981
)
80-
require.ElementsMatch(t, addrs, cleanupAddressSet(addrs), "cleaned up set doesn't match expected")
82+
matest.AssertMultiaddrsMatch(t, addrs, cleanupAddressSet(addrs))
8183
})
8284
}
8385

p2p/host/basic/basic_host.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -975,11 +975,11 @@ func (h *BasicHost) AllAddrs() []ma.Multiaddr {
975975
for _, obsMaddr := range observed {
976976
// Extract a public observed addr.
977977
ip, _ := ma.SplitFirst(obsMaddr)
978-
if ip == nil || !manet.IsPublicAddr(ip) {
978+
if ip == nil || !manet.IsPublicAddr(ip.Multiaddr()) {
979979
continue
980980
}
981981

982-
finalAddrs = append(finalAddrs, ma.Join(ip, extMaddrNoIP))
982+
finalAddrs = append(finalAddrs, ip.Encapsulate(extMaddrNoIP))
983983
}
984984
}
985985
}

p2p/host/basic/basic_host_test.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
"github.com/libp2p/go-libp2p/p2p/protocol/identify"
2626

2727
ma "github.com/multiformats/go-multiaddr"
28+
"github.com/multiformats/go-multiaddr/matest"
2829

2930
"github.com/stretchr/testify/assert"
3031
"github.com/stretchr/testify/require"
@@ -300,7 +301,7 @@ func TestAllAddrsUnique(t *testing.T) {
300301
}()
301302
close(sendNewAddrs)
302303
require.Len(t, h.Addrs(), 2)
303-
require.ElementsMatch(t, []ma.Multiaddr{ma.StringCast("/ip4/1.2.3.4/tcp/1"), ma.StringCast("/ip4/1.2.3.4/udp/1/quic-v1")}, h.Addrs())
304+
matest.AssertEqualMultiaddrs(t, []ma.Multiaddr{ma.StringCast("/ip4/1.2.3.4/tcp/1"), ma.StringCast("/ip4/1.2.3.4/udp/1/quic-v1")}, h.Addrs())
304305
time.Sleep(2*addrChangeTickrInterval + 1*time.Second) // the background loop runs every 5 seconds. Wait for 2x that time.
305306
close(done)
306307
cnt := <-out
@@ -650,13 +651,13 @@ func TestAddrChangeImmediatelyIfAddressNonEmpty(t *testing.T) {
650651

651652
// assert it's on the signed record
652653
rc := peerRecordFromEnvelope(t, evt.SignedPeerRecord)
653-
require.Equal(t, taddrs, rc.Addrs)
654+
matest.AssertEqualMultiaddrs(t, taddrs, rc.Addrs)
654655

655656
// assert it's in the peerstore
656657
ev := h.Peerstore().(peerstore.CertifiedAddrBook).GetPeerRecord(h.ID())
657658
require.NotNil(t, ev)
658659
rc = peerRecordFromEnvelope(t, ev)
659-
require.Equal(t, taddrs, rc.Addrs)
660+
matest.AssertEqualMultiaddrs(t, taddrs, rc.Addrs)
660661
}
661662

662663
func TestStatefulAddrEvents(t *testing.T) {
@@ -759,13 +760,13 @@ func TestHostAddrChangeDetection(t *testing.T) {
759760

760761
// assert it's on the signed record
761762
rc := peerRecordFromEnvelope(t, evt.SignedPeerRecord)
762-
require.Equal(t, addrSets[i], rc.Addrs)
763+
matest.AssertMultiaddrsMatch(t, addrSets[i], rc.Addrs)
763764

764765
// assert it's in the peerstore
765766
ev := h.Peerstore().(peerstore.CertifiedAddrBook).GetPeerRecord(h.ID())
766767
require.NotNil(t, ev)
767768
rc = peerRecordFromEnvelope(t, ev)
768-
require.Equal(t, addrSets[i], rc.Addrs)
769+
matest.AssertMultiaddrsMatch(t, addrSets[i], rc.Addrs)
769770
}
770771
}
771772

p2p/host/basic/natmgr.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ func (nmgr *natManager) doSync() {
151151
for _, maddr := range nmgr.net.ListenAddresses() {
152152
// Strip the IP
153153
maIP, rest := ma.SplitFirst(maddr)
154-
if maIP == nil || rest == nil {
154+
if maIP == nil || len(rest) == 0 {
155155
continue
156156
}
157157

p2p/host/basic/natmgr_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,23 +42,23 @@ func TestMapping(t *testing.T) {
4242
externalAddr := netip.AddrPortFrom(netip.AddrFrom4([4]byte{1, 2, 3, 4}), 4321)
4343
// pretend that we have a TCP mapping
4444
mockNAT.EXPECT().GetMapping("tcp", 1234).Return(externalAddr, true)
45-
require.Equal(t, ma.StringCast("/ip4/1.2.3.4/tcp/4321"), m.GetMapping(ma.StringCast("/ip4/0.0.0.0/tcp/1234")))
45+
require.Equal(t, "/ip4/1.2.3.4/tcp/4321", m.GetMapping(ma.StringCast("/ip4/0.0.0.0/tcp/1234")).String())
4646

4747
// pretend that we have a QUIC mapping
4848
mockNAT.EXPECT().GetMapping("udp", 1234).Return(externalAddr, true)
49-
require.Equal(t, ma.StringCast("/ip4/1.2.3.4/udp/4321/quic-v1"), m.GetMapping(ma.StringCast("/ip4/0.0.0.0/udp/1234/quic-v1")))
49+
require.Equal(t, "/ip4/1.2.3.4/udp/4321/quic-v1", m.GetMapping(ma.StringCast("/ip4/0.0.0.0/udp/1234/quic-v1")).String())
5050

5151
// pretend that there's no mapping
5252
mockNAT.EXPECT().GetMapping("tcp", 1234).Return(netip.AddrPort{}, false)
5353
require.Nil(t, m.GetMapping(ma.StringCast("/ip4/0.0.0.0/tcp/1234")))
5454

5555
// make sure this works for WebSocket addresses as well
5656
mockNAT.EXPECT().GetMapping("tcp", 1234).Return(externalAddr, true)
57-
require.Equal(t, ma.StringCast("/ip4/1.2.3.4/tcp/4321/ws"), m.GetMapping(ma.StringCast("/ip4/0.0.0.0/tcp/1234/ws")))
57+
require.Equal(t, "/ip4/1.2.3.4/tcp/4321/ws", m.GetMapping(ma.StringCast("/ip4/0.0.0.0/tcp/1234/ws")).String())
5858

5959
// make sure this works for WebTransport addresses as well
6060
mockNAT.EXPECT().GetMapping("udp", 1234).Return(externalAddr, true)
61-
require.Equal(t, ma.StringCast("/ip4/1.2.3.4/udp/4321/quic-v1/webtransport"), m.GetMapping(ma.StringCast("/ip4/0.0.0.0/udp/1234/quic-v1/webtransport")))
61+
require.Equal(t, "/ip4/1.2.3.4/udp/4321/quic-v1/webtransport", m.GetMapping(ma.StringCast("/ip4/0.0.0.0/udp/1234/quic-v1/webtransport")).String())
6262
}
6363

6464
func TestAddAndRemoveListeners(t *testing.T) {

p2p/http/libp2phttp.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -532,7 +532,7 @@ func relativeMultiaddrURIToAbs(original *url.URL, relative *url.URL) (*url.URL,
532532
withoutPath, _ := ma.SplitFunc(originalMa, func(c ma.Component) bool {
533533
return c.Protocol().Code == ma.P_HTTP_PATH
534534
})
535-
withNewPath := withoutPath.Encapsulate(relativePathComponent)
535+
withNewPath := withoutPath.AppendComponent(relativePathComponent)
536536
return url.Parse("multiaddr:" + withNewPath.String())
537537
}
538538

@@ -937,10 +937,12 @@ func normalizeHTTPMultiaddr(addr ma.Multiaddr) (ma.Multiaddr, bool) {
937937

938938
_, afterHTTPS := ma.SplitFirst(afterIncludingHTTPS)
939939
if afterHTTPS == nil {
940-
return ma.Join(beforeHTTPS, tlsComponent, httpComponent), isHTTPMultiaddr
940+
return beforeHTTPS.AppendComponent(tlsComponent, httpComponent), isHTTPMultiaddr
941941
}
942942

943-
return ma.Join(beforeHTTPS, tlsComponent, httpComponent, afterHTTPS), isHTTPMultiaddr
943+
t := beforeHTTPS.AppendComponent(tlsComponent, httpComponent)
944+
t = append(t, afterHTTPS...)
945+
return t, isHTTPMultiaddr
944946
}
945947

946948
// getAndStorePeerMetadata looks up the protocol path in the well-known mapping and

0 commit comments

Comments
 (0)