Skip to content

Commit 07850cd

Browse files
committed
Fixes for PR webtorrent#39
- emit 'warning' instead of 'error' because it's not a fatal error, just a bad tracker response. - made the try block more concise so it only catches the errors from `string2compact`
1 parent 7e081f8 commit 07850cd

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

client.js

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -352,13 +352,15 @@ Tracker.prototype._requestUdp = function (requestUrl, opts) {
352352
incomplete: msg.readUInt32BE(12)
353353
})
354354

355+
var addrs
355356
try {
356-
compact2string.multi(msg.slice(20)).forEach(function (addr) {
357-
self.client.emit('peer', addr)
358-
})
357+
addrs = compact2string.multi(msg.slice(20))
359358
} catch (err) {
360-
return self.client.emit('error', err)
359+
return self.client.emit('warning', err)
361360
}
361+
addrs.forEach(function (addr) {
362+
self.client.emit('peer', addr)
363+
})
362364
break
363365

364366
case 2: // scrape
@@ -482,13 +484,15 @@ Tracker.prototype._handleResponse = function (requestUrl, data) {
482484

483485
if (Buffer.isBuffer(data.peers)) {
484486
// tracker returned compact response
487+
var addrs
485488
try {
486-
compact2string.multi(data.peers).forEach(function (addr) {
487-
self.client.emit('peer', addr)
488-
})
489+
addrs = compact2string.multi(data.peers)
489490
} catch (err) {
490-
return self.client.emit('error', err)
491+
return self.client.emit('warning', err)
491492
}
493+
addrs.forEach(function (addr) {
494+
self.client.emit('peer', addr)
495+
})
492496
} else if (Array.isArray(data.peers)) {
493497
// tracker returned normal response
494498
data.peers.forEach(function (peer) {

0 commit comments

Comments
 (0)