Commit Graph

22 Commits

Author SHA1 Message Date
josch
71f6396a9a Allow to create new files (but changing them is not allowed yet)
- since mediafire cannot deal with empty files, we put new files into a
   temporary location and upload them once they get closed
 - add create and write functions to fuse
 - pass a file handle to mfconn_api_upload_simple instead of a path
 - allow calc_sha256 to also compute the file size
 - error out when the key returned by upload/simple is empty
 - make valgrind.supp more lenient
2014-12-04 16:07:12 +01:00
josch
2f2ce91597 fix includes and indentation 2014-12-01 22:03:09 +01:00
josch
febb29f75c Add support for updating local cache through patches
- refactor some code:
   - code handling the file cache is now in fuse/filecache.c
   - base36 and base16 encoding and decoding moved to utils/hash.c
 - mfshell: add "updates" command calling device/get_updates
 - add container class to store patch information as mfapi/patch.c
 - apicalls: store more info retrieved by file/get_info
 - apicalls: add device/get_updates
 - apicalls: add device/get_patch
2014-12-01 16:30:32 +01:00
josch
c7cd1809fe look up parent again after having retrieved it 2014-11-14 09:48:41 +01:00
josch
f9b0fa8551 instead of storing whether or not the local version is up to date, store the revision of the meta data and the revision of the data behind it 2014-11-12 19:42:21 +01:00
josch
511cda2c8f calculate and check hash of downloaded file 2014-11-05 13:40:25 +01:00
josch
720d5da086 reorganize configuration and cache location handling
- follow XDG basedir spec
2014-11-03 20:33:48 +01:00
josch
1e4a217157 fix a typo that prevented the wrong directory being updated 2014-10-28 09:41:15 +01:00
josch
3db5ce5c42 implement preliminary support to read files
* no writing yet
  * no delta updates yet - new versions will be retrieved fully
2014-10-27 14:17:06 +01:00
josch
f23250aaef Allow to work with only partially filled tree
- avoid walking the whole tree on startup
 - introduce variable to keep track of which entries need updating
2014-10-19 08:43:57 +02:00
josch
8f728cf106 remove unused variables 2014-10-02 08:22:43 +02:00
josch
5fa32f8878 build with std=c99 2014-10-02 08:20:08 +02:00
josch
5bcd7c38e7 we don't need the recurse argument if we fetch the content if the folder did not exist before 2014-09-29 17:03:26 +02:00
josch
b0410cc1ac make synchronization with remote more robust 2014-09-29 16:49:11 +02:00
josch
d65f60ec81 rely on some properties of fuse to avoid checks and sanitizing 2014-09-29 10:53:34 +02:00
josch
fc520c6f5b Implement mkdir and rmdir 2014-09-28 09:37:24 +02:00
josch
43c0b09f70 hashtbl: do not expose h_entry at all 2014-09-28 07:39:13 +02:00
josch
690091721a Call folder/get_contents for updated folders in device/get_changes
- it is not enough to rely on the parent information of updated files
   because that misses files and folders that were completely removed
   (even from trash)
2014-09-27 23:06:09 +02:00
josch
53981a2229 allow persistent storage and loading of the remote tree 2014-09-27 20:20:24 +02:00
josch
b6f35763fa 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
2014-09-27 14:05:11 +02:00
josch
da914e67b1 connect getattr and readdir to hashtbl 2014-09-26 16:10:31 +02:00
josch
b4045f19ce Add hashtable implementation to maintain a local copy of the remote 2014-09-26 15:19:55 +02:00