diff options
| author | Benjamin Dauvergne <bdauvergne@entrouvert.com> | 2010-01-12 15:40:06 +0000 |
|---|---|---|
| committer | Benjamin Dauvergne <bdauvergne@entrouvert.com> | 2010-01-12 15:40:06 +0000 |
| commit | 003916b452fc5c049f7de07c7603c08ebee3c9c8 (patch) | |
| tree | 901fd96b62c105f435b655bef6e0ecb98460af61 | |
| parent | 9caacc3bb61f090035c4b55ddf7ae4d281db06e7 (diff) | |
Core Profile: remove need for identity in lasso_profile_get_nameIdentifier
| -rw-r--r-- | lasso/id-ff/profile.c | 22 |
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; |
