|
|
@ -464,6 +464,17 @@ addFileEntriesToResponse(uint8_t* buffer, int bufPos, int maxBufSize, char* dire
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
else {
|
|
|
|
|
|
|
|
bufPos = addFileEntriesToResponse(buffer, bufPos, maxBufSize, directoryName, continueAfterFileName, moreFollows);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fileName = FileSystem_readDirectory(directory, &isDirectory);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FileSystem_closeDirectory(directory);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
|
|
|
|
if (*continueAfterFileName != NULL) {
|
|
|
|
if (*continueAfterFileName != NULL) {
|
|
|
|
if (strcmp(*continueAfterFileName, directoryName) == 0) {
|
|
|
|
if (strcmp(*continueAfterFileName, directoryName) == 0) {
|
|
|
|
*continueAfterFileName = NULL;
|
|
|
|
*continueAfterFileName = NULL;
|
|
|
@ -474,7 +485,9 @@ addFileEntriesToResponse(uint8_t* buffer, int bufPos, int maxBufSize, char* dire
|
|
|
|
|
|
|
|
|
|
|
|
uint32_t fileSize;
|
|
|
|
uint32_t fileSize;
|
|
|
|
|
|
|
|
|
|
|
|
FileSystem_getFileInfo(directoryName, &fileSize, &msTime);
|
|
|
|
if (FileSystem_getFileInfo(directoryName, &fileSize, &msTime) == NULL)
|
|
|
|
|
|
|
|
bufPos = -1;
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
|
|
|
|
char gtString[30];
|
|
|
|
char gtString[30];
|
|
|
|
|
|
|
|
|
|
|
@ -492,26 +505,18 @@ addFileEntriesToResponse(uint8_t* buffer, int bufPos, int maxBufSize, char* dire
|
|
|
|
|
|
|
|
|
|
|
|
if (overallEntrySize > bufferSpaceLeft) {
|
|
|
|
if (overallEntrySize > bufferSpaceLeft) {
|
|
|
|
*moreFollows = true;
|
|
|
|
*moreFollows = true;
|
|
|
|
break;
|
|
|
|
//break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bufPos = BerEncoder_encodeTL(0x30, dirEntrySize, buffer, bufPos); /* SEQUENCE (DirectoryEntry) */
|
|
|
|
bufPos = BerEncoder_encodeTL(0x30, dirEntrySize, buffer, bufPos); /* SEQUENCE (DirectoryEntry) */
|
|
|
|
bufPos = encodeFileSpecification(0xa0, directoryName, buffer, bufPos); /* fileName */
|
|
|
|
bufPos = encodeFileSpecification(0xa0, directoryName, buffer, bufPos); /* fileName */
|
|
|
|
bufPos = encodeFileAttributes(0xa1, fileSize, gtString, buffer, bufPos); /* file attributes */
|
|
|
|
bufPos = encodeFileAttributes(0xa1, fileSize, gtString, buffer, bufPos); /* file attributes */
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fileName = FileSystem_readDirectory(directory, &isDirectory);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
FileSystem_closeDirectory(directory);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
bufPos = -1;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
directoryName[directoryNameLength] = 0;
|
|
|
|
directoryName[directoryNameLength] = 0;
|
|
|
|
|
|
|
|
|
|
|
|
return bufPos;
|
|
|
|
return bufPos;
|
|
|
|