in src/omxmlsec/saml/request.c [81:155]
AXIS2_EXTERN void AXIS2_CALL saml_request_free(saml_request_t *request, const axutil_env_t *env)
{
int size = 0, i = 0;
saml_artifact_t *artifact = NULL;
axutil_qname_t *respond = NULL;
if(request->request_id)
{
AXIS2_FREE(env->allocator, request->request_id);
}
if(request->issue_instant)
{
axutil_date_time_free(request->issue_instant, env);
}
if(request->major_version)
{
AXIS2_FREE(env->allocator, request->major_version);
}
if(request->minor_version)
{
AXIS2_FREE(env->allocator, request->minor_version);
}
if(request->query)
{
saml_query_free(request->query, env);
}
if(request->sig_ctx)
{
oxs_sign_ctx_free(request->sig_ctx, env);
}
if(request->saml_artifacts)
{
size = axutil_array_list_size(request->saml_artifacts, env);
for(i = 0; i < size ; i++)
{
artifact = (saml_artifact_t*)axutil_array_list_get(request->saml_artifacts, env , i);
if(artifact)
saml_artifact_free(artifact, env);
}
axutil_array_list_free(request->saml_artifacts, env);
}
if(request->saml_asserion_id_ref)
{
axis2_char_t *id_ref = NULL;
size = axutil_array_list_size(request->saml_asserion_id_ref, env);
for(i = 0; i < size ; i++)
{
id_ref = (axis2_char_t*)axutil_array_list_get(request->saml_asserion_id_ref, env , i);
if(id_ref)
AXIS2_FREE(env->allocator, id_ref);
}
axutil_array_list_free(request->saml_asserion_id_ref, env);
}
if(request->saml_responds)
{
size = axutil_array_list_size(request->saml_responds, env);
for(i = 0; i < size ; i++)
{
respond = (axutil_qname_t*)axutil_array_list_get(request->saml_responds, env , i);
if(respond)
axutil_qname_free(respond, env);
}
axutil_array_list_free(request->saml_responds, env);
}
request->original_xml = NULL;
request->signature = NULL;
AXIS2_FREE(env->allocator, request);
request = NULL;
}