Add DNS over TLS ipv6 upstream servers, see #88

This commit is contained in:
Quentin McGaw (desktop)
2020-03-05 00:54:33 +00:00
parent 0c48d2d5a0
commit d0f678c315
5 changed files with 51 additions and 28 deletions

View File

@@ -4,6 +4,7 @@ import (
"fmt"
"strings"
"github.com/qdm12/private-internet-access-docker/internal/constants"
"github.com/qdm12/private-internet-access-docker/internal/models"
"github.com/qdm12/private-internet-access-docker/internal/params"
)
@@ -112,5 +113,21 @@ func GetDNSSettings(params params.ParamsReader) (settings DNS, err error) {
if err != nil {
return settings, err
}
// Consistency check
IPv6Support := false
for _, provider := range settings.Providers {
providerData, ok := constants.DNSProviderMapping()[provider]
if !ok {
return settings, fmt.Errorf("DNS provider %q does not have associated data", provider)
} else if !providerData.SupportsTLS {
return settings, fmt.Errorf("DNS provider %q does not support DNS over TLS", provider)
} else if providerData.SupportsIPv6 {
IPv6Support = true
}
}
if settings.IPv6 && !IPv6Support {
return settings, fmt.Errorf("None of the DNS over TLS provider(s) set support IPv6")
}
return settings, nil
}