mirror of
https://github.com/tuxbox-fork-migrations/recycled-ni-neutrino.git
synced 2025-08-28 16:01:10 +02:00
Merge branch 'cst-next' of git://coolstreamtech.de/cst-public-gui-neutrino into ni/cst-next
Origin commit data
------------------
Commit: 3a43baac7b
Author: vanhofen <vanhofen@gmx.de>
Date: 2016-09-06 (Tue, 06 Sep 2016)
This commit is contained in:
@@ -664,8 +664,7 @@ std::string& htmlEntityDecode(std::string& text)
|
||||
|
||||
CFileHelpers::CFileHelpers()
|
||||
{
|
||||
FileBufSize = 0xFFFF;
|
||||
FileBuf = new char[FileBufSize];
|
||||
FileBufMaxSize = 0xFFFF;
|
||||
doCopyFlag = true;
|
||||
ConsoleQuiet = false;
|
||||
clearDebugInfo();
|
||||
@@ -673,8 +672,21 @@ CFileHelpers::CFileHelpers()
|
||||
|
||||
CFileHelpers::~CFileHelpers()
|
||||
{
|
||||
if (FileBuf != NULL)
|
||||
delete [] FileBuf;
|
||||
}
|
||||
|
||||
char* CFileHelpers::initFileBuf(char* buf, uint32_t size)
|
||||
{
|
||||
if (buf == NULL)
|
||||
buf = new char[size];
|
||||
return buf;
|
||||
}
|
||||
|
||||
char* CFileHelpers::deleteFileBuf(char* buf)
|
||||
{
|
||||
if (buf != NULL)
|
||||
delete [] buf;
|
||||
buf = NULL;
|
||||
return buf;
|
||||
}
|
||||
|
||||
CFileHelpers* CFileHelpers::getInstance()
|
||||
@@ -872,10 +884,13 @@ bool CFileHelpers::copyFile(const char *Src, const char *Dst, mode_t forceMode/*
|
||||
return false;
|
||||
}
|
||||
|
||||
char* FileBuf = NULL;
|
||||
uint32_t block;
|
||||
off64_t fsizeSrc64 = lseek64(fd1, 0, SEEK_END);
|
||||
lseek64(fd1, 0, SEEK_SET);
|
||||
if (fsizeSrc64 > 0x7FFFFFF0) { // > 2GB
|
||||
uint32_t FileBufSize = FileBufMaxSize;
|
||||
FileBuf = initFileBuf(FileBuf, FileBufSize);
|
||||
off64_t fsize64 = fsizeSrc64;
|
||||
block = FileBufSize;
|
||||
//printf("#####[%s] fsizeSrc64: %lld 0x%010llX - large file\n", __FUNCTION__, fsizeSrc64, fsizeSrc64);
|
||||
@@ -894,12 +909,15 @@ bool CFileHelpers::copyFile(const char *Src, const char *Dst, mode_t forceMode/*
|
||||
if (fsizeSrc64 != fsizeDst64){
|
||||
close(fd1);
|
||||
close(fd2);
|
||||
FileBuf = deleteFileBuf(FileBuf);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else { // < 2GB
|
||||
off_t fsizeSrc = lseek(fd1, 0, SEEK_END);
|
||||
uint32_t FileBufSize = (fsizeSrc < (off_t)FileBufMaxSize) ? fsizeSrc : FileBufMaxSize;
|
||||
FileBuf = initFileBuf(FileBuf, FileBufSize);
|
||||
lseek(fd1, 0, SEEK_SET);
|
||||
off_t fsize = fsizeSrc;
|
||||
block = FileBufSize;
|
||||
@@ -919,6 +937,7 @@ bool CFileHelpers::copyFile(const char *Src, const char *Dst, mode_t forceMode/*
|
||||
if (fsizeSrc != fsizeDst){
|
||||
close(fd1);
|
||||
close(fd2);
|
||||
FileBuf = deleteFileBuf(FileBuf);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -929,9 +948,11 @@ bool CFileHelpers::copyFile(const char *Src, const char *Dst, mode_t forceMode/*
|
||||
if (!doCopyFlag) {
|
||||
sync();
|
||||
unlink(Dst);
|
||||
FileBuf = deleteFileBuf(FileBuf);
|
||||
return false;
|
||||
}
|
||||
|
||||
FileBuf = deleteFileBuf(FileBuf);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1054,8 +1075,14 @@ bool CFileHelpers::removeDir(const char *Dir)
|
||||
|
||||
dir = opendir(Dir);
|
||||
if (dir == NULL) {
|
||||
fh->setDebugInfo("Error opendir().", __path_file__, __func__, __LINE__);
|
||||
fh->printDebugInfo();
|
||||
if (errno == ENOENT)
|
||||
return true;
|
||||
if (!fh->getConsoleQuiet())
|
||||
dprintf(DEBUG_NORMAL, "[CFileHelpers %s] remove directory %s: %s\n", __func__, Dir, strerror(errno));
|
||||
char buf[1024];
|
||||
memset(buf, '\0', sizeof(buf));
|
||||
snprintf(buf, sizeof(buf)-1, "remove directory %s: %s", Dir, strerror(errno));
|
||||
fh->setDebugInfo(buf, __path_file__, __func__, __LINE__);
|
||||
return false;
|
||||
}
|
||||
while ((entry = readdir(dir)) != NULL) {
|
||||
|
Reference in New Issue
Block a user