Ich versuche DNS requests machen (& rückwärts auflösen) und Aussagen über Ergebnisse machen.Nightwatchjs DNS-Anfrage benutzerdefinierte Befehle
I laufen zwei ähnliche benutzerdefinierte Befehle in einer Reihe sowohl dns.setServers() Funktion in der Lage sein gesetzt einen anderen DNS-Server für jede Abfrage ausgeführt wird.
begegnete mir dieses bekannte Problem: node: ../deps/cares/src/ares_destroy.c:102: ares__destroy_servers_state: Assertion ares__is_list_empty(&server->queries_to_server)' failed.
Da es, dass es nodejs#894 gelöst wird nicht scheint ->c-ares#41.
ich nach einer Lösung gesucht, hier ist der Code:
Individuelle Befehl dnsResolve:
var util = require('util');
var events = require('events');
var dns = require ('dns');
var dnsresolve = function() {
events.EventEmitter.call(this);
};
util.inherits(dnsresolve, events.EventEmitter);
dnsresolve.prototype.command = function(server, hostname, rrtype, callback) {
var self = this;
var server = server.split();
dns.resolve(hostname, rrtype, function(err, result) {
dns.setServers(server);
if (result) {
callback(result);
} else {
callback(err.code);
}
self.emit('complete');
});
return this;
};
module.exports = dnsresolve;
Individuelle Befehl dnsreverse:
var util = require('util');
var events = require('events');
var dns = require ('dns');
var dnsreverse = function() {
events.EventEmitter.call(this);
};
util.inherits(dnsreverse, events.EventEmitter);
dnsreverse.prototype.command = function(server, ip, callback) {
var self = this;
var server = server.split();
dns.reverse(ip, function(err, result) {
dns.setServers(server);
if (result) {
callback(result);
} else {
callback(err.code);
}
self.emit('complete');
});
return this;
};
module.exports = dnsreverse;
benutzerdefinierte Befehle Anrufe :
'Browse' : function (browser) {
browser
.url('http://' + browser.globals.network.interfaces.em0.ip)
.waitForElementVisible('#frameContent', 2000)
.dnsresolve(browser.globals.network.interfaces.em0.ip, 'my.record', 'A', function(result) {
browser.verify.equal(result, '1.1.1.1')
})
.dnsreverse(browser.globals.network.interfaces.em0.ip, '1.1.1.1', function(result) {
browser.verify.equal(result, 'my.record')
})
}
Verwendung anderer Knotenmodule ist keine Lösung.