From 602a41a94eb7502fdde3ea497249d1eed3ae968f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=80=81=E4=B9=9D?= <366193849@qq.com>
Date: Wed, 17 Nov 2021 19:26:15 +0800
Subject: [PATCH] =?UTF-8?q?ipv6=20only=E7=9A=84=E6=94=AF=E6=8C=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
FastGithub.DomainResolve/DnsClient.cs | 23 ++++++++++++++++-------
FastGithub/appsettings.json | 5 +++--
2 files changed, 19 insertions(+), 9 deletions(-)
diff --git a/FastGithub.DomainResolve/DnsClient.cs b/FastGithub.DomainResolve/DnsClient.cs
index 4c736a6..9323a63 100644
--- a/FastGithub.DomainResolve/DnsClient.cs
+++ b/FastGithub.DomainResolve/DnsClient.cs
@@ -91,7 +91,12 @@ namespace FastGithub.DomainResolve
foreach (var fallbackDns in this.fastGithubConfig.FallbackDns)
{
- if (Socket.OSSupportsIPv6 || fallbackDns.AddressFamily != AddressFamily.InterNetworkV6)
+ if (Socket.OSSupportsIPv4 && fallbackDns.AddressFamily == AddressFamily.InterNetwork)
+ {
+ yield return fallbackDns;
+ }
+
+ if (Socket.OSSupportsIPv6 && fallbackDns.AddressFamily == AddressFamily.InterNetworkV6)
{
yield return fallbackDns;
}
@@ -191,17 +196,21 @@ namespace FastGithub.DomainResolve
///
private static async Task> GetAnswerRecordsAsync(IRequestResolver resolver, string domain, CancellationToken cancellationToken)
{
- var answerRecords = await GetAnswerAsync(RecordType.A);
+ var answerRecords = new List();
+ if (Socket.OSSupportsIPv4 == true)
+ {
+ var records = await GetAnswerAsync(RecordType.A);
+ answerRecords.AddRange(records);
+ }
+
if (Socket.OSSupportsIPv6 == true)
{
- var ipv6Records = await GetAnswerAsync(RecordType.AAAA);
- foreach (var record in ipv6Records)
- {
- answerRecords.Add(record);
- }
+ var records = await GetAnswerAsync(RecordType.AAAA);
+ answerRecords.AddRange(records);
}
return answerRecords;
+
async Task> GetAnswerAsync(RecordType recordType)
{
var request = new Request
diff --git a/FastGithub/appsettings.json b/FastGithub/appsettings.json
index 09711b5..4daec4e 100644
--- a/FastGithub/appsettings.json
+++ b/FastGithub/appsettings.json
@@ -4,7 +4,8 @@
"HttpProxyPort": 38457, // http代理端口,linux/osx平台使用
"FallbackDns": [ // 以下dns必须要支持tcp
"114.114.114.114:53",
- "119.29.29.29:53"
+ "119.29.29.29:53",
+ "[2400:3200::1]:53"
],
"DomainConfigs": {
"*.fastgithub.com": { // 域名的*表示除.之外0到多个任意字符
@@ -28,7 +29,7 @@
"Override": {
"Yarp": "Warning",
"System": "Warning",
- "Microsoft": "Warning",
+ "Microsoft": "Warning",
"Microsoft.AspNetCore.Server.Kestrel": "Error"
}
}