@@ -372,12 +372,11 @@ func (cfg *Config) NewNode() (host.Host, error) {
372
372
return sw
373
373
}),
374
374
fx .Provide (cfg .newBasicHost ),
375
- fx .Provide (func (h * bhost.BasicHost , lifecycle fx.Lifecycle ) host.Host {
376
- lifecycle .Append (fx .StartHook (h .Start ))
377
- return h
375
+ fx .Provide (func (bh * bhost.BasicHost ) host.Host {
376
+ return bh
378
377
}),
379
- fx .Provide (func (h host. Host ) peer.ID { return h .ID () }),
380
- fx .Provide (func (h host. Host ) crypto.PrivKey { return h .Peerstore ().PrivKey (h .ID ()) }),
378
+ fx .Provide (func (h * swarm. Swarm ) peer.ID { return h .LocalPeer () }),
379
+ fx .Provide (func (h * swarm. Swarm ) crypto.PrivKey { return h .Peerstore ().PrivKey (h .LocalPeer ()) }),
381
380
}
382
381
transportOpts , err := cfg .addTransports ()
383
382
if err != nil {
@@ -418,6 +417,9 @@ func (cfg *Config) NewNode() (host.Host, error) {
418
417
419
418
var bh * bhost.BasicHost
420
419
fxopts = append (fxopts , fx .Invoke (func (bho * bhost.BasicHost ) { bh = bho }))
420
+ fxopts = append (fxopts , fx .Invoke (func (h * bhost.BasicHost , lifecycle fx.Lifecycle ) {
421
+ lifecycle .Append (fx .StartHook (h .Start ))
422
+ }))
421
423
422
424
var rh * routed.RoutedHost
423
425
if cfg .Routing != nil {
@@ -430,7 +432,12 @@ func (cfg *Config) NewNode() (host.Host, error) {
430
432
}
431
433
432
434
if err := cfg .addAutoNAT (bh ); err != nil {
433
- rh .Close ()
435
+ app .Stop (context .Background ())
436
+ if cfg .Routing != nil {
437
+ rh .Close ()
438
+ } else {
439
+ bh .Close ()
440
+ }
434
441
return nil , err
435
442
}
436
443
@@ -505,6 +512,7 @@ func (cfg *Config) addAutoNAT(h *bhost.BasicHost) error {
505
512
return dialer , err
506
513
507
514
}),
515
+ fx .Provide (func (s * swarm.Swarm ) peer.ID { return s .LocalPeer () }),
508
516
fx .Provide (func () crypto.PrivKey { return autonatPrivKey }),
509
517
)
510
518
app := fx .New (fxopts ... )
0 commit comments