Skip to content

Commit 24c8535

Browse files
committed
tracker returns warnings for non-fatal conditions
1 parent be875c4 commit 24c8535

File tree

1 file changed

+32
-28
lines changed

1 file changed

+32
-28
lines changed

server.js

Lines changed: 32 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -151,28 +151,27 @@ Server.prototype._onHttpRequest = function (req, res) {
151151
case 'started':
152152
if (peer) {
153153
warning = 'unexpected `started` event from peer that is already in swarm'
154+
break
155+
}
156+
157+
if (Number(params.left) === 0) {
158+
swarm.complete += 1
154159
} else {
155-
var left = Number(params.left)
156-
157-
if (left === 0) {
158-
swarm.complete += 1
159-
} else {
160-
swarm.incomplete += 1
161-
}
162-
163-
peer = swarm.peers[addr] = {
164-
ip: ip,
165-
port: port,
166-
peerId: peerId
167-
}
168-
self.emit('start', addr)
160+
swarm.incomplete += 1
169161
}
170162

163+
swarm.peers[addr] = {
164+
ip: ip,
165+
port: port,
166+
peerId: peerId
167+
}
168+
self.emit('start', addr)
171169
break
172170

173171
case 'stopped':
174172
if (!peer) {
175-
return error('unexpected `stopped` event from peer that is not in swarm')
173+
warning = 'unexpected `stopped` event from peer that is not in swarm'
174+
break
176175
}
177176

178177
if (peer.complete) {
@@ -182,29 +181,31 @@ Server.prototype._onHttpRequest = function (req, res) {
182181
}
183182

184183
swarm.peers[addr] = null
185-
186184
self.emit('stop', addr)
187185
break
188186

189187
case 'completed':
190188
if (!peer) {
191-
return error('unexpected `completed` event from peer that is not in swarm')
189+
warning = 'unexpected `completed` event from peer that is not in swarm'
190+
break
192191
}
193192
if (peer.complete) {
194193
warning = 'unexpected `completed` event from peer that is already marked as completed'
194+
break
195195
}
196-
peer.complete = true
197196

198197
swarm.complete += 1
199198
swarm.incomplete -= 1
200199

200+
peer.complete = true
201201
self.emit('complete', addr)
202202
break
203203

204204
case '': // update
205205
case undefined:
206206
if (!peer) {
207-
return error('unexpected `update` event from peer that is not in swarm')
207+
warning = 'unexpected `update` event from peer that is not in swarm'
208+
break
208209
}
209210

210211
self.emit('update', addr)
@@ -341,7 +342,8 @@ Server.prototype._onUdpRequest = function (msg, rinfo) {
341342
switch (event) {
342343
case common.EVENTS.started:
343344
if (peer) {
344-
return error('unexpected `started` event from peer that is already in swarm')
345+
warning = 'unexpected `started` event from peer that is already in swarm'
346+
break
345347
}
346348

347349
if (left === 0) {
@@ -350,18 +352,18 @@ Server.prototype._onUdpRequest = function (msg, rinfo) {
350352
swarm.incomplete += 1
351353
}
352354

353-
peer = swarm.peers[addr] = {
355+
swarm.peers[addr] = {
354356
ip: ip,
355357
port: port,
356358
peerId: peerId
357359
}
358360
self.emit('start', addr)
359-
360361
break
361362

362363
case common.EVENTS.stopped:
363364
if (!peer) {
364-
return error('unexpected `stopped` event from peer that is not in swarm')
365+
warning = 'unexpected `stopped` event from peer that is not in swarm'
366+
break
365367
}
366368

367369
if (peer.complete) {
@@ -371,35 +373,37 @@ Server.prototype._onUdpRequest = function (msg, rinfo) {
371373
}
372374

373375
swarm.peers[addr] = null
374-
375376
self.emit('stop', addr)
376377
break
377378

378379
case common.EVENTS.completed:
379380
if (!peer) {
380-
return error('unexpected `completed` event from peer that is not in swarm')
381+
warning = 'unexpected `completed` event from peer that is not in swarm'
382+
break
381383
}
382384
if (peer.complete) {
383385
warning = 'unexpected `completed` event from peer that is already marked as completed'
386+
break
384387
}
385-
peer.complete = true
386388

387389
swarm.complete += 1
388390
swarm.incomplete -= 1
389391

392+
peer.complete = true
390393
self.emit('complete', addr)
391394
break
392395

393396
case common.EVENTS.update: // update
394397
if (!peer) {
395-
return error('unexpected `update` event from peer that is not in swarm')
398+
warning = 'unexpected `update` event from peer that is not in swarm'
399+
break
396400
}
397401

398402
self.emit('update', addr)
399403
break
400404

401405
default:
402-
return error('unexpected event: ' + event) // early return
406+
return error('invalid event') // early return
403407
}
404408

405409
// send peers

0 commit comments

Comments
 (0)