AXIS2_EXTERN void saml_response_free()

in src/omxmlsec/saml/response.c [221:274]


AXIS2_EXTERN void saml_response_free(saml_response_t *response, const axutil_env_t *env)
{
	int size =0, i = 0;
	saml_assertion_t *assertion = NULL;
	if(response->major_version)
	{
		AXIS2_FREE(env->allocator, response->major_version);
	}
	if(response->minor_version)
	{
		AXIS2_FREE(env->allocator, response->minor_version);
	}
	if(response->issue_instant)
	{
		axutil_date_time_free(response->issue_instant, env);
	}
	if(response->recepient)
	{
		AXIS2_FREE(env->allocator, response->recepient);
	}
	if(response->response_id)
	{
		AXIS2_FREE(env->allocator, response->response_id);
	}
	if(response->sig_ctx)
	{
		oxs_sign_ctx_free(response->sig_ctx, env);
	}
	if(response->status)
	{
		saml_status_free(response->status, env);
	}
	if(response->request_response_id)
	{
		AXIS2_FREE(env->allocator, response->request_response_id);
	}
	if(response->saml_assertions)
	{
		size = axutil_array_list_size(response->saml_assertions, env);
		for(i = 0; i < size ; i++)
		{
			assertion = (saml_assertion_t*)axutil_array_list_get(response->saml_assertions, env, i);
			if(assertion)
			{
				saml_assertion_free(assertion, env);
			}
		}
		axutil_array_list_free(response->saml_assertions, env);
	}
	response->original_xml = NULL;
	response->signature = NULL;
	AXIS2_FREE(env->allocator, response);
	response = NULL;
}