in src/omxmlsec/saml/query.c [588:636]
AXIS2_EXTERN int AXIS2_CALL saml_query_build(saml_query_t *query, axiom_node_t *node, const axutil_env_t *env)
{
if(!axutil_strcmp(query->type,SAML_SUBJECT_QUERY))
{
query->query = saml_subject_query_create(env);
if(query->query)
{
saml_subject_query_build((saml_subject_query_t*)query->query, node, env);
return AXIS2_SUCCESS;
}
else
return AXIS2_FAILURE;
}
if(!axutil_strcmp(query->type, SAML_AUTHENTICATION_QUERY))
{
query->query = saml_authentication_query_create(env);
if(query->query)
{
saml_authentication_query_build((saml_authentication_query_t*)query->query, node, env);
return AXIS2_SUCCESS;
}
else
return AXIS2_FAILURE;
}
if(!axutil_strcmp(query->type, SAML_ATTRIBUTE_QUERY))
{
query->query = saml_attr_query_create(env);
if(query->query)
{
saml_attr_query_build((saml_attr_query_t*)query->query, node, env);
return AXIS2_SUCCESS;
}
else
return AXIS2_FAILURE;
}
if(!axutil_strcmp(query->type, SAML_AUTHORIZATION_DECISION_QUERY))
{
query->query = saml_autho_decision_query_create(env);
if(query->query)
{
saml_autho_decision_query_build((saml_autho_decision_query_t*)query->query, node, env);
return AXIS2_SUCCESS;
}
else
return AXIS2_FAILURE;
}
else
return AXIS2_FAILURE;
}