in src/omxmlsec/saml/response.c [53:104]
AXIS2_EXTERN int AXIS2_CALL saml_status_build(saml_status_t *status,
axiom_node_t *node,
const axutil_env_t *env)
{
axiom_element_t *element = NULL;
axiom_child_element_iterator_t *iterator = NULL;
axiom_node_t *child_node;
axis2_char_t *qname = NULL;
if (axiom_node_get_node_type(node, env) != AXIOM_ELEMENT)
{
return AXIS2_FAILURE;
}
if ((element = axiom_node_get_data_element(node, env)) == NULL)
{
return AXIS2_FAILURE;
}
iterator = axiom_element_get_child_elements(element, env, node);
if(iterator)
{
while(axiom_child_element_iterator_has_next(iterator, env))
{
child_node = axiom_child_element_iterator_next(iterator, env);
element = (axiom_element_t *)axiom_node_get_data_element(child_node, env);
if(element != NULL && !(axutil_strcmp(axiom_element_get_localname(element, env),
SAML_STATUS_CODE)))
{
qname = axiom_element_get_attribute_value_by_name(element, env, SAML_STATUS_VALUE);
if(qname)
status->status_value = axutil_qname_create_from_string(env, qname);
}
else if(element != NULL && !(axutil_strcmp(axiom_element_get_localname(element, env),
SAML_STATUS_MESSAGE)))
{
status->status_msg = axiom_element_get_text(element, env, child_node);
}
else if(element != NULL && !(axutil_strcmp(axiom_element_get_localname(element, env),
SAML_STATUS_DETAIL)))
{
status->status_detail = child_node;
}
}
return AXIS2_SUCCESS;
}
return AXIS2_FAILURE;
}