Compare commits

...

2 Commits

Author SHA1 Message Date
6281ab0c80 5.0.2 2022-07-27 11:42:02 +02:00
622c65291e fix(core): update 2022-07-27 11:42:01 +02:00
4 changed files with 23 additions and 13 deletions

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{ {
"name": "@pushrocks/smartdns", "name": "@pushrocks/smartdns",
"version": "5.0.1", "version": "5.0.2",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@pushrocks/smartdns", "name": "@pushrocks/smartdns",
"version": "5.0.1", "version": "5.0.2",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@pushrocks/smartdelay": "^2.0.13", "@pushrocks/smartdelay": "^2.0.13",

View File

@ -1,6 +1,6 @@
{ {
"name": "@pushrocks/smartdns", "name": "@pushrocks/smartdns",
"version": "5.0.1", "version": "5.0.2",
"private": false, "private": false,
"description": "smart dns methods written in TypeScript", "description": "smart dns methods written in TypeScript",
"main": "dist_ts/index.js", "main": "dist_ts/index.js",

View File

@ -3,6 +3,6 @@
*/ */
export const commitinfo = { export const commitinfo = {
name: '@pushrocks/smartdns', name: '@pushrocks/smartdns',
version: '5.0.1', version: '5.0.2',
description: 'smart dns methods written in TypeScript' description: 'smart dns methods written in TypeScript'
} }

View File

@ -78,7 +78,7 @@ export class Smartdns {
try { try {
let myRecordArray: plugins.tsclass.network.IDnsRecord[]; let myRecordArray: plugins.tsclass.network.IDnsRecord[];
if (runCycles % 2 === 0 || !plugins.dns) { if (runCycles % 2 === 0 || !plugins.dns) {
myRecordArray = await this.getRecord(recordNameArg, recordTypeArg); myRecordArray = await this.getRecord(recordNameArg, recordTypeArg, 0);
} else { } else {
myRecordArray = await this.getRecordWithNodeDNS(recordNameArg, recordTypeArg); myRecordArray = await this.getRecordWithNodeDNS(recordNameArg, recordTypeArg);
} }
@ -130,17 +130,27 @@ export class Smartdns {
public async getRecord( public async getRecord(
recordNameArg: string, recordNameArg: string,
recordTypeArg: plugins.tsclass.network.TDnsRecordType recordTypeArg: plugins.tsclass.network.TDnsRecordType,
retriesCounterArg = 20,
): Promise<plugins.tsclass.network.IDnsRecord[]> { ): Promise<plugins.tsclass.network.IDnsRecord[]> {
const requestUrl = `https://cloudflare-dns.com/dns-query?name=${recordNameArg}&type=${recordTypeArg}&do=1`; const requestUrl = `https://cloudflare-dns.com/dns-query?name=${recordNameArg}&type=${recordTypeArg}&do=1`;
const response = await plugins.smartrequest.request(requestUrl, {
method: 'GET',
headers: {
accept: 'application/dns-json',
},
});
const returnArray: plugins.tsclass.network.IDnsRecord[] = []; const returnArray: plugins.tsclass.network.IDnsRecord[] = [];
const responseBody: IGoogleDNSHTTPSResponse = response.body; const getResponseBody = async (counterArg = 0): Promise<IGoogleDNSHTTPSResponse> => {
const response = await plugins.smartrequest.request(requestUrl, {
method: 'GET',
headers: {
accept: 'application/dns-json',
},
});
const responseBody: IGoogleDNSHTTPSResponse = response.body;
if (responseBody?.Status !== 0 && counterArg < retriesCounterArg) {
await plugins.smartdelay.delayFor(500);
return getResponseBody(counterArg++);
} else {
return responseBody
}
}
const responseBody = await getResponseBody();
for (const dnsEntry of responseBody.Answer) { for (const dnsEntry of responseBody.Answer) {
if (dnsEntry.data.startsWith('"') && dnsEntry.data.endsWith('"')) { if (dnsEntry.data.startsWith('"') && dnsEntry.data.endsWith('"')) {
dnsEntry.data = dnsEntry.data.replace(/^"(.*)"$/, '$1'); dnsEntry.data = dnsEntry.data.replace(/^"(.*)"$/, '$1');