Skip to content

Commit 4baa206

Browse files
committed
fix: fixed TLSA non-buffer response
1 parent d4a6962 commit 4baa206

File tree

1 file changed

+22
-16
lines changed

1 file changed

+22
-16
lines changed

index.js

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1847,24 +1847,30 @@ class Tangerine extends dns.promises.Resolver {
18471847
// if it returns answers with `type: TLSA` then recursively lookup
18481848
// 3 1 1 D6FEA64D4E68CAEAB7CBB2E0F905D7F3CA3308B12FD88C5B469F08AD 7E05C7C7
18491849
return result.answers.map((answer) => {
1850-
if (!Buffer.isBuffer(answer.data)) {
1851-
console.log('BUFFER DATA');
1852-
console.log('answer', answer);
1853-
console.log('answer.data', answer.data);
1854-
console.log(JSON.stringify(answer, null, 2));
1855-
throw new Error('Buffer was not available');
1856-
}
1857-
1858-
// <https://www.mailhardener.com/kb/dane>
1859-
return {
1850+
const obj = {
18601851
name: answer.name,
1861-
ttl: answer.ttl,
1862-
// <https://github.com/rthalley/dnspython/blob/98b12e9e43847dac615bb690355d2fabaff969d2/dns/rdtypes/tlsabase.py#L35>
1863-
usage: answer.data.subarray(0, 1).readUInt8(),
1864-
selector: answer.data.subarray(1, 2).readUInt8(),
1865-
mtype: answer.data.subarray(2, 3).readUInt8(),
1866-
cert: answer.data.subarray(3)
1852+
ttl: answer.ttl
18671853
};
1854+
1855+
// <https://www.mailhardener.com/kb/dane>
1856+
// <https://github.com/rthalley/dnspython/blob/98b12e9e43847dac615bb690355d2fabaff969d2/dns/rdtypes/tlsabase.py#L35>
1857+
if (Buffer.isBuffer(answer.data)) {
1858+
obj.usage = answer.data.subarray(0, 1).readUInt8();
1859+
obj.selector = answer.data.subarray(1, 2).readUInt8();
1860+
obj.mtype = answer.data.subarray(2, 3).readUInt8();
1861+
obj.cert = answer.data.subarray(3);
1862+
} else {
1863+
obj.usage = answer.data.usage;
1864+
obj.selector = answer.data.selector;
1865+
obj.mtype = answer.data.matchingType;
1866+
obj.cert = answer.data.certificate;
1867+
}
1868+
1869+
// aliases to match Cloudflare DNS response
1870+
obj.matchingType = obj.mtype;
1871+
obj.certificate = obj.cert;
1872+
1873+
return obj;
18681874
});
18691875
}
18701876

0 commit comments

Comments
 (0)