@@ -26,66 +26,48 @@ func ResourceManager(cfg cfg.ResourceMgr) func(fx.Lifecycle, repo.Repo) (network
26
26
var manager network.ResourceManager
27
27
var opts Libp2pOpts
28
28
29
- // Config Swarm.ResourceMgr.Enabled decides if we run a real manager
30
- enabled := cfg .Enabled .WithDefault (false )
31
-
32
- /// ENV overrides Config (if present)
33
- // TODO: document IPFS_RCMGR and IPFS_DEBUG_RCMGR in docs/environment-variables.md
34
- switch os .Getenv ("IPFS_RCMGR" ) {
35
- case "0" , "false" :
36
- enabled = false
37
- case "1" , "true" :
38
- enabled = true
29
+ log .Debug ("libp2p resource manager is enabled" )
30
+
31
+ // Try defaults from limit.json if provided
32
+ // (a convention to make libp2p team life easier)
33
+ // TODO: look in current dir and in IPFS_PATH
34
+ _ , err := os .Stat (NetLimitDefaultFilename )
35
+ if ! errors .Is (err , os .ErrNotExist ) {
36
+ limitFile , err := os .Open (NetLimitDefaultFilename )
37
+ if err != nil {
38
+ return nil , opts , fmt .Errorf ("error opening limit JSON file %s: %w" ,
39
+ NetLimitDefaultFilename , err )
40
+ }
41
+ defer limitFile .Close () //nolint:errcheck
42
+ limiter , err = rcmgr .NewDefaultLimiterFromJSON (limitFile )
43
+ if err != nil {
44
+ return nil , opts , fmt .Errorf ("error parsing limit file: %w" , err )
45
+ }
46
+
47
+ } else {
48
+ // Use defaults from go-libp2p
49
+ log .Debug ("limit file %s not found, creating a default resource manager" , NetLimitDefaultFilename )
50
+ limiter = rcmgr .NewDefaultLimiter ()
39
51
}
40
52
41
- if enabled {
42
- log .Debug ("libp2p resource manager is enabled" )
43
-
44
- // Try defaults from limit.json if provided
45
- // (a convention to make libp2p team life easier)
46
- // TODO: look in current dir and in IPFS_PATH
47
- _ , err := os .Stat (NetLimitDefaultFilename )
48
- if ! errors .Is (err , os .ErrNotExist ) {
49
- limitFile , err := os .Open (NetLimitDefaultFilename )
50
- if err != nil {
51
- return nil , opts , fmt .Errorf ("error opening limit JSON file %s: %w" ,
52
- NetLimitDefaultFilename , err )
53
- }
54
- defer limitFile .Close () //nolint:errcheck
55
- limiter , err = rcmgr .NewDefaultLimiterFromJSON (limitFile )
56
- if err != nil {
57
- return nil , opts , fmt .Errorf ("error parsing limit file: %w" , err )
58
- }
59
-
60
- } else {
61
- // Use defaults from go-libp2p
62
- log .Debug ("limit file %s not found, creating a default resource manager" , NetLimitDefaultFilename )
63
- limiter = rcmgr .NewDefaultLimiter ()
64
- }
53
+ libp2p .SetDefaultServiceLimits (limiter )
65
54
66
- libp2p .SetDefaultServiceLimits (limiter )
55
+ var ropts []rcmgr.Option
56
+ if os .Getenv ("IPFS_DEBUG_RCMGR" ) != "" {
57
+ ropts = append (ropts , rcmgr .WithTrace ("rcmgr.json.gz" ))
58
+ }
67
59
68
- var ropts [] rcmgr.Option
69
- if os . Getenv ( "IPFS_DEBUG_RCMGR" ) != "" {
70
- ropts = append ( ropts , rcmgr . WithTrace ( "rcmgr.json.gz" ) )
71
- }
60
+ manager , err = rcmgr .NewResourceManager ( limiter , ropts ... )
61
+ if err != nil {
62
+ return nil , opts , fmt . Errorf ( "error creating resource manager: %w" , err )
63
+ }
72
64
73
- manager , err = rcmgr .NewResourceManager (limiter , ropts ... )
65
+ // Apply user-defined Swarm.ResourceMgr.Limits
66
+ for scope , userLimit := range cfg .Limits {
67
+ err := NetSetLimit (manager , scope , userLimit )
74
68
if err != nil {
75
- return nil , opts , fmt .Errorf ("error creating resource manager : %w" , err )
69
+ return nil , opts , fmt .Errorf ("error while applying Swarm.ResourceMgr.Limits for scope %q : %w" , scope , err )
76
70
}
77
-
78
- // Apply user-defined Swarm.ResourceMgr.Limits
79
- for scope , userLimit := range cfg .Limits {
80
- err := NetSetLimit (manager , scope , userLimit )
81
- if err != nil {
82
- return nil , opts , fmt .Errorf ("error while applying Swarm.ResourceMgr.Limits for scope %q: %w" , scope , err )
83
- }
84
- }
85
-
86
- } else {
87
- log .Debug ("libp2p resource manager is disabled" )
88
- manager = network .NullResourceManager
89
71
}
90
72
91
73
opts .Opts = append (opts .Opts , libp2p .ResourceManager (manager ))
0 commit comments