net: use libresolv rules for ndots range and validation

BIND libresolv allows values from 0 to 15.

For invalid values and negative numbers, 0 is used.
For numbers greater than 15, 15 is used.

Fixes #15419

Change-Id: I1009bc119c3e87919bcb55a80a35532e9fc3ba52
Reviewed-on: https://go-review.googlesource.com/24901
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
Dan Peterson 2016-07-13 10:35:35 -06:00 committed by Matthew Dempsky
parent 04e76f295f
commit 2f73fe7a0d
5 changed files with 37 additions and 2 deletions

View file

@ -60,6 +60,36 @@ var dnsReadConfigTests = []struct {
search: []string{"domain.local."},
},
},
{
name: "testdata/invalid-ndots-resolv.conf",
want: &dnsConfig{
servers: defaultNS,
ndots: 0,
timeout: 5 * time.Second,
attempts: 2,
search: []string{"domain.local."},
},
},
{
name: "testdata/large-ndots-resolv.conf",
want: &dnsConfig{
servers: defaultNS,
ndots: 15,
timeout: 5 * time.Second,
attempts: 2,
search: []string{"domain.local."},
},
},
{
name: "testdata/negative-ndots-resolv.conf",
want: &dnsConfig{
servers: defaultNS,
ndots: 0,
timeout: 5 * time.Second,
attempts: 2,
search: []string{"domain.local."},
},
},
{
name: "testdata/openbsd-resolv.conf",
want: &dnsConfig{