diff options
author | Feross Aboukhadijeh <feross@feross.org> | 2013-10-28 06:19:22 +0400 |
---|---|---|
committer | Feross Aboukhadijeh <feross@feross.org> | 2013-10-28 06:19:22 +0400 |
commit | 418a742860a518d96924355f2da799ef705435bd (patch) | |
tree | 1ac1df7818e38e22cf16691fd2b0cc60cc842cde /lib | |
parent | 3513b891c7f2f7c667556198880ce6e35868b25b (diff) |
DHT: only parse node/peer info when that key exists in response
Diffstat (limited to 'lib')
-rw-r--r-- | lib/bittorrent-dht/index.js | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/lib/bittorrent-dht/index.js b/lib/bittorrent-dht/index.js index d83e761..1422e12 100644 --- a/lib/bittorrent-dht/index.js +++ b/lib/bittorrent-dht/index.js @@ -136,19 +136,23 @@ DHT.prototype._onData = function (data, host, port) { return } - if (!message.t || (bops.from(message.t) !== self.requestId.toString())) { - console.log(message.t) - console.log(self.requestId) - console.log('wrong message requestId') + if (!message.t || (bops.to(message.t) !== self.requestId.toString())) { + log(message.t) + log(self.requestId) + log('wrong message requestId') return } var r = message && message.r - var nodes = r && r.nodes || [] - var values = r && r.values || [] - parseNodeInfo(nodes).forEach(self._onNode.bind(self)) - parsePeerInfo(values).forEach(self._onPeer.bind(self)) + if (r && bops.is(r.nodes)) { + log('nodes') + parseNodeInfo(r.nodes).forEach(self._onNode.bind(self)) + } + if (r && bops.is(r.values)) { + log('peers') + parsePeerInfo(r.values).forEach(self._onPeer.bind(self)) + } } DHT.prototype.query = function (addr) { |