diff --git a/README.md b/README.md index fa526c8..03ae306 100644 --- a/README.md +++ b/README.md @@ -251,6 +251,8 @@ Available Types: - `exchange` -- string * `TXT` - `data` -- string + * `SPF` + - `data` -- string * `SRV` - `priority` -- number - `weight` -- number diff --git a/dns.js b/dns.js index 8b207c4..f91b963 100644 --- a/dns.js +++ b/dns.js @@ -33,6 +33,7 @@ exports.resolve4 = client.resolve4; exports.resolve6 = client.resolve6; exports.resolveMx = client.resolveMx; exports.resolveTxt = client.resolveTxt; +exports.resolveSpf = client.resolveSpf; exports.resolveSrv = client.resolveSrv; exports.resolveNs = client.resolveNs; exports.resolveCname = client.resolveCname; @@ -61,6 +62,7 @@ var definedTypes = [ 'PTR', 'NAPTR', 'TXT', + 'SPF', 'MX', 'SRV', 'SOA', diff --git a/lib/client.js b/lib/client.js index edabf63..2319380 100644 --- a/lib/client.js +++ b/lib/client.js @@ -34,6 +34,7 @@ var A = consts.NAME_TO_QTYPE.A, AAAA = consts.NAME_TO_QTYPE.AAAA, MX = consts.NAME_TO_QTYPE.MX, TXT = consts.NAME_TO_QTYPE.TXT, + SPV = consts.NAME_TO_QTYPE.SPF, NS = consts.NAME_TO_QTYPE.NS, CNAME = consts.NAME_TO_QTYPE.CNAME, SRV = consts.NAME_TO_QTYPE.SRV, @@ -440,6 +441,7 @@ var resolve = function(domain, rrtype, ip, callback) { }); break; case TXT: + case SPF: case NS: case CNAME: case PTR: @@ -499,6 +501,13 @@ var resolveTxt = function(domain, callback) { }; exports.resolveTxt = resolveTxt; +var resolveSpf = function(domain, callback) { + return resolve(domain, 'SPF', function(err, results) { + callback(err, results); + }); +}; +exports.resolveSpf = resolveSpf; + var resolveSrv = function(domain, callback) { return resolve(domain, 'SRV', function(err, results) { callback(err, results); diff --git a/package.json b/package.json index 2253d7d..4883c15 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "native-dns", - "version": "0.5.0", + "version": "0.5.2", "author": "Timothy J Fontaine (http://atxconsulting.com)", "description": "Replacement for the core DNS module, includes server implementation", "keywords": [ @@ -25,8 +25,8 @@ }, "dependencies": { "ipaddr.js": ">= 0.1.1", - "native-dns-cache": ">= 0.0.1", - "native-dns-packet": ">= 0.0.1" + "native-dns-cache": "0.0.1", + "native-dns-packet": "0.0.1" }, "devDependencies": { "optimist": "", diff --git a/test/client.js b/test/client.js index 625a949..7dc1eca 100644 --- a/test/client.js +++ b/test/client.js @@ -258,6 +258,17 @@ exports.resolveTxt = function (test) { checkWrap(test, req); }; +exports.resolveSpf = function (test) { + var req = dns.resolveSpf('google.com', function(err, records) { + test.ifError(err); + test.equal(records.length, 1); + test.equal(records[0].indexOf('v=spf1'), 0); + test.done(); + }); + + checkWrap(test, req); +}; + exports.lookup_ipv4_explicit = function (test) { var req = dns.lookup('www.google.com', 4, function(err, ip, family) {