Skip to content

Commit 9bffea4

Browse files
committed
fix(client): try reconnect after a reconnection attempt failure
Signed-off-by: Pierre-Henri Symoneaux <[email protected]>
1 parent a47ea0d commit 9bffea4

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

kmipclient/client.go

+9-1
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,10 @@ func (c *Client) Close() error {
265265

266266
func (c *Client) reconnect(ctx context.Context) error {
267267
// fmt.Println("Reconnecting")
268-
c.conn.Close()
268+
if c.conn != nil {
269+
c.conn.Close()
270+
c.conn = nil
271+
}
269272
stream, err := c.dialer(ctx)
270273
if err != nil {
271274
return err
@@ -277,6 +280,11 @@ func (c *Client) reconnect(ctx context.Context) error {
277280
func (c *Client) doRountrip(ctx context.Context, msg *kmip.RequestMessage) (*kmip.ResponseMessage, error) {
278281
c.lock.Lock()
279282
defer c.lock.Unlock()
283+
if c.conn == nil {
284+
if err := c.reconnect(ctx); err != nil {
285+
return nil, err
286+
}
287+
}
280288

281289
//TODO: Better reconnection loop. Do we really need a retry counter here ?
282290
retry := 3

0 commit comments

Comments
 (0)