tangerine 1.4.7 → 1.4.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +23 -11
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -311,6 +311,7 @@ class Tangerine extends dns.promises.Resolver {
|
|
|
311
311
|
]);
|
|
312
312
|
|
|
313
313
|
static RETRY_ERROR_CODES = new Set([
|
|
314
|
+
'ETIMEOUT',
|
|
314
315
|
'ETIMEDOUT',
|
|
315
316
|
'ECONNRESET',
|
|
316
317
|
'EADDRINUSE',
|
|
@@ -1846,19 +1847,30 @@ class Tangerine extends dns.promises.Resolver {
|
|
|
1846
1847
|
// if it returns answers with `type: TLSA` then recursively lookup
|
|
1847
1848
|
// 3 1 1 D6FEA64D4E68CAEAB7CBB2E0F905D7F3CA3308B12FD88C5B469F08AD 7E05C7C7
|
|
1848
1849
|
return result.answers.map((answer) => {
|
|
1849
|
-
|
|
1850
|
-
throw new Error('Buffer was not available');
|
|
1851
|
-
|
|
1852
|
-
// <https://www.mailhardener.com/kb/dane>
|
|
1853
|
-
return {
|
|
1850
|
+
const obj = {
|
|
1854
1851
|
name: answer.name,
|
|
1855
|
-
ttl: answer.ttl
|
|
1856
|
-
// <https://github.com/rthalley/dnspython/blob/98b12e9e43847dac615bb690355d2fabaff969d2/dns/rdtypes/tlsabase.py#L35>
|
|
1857
|
-
usage: answer.data.subarray(0, 1).readUInt8(),
|
|
1858
|
-
selector: answer.data.subarray(1, 2).readUInt8(),
|
|
1859
|
-
mtype: answer.data.subarray(2, 3).readUInt8(),
|
|
1860
|
-
cert: answer.data.subarray(3)
|
|
1852
|
+
ttl: answer.ttl
|
|
1861
1853
|
};
|
|
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;
|
|
1862
1874
|
});
|
|
1863
1875
|
}
|
|
1864
1876
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tangerine",
|
|
3
3
|
"description": "Tangerine is the best Node.js drop-in replacement for dns.promises.Resolver using DNS over HTTPS (\"DoH\") via undici with built-in retries, timeouts, smart server rotation, AbortControllers, and caching support for multiple backends (with TTL and purge support).",
|
|
4
|
-
"version": "1.4.
|
|
4
|
+
"version": "1.4.9",
|
|
5
5
|
"author": "Forward Email (https://forwardemail.net)",
|
|
6
6
|
"bugs": {
|
|
7
7
|
"url": "https://github.com/forwardemail/tangerine/issues"
|