Prefer LAN server answer over public one

While at it, also implementing new OS resolver chosing logic, keeping
only 2 LAN servers at any time, 1 for current one, and 1 for last used
one.
This commit is contained in:
Cuong Manh Le
2024-10-18 01:31:40 +07:00
committed by Cuong Manh Le
parent f87220a908
commit 0cdff0d368
4 changed files with 124 additions and 40 deletions
+2 -2
View File
@@ -17,7 +17,7 @@ func Test_osResolver_Resolve(t *testing.T) {
go func() {
defer cancel()
resolver := &osResolver{}
resolver.nameservers.Store(&[]string{"127.0.0.127:5353"})
resolver.publicServer.Store(&[]string{"127.0.0.127:5353"})
m := new(dns.Msg)
m.SetQuestion("controld.com.", dns.TypeA)
m.RecursionDesired = true
@@ -71,7 +71,7 @@ func Test_osResolver_ResolveWithNonSuccessAnswer(t *testing.T) {
}
}()
resolver := &osResolver{}
resolver.nameservers.Store(&ns)
resolver.publicServer.Store(&ns)
msg := new(dns.Msg)
msg.SetQuestion(".", dns.TypeNS)
answer, err := resolver.Resolve(context.Background(), msg)