From dbd8e28fc8a61e115ce0e4c914cc75a19232bbdd Mon Sep 17 00:00:00 2001 From: wwqgtxx Date: Sun, 24 Aug 2025 21:09:55 +0800 Subject: [PATCH] ping: fix healthCheck panic --- route_direct.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/route_direct.go b/route_direct.go index b043ab5..444eb5e 100644 --- a/route_direct.go +++ b/route_direct.go @@ -30,11 +30,16 @@ type DirectRouteMapping struct { func NewDirectRouteMapping(timeout time.Duration) *DirectRouteMapping { mapping := common.Must1(freelru.NewSharded[DirectRouteSession, DirectRouteDestination](1024, maphash.NewHasher[DirectRouteSession]().Hash32)) - mapping.SetHealthCheck(func(session DirectRouteSession, destination DirectRouteDestination) bool { - return !destination.IsClosed() + mapping.SetHealthCheck(func(session DirectRouteSession, action DirectRouteDestination) bool { + if action != nil { + return !action.IsClosed() + } + return true }) mapping.SetOnEvict(func(session DirectRouteSession, action DirectRouteDestination) { - action.Close() + if action != nil { + action.Close() + } }) mapping.SetLifetime(timeout) return &DirectRouteMapping{mapping, timeout}