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 {Lock} = require('bmutex');
|
||||||
const {format} = require('util');
|
const {format} = require('util');
|
||||||
const tcp = require('btcp');
|
const tcp = require('btcp');
|
||||||
|
const dns = require('bdns');
|
||||||
const Logger = require('blgr');
|
const Logger = require('blgr');
|
||||||
const {RollingFilter} = require('bfilter');
|
const {RollingFilter} = require('bfilter');
|
||||||
const util = require('../utils/util');
|
const util = require('../utils/util');
|
||||||
@ -87,6 +88,7 @@ class Peer extends EventEmitter {
|
|||||||
this.loader = false;
|
this.loader = false;
|
||||||
this.address = new NetAddress();
|
this.address = new NetAddress();
|
||||||
this.local = new NetAddress();
|
this.local = new NetAddress();
|
||||||
|
this.name = null;
|
||||||
this.connected = false;
|
this.connected = false;
|
||||||
this.destroyed = false;
|
this.destroyed = false;
|
||||||
this.ack = false;
|
this.ack = false;
|
||||||
@ -375,6 +377,24 @@ class Peer extends EventEmitter {
|
|||||||
return socket;
|
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).
|
* Open and perform initial handshake (without rejection).
|
||||||
* @method
|
* @method
|
||||||
|
|||||||
@ -456,23 +456,23 @@ class RPC extends RPCBase {
|
|||||||
const peers = [];
|
const peers = [];
|
||||||
|
|
||||||
for (let peer = this.pool.peers.head(); peer; peer = peer.next) {
|
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 = [];
|
const hashes = [];
|
||||||
|
|
||||||
if (offset == null)
|
|
||||||
offset = 0;
|
|
||||||
|
|
||||||
for (const hash in peer.blockMap.keys()) {
|
for (const hash in peer.blockMap.keys()) {
|
||||||
const str = util.revHex(hash);
|
const str = util.revHex(hash);
|
||||||
hashes.push(str);
|
hashes.push(str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
peer.getName();
|
||||||
|
|
||||||
peers.push({
|
peers.push({
|
||||||
id: peer.id,
|
id: peer.id,
|
||||||
addr: peer.hostname(),
|
addr: peer.hostname(),
|
||||||
addrlocal: !peer.local.isNull()
|
addrlocal: !peer.local.isNull()
|
||||||
? peer.local.hostname
|
? peer.local.hostname
|
||||||
: undefined,
|
: undefined,
|
||||||
|
name: peer.name || undefined,
|
||||||
services: hex32(peer.services),
|
services: hex32(peer.services),
|
||||||
relaytxes: !peer.noRelay,
|
relaytxes: !peer.noRelay,
|
||||||
lastsend: peer.lastSend / 1000 | 0,
|
lastsend: peer.lastSend / 1000 | 0,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user