Skip to content

Commit ebf1172

Browse files
committed
Check if peer is undefined
1 parent 8f2e217 commit ebf1172

File tree

1 file changed

+24
-19
lines changed

1 file changed

+24
-19
lines changed

server.js

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -198,28 +198,33 @@ function Server (opts) {
198198
if (keys.length > 0) activeTorrents++
199199

200200
keys.forEach(function (peerId) {
201-
if (!allPeers.hasOwnProperty(peerId)) {
202-
allPeers[peerId] = {
203-
ipv4: false,
204-
ipv6: false,
205-
seeder: false,
206-
leecher: false
207-
}
208-
}
209201
// Don't mark the peer as most recently used for stats
210202
var peer = peers.peek(peerId)
211-
if (peer.ip.indexOf(':') >= 0) {
212-
allPeers[peerId].ipv6 = true
213-
} else {
214-
allPeers[peerId].ipv4 = true
215-
}
216-
if (peer.complete) {
217-
allPeers[peerId].seeder = true
218-
} else {
219-
allPeers[peerId].leecher = true
203+
204+
// The peer could be evicted at this point
205+
if (typeof peer !== 'undefined') {
206+
if (!allPeers.hasOwnProperty(peerId)) {
207+
allPeers[peerId] = {
208+
ipv4: false,
209+
ipv6: false,
210+
seeder: false,
211+
leecher: false
212+
}
213+
}
214+
215+
if (peer.ip.indexOf(':') >= 0) {
216+
allPeers[peerId].ipv6 = true
217+
} else {
218+
allPeers[peerId].ipv4 = true
219+
}
220+
if (peer.complete) {
221+
allPeers[peerId].seeder = true
222+
} else {
223+
allPeers[peerId].leecher = true
224+
}
225+
allPeers[peerId].peerId = peer.peerId
226+
allPeers[peerId].client = peerid(peer.peerId)
220227
}
221-
allPeers[peerId].peerId = peer.peerId
222-
allPeers[peerId].client = peerid(peer.peerId)
223228
})
224229
})
225230

0 commit comments

Comments
 (0)