提交 52992990 作者: Łukasz Magiera 提交者: Steven Allen

Move ConnMgr construction into DI provider

License: MIT
Signed-off-by: 's avatarŁukasz Magiera <magik6k@gmail.com>
上级 d0670f22
...@@ -31,6 +31,7 @@ import ( ...@@ -31,6 +31,7 @@ import (
"github.com/libp2p/go-libp2p" "github.com/libp2p/go-libp2p"
"github.com/libp2p/go-libp2p-autonat-svc" "github.com/libp2p/go-libp2p-autonat-svc"
circuit "github.com/libp2p/go-libp2p-circuit" circuit "github.com/libp2p/go-libp2p-circuit"
connmgr "github.com/libp2p/go-libp2p-connmgr"
"github.com/libp2p/go-libp2p-kad-dht" "github.com/libp2p/go-libp2p-kad-dht"
"github.com/libp2p/go-libp2p-metrics" "github.com/libp2p/go-libp2p-metrics"
pstore "github.com/libp2p/go-libp2p-peerstore" pstore "github.com/libp2p/go-libp2p-peerstore"
...@@ -329,12 +330,30 @@ func p2pAddrsFactory(cfg *iconfig.Config) (opts libp2pOpts, err error) { ...@@ -329,12 +330,30 @@ func p2pAddrsFactory(cfg *iconfig.Config) (opts libp2pOpts, err error) {
} }
func p2pConnectionManager(cfg *iconfig.Config) (opts libp2pOpts, err error) { func p2pConnectionManager(cfg *iconfig.Config) (opts libp2pOpts, err error) {
connm, err := constructConnMgr(cfg.Swarm.ConnMgr) grace := iconfig.DefaultConnMgrGracePeriod
if err != nil { low := iconfig.DefaultConnMgrHighWater
return opts, err high := iconfig.DefaultConnMgrHighWater
switch cfg.Swarm.ConnMgr.Type {
case "":
// 'default' value is the basic connection manager
return
case "none":
return opts, nil
case "basic":
grace, err = time.ParseDuration(cfg.Swarm.ConnMgr.GracePeriod)
if err != nil {
return opts, fmt.Errorf("parsing Swarm.ConnMgr.GracePeriod: %s", err)
}
low = cfg.Swarm.ConnMgr.LowWater
high = cfg.Swarm.ConnMgr.HighWater
default:
return opts, fmt.Errorf("unrecognized ConnMgr.Type: %q", cfg.Swarm.ConnMgr.Type)
} }
opts.Opts = append(opts.Opts, libp2p.ConnectionManager(connm)) cm := connmgr.NewConnManager(low, high, grace)
opts.Opts = append(opts.Opts, libp2p.ConnectionManager(cm))
return return
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论