Skip to content

Commit 8439300

Browse files
committed
server: unify compact serialization
1 parent b72960d commit 8439300

File tree

2 files changed

+7
-18
lines changed

2 files changed

+7
-18
lines changed

lib/swarm.js

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
var debug = require('debug')('bittorrent-tracker')
2-
var string2compact = require('string2compact')
32

43
module.exports = Swarm
54

@@ -85,9 +84,7 @@ Swarm.prototype.announce = function (params, cb) {
8584
if (params.left === 0 && peer) peer.complete = true
8685

8786
// send peers
88-
var peers = params.compact === 1
89-
? self._getPeersCompact(params.numwant)
90-
: self._getPeers(params.numwant)
87+
var peers = self._getPeers(params.numwant)
9188

9289
cb(null, {
9390
complete: this.complete,
@@ -111,20 +108,6 @@ Swarm.prototype._getPeers = function (numwant) {
111108
return peers
112109
}
113110

114-
Swarm.prototype._getPeersCompact = function (numwant) {
115-
var peers = []
116-
117-
for (var peerId in this.peers) {
118-
if (peers.length >= numwant) break
119-
var peer = this.peers[peerId]
120-
if (!peer) continue // ignore null values
121-
peers.push(peer.ip + ':' + peer.port)
122-
}
123-
124-
return string2compact(peers)
125-
}
126-
127-
128111
Swarm.prototype.scrape = function (infoHash, params, cb) {
129112
cb(null, {
130113
complete: this.complete,

server.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ var inherits = require('inherits')
99
var ipLib = require('ip')
1010
var portfinder = require('portfinder')
1111
var series = require('run-series')
12+
var string2compact = require('string2compact')
1213

1314
var common = require('./lib/common')
1415
var Swarm = require('./lib/swarm')
@@ -216,6 +217,11 @@ Server.prototype._onAnnounce = function (params, cb) {
216217
if (response) {
217218
if (!response.action) response.action = common.ACTIONS.ANNOUNCE
218219
if (!response.intervalMs) response.intervalMs = self._intervalMs
220+
if (params.compact === 1) {
221+
response.peers = string2compact(response.peers.map(function (peer) {
222+
return peer.ip + ':' + peer.port // TODO: ipv6 brackets
223+
}))
224+
}
219225
}
220226
cb(err, response)
221227
})

0 commit comments

Comments
 (0)