@@ -12,11 +12,8 @@ import (
1212
1313 "github.com/libp2p/go-libp2p/core/event"
1414 "github.com/libp2p/go-libp2p/core/network"
15- "github.com/libp2p/go-libp2p/core/transport"
1615 "github.com/libp2p/go-libp2p/p2p/host/basic/internal/backoff"
1716 "github.com/libp2p/go-libp2p/p2p/host/eventbus"
18- libp2pwebrtc "github.com/libp2p/go-libp2p/p2p/transport/webrtc"
19- libp2pwebtransport "github.com/libp2p/go-libp2p/p2p/transport/webtransport"
2017 "github.com/libp2p/go-netroute"
2118 ma "github.com/multiformats/go-multiaddr"
2219 manet "github.com/multiformats/go-multiaddr/net"
@@ -44,7 +41,7 @@ type addrsManager struct {
4441 natManager NATManager
4542 addrsFactory AddrsFactory
4643 listenAddrs func () []ma.Multiaddr
47- transportForListening func (ma.Multiaddr ) transport. Transport
44+ addCertHashes func ([] ma.Multiaddr ) []ma. Multiaddr
4845 observedAddrsManager observedAddrsManager
4946 interfaceAddrs * interfaceAddrsCache
5047 addrsReachabilityTracker * addrsReachabilityTracker
@@ -72,7 +69,7 @@ func newAddrsManager(
7269 natmgr NATManager ,
7370 addrsFactory AddrsFactory ,
7471 listenAddrs func () []ma.Multiaddr ,
75- transportForListening func (ma.Multiaddr ) transport. Transport ,
72+ addCertHashes func ([] ma.Multiaddr ) []ma. Multiaddr ,
7673 observedAddrsManager observedAddrsManager ,
7774 addrsUpdatedChan chan struct {},
7875 client autonatv2Client ,
@@ -83,7 +80,7 @@ func newAddrsManager(
8380 as := & addrsManager {
8481 bus : bus ,
8582 listenAddrs : listenAddrs ,
86- transportForListening : transportForListening ,
83+ addCertHashes : addCertHashes ,
8784 observedAddrsManager : observedAddrsManager ,
8885 natManager : natmgr ,
8986 addrsFactory : addrsFactory ,
@@ -504,51 +501,6 @@ func (a *addrsManager) appendObservedAddrs(dst []ma.Multiaddr, listenAddr ma.Mul
504501 return dst
505502}
506503
507- func (a * addrsManager ) addCertHashes (addrs []ma.Multiaddr ) []ma.Multiaddr {
508- if a .transportForListening == nil {
509- return addrs
510- }
511-
512- // TODO(sukunrt): Move this to swarm.
513- // There are two parts to determining our external address
514- // 1. From the NAT device, or identify, or other such STUN like mechanism.
515- // All that matters here is (internal_ip, internal_port, tcp) => (external_ip, external_port, tcp)
516- // The rest of the address should be cut and appended to the external one.
517- // 2. The user provides us with the address (/ip4/1.2.3.4/udp/1/webrtc-direct) and we add the certhash.
518- // This API should be where the transports are, i.e. swarm.
519- //
520- // It would have been nice to remove this completely and just work with
521- // mapping the interface thinwaist addresses (tcp, 192.168.18.18:4000 => 1.2.3.4:4577)
522- // but that is only convenient if we're using the same port for listening on
523- // all transports which share the same thinwaist protocol. If you listen
524- // on 4001 for tcp, and 4002 for websocket, then it's a terrible API.
525- type addCertHasher interface {
526- AddCertHashes (m ma.Multiaddr ) (ma.Multiaddr , bool )
527- }
528-
529- for i , addr := range addrs {
530- wtOK , wtN := libp2pwebtransport .IsWebtransportMultiaddr (addr )
531- webrtcOK , webrtcN := libp2pwebrtc .IsWebRTCDirectMultiaddr (addr )
532- if (wtOK && wtN == 0 ) || (webrtcOK && webrtcN == 0 ) {
533- t := a .transportForListening (addr )
534- if t == nil {
535- continue
536- }
537- tpt , ok := t .(addCertHasher )
538- if ! ok {
539- continue
540- }
541- addrWithCerthash , added := tpt .AddCertHashes (addr )
542- if ! added {
543- log .Warnf ("Couldn't add certhashes to multiaddr: %s" , addr )
544- continue
545- }
546- addrs [i ] = addrWithCerthash
547- }
548- }
549- return addrs
550- }
551-
552504func areAddrsDifferent (prev , current []ma.Multiaddr ) bool {
553505 // TODO: make the sorted nature of ma.Unique a guarantee in multiaddrs
554506 prev = ma .Unique (prev )
0 commit comments