Swap dead sessions

This commit is contained in:
Hendrik Hofstadt 2019-06-20 20:34:45 +02:00
parent 3601184c8b
commit 0299fd5d70
1 changed files with 7 additions and 0 deletions

View File

@ -3,6 +3,7 @@ package yubihsm
import (
"bytes"
"errors"
"log"
"sync"
"time"
@ -69,6 +70,12 @@ func (s *SessionManager) pingRoutine() {
if !bytes.Equal(parsedResp.Data, echoPayload) {
err = errors.New("echoed data is invalid")
}
} else {
// Session seems to be dead - reconnect and swap
err = s.swapSession()
if err != nil {
log.Printf("swapping dead session failed; err=%v", err)
}
}
s.keepAlive.Reset(pingInterval)