From 8e88c8d8d8b4a20b80ad862fc3eb3d6bd73ff976 Mon Sep 17 00:00:00 2001 From: Bernd Schoolmann Date: Wed, 20 Sep 2023 03:32:37 +0200 Subject: [PATCH] Implement attempt sync until online --- agent/unixsocketagent.go | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/agent/unixsocketagent.go b/agent/unixsocketagent.go index d9a0a65..a4ff2fc 100644 --- a/agent/unixsocketagent.go +++ b/agent/unixsocketagent.go @@ -128,16 +128,25 @@ func StartUnixAgent(path string, runtimeConfig config.RuntimeConfig) error { token, err := cfg.GetToken() if err == nil { if token.AccessToken != "" { - bitwarden.RefreshToken(ctx, &cfg) - userSymmetricKey, err := cfg.GetUserSymmetricKey() - if err != nil { - fmt.Println(err) - } - protectedUserSymetricKey, err := crypto.SymmetricEncryptionKeyFromBytes(userSymmetricKey) + // attempt to sync every minute until successful + for { + bitwarden.RefreshToken(ctx, &cfg) + userSymmetricKey, err := cfg.GetUserSymmetricKey() + if err != nil { + fmt.Println(err) + time.Sleep(60 * time.Second) + continue + } + protectedUserSymetricKey, err := crypto.SymmetricEncryptionKeyFromBytes(userSymmetricKey) - err = bitwarden.DoFullSync(context.WithValue(ctx, bitwarden.AuthToken{}, token.AccessToken), vault, &cfg, &protectedUserSymetricKey, true) - if err != nil { - fmt.Println(err) + err = bitwarden.DoFullSync(context.WithValue(ctx, bitwarden.AuthToken{}, token.AccessToken), vault, &cfg, &protectedUserSymetricKey, true) + if err != nil { + fmt.Println(err) + time.Sleep(60 * time.Second) + continue + } else { + break + } } } }