diff options
-rwxr-xr-x | bin/cmd.js | 2 | ||||
-rw-r--r-- | lib/torrent.js | 26 | ||||
-rw-r--r-- | package.json | 2 |
3 files changed, 19 insertions, 11 deletions
@@ -530,7 +530,7 @@ function drawTorrent (torrent) { '{3:%s} {25+magenta:%s} {10:%s} {10+cyan:%s/s} {10+red:%s/s} {15+grey:%s}' + '{15+cyan:%s}', progress, - wire.remoteAddress, + wire.remoteAddress + ':' + wire.remotePort, prettyBytes(wire.downloaded), prettyBytes(wire.downloadSpeed()), prettyBytes(wire.uploadSpeed()), diff --git a/lib/torrent.js b/lib/torrent.js index e4f094f..91ebcbb 100644 --- a/lib/torrent.js +++ b/lib/torrent.js @@ -432,9 +432,13 @@ Torrent.prototype.critical = function (start, end) { self._updateSelections() } -Torrent.prototype._onWire = function (wire) { +Torrent.prototype._onWire = function (wire, addr) { var self = this + var parts = addrToIPPort(addr) + wire.remoteAddress = parts[0] + wire.remotePort = parts[1] + // use ut_metadata extension wire.use(ut_metadata(self.metadata)) @@ -452,14 +456,14 @@ Torrent.prototype._onWire = function (wire) { // wire.ut_pex.start() // TODO two-way communication wire.ut_pex.on('peer', function (peer) { - debug('ut_pex: got peer: %s (from %s)', peer, wire.remoteAddress) + debug('ut_pex: got peer: %s (from %s)', peer, addr) self.addPeer(peer) }) wire.ut_pex.on('dropped', function (peer) { // the remote peer believes a given peer has been dropped from the swarm. // if we're not currently connected to it, then remove it from the swarm's queue. - debug('ut_pex: dropped peer: %s (from %s)', peer, wire.remoteAddress) + debug('ut_pex: dropped peer: %s (from %s)', peer, addr) if (!(peer in self.swarm._peers)) self.swarm._removePeer(peer) }) } @@ -474,13 +478,13 @@ Torrent.prototype._onWire = function (wire) { // When peer sends PORT, add them to the routing table wire.on('port', function (port) { - debug('port: %s (from %s)', port, wire.remoteAddress) - var parts = addrToIPPort(wire.remoteAddress) + debug('port: %s (from %s)', port, addr) + var parts = addrToIPPort(addr) if (self.client.dht) self.client.dht.addNode(parts[0] + ':' + port) }) wire.on('timeout', function () { - debug('wire timeout (%s)', wire.remoteAddress) + debug('wire timeout (%s)', addr) // TODO: this might be destroying wires too eagerly wire.destroy() }) @@ -552,7 +556,10 @@ Torrent.prototype._onWireWithMetadata = function (wire) { wire.on('request', function (index, offset, length, cb) { // Disconnect from peers that request more than 128KB, per spec if (length > MAX_BLOCK_LENGTH) { - debug(wire.remoteAddress, 'requested invalid block size', length) + debug( + 'got invalid block size request %s (from %s)', + length, wire.remoteAddress + ':' + wire.remotePort + ) return wire.destroy() } @@ -991,7 +998,8 @@ Torrent.prototype._request = function (wire, index, hotswap) { if (err) { debug( 'error getting piece %s (offset: %s length: %s) from %s: %s', - index, block.offset, block.length, wire.remoteAddress, err.message + index, block.offset, block.length, wire.remoteAddress + ':' + wire.remotePort, + err.message ) self.storage.cancelBlock(index, block.offset) process.nextTick(self._update.bind(self)) @@ -999,7 +1007,7 @@ Torrent.prototype._request = function (wire, index, hotswap) { } else { debug( 'got piece %s (offset: %s length: %s) from %s', - index, block.offset, block.length, wire.remoteAddress + index, block.offset, block.length, wire.remoteAddress + ':' + wire.remotePort ) self.storage.writeBlock(index, block.offset, buffer, function (err) { if (err) { diff --git a/package.json b/package.json index d21563c..24927cc 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "addr-to-ip-port": "^1.0.1", "bitfield": "^1.0.2", "bittorrent-dht": "^3.0.0", - "bittorrent-swarm": "^2.0.0", + "bittorrent-swarm": "^3.0.0", "block-stream": "0.0.7", "clivas": "^0.2.0", "create-torrent": "^3.4.0", |