summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Dauvergne <bdauvergne@entrouvert.com>2010-01-12 15:40:06 +0000
committerBenjamin Dauvergne <bdauvergne@entrouvert.com>2010-01-12 15:40:06 +0000
commit003916b452fc5c049f7de07c7603c08ebee3c9c8 (patch)
tree901fd96b62c105f435b655bef6e0ecb98460af61
parent9caacc3bb61f090035c4b55ddf7ae4d281db06e7 (diff)
Core Profile: remove need for identity in lasso_profile_get_nameIdentifier
-rw-r--r--lasso/id-ff/profile.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/lasso/id-ff/profile.c b/lasso/id-ff/profile.c
index f378027d..9eda9a99 100644
--- a/lasso/id-ff/profile.c
+++ b/lasso/id-ff/profile.c
@@ -102,35 +102,35 @@ lasso_profile_get_nameIdentifier(LassoProfile *profile)
LassoFederation *federation;
char *name_id_sp_name_qualifier;
- g_return_val_if_fail(LASSO_IS_PROFILE(profile), NULL);
-
- g_return_val_if_fail(LASSO_IS_SERVER(profile->server), NULL);
- g_return_val_if_fail(LASSO_IS_IDENTITY(profile->identity), NULL);
+ if (!LASSO_IS_PROFILE(profile)) {
+ return NULL;
+ }
if (profile->remote_providerID == NULL)
return NULL;
- if (LASSO_IS_IDENTITY(profile->identity)) {
+ /* beware, it is not a real loop ! */
+ if (LASSO_IS_IDENTITY(profile->identity)) do {
remote_provider = lasso_server_get_provider(profile->server, profile->remote_providerID);
if (remote_provider == NULL)
- goto use_session;
+ break;
name_id_sp_name_qualifier = lasso_provider_get_sp_name_qualifier(remote_provider);
if (name_id_sp_name_qualifier == NULL)
- goto use_session;
+ break;
federation = g_hash_table_lookup(
profile->identity->federations,
name_id_sp_name_qualifier);
if (federation == NULL)
- goto use_session;
+ break;
if (federation->remote_nameIdentifier)
return federation->remote_nameIdentifier;
return federation->local_nameIdentifier;
- }
-use_session:
- /* For transient federations, so we must look at assertions no federation object exists */
+ } while (FALSE);
+
+ /* For transient federations, we must look at assertions no federation object exists */
if (LASSO_IS_SESSION(profile->session)) {
LassoNode *assertion, *name_id;