diff --git a/project/Core/Src/tftp.c b/project/Core/Src/tftp.c index 86d1a37..718a0f6 100644 --- a/project/Core/Src/tftp.c +++ b/project/Core/Src/tftp.c @@ -15,8 +15,6 @@ static const char* TAG = "tftp_server"; -extern struct llfs_data_file* llfs_root; - static tftp_custom_file_t virt_file[] = {{.name = "index.txt", .data = NULL, .len = 0, .offset = 0}, {.name = "virtImage.bmp", .data = NULL, .len = 0, .offset = 0}, {.name = "virtImage.gif", .data = NULL, .len = 0, .offset = 0}, @@ -245,10 +243,10 @@ void init_index(void) { for (int i = 0; i < 2; i++) { len += strlen(virt_file[i].name) + 1; } - const struct llfs_data_file* root = llfs_root; - while (root != NULL) { - len += strlen(root->name) + 1; - root = root->next; + void* mem = NULL; // Pointer for internal use by the llfs library + llfs_file_t* file; + while ((file = llfs_next_file(&mem, NULL)) != NULL) { + len += strlen(file->name) + 1; } len++; // +1 for the \0 virt_file[VIRT_INDEX_TXT].data = malloc(len); @@ -258,11 +256,13 @@ void init_index(void) { str_cat_str(virt_file[VIRT_INDEX_TXT].data, len, virt_file[i].name); str_cat(virt_file[VIRT_INDEX_TXT].data, len, '\n'); } - root = llfs_root; - while (root != NULL) { - str_cat_str(virt_file[VIRT_INDEX_TXT].data, len, root->name); + + mem = NULL; + file = NULL; + + while ((file = llfs_next_file(&mem, NULL)) != NULL) { + str_cat_str(virt_file[VIRT_INDEX_TXT].data, len, file->name); str_cat(virt_file[VIRT_INDEX_TXT].data, len, '\n'); - root = root->next; } }