diff --git a/lib/dns.js b/lib/dns.js index cbba372584..d77159dad9 100644 --- a/lib/dns.js +++ b/lib/dns.js @@ -185,9 +185,11 @@ exports.resolve = function(hostname, type_, callback_) { 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)) { diff --git a/test/simple/test-dns.js b/test/simple/test-dns.js index 9283bab7b5..e7dce4b2ee 100644 --- a/test/simple/test-dns.js +++ b/test/simple/test-dns.js @@ -60,3 +60,13 @@ assert.deepEqual(dns.getServers(), portsExpected); 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" +);