Bug fix: truncate /etc/resolv.conf, fixing DNS

- Refers to #326
- Refers to #329
This commit is contained in:
Quentin McGaw
2020-12-30 20:48:41 +00:00
parent 1e4243dedb
commit f385c4203a
2 changed files with 7 additions and 7 deletions

View File

@@ -26,7 +26,7 @@ func (c *configurator) UseDNSInternally(ip net.IP) {
func (c *configurator) UseDNSSystemWide(ip net.IP, keepNameserver bool) error {
c.logger.Info("using DNS address %s system wide", ip.String())
const filepath = string(constants.ResolvConf)
file, err := c.openFile(filepath, os.O_RDWR, 0644)
file, err := c.openFile(filepath, os.O_RDWR|os.O_TRUNC, 0644)
if err != nil {
return err
}
@@ -52,7 +52,7 @@ func (c *configurator) UseDNSSystemWide(ip net.IP, keepNameserver bool) error {
if !found {
lines = append(lines, "nameserver "+ip.String())
}
s = strings.Join(lines, "\n")
s = strings.Join(lines, "\n") + "\n"
_, err = file.WriteString(s)
if err != nil {
_ = file.Close()

View File

@@ -27,7 +27,7 @@ func Test_UseDNSSystemWide(t *testing.T) {
err error
}{
"no data": {
writtenData: "nameserver 127.0.0.1",
writtenData: "nameserver 127.0.0.1\n",
},
"open error": {
openErr: fmt.Errorf("error"),
@@ -38,17 +38,17 @@ func Test_UseDNSSystemWide(t *testing.T) {
err: fmt.Errorf("error"),
},
"write error": {
writtenData: "nameserver 127.0.0.1",
writtenData: "nameserver 127.0.0.1\n",
writeErr: fmt.Errorf("error"),
err: fmt.Errorf("error"),
},
"lines without nameserver": {
data: []byte("abc\ndef\n"),
writtenData: "abc\ndef\nnameserver 127.0.0.1",
writtenData: "abc\ndef\nnameserver 127.0.0.1\n",
},
"lines with nameserver": {
data: []byte("abc\nnameserver abc def\ndef\n"),
writtenData: "abc\nnameserver 127.0.0.1\ndef",
writtenData: "abc\nnameserver 127.0.0.1\ndef\n",
},
}
for name, tc := range tests {
@@ -83,7 +83,7 @@ func Test_UseDNSSystemWide(t *testing.T) {
openFile := func(name string, flag int, perm os.FileMode) (os.File, error) {
assert.Equal(t, string(constants.ResolvConf), name)
assert.Equal(t, os.O_RDWR, flag)
assert.Equal(t, os.O_RDWR|os.O_TRUNC, flag)
assert.Equal(t, os.FileMode(0644), perm)
return file, tc.openErr
}