{
struct esp32_file *f = malloc(sizeof(*f));
lws_fop_fd_t fop_fd;
- size_t len;
+ size_t len, csum;
lwsl_notice("%s: %s\n", __func__, filename);
if (!f)
return NULL;
- f->i = romfs_get_info(lws_esp32_romfs, filename, &len);
+ f->i = romfs_get_info(lws_esp32_romfs, filename, &len, &csum);
if (!f->i)
goto bail;
fop_fd->fops = fops;
fop_fd->filesystem_priv = f;
+ fop_fd->mod_time = csum;
+ *flags |= LWS_FOP_FLAG_MOD_TIME_VALID;
fop_fd->flags = *flags;
fop_fd->len = len;
}
const void *
-romfs_get_info(romfs_t romfs, const char *path, size_t *len)
+romfs_get_info(romfs_t romfs, const char *path, size_t *len, size_t *csum)
{
romfs_inode_t i;
set_cache(i, sizeof(*i));
*len = ntohl(ci->size);
+ if (csum)
+ *csum = ntohl(ci->checksum);
return (void *)skip_and_pad(i);
}
typedef const struct romfs_superblock *romfs_t;
const void *
-romfs_get_info(romfs_t romfs, const char *path, size_t *len);
+romfs_get_info(romfs_t romfs, const char *path, size_t *len, size_t *csum);
size_t
romfs_mount_check(romfs_t romfs);
static int
client_connection(struct per_vhost_data__esplws_scan *vhd, const char *file)
{
-#if CONFIG_LWS_IS_FACTORY_APPLICATION == 'y' && defined(CONFIG_LWS_OTA_SERVER_BASE_URL) &&
+#if CONFIG_LWS_IS_FACTORY_APPLICATION == 'y' && defined(CONFIG_LWS_OTA_SERVER_BASE_URL) && \
defined(CONFIG_LWS_OTA_SERVER_FQDN)
static struct lws_client_connect_info i;
char path[256];