[VOL-5536] - VGC recent fixes

Change-Id: Id6f0e647b37baac827230afbb45d132df8a62b68
Signed-off-by: Sridhar Ravindra <sridhar.ravindra@radisys.com>
diff --git a/internal/pkg/vpagent/common.go b/internal/pkg/vpagent/common.go
index 5b62368..a8046f6 100644
--- a/internal/pkg/vpagent/common.go
+++ b/internal/pkg/vpagent/common.go
@@ -30,17 +30,24 @@
 	if err == nil {
 		return false
 	}
-	// >= gRPC v1.23.x
+
 	s, ok := status.FromError(err)
 	if ok {
-		// connection is canceled or server has already closed the connection
-		return s.Code() == codes.Canceled || s.Message() == "transport is closing"
-	}
-
-	e, ok := status.FromError(err)
-	if ok {
-		// connection is canceled or server has already closed the connection
-		return e.Code() == codes.Canceled || e.Message() == "all SubConns are in TransientFailure"
+		switch {
+		case s.Code() == codes.Canceled || s.Message() == "transport is closing":
+			// >= gRPC v1.23.x
+			// connection is canceled or server has already closed the connection
+			return true
+		case s.Message() == "all SubConns are in TransientFailure":
+			return true
+		case s.Code() == codes.Unavailable || s.Message() == "error reading from server: EOF":
+			// >= gRPC v1.76.x
+			// connection is unavailable or server has already closed the connection
+			return true
+		case s.Code() == codes.Internal || s.Code() == codes.DeadlineExceeded:
+			// connection is interrupted
+			return true
+		}
 	}
 
 	// >= gRPC v1.10.x