summaryrefslogtreecommitdiffstats
path: root/lasso/xml/samlp_status_code.c
diff options
context:
space:
mode:
Diffstat (limited to 'lasso/xml/samlp_status_code.c')
-rw-r--r--lasso/xml/samlp_status_code.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/lasso/xml/samlp_status_code.c b/lasso/xml/samlp_status_code.c
index 98529e5c..87846c1a 100644
--- a/lasso/xml/samlp_status_code.c
+++ b/lasso/xml/samlp_status_code.c
@@ -41,34 +41,36 @@ Schema fragment (oasis-sstc-saml-schema-protocol-1.0.xsd):
/* private methods */
/*****************************************************************************/
+#define snippets() \
+ LassoSamlpStatusCode *status_code = LASSO_SAMLP_STATUS_CODE(node); \
+ struct XmlSnippet snippets[] = { \
+ { "StatusCode", 'n', (void**)&(status_code->StatusCode) }, \
+ { NULL, 0, NULL} \
+ };
+
static LassoNodeClass *parent_class = NULL;
static xmlNode*
get_xmlNode(LassoNode *node)
{
xmlNode *xmlnode;
- LassoSamlpStatusCode *status_code = LASSO_SAMLP_STATUS_CODE(node);
+ snippets();
xmlnode = xmlNewNode(NULL, "StatusCode");
xmlSetNs(xmlnode, xmlNewNs(xmlnode, LASSO_SAML_PROTOCOL_HREF, LASSO_SAML_PROTOCOL_PREFIX));
+ lasso_node_build_xml_with_snippets(xmlnode, snippets);
+
if (status_code->Value)
xmlSetProp(xmlnode, "Value", status_code->Value);
- if (status_code->StatusCode)
- xmlAddChild(xmlnode, lasso_node_get_xmlNode(LASSO_NODE(status_code->StatusCode)));
-
return xmlnode;
}
static int
init_from_xml(LassoNode *node, xmlNode *xmlnode)
{
- LassoSamlpStatusCode *status_code = LASSO_SAMLP_STATUS_CODE(node);
- struct XmlSnippet snippets[] = {
- { "StatusCode", 'n', (void**)&(status_code->StatusCode) },
- { NULL, 0, NULL}
- };
-
+ snippets();
+
if (parent_class->init_from_xml(node, xmlnode))
return -1;
lasso_node_init_xml_with_snippets(xmlnode, snippets);