diff --git a/package-lock.json b/package-lock.json index 5d5ae08..5d58478 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4376,6 +4376,11 @@ "dns-packet": "^5.1.2" } }, + "dns2": { + "version": "1.4.2", + "resolved": "https://verdaccio.lossless.one/dns2/-/dns2-1.4.2.tgz", + "integrity": "sha512-cRapXqyLsCW5HMBQg2pTkDnSe3KXjysWnU756epw554HJZRrqo4cD3xghCOFmZIgVzxhotiGsLGEH8QCq5cKnw==" + }, "dom-serializer": { "version": "0.2.2", "resolved": "https://verdaccio.lossless.one/dom-serializer/-/dom-serializer-0.2.2.tgz", diff --git a/package.json b/package.json index ffc79a9..94be802 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,8 @@ "@pushrocks/smartdelay": "^2.0.10", "@pushrocks/smartpromise": "^3.0.6", "@pushrocks/smartrequest": "^1.1.47", - "@tsclass/tsclass": "^3.0.21" + "@tsclass/tsclass": "^3.0.21", + "dns2": "^1.4.2" }, "devDependencies": { "@gitzone/tsbuild": "^2.1.24", diff --git a/ts/dnsly.plugins.ts b/ts/dnsly.plugins.ts index e99876e..6d9b3e3 100644 --- a/ts/dnsly.plugins.ts +++ b/ts/dnsly.plugins.ts @@ -13,3 +13,10 @@ export { smartdelay, smartpromise, smartrequest }; import * as tsclass from '@tsclass/tsclass'; export { tsclass }; + +// third party scope +import dns2 from 'dns2'; + +export { + dns2 +} diff --git a/ts/index.ts b/ts/index.ts index 4004bfa..61a52ff 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -24,6 +24,8 @@ export class Smartdns { public dnsServerIp: string; public dnsServerPort: number; + public dns2 = new plugins.dns2(); + public dnsTypeMap: { [key: string]: number } = { A: 1, AAAA: 28, @@ -65,6 +67,8 @@ export class Smartdns { return true; } else { await plugins.smartdelay.delayFor(intervalArg); + // lets try backup strategy + const backupResult = this.dns2[`resolve${recordTypeArg}`]('google.com') return await doCheck(); } } catch (err) {