Don't use argument as callback if it's not a valid callback function.
Throw a valid exception instead explaining the issue.
Adds to #7070 ("DNS — Throw meaningful error(s)").
if (util.isString(type_)) {
resolver = resolveMap[type_];
callback = callback_;
- } else {
+ } else if (util.isFunction(type_)) {
resolver = exports.resolve4;
callback = type_;
+ } else {
+ throw new Error('Type must be a string');
}
if (util.isFunction(resolver)) {
assert.doesNotThrow(function () { dns.setServers([]); });
assert.deepEqual(dns.getServers(), []);
+
+assert.throws(
+ function() {
+ dns.resolve('test.com', [], new Function);
+ },
+ function(err) {
+ return !(err instanceof TypeError);
+ },
+ "Unexpected error"
+);