@@ -83,6 +83,7 @@ async function startService ({ peerId, port, peerAnnounceAddr, awsClient, connec
83
83
}
84
84
} )
85
85
86
+ const cancelsPerPeer = new Map ( )
86
87
const handlerOptions = {
87
88
maxInboundStreams : connectionConfig . handler . maxInboundStreams ,
88
89
maxOutboundStreams : connectionConfig . handler . maxOutboundStreams
@@ -109,7 +110,7 @@ async function startService ({ peerId, port, peerAnnounceAddr, awsClient, connec
109
110
service . handle ( protocol , async ( { connection : dial , stream } ) => {
110
111
try {
111
112
const connection = new Connection ( stream )
112
- const canceled = new LRU ( { max : 200 } )
113
+ const canceled = cancelsPerPeer . get ( dial . remotePeer . toString ( ) )
113
114
114
115
const hrTime = process . hrtime ( )
115
116
const connectionId = hrTime [ 0 ] * 1000000000 + hrTime [ 1 ]
@@ -161,20 +162,29 @@ async function startService ({ peerId, port, peerAnnounceAddr, awsClient, connec
161
162
162
163
// TODO move to networking
163
164
service . connectionManager . addEventListener ( 'peer:connect' , connection => {
165
+ cancelsPerPeer . set (
166
+ connection . detail . remotePeer . toString ( ) ,
167
+ new LRU ( { max : 200 } )
168
+ )
169
+
164
170
try {
165
171
telemetry . increaseCount ( 'bitswap-connections' )
166
172
telemetry . increaseGauge ( 'bitswap-active-connections' )
167
173
} catch ( err ) {
168
- logger . warn ( { err, remotePeer : connection . remotePeer } , 'Error while peer connecting' )
174
+ logger . warn ( { err, remotePeer : connection . detail . remotePeer . toString ( ) } , 'Error while peer connecting' )
169
175
}
170
176
} )
171
177
172
178
// TODO move to networking
173
179
service . connectionManager . addEventListener ( 'peer:disconnect' , connection => {
180
+ cancelsPerPeer . delete (
181
+ connection . detail . remotePeer . toString ( )
182
+ )
183
+
174
184
try {
175
185
telemetry . decreaseGauge ( 'bitswap-active-connections' )
176
186
} catch ( err ) {
177
- logger . warn ( { err, remotePeer : connection . remotePeer } , 'Error while peer disconnecting' )
187
+ logger . warn ( { err, remotePeer : connection . detail . remotePeer . toString ( ) } , 'Error while peer disconnecting' )
178
188
}
179
189
} )
180
190
0 commit comments