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
This commit is contained in:
josch
2014-12-04 16:07:12 +01:00
parent f1bf926145
commit 71f6396a9a
13 changed files with 258 additions and 44 deletions

View File

@@ -718,6 +718,28 @@ int folder_tree_readdir(folder_tree * tree, mfconn * conn, const char *path,
return 0;
}
int folder_tree_tmp_open(folder_tree * tree)
{
char *tmpfilename;
int fd;
tmpfilename = strdup_printf("%s/tmp_XXXXXX", tree->filecache);
fd = mkstemp(tmpfilename);
// this will cause the file to be removed immediately after it is closed
unlink(tmpfilename);
if (fd < 0) {
fprintf(stderr, "mkstemp failed\n");
return -1;
}
free(tmpfilename);
return fd;
}
int folder_tree_open_file(folder_tree * tree, mfconn * conn, const char *path)
{
struct h_entry *entry;