Bitswap: use a single ConnectEventManager.
After boxo v0.33.1, this is a recommended step to fix http retrieval bugs. Having a single ConnectEventManager prevents misdirected operations in the network.Router to change the Connectedness state in a way that the counterpart (httpnet or bsnet) can later correct.
Hector Sanjuan committed
Jul 31, 2025 at 16:13 UTC
017d5003f269cfa19589420bdf5bf4a59472a158
1 file changed
+7
-1
core/node/bitswap.go
+7
-1
@@ -88,9 +88,14 @@ func Bitswap(serverEnabled, libp2pEnabled, httpEnabled bool) interface{} {
88
var bitswapNetworks, bitswapLibp2p network.BitSwapNetwork
89
var bitswapBlockstore blockstore.Blockstore = in.Bs
90
91
+ connEvtMgr := network.NewConnectEventManager()
92
+
93
libp2pEnabled := in.Cfg.Bitswap.Libp2pEnabled.WithDefault(config.DefaultBitswapLibp2pEnabled)
94
if libp2pEnabled {
93
- bitswapLibp2p = bsnet.NewFromIpfsHost(in.Host)
95
+ bitswapLibp2p = bsnet.NewFromIpfsHost(
96
+ in.Host,
97
+ bsnet.WithConnectEventManager(connEvtMgr),
98
+ )
99
}
100
101
if httpEnabled {
@@ -112,6 +117,7 @@ func Bitswap(serverEnabled, libp2pEnabled, httpEnabled bool) interface{} {
117
httpnet.WithMaxBlockSize(int64(maxBlockSize)),
118
httpnet.WithUserAgent(version.GetUserAgentVersion()),
119
httpnet.WithMetricsLabelsForEndpoints(httpCfg.Allowlist),
120
+ httpnet.WithConnectEventManager(connEvtMgr),
121
)
122
bitswapNetworks = network.New(in.Host.Peerstore(), bitswapLibp2p, bitswapHTTP)
123
} else if libp2pEnabled {