From 017d5003f269cfa19589420bdf5bf4a59472a158 Mon Sep 17 00:00:00 2001 From: Hector Sanjuan Date: Thu, 31 Jul 2025 16:13:47 +0200 Subject: [PATCH] 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. --- core/node/bitswap.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/node/bitswap.go b/core/node/bitswap.go index 976d82765..cb2e832d8 100644 --- a/core/node/bitswap.go +++ b/core/node/bitswap.go @@ -88,9 +88,14 @@ func Bitswap(serverEnabled, libp2pEnabled, httpEnabled bool) interface{} { var bitswapNetworks, bitswapLibp2p network.BitSwapNetwork var bitswapBlockstore blockstore.Blockstore = in.Bs + connEvtMgr := network.NewConnectEventManager() + libp2pEnabled := in.Cfg.Bitswap.Libp2pEnabled.WithDefault(config.DefaultBitswapLibp2pEnabled) if libp2pEnabled { - bitswapLibp2p = bsnet.NewFromIpfsHost(in.Host) + bitswapLibp2p = bsnet.NewFromIpfsHost( + in.Host, + bsnet.WithConnectEventManager(connEvtMgr), + ) } if httpEnabled { @@ -112,6 +117,7 @@ func Bitswap(serverEnabled, libp2pEnabled, httpEnabled bool) interface{} { httpnet.WithMaxBlockSize(int64(maxBlockSize)), httpnet.WithUserAgent(version.GetUserAgentVersion()), httpnet.WithMetricsLabelsForEndpoints(httpCfg.Allowlist), + httpnet.WithConnectEventManager(connEvtMgr), ) bitswapNetworks = network.New(in.Host.Peerstore(), bitswapLibp2p, bitswapHTTP) } else if libp2pEnabled {