WIP changes for CNAME fix
This commit is contained in:
parent
ad61360a22
commit
148bda8afc
|
@ -422,14 +422,37 @@ module.exports.query = function (input, query, cb) {
|
|||
});
|
||||
|
||||
myRecords = someRecords;
|
||||
if (255 !== query.question[0].type && 'ANY' !== query.question[0].typeName) {
|
||||
myRecords = myRecords.filter(function (r) {
|
||||
|
||||
return ((r.type && r.type === query.question[0].type)
|
||||
// If we had an ANY query then we don't need to filter out results
|
||||
if (255 !== query.question[0].type && 'ANY' !== query.question[0].typeName) {
|
||||
var hasA = false;
|
||||
var hasCname = false;
|
||||
|
||||
// We should only return the records that match the query,
|
||||
// except in the case of A/AAAA in which case we should also collect the CNAME
|
||||
myRecords = myRecords.filter(function (r) {
|
||||
var passCnames = false;
|
||||
|
||||
if (!hasA && ('A' === query.question[0].typeName || 'AAAA' === query.question[0].typeName)) {
|
||||
passCnames = ('CNAME' === r.type ||'CNAME' === r.typeName);
|
||||
hasCname = hasCname || passCnames;
|
||||
}
|
||||
|
||||
hasA = hasA || ('A' === r.type || 'A' === r.typeName || 'AAAA' === r.type || 'AAAA' === r.typeName);
|
||||
|
||||
return passCnames || ((r.type && r.type === query.question[0].type)
|
||||
|| (r.type && r.type === query.question[0].typeName)
|
||||
|| (r.typeName && r.typeName === query.question[0].typeName)
|
||||
);
|
||||
});
|
||||
|
||||
// A and AAAA will also return CNAME records
|
||||
// but we filter out the CNAME records unless there are no A / AAAA records
|
||||
if (hasA && hasCname && ('A' === query.question[0].typeName || 'AAAA' === query.question[0].typeName)) {
|
||||
myRecords = myRecords.forEach(function (r) {
|
||||
return 'CNAME' !== r.type && 'CNAME' !== r.typeName;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (myRecords.length) {
|
||||
|
|
Loading…
Reference in New Issue