summaryrefslogtreecommitdiffstats
path: root/swig
diff options
context:
space:
mode:
authorFrederic Peters <fpeters@entrouvert.com>2004-12-27 11:42:15 +0000
committerFrederic Peters <fpeters@entrouvert.com>2004-12-27 11:42:15 +0000
commitf1f8d3b91b3a28cf54aa2a99a6bedd72ecad42b6 (patch)
tree219616b77d2d03a29e5fb403019e48ed24c285e4 /swig
parentc5d8c9dfd900d726321396ce134639617a62f29a (diff)
downloadlasso-f1f8d3b91b3a28cf54aa2a99a6bedd72ecad42b6.tar.gz
lasso-f1f8d3b91b3a28cf54aa2a99a6bedd72ecad42b6.tar.xz
lasso-f1f8d3b91b3a28cf54aa2a99a6bedd72ecad42b6.zip
Moved back Extension support from xmlNode* to GList*; "SP login using
post/artifact (testing Extension); SP logout using SOAP." test now works.
Diffstat (limited to 'swig')
-rw-r--r--swig/Lasso.i19
1 files changed, 11 insertions, 8 deletions
diff --git a/swig/Lasso.i b/swig/Lasso.i
index b56b93d6..7f4d555f 100644
--- a/swig/Lasso.i
+++ b/swig/Lasso.i
@@ -894,14 +894,21 @@ void LassoLibAuthnRequest_consent_set(LassoLibAuthnRequest *self, gchar *consent
LassoStringArray *LassoLibAuthnRequest_extension_get(LassoLibAuthnRequest *self) {
return NULL; /* FIXME */
}
+
+static void free_xml_list_elem(xmlNode *xmlnode, gpointer unused)
+{
+ xmlFreeNode(xmlnode);
+}
+
#define LassoLibAuthnRequest_set_extension LassoLibAuthnRequest_extension_set
void LassoLibAuthnRequest_extension_set(LassoLibAuthnRequest *self, LassoStringArray *extension) {
- if (self->Extension != NULL)
- xmlFreeNodeList(self->Extension);
+ if (self->Extension != NULL) {
+ g_list_foreach(self->Extension, free_xml_list_elem, NULL);
+ g_list_free(self->Extension);
+ }
if (extension == NULL)
self->Extension = NULL;
else {
- xmlNode *extensionList = NULL;
int index;
for (index = 0; index < extension->len; index ++) {
xmlDoc *doc;
@@ -919,15 +926,11 @@ void LassoLibAuthnRequest_extension_set(LassoLibAuthnRequest *self, LassoStringA
LASSO_LIB_PREFIX);
xmlSetNs(extensionNode, libertyNamespace);
xmlAddChild(extensionNode, xmlCopyNode(node, 1));
- if (extensionList == NULL)
- extensionList = extensionNode;
- else
- xmlAddNextSibling(extensionList, extensionNode);
+ self->Extension = g_list_append(self->Extension, extensionNode);
}
xmlFreeDoc(doc);
}
- self->Extension = extensionList;
}
}