@cryptotaxi247 / kubo / commits / 1bd69b19a

core: make sure to call swarm.FilterAddrs

also move network setup into its own self-contained func

Juan Batiz-Benet committed Jan 10, 2015 at 08:07 UTC 1bd69b19acc7c7f148dc9186a1481a68d925e75b
1 file changed +30 -19
core/core.go
+30 -19
@@ -150,26 +150,9 @@ func (n *IpfsNode) StartOnlineServices() error {
150 return err
151 }
152
153 - // setup the network
154 - listenAddrs, err := listenAddresses(n.Config)
155 - if err != nil {
156 - return debugerror.Wrap(err)
157 - }
158 - network, err := swarm.NewNetwork(ctx, listenAddrs, n.Identity, n.Peerstore)
159 - if err != nil {
160 - return debugerror.Wrap(err)
161 - }
162 - n.AddChildGroup(network.CtxGroup())
163 - n.PeerHost = p2pbhost.New(network)
164 -
165 - // explicitly set these as our listen addrs.
166 - // (why not do it inside inet.NewNetwork? because this way we can
167 - // listen on addresses without necessarily advertising those publicly.)
168 - addrs, err := n.PeerHost.Network().InterfaceListenAddresses()
169 - if err != nil {
170 - return debugerror.Wrap(err)
153 + if err := n.startNetwork(); err != nil {
154 + return err
155 }
172 - n.Peerstore.AddAddresses(n.Identity, addrs)
156
157 // setup diagnostics service
158 n.Diagnostics = diag.NewDiagnostics(n.Identity, n.PeerHost)
@@ -199,6 +182,34 @@ func (n *IpfsNode) StartOnlineServices() error {
182 return nil
183 }
184
185 +func (n *IpfsNode) startNetwork() error {
186 + ctx := n.Context()
187 +
188 + // setup the network
189 + listenAddrs, err := listenAddresses(n.Config)
190 + if err != nil {
191 + return debugerror.Wrap(err)
192 + }
193 + // make sure we dont error out if our config includes some addresses we cant use.
194 + listenAddrs = swarm.FilterAddrs(listenAddrs)
195 + network, err := swarm.NewNetwork(ctx, listenAddrs, n.Identity, n.Peerstore)
196 + if err != nil {
197 + return debugerror.Wrap(err)
198 + }
199 + n.AddChildGroup(network.CtxGroup())
200 + n.PeerHost = p2pbhost.New(network)
201 +
202 + // explicitly set these as our listen addrs.
203 + // (why not do it inside inet.NewNetwork? because this way we can
204 + // listen on addresses without necessarily advertising those publicly.)
205 + addrs, err := n.PeerHost.Network().InterfaceListenAddresses()
206 + if err != nil {
207 + return debugerror.Wrap(err)
208 + }
209 + n.Peerstore.AddAddresses(n.Identity, addrs)
210 + return nil
211 +}
212 +
213 func (n *IpfsNode) teardown() error {
214 if err := n.Datastore.Close(); err != nil {
215 return err