1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-06-30 01:52:26 +08:00

Merge pull request #534 from jbenet/swarm-filter-addrs

core: make sure to call swarm.FilterAddrs
This commit is contained in:
Juan Batiz-Benet
2015-01-10 08:10:56 -08:00

View File

@ -150,26 +150,9 @@ func (n *IpfsNode) StartOnlineServices() error {
return err return err
} }
// setup the network if err := n.startNetwork(); err != nil {
listenAddrs, err := listenAddresses(n.Config) return err
if err != nil {
return debugerror.Wrap(err)
} }
network, err := swarm.NewNetwork(ctx, listenAddrs, n.Identity, n.Peerstore)
if err != nil {
return debugerror.Wrap(err)
}
n.AddChildGroup(network.CtxGroup())
n.PeerHost = p2pbhost.New(network)
// explicitly set these as our listen addrs.
// (why not do it inside inet.NewNetwork? because this way we can
// listen on addresses without necessarily advertising those publicly.)
addrs, err := n.PeerHost.Network().InterfaceListenAddresses()
if err != nil {
return debugerror.Wrap(err)
}
n.Peerstore.AddAddresses(n.Identity, addrs)
// setup diagnostics service // setup diagnostics service
n.Diagnostics = diag.NewDiagnostics(n.Identity, n.PeerHost) n.Diagnostics = diag.NewDiagnostics(n.Identity, n.PeerHost)
@ -199,6 +182,34 @@ func (n *IpfsNode) StartOnlineServices() error {
return nil return nil
} }
func (n *IpfsNode) startNetwork() error {
ctx := n.Context()
// setup the network
listenAddrs, err := listenAddresses(n.Config)
if err != nil {
return debugerror.Wrap(err)
}
// make sure we dont error out if our config includes some addresses we cant use.
listenAddrs = swarm.FilterAddrs(listenAddrs)
network, err := swarm.NewNetwork(ctx, listenAddrs, n.Identity, n.Peerstore)
if err != nil {
return debugerror.Wrap(err)
}
n.AddChildGroup(network.CtxGroup())
n.PeerHost = p2pbhost.New(network)
// explicitly set these as our listen addrs.
// (why not do it inside inet.NewNetwork? because this way we can
// listen on addresses without necessarily advertising those publicly.)
addrs, err := n.PeerHost.Network().InterfaceListenAddresses()
if err != nil {
return debugerror.Wrap(err)
}
n.Peerstore.AddAddresses(n.Identity, addrs)
return nil
}
func (n *IpfsNode) teardown() error { func (n *IpfsNode) teardown() error {
if err := n.Datastore.Close(); err != nil { if err := n.Datastore.Close(); err != nil {
return err return err