Exemplo n.º 1
0
static void http_session_ondestroy(void* param)
{
	struct http_session_t *session;
	session = (struct http_session_t *)param;
	session->transport = NULL;

	if (session->parser)
	{
		http_parser_destroy(session->parser);
		session->parser = NULL;
	}

	if (session->__vec)
	{
		free(session->__vec);
		session->__vec = NULL;
		session->vec_capacity = 0;
	}

	if (session->header != (char*)(session + 1))
	{
		assert(session->header_capacity > 2 * 1024);
		free(session->header);
		session->header = NULL;
		session->header_size = 0;
		session->header_capacity = 0;
	}

#if defined(DEBUG) || defined(_DEBUG)
	memset(session, 0xCC, sizeof(*session));
#endif
	free(session);
}
Exemplo n.º 2
0
static void
http_context_clean(struct transport_client_context_s *ctx)
{
	if (!ctx)
		return;
	if (ctx->parser)
		http_parser_destroy(ctx->parser);
	if (ctx->request)
		http_request_clean(ctx->request);
	g_free(ctx);
}