Commit c55d06ed authored by Deomid Ryabkov's avatar Deomid Ryabkov Committed by Cesanta Bot

Add directory listing support ot ESP32

PUBLISHED_FROM=336d6b28d6165ece75d25911058ffdd075a3c191
parent 38298735
...@@ -587,6 +587,10 @@ typedef struct DIR { ...@@ -587,6 +587,10 @@ typedef struct DIR {
} DIR; } DIR;
#endif #endif
#if CS_ENABLE_SPIFFS
extern spiffs *cs_spiffs_get_fs(void);
#endif
#if defined(_WIN32) || CS_ENABLE_SPIFFS #if defined(_WIN32) || CS_ENABLE_SPIFFS
DIR *opendir(const char *dir_name); DIR *opendir(const char *dir_name);
int closedir(DIR *dir); int closedir(DIR *dir);
...@@ -694,10 +698,14 @@ struct dirent *readdir(DIR *dir) { ...@@ -694,10 +698,14 @@ struct dirent *readdir(DIR *dir) {
DIR *opendir(const char *dir_name) { DIR *opendir(const char *dir_name) {
DIR *dir = NULL; DIR *dir = NULL;
extern spiffs fs; spiffs *fs = cs_spiffs_get_fs();
if (dir_name == NULL || fs == NULL ||
(dir = (DIR *) calloc(1, sizeof(*dir))) == NULL) {
return NULL;
}
if (dir_name != NULL && (dir = (DIR *) malloc(sizeof(*dir))) != NULL && if (SPIFFS_opendir(fs, dir_name, &dir->dh) == NULL) {
SPIFFS_opendir(&fs, (char *) dir_name, &dir->dh) == NULL) {
free(dir); free(dir);
dir = NULL; dir = NULL;
} }
...@@ -720,14 +728,14 @@ struct dirent *readdir(DIR *dir) { ...@@ -720,14 +728,14 @@ struct dirent *readdir(DIR *dir) {
/* SPIFFs doesn't support directory operations */ /* SPIFFs doesn't support directory operations */
int rmdir(const char *path) { int rmdir(const char *path) {
(void) path; (void) path;
return ENOTDIR; return ENOTSUP;
} }
int mkdir(const char *path, mode_t mode) { int mkdir(const char *path, mode_t mode) {
(void) path; (void) path;
(void) mode; (void) mode;
/* for spiffs supports only root dir, which comes from mongoose as '.' */ /* for spiffs supports only root dir, which comes from mongoose as '.' */
return (strlen(path) == 1 && *path == '.') ? 0 : ENOTDIR; return (strlen(path) == 1 && *path == '.') ? 0 : ENOTSUP;
} }
#endif /* CS_ENABLE_SPIFFS */ #endif /* CS_ENABLE_SPIFFS */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment