[gnome-keyring/dbus-api] [gck] Add public method to add session object.



commit 201d6725a061d516cbef16a48406a2dbe93bd3dc
Author: Stef Walter <stef memberwebs com>
Date:   Tue Aug 11 03:48:48 2009 +0000

    [gck] Add public method to add session object.
    
    Add gck_session_add_session_object() method.

 pkcs11/gck/gck-session.c |   22 ++++++++++++++++++++--
 pkcs11/gck/gck-session.h |    4 ++++
 2 files changed, 24 insertions(+), 2 deletions(-)
---
diff --git a/pkcs11/gck/gck-session.c b/pkcs11/gck/gck-session.c
index 68a2a40..c56c515 100644
--- a/pkcs11/gck/gck-session.c
+++ b/pkcs11/gck/gck-session.c
@@ -703,13 +703,31 @@ gck_session_login_context_specific (GckSession *self, CK_UTF8CHAR_PTR pin, CK_UL
 }
 
 void
+gck_session_add_session_object (GckSession *self, GckTransaction *transaction,
+                                GckObject *obj)
+{
+	g_return_if_fail (GCK_IS_SESSION (self));
+	g_return_if_fail (gck_session_for_session_object (obj) == NULL);
+
+	if (transaction) {
+		g_return_if_fail (GCK_IS_TRANSACTION (transaction));
+		g_return_if_fail (!gck_transaction_get_failed (transaction));
+	}
+
+	add_object (self, transaction, obj);
+}
+
+void
 gck_session_destroy_session_object (GckSession *self, GckTransaction *transaction,
                                     GckObject *obj)
 {
 	g_return_if_fail (GCK_IS_SESSION (self));
 	g_return_if_fail (gck_session_for_session_object (obj) == self);
-	g_return_if_fail (GCK_IS_TRANSACTION (transaction));
-	g_return_if_fail (!gck_transaction_get_failed (transaction));
+
+	if (transaction) {
+		g_return_if_fail (GCK_IS_TRANSACTION (transaction));
+		g_return_if_fail (!gck_transaction_get_failed (transaction));
+	}
 
 	/* Don't actually destroy the authenticator */
 	if (self->pv->authenticator && GCK_OBJECT (self->pv->authenticator) == obj)
diff --git a/pkcs11/gck/gck-session.h b/pkcs11/gck/gck-session.h
index eff78b1..b28836d 100644
--- a/pkcs11/gck/gck-session.h
+++ b/pkcs11/gck/gck-session.h
@@ -91,6 +91,10 @@ CK_RV                    gck_session_login_context_specific             (GckSess
                                                                          CK_UTF8CHAR_PTR pin,
                                                                          CK_ULONG n_pin);
 
+void                     gck_session_add_session_object                 (GckSession *self,
+                                                                         GckTransaction *transaction,
+                                                                         GckObject *obj);
+
 void                     gck_session_destroy_session_object             (GckSession *self,
                                                                          GckTransaction *transaction,
                                                                          GckObject *obj);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]