- fixed problem with getFileDirectory-service with a single file as argument - test case Ft4 (ed.1)

pull/6/head
Michael Zillgith 10 years ago
parent b1d5e10203
commit 96096b7f75

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

Loading…
Cancel
Save