diff --git a/agent/bitwarden/websocket.go b/agent/bitwarden/websocket.go index 118fbad..9b1db9f 100644 --- a/agent/bitwarden/websocket.go +++ b/agent/bitwarden/websocket.go @@ -94,6 +94,16 @@ func connectToWebsocket(ctx context.Context, vault *vault.Vault, cfg *config.Con //handshake required for official bitwarden implementation c.WriteMessage(1, []byte(`{"protocol":"messagepack","version":1}`)) + go func() { + for { + time.Sleep(5 * time.Second) + if vault.Keyring.IsLocked() || cfg.IsLocked() || !cfg.IsLoggedIn() { + c.Close() + return + } + } + }() + go func() { defer close(done) for {