- if (recv_ok || keep_partial || inplace)
- finish_transfer(fname, fnametmp, file, recv_ok);
- else
+ if (recv_ok || inplace) {
+ finish_transfer(fname, fnametmp, file, recv_ok, 1);
+ if (partialptr != fname && fnamecmp == partialptr) {
+ do_unlink(partialptr);
+ handle_partial_dir(partialptr, PDIR_DELETE);
+ }
+ } else if (keep_partial && partialptr
+ && handle_partial_dir(partialptr, PDIR_CREATE)) {
+ finish_transfer(partialptr, fnametmp, file, recv_ok,
+ !partial_dir);
+ } else {
+ partialptr = NULL;