diff options
| author | Nicolas Clapies <nclapies@entrouvert.com> | 2004-08-25 09:10:45 +0000 |
|---|---|---|
| committer | Nicolas Clapies <nclapies@entrouvert.com> | 2004-08-25 09:10:45 +0000 |
| commit | 738257f33a816017ba2edf01288f14f61ca2f21f (patch) | |
| tree | 515c99de74518b314248ea61857d5ac7a58d0ebe | |
| parent | 6456f648d73fd2a341929a93216f642d3b1ec901 (diff) | |
| download | lasso-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.c | 49 | ||||
| -rw-r--r-- | lasso/id-ff/defederation.h | 3 |
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 { |
