1
0
peilaus alkaen https://github.com/maxgoedjen/secretive.git synced 2026-09-09 18:09:04 +02:00

Fix local generation by ensuring generation happens only after local store reload (#351)

This commit is contained in:
Max Goedjen
2022-02-16 23:05:24 -08:00
committed by GitHub
vanhempi f43dea0d0d
commit 067f1526b0
3 muutettua tiedostoa jossa 9 lisäystä ja 5 poistoa

Näytä tiedosto

@@ -56,6 +56,9 @@ public protocol SecretStoreModifiable: SecretStore {
extension NSNotification.Name {
// Distributed notification that keys were modified out of process (ie, that the management tool added/removed secrets)
public static let secretStoreUpdated = NSNotification.Name("com.maxgoedjen.Secretive.secretStore.updated")
// Internal notification that keys were reloaded from the backing store.
public static let secretStoreReloaded = NSNotification.Name("com.maxgoedjen.Secretive.secretStore.reloaded")
}

Näytä tiedosto

@@ -24,7 +24,7 @@ extension SecureEnclave {
/// Initializes a Store.
public init() {
DistributedNotificationCenter.default().addObserver(forName: .secretStoreUpdated, object: nil, queue: .main) { _ in
self.reloadSecrets(notify: false)
self.reloadSecrets(notifyAgent: false)
}
loadSecrets()
}
@@ -171,11 +171,12 @@ extension SecureEnclave {
extension SecureEnclave.Store {
/// Reloads all secrets from the store.
/// - Parameter notify: A boolean indicating whether a distributed notification should be posted, notifying other processes (ie, the SecretAgent) to reload their stores as well.
private func reloadSecrets(notify: Bool = true) {
/// - Parameter notifyAgent: A boolean indicating whether a distributed notification should be posted, notifying other processes (ie, the SecretAgent) to reload their stores as well.
private func reloadSecrets(notifyAgent: Bool = true) {
secrets.removeAll()
loadSecrets()
if notify {
NotificationCenter.default.post(name: .secretStoreReloaded, object: self)
if notifyAgent {
DistributedNotificationCenter.default().postNotificationName(.secretStoreUpdated, object: nil, deliverImmediately: true)
}
}