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


	if (!FileIsHandled(handle))
		return FALSE;

	if (pNamedPipe->clientfd != -1)
	{
		//WLOG_DBG(TAG, "closing clientfd %d", pNamedPipe->clientfd);
		close(pNamedPipe->clientfd);
	}

	if (pNamedPipe->serverfd != -1)
	{
		//WLOG_DBG(TAG, "closing serverfd %d", pNamedPipe->serverfd);
		close(pNamedPipe->serverfd);
	}

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

	free(pNamedPipe->lpFileName);
	free(pNamedPipe->lpFilePath);
	free(pNamedPipe->name);
	free(pNamedPipe);

	return TRUE;
}
示例#2
0
文件: file.c 项目: Graf3x/FreeRDP
static int FileGetFd(HANDLE handle)
{
	WINPR_FILE *file= (WINPR_FILE*)handle;

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

	return fileno(file->fp);
}
示例#3
0
文件: file.c 项目: BUGgs/FreeRDP
static int FileGetFd(HANDLE handle)
{
	WINPR_NAMED_PIPE *file = (WINPR_NAMED_PIPE *)handle;

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

	if (file->ServerMode)
		return file->serverfd;
	else
		return file->clientfd;
}
示例#4
0
文件: file.c 项目: Graf3x/FreeRDP
static BOOL FileCloseHandle(HANDLE handle) {
	WINPR_FILE* file = (WINPR_FILE *)handle;

	if (!FileIsHandled(handle))
		return FALSE;

	if (file->fp)
	{
		/* Don't close stdin/stdout/stderr */
		if (fileno(file->fp) > 2)
		{
			fclose(file->fp);
			file->fp = NULL;
		}
	}

	free(file->lpFileName);
	free(file);
	return TRUE;
}