예제 #1
0
파일: rpc.c 프로젝트: d0rian/FreeRDP
void rpc_free(rdpRpc* rpc)
{
	if (rpc != NULL)
	{
		RPC_PDU* PduEntry;

		ntlm_http_free(rpc->NtlmHttpIn);
		ntlm_http_free(rpc->NtlmHttpOut);

		_aligned_free(rpc->pdu);

		while ((PduEntry = (RPC_PDU*) InterlockedPopEntrySList(rpc->SendQueue)) != NULL)
			_aligned_free(PduEntry);
		_aligned_free(rpc->SendQueue);

		while ((PduEntry = (RPC_PDU*) InterlockedPopEntrySList(rpc->ReceiveQueue)) != NULL)
			_aligned_free(PduEntry);
		_aligned_free(rpc->ReceiveQueue);

		rpc_client_virtual_connection_free(rpc->VirtualConnection);
		rpc_virtual_connection_cookie_table_free(rpc->VirtualConnectionCookieTable);

		free(rpc);
	}
}
예제 #2
0
파일: rpc.c 프로젝트: felfert/FreeRDP
void rpc_free(rdpRpc* rpc)
{
	if (rpc != NULL)
	{
		ntlm_http_free(rpc->ntlm_http_in);
		ntlm_http_free(rpc->ntlm_http_out);
		rpc_client_virtual_connection_free(rpc->VirtualConnection);
		xfree(rpc);
	}
}
예제 #3
0
파일: rpc.c 프로젝트: 4hosi/FreeRDP
void rpc_free(rdpRpc* rpc)
{
	if (rpc != NULL)
	{
		rpc_client_stop(rpc);

		if (rpc->State >= RPC_CLIENT_STATE_CONTEXT_NEGOTIATED)
		{
			ntlm_client_uninit(rpc->ntlm);
			ntlm_free(rpc->ntlm);
		}

		rpc_client_virtual_connection_free(rpc->VirtualConnection);

		ArrayList_Clear(rpc->VirtualConnectionCookieTable);
		ArrayList_Free(rpc->VirtualConnectionCookieTable);

		free(rpc);
	}
}