diff --git a/core/node/groups.go b/core/node/groups.go index 1783964296d2..c266405b9bcc 100644 --- a/core/node/groups.go +++ b/core/node/groups.go @@ -234,7 +234,7 @@ func Online(bcfg *BuildCfg, cfg *config.Config) fx.Option { fx.Provide(p2p.New), LibP2P(bcfg, cfg), - OnlineProviders(cfg), + OnlineProviders(cfg.Experimental.StrategicProviding, cfg.Reprovider.Strategy, cfg.Reprovider.Interval), ) } @@ -244,7 +244,7 @@ func Offline(cfg *config.Config) fx.Option { fx.Provide(offline.Exchange), fx.Provide(Namesys(0)), fx.Provide(offroute.NewOfflineRouter), - OfflineProviders(cfg), + OfflineProviders(cfg.Experimental.StrategicProviding, cfg.Reprovider.Strategy, cfg.Reprovider.Interval), ) } diff --git a/core/node/provider.go b/core/node/provider.go index a5c62baa68bd..783fb0ddf354 100644 --- a/core/node/provider.go +++ b/core/node/provider.go @@ -7,7 +7,6 @@ import ( "go.uber.org/fx" - "github.com/ipfs/go-ipfs-config" "github.com/ipfs/go-ipfs/core/node/helpers" "github.com/ipfs/go-ipfs/provider" q "github.com/ipfs/go-ipfs/provider/queue" @@ -72,34 +71,34 @@ func StrategicOfflineProviderSysCtor() provider.System { // ONLINE/OFFLINE // OnlineProviders groups units managing provider routing records online -func OnlineProviders(cfg *config.Config) fx.Option { - if cfg.Experimental.StrategicProviding { +func OnlineProviders(useStrategicProviding bool, reprovideStrategy string, reprovideInterval string) fx.Option { + if useStrategicProviding { return fx.Provide(StrategicProviderSysCtor) } return fx.Options( - SimpleProviders(cfg), + SimpleProviders(reprovideStrategy, reprovideInterval), fx.Provide(SimpleProviderSysCtor), ) } // OfflineProviders groups units managing provider routing records offline -func OfflineProviders(cfg *config.Config) fx.Option { - if cfg.Experimental.StrategicProviding { +func OfflineProviders(useStrategicProviding bool, reprovideStrategy string, reprovideInterval string) fx.Option { + if useStrategicProviding { return fx.Provide(StrategicOfflineProviderSysCtor) } return fx.Options( - SimpleProviders(cfg), + SimpleProviders(reprovideStrategy, reprovideInterval), fx.Provide(SimpleOfflineProviderSysCtor), ) } // SimpleProviders creates the simple provider/reprovider dependencies -func SimpleProviders(cfg *config.Config) fx.Option { +func SimpleProviders(reprovideStrategy string, reprovideInterval string) fx.Option { reproviderInterval := kReprovideFrequency - if cfg.Reprovider.Interval != "" { - dur, err := time.ParseDuration(cfg.Reprovider.Interval) + if reprovideInterval != "" { + dur, err := time.ParseDuration(reprovideInterval) if err != nil { return fx.Error(err) } @@ -108,7 +107,7 @@ func SimpleProviders(cfg *config.Config) fx.Option { } var keyProvider fx.Option - switch cfg.Reprovider.Strategy { + switch reprovideStrategy { case "all": fallthrough case "": @@ -118,7 +117,7 @@ func SimpleProviders(cfg *config.Config) fx.Option { case "pinned": keyProvider = fx.Provide(simple.NewPinnedProvider(false)) default: - return fx.Error(fmt.Errorf("unknown reprovider strategy '%s'", cfg.Reprovider.Strategy)) + return fx.Error(fmt.Errorf("unknown reprovider strategy '%s'", reprovideStrategy)) } return fx.Options(