From 2192874de89784b9fc8165f5f062a47780a47eb5 Mon Sep 17 00:00:00 2001 From: Quentin McGaw Date: Thu, 19 Feb 2026 18:05:48 +0000 Subject: [PATCH] hotfix(pmtud/icmp): ignore non echo messages instead of returning an error --- internal/pmtud/icmp/multi.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/internal/pmtud/icmp/multi.go b/internal/pmtud/icmp/multi.go index cdf3a692..b4612d41 100644 --- a/internal/pmtud/icmp/multi.go +++ b/internal/pmtud/icmp/multi.go @@ -151,11 +151,17 @@ func collectReplies(conn net.PacketConn, ipVersion string, return fmt.Errorf("parsing message: %w", err) } - echoBody, ok := message.Body.(*icmp.Echo) - if !ok { + switch message.Body.(type) { + case *icmp.Echo: + case *icmp.DstUnreach, *icmp.TimeExceeded: + logger.Debugf("ignoring ICMP message (type: %d, code: %d)", message.Type, message.Code) + continue + default: return fmt.Errorf("%w: %T", ErrBodyUnsupported, message.Body) } + echoBody, _ := message.Body.(*icmp.Echo) + id := uint16(echoBody.ID) //nolint:gosec testIndex, testing := echoIDToTestIndex[id] if !testing { // not an id we expected so ignore it