Validate resolv.conf for presence of nameserver entries

Co-authored-by: Brad Davidson <brad@oatmail.org>
Signed-off-by: linxin <linxin@geedgenetworks.com>
(cherry picked from commit f24ba9d3a9)
Signed-off-by: Brad Davidson <brad.davidson@rancher.com>
pull/10290/head
linxin 2024-04-15 11:38:42 +08:00 committed by Brad Davidson
parent 13eafdd23a
commit 6781d660bf
1 changed files with 4 additions and 1 deletions

View File

@ -316,19 +316,22 @@ func isValidResolvConf(resolvConfFile string) bool {
nameserver := regexp.MustCompile(`^nameserver\s+([^\s]*)`) nameserver := regexp.MustCompile(`^nameserver\s+([^\s]*)`)
scanner := bufio.NewScanner(file) scanner := bufio.NewScanner(file)
foundNameserver := false
for scanner.Scan() { for scanner.Scan() {
ipMatch := nameserver.FindStringSubmatch(scanner.Text()) ipMatch := nameserver.FindStringSubmatch(scanner.Text())
if len(ipMatch) == 2 { if len(ipMatch) == 2 {
ip := net.ParseIP(ipMatch[1]) ip := net.ParseIP(ipMatch[1])
if ip == nil || !ip.IsGlobalUnicast() { if ip == nil || !ip.IsGlobalUnicast() {
return false return false
} else {
foundNameserver = true
} }
} }
} }
if err := scanner.Err(); err != nil { if err := scanner.Err(); err != nil {
return false return false
} }
return true return foundNameserver
} }
func locateOrGenerateResolvConf(envInfo *cmds.Agent) string { func locateOrGenerateResolvConf(envInfo *cmds.Agent) string {