@cryptotaxi247 / kubo / commits / 529929903

Move ConnMgr construction into DI provider

License: MIT Signed-off-by: Łukasz Magiera <magik6k@gmail.com>

Łukasz Magiera committed Apr 1, 2019 at 21:13 UTC 5299299037f968c5e47a8278904b73ca8bb86c93
1 file changed +23 -4
core/ncore.go
+23 -4
@@ -31,6 +31,7 @@ import (
31 "github.com/libp2p/go-libp2p"
32 "github.com/libp2p/go-libp2p-autonat-svc"
33 circuit "github.com/libp2p/go-libp2p-circuit"
34 + connmgr "github.com/libp2p/go-libp2p-connmgr"
35 "github.com/libp2p/go-libp2p-kad-dht"
36 "github.com/libp2p/go-libp2p-metrics"
37 pstore "github.com/libp2p/go-libp2p-peerstore"
@@ -329,12 +330,30 @@ func p2pAddrsFactory(cfg *iconfig.Config) (opts libp2pOpts, err error) {
330 }
331
332 func p2pConnectionManager(cfg *iconfig.Config) (opts libp2pOpts, err error) {
332 - connm, err := constructConnMgr(cfg.Swarm.ConnMgr)
333 - if err != nil {
334 - return opts, err
333 + grace := iconfig.DefaultConnMgrGracePeriod
334 + low := iconfig.DefaultConnMgrHighWater
335 + high := iconfig.DefaultConnMgrHighWater
336 +
337 + switch cfg.Swarm.ConnMgr.Type {
338 + case "":
339 + // 'default' value is the basic connection manager
340 + return
341 + case "none":
342 + return opts, nil
343 + case "basic":
344 + grace, err = time.ParseDuration(cfg.Swarm.ConnMgr.GracePeriod)
345 + if err != nil {
346 + return opts, fmt.Errorf("parsing Swarm.ConnMgr.GracePeriod: %s", err)
347 + }
348 +
349 + low = cfg.Swarm.ConnMgr.LowWater
350 + high = cfg.Swarm.ConnMgr.HighWater
351 + default:
352 + return opts, fmt.Errorf("unrecognized ConnMgr.Type: %q", cfg.Swarm.ConnMgr.Type)
353 }
354
337 - opts.Opts = append(opts.Opts, libp2p.ConnectionManager(connm))
355 + cm := connmgr.NewConnManager(low, high, grace)
356 + opts.Opts = append(opts.Opts, libp2p.ConnectionManager(cm))
357 return
358 }
359