diff --git a/internal/healthcheck/dns/dns.go b/internal/healthcheck/dns/dns.go index 51e0d548..27fe0bea 100644 --- a/internal/healthcheck/dns/dns.go +++ b/internal/healthcheck/dns/dns.go @@ -56,10 +56,10 @@ func (c *Client) Check(ctx context.Context) error { switch { case err != nil: c.dnsIPIndex = (c.dnsIPIndex + 1) % len(c.serverAddrs) - return err + return fmt.Errorf("with DNS server %s: %w", dnsAddr, err) case len(ips) == 0: c.dnsIPIndex = (c.dnsIPIndex + 1) % len(c.serverAddrs) - return fmt.Errorf("%w", ErrLookupNoIPs) + return fmt.Errorf("with DNS server %s: %w", dnsAddr, ErrLookupNoIPs) default: return nil } diff --git a/internal/healthcheck/icmp/echo.go b/internal/healthcheck/icmp/echo.go index 29cbaada..1d078b18 100644 --- a/internal/healthcheck/icmp/echo.go +++ b/internal/healthcheck/icmp/echo.go @@ -82,7 +82,7 @@ func (i *Echoer) Echo(ctx context.Context, ip netip.Addr) (err error) { if strings.HasSuffix(err.Error(), "sendto: operation not permitted") { err = fmt.Errorf("%w", ErrNotPermitted) } - return fmt.Errorf("writing ICMP message: %w", err) + return fmt.Errorf("writing ICMP message to %s: %w", ip, err) } receivedData, err := receiveEchoReply(conn, id, i.buffer, ipVersion, i.logger) @@ -90,12 +90,12 @@ func (i *Echoer) Echo(ctx context.Context, ip netip.Addr) (err error) { if errors.Is(err, net.ErrClosed) && ctx.Err() != nil { return fmt.Errorf("%w from %s", ErrTimedOut, ip) } - return fmt.Errorf("receiving ICMP echo reply: %w", err) + return fmt.Errorf("receiving ICMP echo reply from %s: %w", ip, err) } sentData := message.Body.(*icmp.Echo).Data //nolint:forcetypeassert if !bytes.Equal(receivedData, sentData) { - return fmt.Errorf("%w: sent %x and received %x", ErrICMPEchoDataMismatch, sentData, receivedData) + return fmt.Errorf("%w: sent %x to %s and received %x", ErrICMPEchoDataMismatch, sentData, ip, receivedData) } return nil