- Using custom DNS internally (without TLS) to download Unbound files
- Using then Unbound with DNS over TLS internally and system wide
- Works even if you host system DNS is broken
- Waits a few milliseconds for Unbound to start up
This commit is contained in:
Quentin McGaw (desktop)
2020-02-08 17:47:25 +00:00
parent a40f68f1df
commit e527f14bd2
7 changed files with 91 additions and 11 deletions

20
internal/dns/wait.go Normal file
View File

@@ -0,0 +1,20 @@
package dns
import (
"fmt"
"time"
)
func (c *configurator) WaitForUnbound() (err error) {
const maxTries = 10
const hostToResolve = "github.com"
for try := 1; try <= maxTries; try++ {
_, err := c.lookupIP(hostToResolve)
if err == nil {
return nil
}
c.logger.Warn("could not resolve %s (try %d of %d)", hostToResolve, try, maxTries)
time.Sleep(time.Duration(maxTries * 50 * time.Millisecond))
}
return fmt.Errorf("Unbound does not seem to be working after %d tries", maxTries)
}