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; }
static int FileGetFd(HANDLE handle) { WINPR_FILE *file= (WINPR_FILE*)handle; if (!FileIsHandled(handle)) return -1; return fileno(file->fp); }
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; }
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; }