1
0
mirror of https://github.com/facebook/zstd.git synced 2025-08-07 06:23:00 +03:00

Allowing named pipes to go through zstdcli

This commit is contained in:
Bimba Shrestha
2019-10-22 15:23:22 -07:00
parent 24bc2e062d
commit 8a3974807e
4 changed files with 16 additions and 2 deletions

View File

@@ -513,7 +513,7 @@ static FILE* FIO_openSrcFile(const char* srcFileName)
return NULL; return NULL;
} }
if (!UTIL_isRegularFile(srcFileName)) { if (!UTIL_isRegularFile(srcFileName) && !UTIL_isFIFO(srcFileName)) {
DISPLAYLEVEL(1, "zstd: %s is not a regular file -- ignored \n", DISPLAYLEVEL(1, "zstd: %s is not a regular file -- ignored \n",
srcFileName); srcFileName);
return NULL; return NULL;

View File

@@ -115,6 +115,19 @@ int UTIL_isSameFile(const char* file1, const char* file2)
#endif #endif
} }
U32 UTIL_isFIFO(const char* infilename)
{
/* macro guards, as defined in : https://linux.die.net/man/2/lstat */
#if PLATFORM_POSIX_VERSION >= 200112L
stat_t statbuf;
int r = UTIL_getFileStat(infilename, &statbuf);
if (!r && S_ISFIFO(statbuf.st_mode)) return 1;
#endif
(void)infilename;
return 0;
}
U32 UTIL_isLink(const char* infilename) U32 UTIL_isLink(const char* infilename)
{ {
/* macro guards, as defined in : https://linux.die.net/man/2/lstat */ /* macro guards, as defined in : https://linux.die.net/man/2/lstat */

View File

@@ -135,6 +135,7 @@ U32 UTIL_isDirectory(const char* infilename);
int UTIL_getFileStat(const char* infilename, stat_t* statbuf); int UTIL_getFileStat(const char* infilename, stat_t* statbuf);
int UTIL_isSameFile(const char* file1, const char* file2); int UTIL_isSameFile(const char* file1, const char* file2);
U32 UTIL_isFIFO(const char* infilename);
U32 UTIL_isLink(const char* infilename); U32 UTIL_isLink(const char* infilename);
#define UTIL_FILESIZE_UNKNOWN ((U64)(-1)) #define UTIL_FILESIZE_UNKNOWN ((U64)(-1))
U64 UTIL_getFileSize(const char* infilename); U64 UTIL_getFileSize(const char* infilename);

View File

@@ -992,7 +992,7 @@ int main(int argCount, const char* argv[])
if (!followLinks) { if (!followLinks) {
unsigned u; unsigned u;
for (u=0, fileNamesNb=0; u<filenameIdx; u++) { for (u=0, fileNamesNb=0; u<filenameIdx; u++) {
if (UTIL_isLink(filenameTable[u])) { if (UTIL_isLink(filenameTable[u]) && !UTIL_isFIFO(filenameTable[u])) {
DISPLAYLEVEL(2, "Warning : %s is a symbolic link, ignoring\n", filenameTable[u]); DISPLAYLEVEL(2, "Warning : %s is a symbolic link, ignoring\n", filenameTable[u]);
} else { } else {
filenameTable[fileNamesNb++] = filenameTable[u]; filenameTable[fileNamesNb++] = filenameTable[u];