net/dnscache: parse passed CIDR

Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
This commit is contained in:
David Crawshaw 2020-03-09 13:08:10 -04:00
parent 4800926006
commit 5a1ce4adae
2 changed files with 25 additions and 1 deletions

View File

@ -133,7 +133,7 @@ func (r *Resolver) addIPCache(host string, ip net.IP, d time.Duration) net.IP {
}
func mustCIDR(s string) *net.IPNet {
_, ipNet, err := net.ParseCIDR("100.64.0.0/10")
_, ipNet, err := net.ParseCIDR(s)
if err != nil {
panic(err)
}

View File

@ -0,0 +1,24 @@
package dnscache
import (
"net"
"testing"
)
func TestIsPrivateIP(t *testing.T) {
tests := []struct {
ip string
want bool
}{
{"10.1.2.3", true},
{"172.16.1.100", true},
{"192.168.1.1", true},
{"1.2.3.4", false},
}
for _, test := range tests {
if got := isPrivateIP(net.ParseIP(test.ip)); got != test.want {
t.Errorf("isPrivateIP(%q)=%v, want %v", test.ip, got, test.want)
}
}
}