示例#1
0
文件: pipe.c 项目: AMV007/FreeRDP
BOOL NamedPipeCloseHandle(HANDLE handle) {
	WINPR_NAMED_PIPE* pNamedPipe = (WINPR_NAMED_PIPE *)handle;

	if (!NamedPipeIsHandled(handle))
		return FALSE;

	if (pNamedPipe->pfnUnrefNamedPipe)
		pNamedPipe->pfnUnrefNamedPipe(pNamedPipe);

	if (pNamedPipe->name)
		free(pNamedPipe->name);

	if (pNamedPipe->lpFileName)
		free((void*)pNamedPipe->lpFileName);

	if (pNamedPipe->lpFilePath)
		free((void*)pNamedPipe->lpFilePath);

	if (pNamedPipe->serverfd != -1)
		close(pNamedPipe->serverfd);
	
	if (pNamedPipe->clientfd != -1)
		close(pNamedPipe->clientfd);
	
	free(handle);

	return TRUE;
}
示例#2
0
static int NamedPipeGetFd(HANDLE handle)
{
	WINPR_NAMED_PIPE *pipe = (WINPR_NAMED_PIPE *)handle;

	if (!NamedPipeIsHandled(handle))
		return -1;

	if (pipe->ServerMode)
		return pipe->serverfd;
	return pipe->clientfd;
}