diff options
author | Frederic Peters <fpeters@entrouvert.com> | 2004-12-27 11:42:15 +0000 |
---|---|---|
committer | Frederic Peters <fpeters@entrouvert.com> | 2004-12-27 11:42:15 +0000 |
commit | f1f8d3b91b3a28cf54aa2a99a6bedd72ecad42b6 (patch) | |
tree | 219616b77d2d03a29e5fb403019e48ed24c285e4 /swig | |
parent | c5d8c9dfd900d726321396ce134639617a62f29a (diff) | |
download | lasso-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.i | 19 |
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; } } |