ipv6 only的支持

This commit is contained in:
老九 2021-11-17 19:26:15 +08:00
parent 5dd1a6cf8f
commit 602a41a94e
2 changed files with 19 additions and 9 deletions

View File

@ -91,7 +91,12 @@ namespace FastGithub.DomainResolve
foreach (var fallbackDns in this.fastGithubConfig.FallbackDns) 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; yield return fallbackDns;
} }
@ -191,17 +196,21 @@ namespace FastGithub.DomainResolve
/// <returns></returns> /// <returns></returns>
private static async Task<IList<IResourceRecord>> GetAnswerRecordsAsync(IRequestResolver resolver, string domain, CancellationToken cancellationToken) private static async Task<IList<IResourceRecord>> GetAnswerRecordsAsync(IRequestResolver resolver, string domain, CancellationToken cancellationToken)
{ {
var answerRecords = await GetAnswerAsync(RecordType.A); var answerRecords = new List<IResourceRecord>();
if (Socket.OSSupportsIPv4 == true)
{
var records = await GetAnswerAsync(RecordType.A);
answerRecords.AddRange(records);
}
if (Socket.OSSupportsIPv6 == true) if (Socket.OSSupportsIPv6 == true)
{ {
var ipv6Records = await GetAnswerAsync(RecordType.AAAA); var records = await GetAnswerAsync(RecordType.AAAA);
foreach (var record in ipv6Records) answerRecords.AddRange(records);
{
answerRecords.Add(record);
}
} }
return answerRecords; return answerRecords;
async Task<IList<IResourceRecord>> GetAnswerAsync(RecordType recordType) async Task<IList<IResourceRecord>> GetAnswerAsync(RecordType recordType)
{ {
var request = new Request var request = new Request

View File

@ -4,7 +4,8 @@
"HttpProxyPort": 38457, // httplinux/osx使 "HttpProxyPort": 38457, // httplinux/osx使
"FallbackDns": [ // dnstcp "FallbackDns": [ // dnstcp
"114.114.114.114:53", "114.114.114.114:53",
"119.29.29.29:53" "119.29.29.29:53",
"[2400:3200::1]:53"
], ],
"DomainConfigs": { "DomainConfigs": {
"*.fastgithub.com": { // *.0 "*.fastgithub.com": { // *.0