Optimize device/get_changes updates

- don't use folder/get_content but rely on parent information
 - add many more debugging information and sanity checks
 - ignore trash
 - correctly update local device revision using device_response
 - remove "visited" member and change housekeeping function to check for
   consistency of parents and children (and retrieve fix from remote if
   necessary)
 - print key and parent key in the debugging function
 - check for remote updates on every fs function
 - introduce global defines for key and filename length
 - add parent member, getters and setters to file.h
This commit is contained in:
josch
2014-09-27 13:53:44 +02:00
parent da914e67b1
commit b6f35763fa
11 changed files with 459 additions and 220 deletions

View File

@@ -23,6 +23,7 @@
#include <stdlib.h>
#include <string.h>
#include <stddef.h>
#include <stdio.h>
#include "../../utils/http.h"
#include "../../utils/json.h"
@@ -129,6 +130,7 @@ static int _decode_folder_get_content_folders(mfhttp * conn, void *user_ptr)
folders_array = json_object_get(node, "folders");
if (!json_is_array(folders_array)) {
fprintf(stderr, "is not an array: folders");
json_decref(root);
return -1;
}
@@ -225,6 +227,7 @@ static int _decode_folder_get_content_files(mfhttp * conn, void *user_ptr)
files_array = json_object_get(node, "files");
if (!json_is_array(files_array)) {
fprintf(stderr, "is not an array: files");
json_decref(root);
return -1;
}