summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lasso/id-ff/identity.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/lasso/id-ff/identity.c b/lasso/id-ff/identity.c
index e5b80043..d2133ba0 100644
--- a/lasso/id-ff/identity.c
+++ b/lasso/id-ff/identity.c
@@ -187,6 +187,23 @@ lasso_identity_get_federation(LassoIdentity *identity,
g_return_val_if_fail(identity != NULL, NULL);
g_return_val_if_fail(remote_providerID != NULL, NULL);
+ federation = lasso_identity_get_federation_ref(identity, remote_providerID);
+ if (federation != NULL) {
+ return lasso_federation_copy(federation);
+ }
+
+ return NULL;
+}
+
+LassoFederation*
+lasso_identity_get_federation_ref(LassoIdentity *identity,
+ gchar *remote_providerID)
+{
+ LassoFederation *federation;
+
+ g_return_val_if_fail(identity != NULL, NULL);
+ g_return_val_if_fail(remote_providerID != NULL, NULL);
+
federation = (LassoFederation *)g_hash_table_lookup(identity->federations,
remote_providerID);
if (federation == NULL) {
@@ -194,7 +211,7 @@ lasso_identity_get_federation(LassoIdentity *identity,
return NULL;
}
- return lasso_federation_copy(federation);
+ return federation;
}
gchar*