From 01b91b801cce8260653b22b4f706efaf40bec024 Mon Sep 17 00:00:00 2001
From: xljiulang <366193849@qq.com>
Date: Mon, 21 Jun 2021 21:11:50 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0dns=E6=9F=A5=E8=AF=A2?=
=?UTF-8?q?=E8=B6=85=E6=97=B6=E6=97=B6=E9=95=BF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
FastGithub.Scanner/LookupProviders/PublicDnsProvider.cs | 5 ++++-
.../LookupProviders/PublicDnsProviderOptions.cs | 5 +++++
FastGithub/appsettings.json | 1 +
3 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/FastGithub.Scanner/LookupProviders/PublicDnsProvider.cs b/FastGithub.Scanner/LookupProviders/PublicDnsProvider.cs
index 2298f06..f7b701a 100644
--- a/FastGithub.Scanner/LookupProviders/PublicDnsProvider.cs
+++ b/FastGithub.Scanner/LookupProviders/PublicDnsProvider.cs
@@ -80,7 +80,10 @@ namespace FastGithub.Scanner.LookupProviders
{
try
{
- var addresses = await client.Lookup(domain, cancellationToken: cancellationToken);
+ using var timeoutTokenSource = new CancellationTokenSource(this.options.CurrentValue.Timeout);
+ using var linkedTokenSource = CancellationTokenSource.CreateLinkedTokenSource(timeoutTokenSource.Token, cancellationToken);
+
+ var addresses = await client.Lookup(domain, cancellationToken: linkedTokenSource.Token);
foreach (var address in addresses)
{
if (address.AddressFamily == AddressFamily.InterNetwork)
diff --git a/FastGithub.Scanner/LookupProviders/PublicDnsProviderOptions.cs b/FastGithub.Scanner/LookupProviders/PublicDnsProviderOptions.cs
index b6d0972..e707c1c 100644
--- a/FastGithub.Scanner/LookupProviders/PublicDnsProviderOptions.cs
+++ b/FastGithub.Scanner/LookupProviders/PublicDnsProviderOptions.cs
@@ -13,6 +13,11 @@ namespace FastGithub.Scanner.LookupProviders
///
public bool Enable { get; set; } = true;
+ ///
+ /// dns查询超时时长
+ ///
+ public TimeSpan Timeout { get; set; } = TimeSpan.FromMilliseconds(100d);
+
///
/// dns列表
///
diff --git a/FastGithub/appsettings.json b/FastGithub/appsettings.json
index 049c4c7..e18d86f 100644
--- a/FastGithub/appsettings.json
+++ b/FastGithub/appsettings.json
@@ -24,6 +24,7 @@
},
"PublicDnsProvider": {
"Enable": true, // ÊÇ·ñÐèÒª´Ódns·þÎñÆ÷²éÕÒip
+ "Timeout": "00:00:00.100", // dns²éѯ³¬Ê±Ê±³¤
"Dnss": [ // dns·þÎñÆ÷Áбí
"1.2.4.8",
"8.8.8.8",