From b6fa565cbabe6abd7791fa7ae253ca73fade6397 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Mon, 2 Jun 2025 12:32:44 +0200 Subject: [PATCH] libnetwork/resolvconf: Build: decorate error for invalid nameservers Using the same prefix as is used in `Sandbox.loadResolvConf`, but omiting the value, as it's already part of the error message; https://github.com/moby/moby/blob/829b6953756f1ad21769f318ec9717ed854936b3/libnetwork/sandbox_dns_unix.go#L258-L261 Unfortunately, `netip.ParseAddr` returns a non-exported (`parseAddrError`) error-type; https://cs.opensource.google/go/go/+/refs/tags/go1.24.3:src/net/netip/netip.go;l=115 So we don't have the option to omit the `` from the error-message, and to take the underlying `msg` field; https://cs.opensource.google/go/go/+/refs/tags/go1.24.3:src/net/netip/netip.go;l=141-153 Signed-off-by: Sebastiaan van Stijn --- libnetwork/resolvconf/resolvconf.go | 3 ++- libnetwork/resolvconf/resolvconf_unix_test.go | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/libnetwork/resolvconf/resolvconf.go b/libnetwork/resolvconf/resolvconf.go index 3be2bff6ca..d0c94074ad 100644 --- a/libnetwork/resolvconf/resolvconf.go +++ b/libnetwork/resolvconf/resolvconf.go @@ -3,6 +3,7 @@ package resolvconf import ( "bytes" + "fmt" "net/netip" "os" @@ -130,7 +131,7 @@ func Build(path string, nameservers, dnsSearch, dnsOptions []string) (*File, err for _, addr := range nameservers { ipAddr, err := netip.ParseAddr(addr) if err != nil { - return nil, err + return nil, fmt.Errorf("bad nameserver address: %w", err) } ns = append(ns, ipAddr) } diff --git a/libnetwork/resolvconf/resolvconf_unix_test.go b/libnetwork/resolvconf/resolvconf_unix_test.go index 20859a70e2..3fb627c791 100644 --- a/libnetwork/resolvconf/resolvconf_unix_test.go +++ b/libnetwork/resolvconf/resolvconf_unix_test.go @@ -349,7 +349,7 @@ search search1 { doc: "invalid nameserver", nameServers: []string{"resolver.example.com"}, - expErr: `ParseAddr("resolver.example.com"): unexpected character (at "resolver.example.com")`, + expErr: `bad nameserver address: ParseAddr("resolver.example.com"): unexpected character (at "resolver.example.com")`, }, }