From e9b1befae4f2347dffea37d8489fd44f2ec8128c Mon Sep 17 00:00:00 2001 From: Atanas Janeshliev Date: Tue, 1 Jul 2025 13:20:23 +0200 Subject: [PATCH] chore: refactor; unify vault mutex usage with wrappers; --- internal/vault/certs.go | 5 +---- internal/vault/vault.go | 30 ++++++------------------------ 2 files changed, 7 insertions(+), 28 deletions(-) diff --git a/internal/vault/certs.go b/internal/vault/certs.go index d76d7210..1bef0ef7 100644 --- a/internal/vault/certs.go +++ b/internal/vault/certs.go @@ -30,10 +30,7 @@ import ( // If CertPEMPath is set, it will attempt to read the certificate from the file. // Otherwise, or on read/validation failure, it will return the certificate from the vault. func (vault *Vault) GetBridgeTLSCert() ([]byte, []byte) { - vault.lock.RLock() - defer vault.lock.RUnlock() - - certs := vault.getUnsafe().Certs + certs := vault.getSafe().Certs if certPath, keyPath := certs.CustomCertPath, certs.CustomKeyPath; certPath != "" && keyPath != "" { if certPEM, keyPEM, err := readPEMCert(certPath, keyPath); err == nil { diff --git a/internal/vault/vault.go b/internal/vault/vault.go index 43652ae4..4dbb70cd 100644 --- a/internal/vault/vault.go +++ b/internal/vault/vault.go @@ -88,10 +88,7 @@ func New(vaultDir, gluonCacheDir string, key []byte, panicHandler async.PanicHan // GetUserIDs returns the user IDs and usernames of all users in the vault. func (vault *Vault) GetUserIDs() []string { - vault.lock.RLock() - defer vault.lock.RUnlock() - - return xslices.Map(vault.getUnsafe().Users, func(user UserData) string { + return xslices.Map(vault.getSafe().Users, func(user UserData) string { return user.UserID }) } @@ -140,10 +137,7 @@ func (vault *Vault) getUsers() ([]*User, error) { // HasUser returns true if the vault contains a user with the given ID. func (vault *Vault) HasUser(userID string) bool { - vault.lock.RLock() - defer vault.lock.RUnlock() - - return xslices.IndexFunc(vault.getUnsafe().Users, func(user UserData) bool { + return xslices.IndexFunc(vault.getSafe().Users, func(user UserData) bool { return user.UserID == userID }) >= 0 } @@ -299,26 +293,17 @@ func (vault *Vault) DeleteUser(userID string) error { } func (vault *Vault) Migrated() bool { - vault.lock.RLock() - defer vault.lock.RUnlock() - - return vault.getUnsafe().Migrated + return vault.getSafe().Migrated } func (vault *Vault) SetMigrated() error { - vault.lock.Lock() - defer vault.lock.Unlock() - - return vault.modUnsafe(func(data *Data) { + return vault.modSafe(func(data *Data) { data.Migrated = true }) } func (vault *Vault) Reset(gluonDir string) error { - vault.lock.Lock() - defer vault.lock.Unlock() - - return vault.modUnsafe(func(data *Data) { + return vault.modSafe(func(data *Data) { *data = newDefaultData(gluonDir) }) } @@ -459,10 +444,7 @@ func (vault *Vault) modUnsafe(fn func(data *Data)) error { } func (vault *Vault) getUser(userID string) UserData { - vault.lock.RLock() - defer vault.lock.RUnlock() - - users := vault.getUnsafe().Users + users := vault.getSafe().Users idx := xslices.IndexFunc(users, func(user UserData) bool { return user.UserID == userID