diff --git a/tools/remotecommand/websocket.go b/tools/remotecommand/websocket.go index 78de8af1..4d9814a8 100644 --- a/tools/remotecommand/websocket.go +++ b/tools/remotecommand/websocket.go @@ -18,10 +18,8 @@ package remotecommand import ( "context" - "errors" "fmt" "io" - "net" "net/http" "sync" "time" @@ -478,15 +476,12 @@ func (h *heartbeat) start() { klog.V(8).Infof("Websocket Ping succeeeded") } else { klog.Errorf("Websocket Ping failed: %v", err) - if errors.Is(err, gwebsocket.ErrCloseSent) { - continue - } else if e, ok := err.(net.Error); ok && e.Temporary() { - // Continue, in case this is a transient failure. - // c.conn.CloseChan above will tell us when the connection is - // actually closed. - continue + if gwebsocket.IsUnexpectedCloseError(err, gwebsocket.CloseGoingAway, gwebsocket.CloseAbnormalClosure) { + return } - return + // Continue, in case this is a transient failure. + // c.conn.CloseChan above will tell us when the connection is + // actually closed. } } }