fix(ipintelligence): apply configured timeout to MMDB downloads and expose IP intelligence timeout option

This commit is contained in:
2026-05-21 01:42:48 +00:00
parent 23df951023
commit 8a4f756fef
4 changed files with 56 additions and 9 deletions
+6 -1
View File
@@ -16,6 +16,8 @@ type TSmartdnsClient = InstanceType<typeof plugins.smartdns.dnsClientMod.Smartdn
export interface SmartNetworkOptions {
/** Cache time-to-live in milliseconds for gateway and public IP lookups */
cacheTtl?: number;
/** Timeout in milliseconds for IP intelligence RDAP/DNS/MMDB requests. Default: 5000 */
ipIntelligenceTimeout?: number;
}
/**
@@ -437,7 +439,10 @@ export class SmartNetwork {
*/
public async getIpIntelligence(ip: string): Promise<IIpIntelligenceResult> {
if (!this.ipIntelligence) {
this.ipIntelligence = new IpIntelligence({ dnsClient: this.ensureDnsClient() });
this.ipIntelligence = new IpIntelligence({
dnsClient: this.ensureDnsClient(),
timeout: this.options.ipIntelligenceTimeout,
});
}
const fetcher = () => this.ipIntelligence!.getIntelligence(ip);
if (this.options.cacheTtl && this.options.cacheTtl > 0) {