@cryptotaxi247 / kubo / commits / 017d5003f

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 {