From 2ebe91189c2665fab6117f1c0e84af42120d5c98 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Sat, 15 Feb 2025 22:49:41 +0800 Subject: [PATCH] Chore: minor changes --- Build/lib/is-domain-alive.ts | 27 ++++++++++++++++++++------- Build/mod.d.ts | 4 +--- Source/domainset/reject_sukka.conf | 1 + Source/non_ip/domestic.conf | 1 + 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/Build/lib/is-domain-alive.ts b/Build/lib/is-domain-alive.ts index 254963fa..eb329616 100644 --- a/Build/lib/is-domain-alive.ts +++ b/Build/lib/is-domain-alive.ts @@ -143,7 +143,7 @@ export async function isDomainAlive(domain: string, isSuffix: boolean): Promise< const aaaaDns: string[] = []; // test 2 times before make sure record is empty - const servers = pickRandom(dohServers, 3); + const servers = pickRandom(dohServers, 2); for (let i = 0; i < 2; i++) { // eslint-disable-next-line no-await-in-loop -- sequential const aRecords = (await $resolve($domain, 'A', servers[i])); @@ -180,23 +180,36 @@ export async function isDomainAlive(domain: string, isSuffix: boolean): Promise< return onDomainDead($domain); } -const apexDomainNsResolvePromiseMap = new Map>(); +const apexDomainNsResolvePromiseMap = new Map>(); + +async function getNS(domain: string) { + const servers = pickRandom(dohServers, 2); + for (let i = 0, len = servers.length; i < len; i++) { + const server = servers[i]; + // eslint-disable-next-line no-await-in-loop -- one by one + const resp = await $resolve(domain, 'NS', server); + if (resp.answers.length > 0) { + return true; + } + } + return false; +} async function isApexDomainAlive(apexDomain: string): Promise<[string, boolean]> { if (domainAliveMap.has(apexDomain)) { return [apexDomain, domainAliveMap.get(apexDomain)!]; } - let resp: DnsResponse; + let hasNS: boolean; if (apexDomainNsResolvePromiseMap.has(apexDomain)) { - resp = await apexDomainNsResolvePromiseMap.get(apexDomain)!; + hasNS = await apexDomainNsResolvePromiseMap.get(apexDomain)!; } else { - const promise = $resolve(apexDomain, 'NS', pickOne(dohServers)); + const promise = getNS(apexDomain); apexDomainNsResolvePromiseMap.set(apexDomain, promise); - resp = await promise; + hasNS = await promise; } - if (resp.answers.length > 0) { + if (hasNS) { return onDomainAlive(apexDomain); } diff --git a/Build/mod.d.ts b/Build/mod.d.ts index 8867745c..860fb02f 100644 --- a/Build/mod.d.ts +++ b/Build/mod.d.ts @@ -8,9 +8,7 @@ declare module 'dns2' { /** @example dns.google.com */ dns: string, /** @description whether to use HTTP or HTTPS */ - http: boolean, - - get?: (url: string) => any + http: boolean } export type PacketQuestion = keyof typeof Packet.TYPE; diff --git a/Source/domainset/reject_sukka.conf b/Source/domainset/reject_sukka.conf index cfb60798..643c63e4 100644 --- a/Source/domainset/reject_sukka.conf +++ b/Source/domainset/reject_sukka.conf @@ -439,6 +439,7 @@ xy-log.tagtic.cn .igexin.com .gepush.com .getui.net +.getui.com .mobileservice.cn .img.adnyg.com .img.adnyg.com.w.kunlungr.com diff --git a/Source/non_ip/domestic.conf b/Source/non_ip/domestic.conf index 12dc593d..39acc8ff 100644 --- a/Source/non_ip/domestic.conf +++ b/Source/non_ip/domestic.conf @@ -385,6 +385,7 @@ DOMAIN-SUFFIX,gov.cn DOMAIN-SUFFIX,edu.cn DOMAIN-SUFFIX,org.cn DOMAIN-SUFFIX,com.cn +DOMAIN-SUFFIX,net.cn DOMAIN,cn.download.nvidia.com DOMAIN-SUFFIX,jetbrains.com.cn