diff -r 3c0734eeab33 -r e137883e620f dav/main.c --- a/dav/main.c Sun Oct 18 12:44:57 2015 +0200 +++ b/dav/main.c Sun Oct 18 12:46:56 2015 +0200 @@ -735,7 +735,7 @@ int ret; if(!strcmp(file, "-")) { FILE *in = stdin; - ret = put_file(repo, a, sn, path, "stdin", in); + ret = put_file(repo, a, sn, path, "stdin", in, 0); } else { ret = put_entry(repo, a, sn, path, file); } @@ -792,7 +792,7 @@ } char *filename = util_resource_name(file); //path = util_concat_path(path, filename); - ret = put_file(repo, a, sn, path, filename, in); + ret = put_file(repo, a, sn, path, filename, in, s.st_size); //free(path); fclose(in); } @@ -800,7 +800,7 @@ return ret; } -int put_file(Repository *repo, CmdArgs *a, DavSession *sn, char *path, char *name, FILE *in) { +int put_file(Repository *repo, CmdArgs *a, DavSession *sn, char *path, char *name, FILE *in, off_t len) { DavResource *res = dav_query(sn, "select - from %s", path); if(!res) { if(sn->error == DAV_NOT_FOUND) { @@ -823,12 +823,15 @@ path = newpath; res = dav_resource_new(sn, path); free(newpath); - int ret = put_file(repo, a, sn, res->path, NULL, in); + int ret = put_file(repo, a, sn, res->path, NULL, in, len); // TODO: free res return ret; } dav_set_content(res, in, (dav_read_func)fread); + if(len > 0) { + //dav_set_content_length(res, (size_t)len); + } if(dav_store(res)) { print_resource_error(sn, res->path);