summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Clapies <nclapies@entrouvert.com>2004-08-25 09:10:45 +0000
committerNicolas Clapies <nclapies@entrouvert.com>2004-08-25 09:10:45 +0000
commit738257f33a816017ba2edf01288f14f61ca2f21f (patch)
tree515c99de74518b314248ea61857d5ac7a58d0ebe
parent6456f648d73fd2a341929a93216f642d3b1ec901 (diff)
downloadlasso-738257f33a816017ba2edf01288f14f61ca2f21f.tar.gz
lasso-738257f33a816017ba2edf01288f14f61ca2f21f.tar.xz
lasso-738257f33a816017ba2edf01288f14f61ca2f21f.zip
Added missing private attribute, private variable and desallocation methods : LassoDefederationPrivate *private in LassoDefederation object, static GObjectClass *parent_class in C file, lasso_defederation_dispose() and lasso_defederation_finalize() in LassoFederation object
-rw-r--r--lasso/id-ff/defederation.c49
-rw-r--r--lasso/id-ff/defederation.h3
2 files changed, 43 insertions, 9 deletions
diff --git a/lasso/id-ff/defederation.c b/lasso/id-ff/defederation.c
index 7f61b609..d85e262f 100644
--- a/lasso/id-ff/defederation.c
+++ b/lasso/id-ff/defederation.c
@@ -24,9 +24,15 @@
*/
#include <lasso/environs/defederation.h>
-
#include <lasso/xml/errors.h>
+static GObjectClass *parent_class = NULL;
+
+struct _LassoDefederationPrivate
+{
+ gboolean dispose_has_run;
+};
+
/*****************************************************************************/
/* public methods */
/*****************************************************************************/
@@ -316,14 +322,13 @@ lasso_defederation_init_notification(LassoDefederation *defederation,
profile->nameIdentifier = content;
/* remove federation with remote provider id */
- if (profile->identity ==NULL) {
+ if (profile->identity == NULL) {
message(G_LOG_LEVEL_CRITICAL, "Identity not found\n");
ret = -1;
goto done;
}
lasso_identity_remove_federation(profile->identity, profile->remote_providerID);
-
/* remove assertion from session */
if (profile->session != NULL) {
lasso_session_remove_assertion(profile->session, profile->remote_providerID);
@@ -511,17 +516,14 @@ lasso_defederation_validate_notification(LassoDefederation *defederation)
/* if defederation has a session and if there is an assertion for remote provider id, then remove assertion too */
if (profile->session != NULL) {
- assertion = lasso_session_get_assertion(profile->session, profile->remote_providerID);
- if (assertion != NULL) {
- lasso_session_remove_assertion(profile->session, profile->remote_providerID);
- }
+ lasso_session_remove_assertion(profile->session, profile->remote_providerID);
}
done:
- if (federation!=NULL) {
+ if (federation != NULL) {
lasso_federation_destroy(federation);
}
- if (nameIdentifier!=NULL) {
+ if (nameIdentifier != NULL) {
lasso_node_destroy(nameIdentifier);
}
@@ -529,6 +531,35 @@ lasso_defederation_validate_notification(LassoDefederation *defederation)
}
/*****************************************************************************/
+/* overrided parent class methods */
+/*****************************************************************************/
+
+static void
+lasso_defederation_dispose(LassoDefederation *defederation)
+{
+ if (defederation->private->dispose_has_run == TRUE) {
+ return;
+ }
+ defederation->private->dispose_has_run = TRUE;
+
+ debug("Defederation object 0x%x disposed ...\n", defederation);
+
+ /* unref reference counted objects */
+
+ parent_class->dispose(G_OBJECT(defederation));
+}
+
+static void
+lasso_defederation_finalize(LassoDefederation *defederation)
+{
+ debug("Defederation object 0x%x finalized ...\n", defederation);
+
+ g_free (defederation->private);
+
+ parent_class->finalize(G_OBJECT(defederation));
+}
+
+/*****************************************************************************/
/* instance and class init functions */
/*****************************************************************************/
diff --git a/lasso/id-ff/defederation.h b/lasso/id-ff/defederation.h
index a40e560f..1a6556ab 100644
--- a/lasso/id-ff/defederation.h
+++ b/lasso/id-ff/defederation.h
@@ -42,11 +42,14 @@ extern "C" {
typedef struct _LassoDefederation LassoDefederation;
typedef struct _LassoDefederationClass LassoDefederationClass;
+typedef struct _LassoDefederationPrivate LassoDefederationPrivate;
struct _LassoDefederation {
LassoProfile parent;
/*< private >*/
+
+ LassoDefederationPrivate *private;
};
struct _LassoDefederationClass {