[VOL-5429] - fix grpc client disconnect issue

Change-Id: Ia7f3514c24e895fe907bac92041b2fb9a4384e19
Signed-off-by: Sridhar Ravindra <sridhar.ravindra@radisys.com>
diff --git a/pkg/grpc/client.go b/pkg/grpc/client.go
index effe0b3..e8a0832 100644
--- a/pkg/grpc/client.go
+++ b/pkg/grpc/client.go
@@ -262,6 +262,9 @@
 		c.stateLock.Lock()
 		if !c.done && (c.state == stateConnected || c.state == stateValidatingConnection) {
 			// Handle only connected state here.  We need the validating state to know if we need to backoff before a retry
+			if c.state == stateConnected {
+				c.state = stateDisconnected
+			}
 			logger.Warnw(ctx, "sending-disconnect-event", log.Fields{"api-endpoint": c.serverEndPoint, "client": c.clientEndpoint, "curr-state": stateConnected, "new-state": c.state})
 			c.events <- eventDisconnected
 		} else {
@@ -529,7 +532,7 @@
 				connectionValidationFail := false
 				c.stateLock.Lock()
 				logger.Debugw(ctx, "endpoint-disconnected", log.Fields{"api-endpoint": c.serverEndPoint, "curr-state": c.state, "client": c.clientEndpoint})
-				if c.state == stateConnected || c.state == stateValidatingConnection {
+				if c.state == stateValidatingConnection {
 					connectionValidationFail = true
 					c.state = stateDisconnected
 				}
@@ -551,7 +554,7 @@
 				}
 				c.connectionLock.RLock()
 				if !c.done {
-					c.events <- eventValidatingConnection
+					c.events <- eventConnecting
 				}
 				c.connectionLock.RUnlock()