AXIS2_EXTERN int AXIS2_CALL saml_query_set_query()

in src/omxmlsec/saml/query.c [1014:1055]


AXIS2_EXTERN int AXIS2_CALL saml_query_set_query(saml_query_t *query, const axutil_env_t *env, void *spec_query,
														axis2_char_t *type)
{
	if(query->query)
	{
		
		if(!axutil_strcmp(query->type,SAML_SUBJECT_QUERY))
		{
			if(query->query)
			{
				saml_subject_query_free(query->query, env);
			}
		}
		if(!axutil_strcmp(query->type, SAML_AUTHENTICATION_QUERY))
		{
			if(query->query)
			{
				saml_authentication_query_free(query->query, env);
			}
		}
		if(!axutil_strcmp(query->type, SAML_ATTRIBUTE_QUERY))
		{
			if(query->query)
			{
				saml_attr_query_free(query->query, env);
			}
		}
		if(!axutil_strcmp(query->type, SAML_AUTHORIZATION_DECISION_QUERY))
		{
			if(query->query)
			{
				saml_autho_decision_query_free(query->query, env);
			}
		}
		AXIS2_FREE(env->allocator, query->type);
	}

	query->query = spec_query;
	query->type = axutil_strdup(env, type);
	return AXIS2_SUCCESS;

}