Skip to content

Commit a5e3859

Browse files
jpayne3506vakalapa
andauthored
backport: fix: joining multiple dns server lists (#2506) (#2516)
fix: joining multiple dns server lists (#2506) * fix: joining multiple dns server lists * address comments * add 0 check Co-authored-by: Vamsi Kalapala <[email protected]>
1 parent 7ce6026 commit a5e3859

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

network/network_linux.go

+15-5
Original file line numberDiff line numberDiff line change
@@ -276,12 +276,21 @@ func addDNSServers(ifName string, dnsServers []string) (string, error) {
276276
return osVersion, err
277277
}
278278

279+
if len(dnsServers) == 0 {
280+
log.Printf("WARN: No dns servers to add")
281+
return "", nil
282+
}
283+
279284
var cmd string
280285
switch {
281286
case strings.HasPrefix(osVersion, Ubuntu22):
282287
cmd = fmt.Sprintf("resolvectl dns %s %s", ifName, strings.Join(dnsServers, " "))
283288
default:
284-
cmd = fmt.Sprintf("systemd-resolve --interface %s %s", ifName, strings.Join(dnsServers, "--set-dns "))
289+
serverList := ""
290+
for _, server := range dnsServers {
291+
serverList = serverList + " --set-dns " + server
292+
}
293+
cmd = fmt.Sprintf("systemd-resolve --interface %s %s", ifName, serverList)
285294
}
286295
return cmd, nil
287296
}
@@ -415,10 +424,11 @@ func applyDnsConfig(extIf *externalInterface, ifName string) error {
415424
if err != nil {
416425
return errors.Wrap(err, "Error generating add DNS Servers cmd")
417426
}
418-
419-
_, err = p.ExecuteCommand(cmd)
420-
if err != nil {
421-
return errors.Wrapf(err, "Error executing add DNS Servers with cmd %s", cmd)
427+
if cmd != "" {
428+
_, err = p.ExecuteCommand(cmd)
429+
if err != nil {
430+
return errors.Wrapf(err, "Error executing add DNS Servers with cmd %s", cmd)
431+
}
422432
}
423433
}
424434

0 commit comments

Comments
 (0)