diff options
author | Benjamin Dauvergne <bdauvergne@entrouvert.com> | 2009-10-30 14:47:27 +0000 |
---|---|---|
committer | Benjamin Dauvergne <bdauvergne@entrouvert.com> | 2009-10-30 14:47:27 +0000 |
commit | 78659e68d9b3ab9840023ccb50c92dc64a8146ce (patch) | |
tree | 2c3f7c6c76f1de0c0644e4d6383d5576474c071b /lasso/xml/saml-2.0/saml2_name_id.c | |
parent | 5b0f7953b6268bdfed2ec50e01fa57f0c1a5a82a (diff) | |
download | lasso-78659e68d9b3ab9840023ccb50c92dc64a8146ce.tar.gz lasso-78659e68d9b3ab9840023ccb50c92dc64a8146ce.tar.xz lasso-78659e68d9b3ab9840023ccb50c92dc64a8146ce.zip |
SAML2: add an equals operator to the NameID class
* lasso/xml/saml-2.0/saml2_name_id.c:
* lasso/xml/saml-2.0/saml2_name_id.h:
add a lasso_saml2_name_id_equals method which return TRUE if two
NameId are equal.
Diffstat (limited to 'lasso/xml/saml-2.0/saml2_name_id.c')
-rw-r--r-- | lasso/xml/saml-2.0/saml2_name_id.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/lasso/xml/saml-2.0/saml2_name_id.c b/lasso/xml/saml-2.0/saml2_name_id.c index ed42b5f7..ff3777df 100644 --- a/lasso/xml/saml-2.0/saml2_name_id.c +++ b/lasso/xml/saml-2.0/saml2_name_id.c @@ -140,3 +140,36 @@ lasso_saml2_name_id_new_with_string(char *content) object->content = g_strdup(content); return LASSO_NODE(object); } + +/** + * lasso_saml2_name_id_equals: + * @name_id: a #LassoSaml2NameID object + * @other_name_id: another #LassoSaml2NameID object + * + * Return TRUE if @name_id equals @other_name_id. + * + * Return value: TRUE if the two NameID are equal and are #LassoSaml2NameID objects, FALSE + * otherwise. + */ +gboolean +lasso_saml2_name_id_equals(LassoSaml2NameID *name_id, LassoSaml2NameID *other_name_id) +{ + if (! LASSO_IS_SAML2_NAME_ID(name_id) || ! LASSO_IS_SAML2_NAME_ID(other_name_id)) + return FALSE; + + /* check obligatory content */ + if (!name_id->content || !other_name_id->content || strcmp(name_id->content, other_name_id->content) != 0) + return FALSE; + + /* check optional content */ + if (g_strcmp0(name_id->Format, other_name_id->Format) != 0) + return FALSE; + if (g_strcmp0(name_id->SPProvidedID, other_name_id->SPProvidedID) != 0) + return FALSE; + if (g_strcmp0(name_id->NameQualifier, other_name_id->NameQualifier) != 0) + return FALSE; + if (g_strcmp0(name_id->SPNameQualifier, other_name_id->SPNameQualifier) != 0) + return FALSE; + + return TRUE; +} |