diff options
author | Stef Walter <stefw@collabora.co.uk> | 2010-11-26 20:18:04 +0000 |
---|---|---|
committer | Stef Walter <stefw@collabora.co.uk> | 2010-11-26 20:18:04 +0000 |
commit | 0dff075a4470947bdf36341955d37fd578957d39 (patch) | |
tree | 78e60383f29374ba5a4baebf41410bbbe5182537 /pkcs11/xdg-store/gkm-xdg-trust.c | |
parent | 5488f4ac054906a5b8ab53bdecca83865d672858 (diff) | |
download | gnome-keyring-0dff075a4470947bdf36341955d37fd578957d39.tar.gz |
[xdg-store] Trust assertions with same purpose/peer replace each other.
Diffstat (limited to 'pkcs11/xdg-store/gkm-xdg-trust.c')
-rw-r--r-- | pkcs11/xdg-store/gkm-xdg-trust.c | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/pkcs11/xdg-store/gkm-xdg-trust.c b/pkcs11/xdg-store/gkm-xdg-trust.c index df3f8a80..3012f466 100644 --- a/pkcs11/xdg-store/gkm-xdg-trust.c +++ b/pkcs11/xdg-store/gkm-xdg-trust.c @@ -834,31 +834,27 @@ gkm_xdg_trust_create_for_assertion (GkmModule *module, GkmManager *manager, return trust; } -GkmAssertion* -gkm_xdg_trust_add_assertion (GkmXdgTrust *self, GkmAssertion *assertion, +void +gkm_xdg_trust_replace_assertion (GkmXdgTrust *self, GkmAssertion *assertion, GkmTransaction *transaction) { GkmAssertion *previous; GByteArray *key; - g_return_val_if_fail (GKM_XDG_IS_TRUST (self), NULL); - g_return_val_if_fail (GKM_IS_ASSERTION (assertion), NULL); - g_return_val_if_fail (!transaction || GKM_IS_TRANSACTION (transaction), NULL); + g_return_if_fail (GKM_XDG_IS_TRUST (self)); + g_return_if_fail (GKM_IS_ASSERTION (assertion)); + g_return_if_fail (!transaction || GKM_IS_TRANSACTION (transaction)); /* Build up a key if we don't have one */ key = lookup_or_create_assertion_key (assertion); - /* Check if we alraedy have the assertion */ + /* Remove any previous assertion with this key */ previous = g_hash_table_lookup (self->pv->assertions, key); - - g_byte_array_unref (key); - - /* Just return previous assertion, don't add */ if (previous != NULL) - return previous; - + remove_assertion_from_trust (self, previous, transaction); add_assertion_to_trust (self, assertion, transaction); - return assertion; + + g_byte_array_unref (key); } void |