Clients must ignore changed file entries as they are not valid
anymore. The server will also mark the entry as invalid in case
of file update.
@fix
if (fd)
{
fd->changed = EINA_TRUE;
+ fd->valid = EINA_FALSE;
_file_id_free(fd);
eina_hash_set(file_entries, &fd->id, NULL);
}
if (fe->server_file_id)
{
if ((fdata = _shared_file_data_get_by_id(fe->server_file_id)) != NULL)
- return fdata;
+ if (!fdata->changed)
+ return fdata;
+ fe->server_file_id = 0;
}
// Check hash
fd = &(_index.files.entries.filedata[k]);
if (!fd->id) break;
if (!fd->refcount) continue;
+ if (fd->changed) continue;
key = _shared_string_safe_get(fd->key);
file = _shared_string_safe_get(fd->path);
continue;
}
+ if (fd->changed || !fd->valid) continue;
key = _shared_string_safe_get(fd->key);
file = _shared_string_safe_get(fd->path);
if (!file)