peer: add reverse dns lookup.
This commit is contained in:
parent
03ddc79dfc
commit
d5a2609f75
@ -12,6 +12,7 @@ const EventEmitter = require('events');
|
||||
const {Lock} = require('bmutex');
|
||||
const {format} = require('util');
|
||||
const tcp = require('btcp');
|
||||
const dns = require('bdns');
|
||||
const Logger = require('blgr');
|
||||
const {RollingFilter} = require('bfilter');
|
||||
const util = require('../utils/util');
|
||||
@ -87,6 +88,7 @@ class Peer extends EventEmitter {
|
||||
this.loader = false;
|
||||
this.address = new NetAddress();
|
||||
this.local = new NetAddress();
|
||||
this.name = null;
|
||||
this.connected = false;
|
||||
this.destroyed = false;
|
||||
this.ack = false;
|
||||
@ -375,6 +377,24 @@ class Peer extends EventEmitter {
|
||||
return socket;
|
||||
}
|
||||
|
||||
/**
|
||||
* Do a reverse dns lookup on peer's addr.
|
||||
* @returns {Promise}
|
||||
*/
|
||||
|
||||
async getName() {
|
||||
try {
|
||||
if (!this.name) {
|
||||
const {host, port} = this.address;
|
||||
const {hostname} = await dns.lookupService(host, port);
|
||||
this.name = hostname;
|
||||
}
|
||||
} catch (e) {
|
||||
;
|
||||
}
|
||||
return this.name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Open and perform initial handshake (without rejection).
|
||||
* @method
|
||||
|
||||
@ -456,23 +456,23 @@ class RPC extends RPCBase {
|
||||
const peers = [];
|
||||
|
||||
for (let peer = this.pool.peers.head(); peer; peer = peer.next) {
|
||||
let offset = this.network.time.known.get(peer.hostname());
|
||||
const offset = this.network.time.known.get(peer.hostname()) || 0;
|
||||
const hashes = [];
|
||||
|
||||
if (offset == null)
|
||||
offset = 0;
|
||||
|
||||
for (const hash in peer.blockMap.keys()) {
|
||||
const str = util.revHex(hash);
|
||||
hashes.push(str);
|
||||
}
|
||||
|
||||
peer.getName();
|
||||
|
||||
peers.push({
|
||||
id: peer.id,
|
||||
addr: peer.hostname(),
|
||||
addrlocal: !peer.local.isNull()
|
||||
? peer.local.hostname
|
||||
: undefined,
|
||||
name: peer.name || undefined,
|
||||
services: hex32(peer.services),
|
||||
relaytxes: !peer.noRelay,
|
||||
lastsend: peer.lastSend / 1000 | 0,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user