@@ -13,6 +13,8 @@ import (
1313 pubsub "github.com/libp2p/go-libp2p-pubsub"
1414 "github.com/libp2p/go-libp2p/core/crypto"
1515 "github.com/libp2p/go-libp2p/core/peer"
16+ "github.com/multiformats/go-multiaddr"
17+ madns "github.com/multiformats/go-multiaddr-dns"
1618 "github.com/urfave/cli/v2"
1719 "golang.org/x/sync/errgroup"
1820)
@@ -187,11 +189,18 @@ var manifestServeCmd = cli.Command{
187189 }
188190 }
189191 for _ , bootstrapper := range bootstrappers {
190- addr , err := peer .AddrInfoFromString (bootstrapper )
191- if err != nil {
192+ if maddr , err := multiaddr .NewMultiaddr (bootstrapper ); err != nil {
192193 _ , _ = fmt .Fprintf (c .App .ErrWriter , "Failed to parse to bootstrap address: %s %v\n " , bootstrapper , err )
193- } else if err := host .Connect (c .Context , * addr ); err != nil {
194- _ , _ = fmt .Fprintf (c .App .ErrWriter , "Failed to connect to bootstrap address: %v\n " , err )
194+ } else if multiaddrs , err := madns .Resolve (c .Context , maddr ); err != nil {
195+ _ , _ = fmt .Fprintf (c .App .ErrWriter , "Failed to resolve bootstrap address: %s %v\n " , bootstrapper , err )
196+ } else if paddrinfos , err := peer .AddrInfosFromP2pAddrs (multiaddrs ... ); err != nil {
197+ _ , _ = fmt .Fprintf (c .App .ErrWriter , "Failed to build peer.AddrInfo for bootstrap address: %s %v\n " , bootstrapper , err )
198+ } else {
199+ for _ , paddrinfo := range paddrinfos {
200+ if err := host .Connect (c .Context , paddrinfo ); err != nil {
201+ _ , _ = fmt .Fprintf (c .App .ErrWriter , "Failed to connect to bootstrap address: %v\n " , err )
202+ }
203+ }
195204 }
196205 }
197206 }
0 commit comments