forked from wolfSSL/wolfssl
Intime: simplify and fix stat on different directory
This commit is contained in:
@@ -514,17 +514,17 @@ int wc_ReadDirFirst(ReadDirCtx* ctx, const char* path, char** name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
do {
|
do {
|
||||||
if (IntimeNormalFile(ctx)) {
|
dnameLen = (int)XSTRLEN(IntimeFilename(ctx));
|
||||||
dnameLen = (int)XSTRLEN(IntimeFilename(ctx));
|
|
||||||
|
|
||||||
if (pathLen + dnameLen + 2 > MAX_FILENAME_SZ) {
|
if (pathLen + dnameLen + 2 > MAX_FILENAME_SZ) {
|
||||||
return BAD_PATH_ERROR;
|
return BAD_PATH_ERROR;
|
||||||
}
|
}
|
||||||
XSTRNCPY(ctx->name, path, pathLen + 1);
|
XSTRNCPY(ctx->name, path, pathLen + 1);
|
||||||
ctx->name[pathLen] = '\\';
|
ctx->name[pathLen] = '\\';
|
||||||
XSTRNCPY(ctx->name + pathLen + 1,
|
XSTRNCPY(ctx->name + pathLen + 1,
|
||||||
IntimeFilename(ctx),
|
IntimeFilename(ctx),
|
||||||
MAX_FILENAME_SZ - pathLen - 1);
|
MAX_FILENAME_SZ - pathLen - 1);
|
||||||
|
if (0 == wc_FileExists(ctx->name)) {
|
||||||
if (name)
|
if (name)
|
||||||
*name = ctx->name;
|
*name = ctx->name;
|
||||||
return 0;
|
return 0;
|
||||||
@@ -657,17 +657,17 @@ int wc_ReadDirNext(ReadDirCtx* ctx, const char* path, char** name)
|
|||||||
|
|
||||||
#elif defined(INTIME_RTOS)
|
#elif defined(INTIME_RTOS)
|
||||||
while (IntimeFindNext(&ctx->FindFileData)) {
|
while (IntimeFindNext(&ctx->FindFileData)) {
|
||||||
if (IntimeNormalFile(ctx)) {
|
dnameLen = (int)XSTRLEN(IntimeFilename(ctx));
|
||||||
dnameLen = (int)XSTRLEN(IntimeFilename(ctx));
|
|
||||||
|
|
||||||
if (pathLen + dnameLen + 2 > MAX_FILENAME_SZ) {
|
if (pathLen + dnameLen + 2 > MAX_FILENAME_SZ) {
|
||||||
return BAD_PATH_ERROR;
|
return BAD_PATH_ERROR;
|
||||||
}
|
}
|
||||||
XSTRNCPY(ctx->name, path, pathLen + 1);
|
XSTRNCPY(ctx->name, path, pathLen + 1);
|
||||||
ctx->name[pathLen] = '\\';
|
ctx->name[pathLen] = '\\';
|
||||||
XSTRNCPY(ctx->name + pathLen + 1,
|
XSTRNCPY(ctx->name + pathLen + 1,
|
||||||
IntimeFilename(ctx),
|
IntimeFilename(ctx),
|
||||||
MAX_FILENAME_SZ - pathLen - 1);
|
MAX_FILENAME_SZ - pathLen - 1);
|
||||||
|
if (0 == wc_FileExists(ctx->name)) {
|
||||||
if (name)
|
if (name)
|
||||||
*name = ctx->name;
|
*name = ctx->name;
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -776,22 +776,11 @@ WOLFSSL_API int wolfCrypt_Cleanup(void);
|
|||||||
struct M2MB_STAT s;
|
struct M2MB_STAT s;
|
||||||
#elif defined(INTIME_RTOS)
|
#elif defined(INTIME_RTOS)
|
||||||
struct stat64 s;
|
struct stat64 s;
|
||||||
#if defined(INTIMEVER) && INTIMEVER > 0x0600
|
struct _find64 FindFileData;
|
||||||
FIND_FILE_DATA FindFileData;
|
#define IntimeFindFirst(name, data) (0 == _findfirst64(name, data))
|
||||||
#define IntimeFindFirst(name, data) FindFirstRtFile(name, data, 0)
|
#define IntimeFindNext(data) (0 == _findnext64(data))
|
||||||
#define IntimeFindNext(data) FindNextRtFile(data)
|
#define IntimeFindClose(data) (0 == _findclose64(data))
|
||||||
#define IntimeFindClose(data) FindRtFileClose(data)
|
#define IntimeFilename(ctx) ctx->FindFileData.f_filename
|
||||||
#define IntimeFilename(ctx) ctx->FindFileData.cFileName
|
|
||||||
#define IntimeNormalFile(ctx) (ctx->FindFileData.dwFileAttributes \
|
|
||||||
& FILE_ATTR_NORMAL)
|
|
||||||
#else
|
|
||||||
struct _find64 FindFileData;
|
|
||||||
#define IntimeFindFirst(name, data) (0 == _findfirst64(name, data))
|
|
||||||
#define IntimeFindNext(data) (0 == _findnext64(data))
|
|
||||||
#define IntimeFindClose(data) (0 == _findclose64(data))
|
|
||||||
#define IntimeFilename(ctx) ctx->FindFileData.f_filename
|
|
||||||
#define IntimeNormalFile(ctx) (0 == wc_FileExists(IntimeFilename(ctx)))
|
|
||||||
#endif
|
|
||||||
#else
|
#else
|
||||||
struct dirent* entry;
|
struct dirent* entry;
|
||||||
DIR* dir;
|
DIR* dir;
|
||||||
|
Reference in New Issue
Block a user