summaryrefslogtreecommitdiffstats
path: root/lasso/xml/saml-2.0/saml2_name_id.c
diff options
context:
space:
mode:
authorBenjamin Dauvergne <bdauvergne@entrouvert.com>2009-10-30 14:47:27 +0000
committerBenjamin Dauvergne <bdauvergne@entrouvert.com>2009-10-30 14:47:27 +0000
commit78659e68d9b3ab9840023ccb50c92dc64a8146ce (patch)
tree2c3f7c6c76f1de0c0644e4d6383d5576474c071b /lasso/xml/saml-2.0/saml2_name_id.c
parent5b0f7953b6268bdfed2ec50e01fa57f0c1a5a82a (diff)
downloadlasso-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.c33
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;
+}