]> go.fuhry.dev Git - runtime.git/commitdiff
dns: exclude 169.254.0.0/16 from lookup results, too
authorDan Fuhry <dan@fuhry.com>
Thu, 12 Sep 2024 04:46:25 +0000 (00:46 -0400)
committerDan Fuhry <dan@fuhry.com>
Thu, 12 Sep 2024 04:46:25 +0000 (00:46 -0400)
net/dns/dns_cache.go

index 0270b0d2d5bcfd453e2ca3a0d0022da4b20a2e15..4700e5bf48bbcf00c05e1bdea59fde39ac4ad157 100644 (file)
@@ -23,6 +23,11 @@ var loopbackIPv4 = net.IPNet{
        Mask: net.IPMask{255, 0, 0, 0},
 }
 
+var autoPrivateIPv4 = net.IPNet{
+       IP:   net.IP{169, 254, 0, 0},
+       Mask: net.IPMask{255, 255, 0, 0},
+}
+
 var localIPv6 = net.IPNet{
        IP: net.IP{
                0xfe, 0x80, 0x00, 0x00,
@@ -69,7 +74,7 @@ func ResolveDualStack(hostname string) (string, string, error) {
        for _, rr := range msg.Answer {
                switch a := rr.(type) {
                case *dns.A:
-                       if !loopbackIPv4.Contains(a.A) {
+                       if !loopbackIPv4.Contains(a.A) && !autoPrivateIPv4.Contains(a.A) {
                                ip4 = a.A.String()
                        }
                case *dns.AAAA: