- if (do_rmdir(fname) == 0) {
- if (!(flags & DEL_TERSE))
- log_delete(fname, mode);
- } else if (errno != ENOTEMPTY && errno != EEXIST && errno != ENOENT) {
- rsyserr(FERROR, errno, "delete_file: rmdir %s failed",
- full_fname(fname));
+static void start_delete_temp(void)
+{
+ char fnametmp[MAXPATHLEN];
+ int fd, save_dry_run = dry_run;
+
+ dry_run = 0;
+ if (!get_tmpname(fnametmp, "deldelay")
+ || (fd = do_mkstemp(fnametmp, 0600)) < 0
+ || !(delete_delay_fp = fdopen(fd, "w+"))) {
+ rprintf(FERROR, "Unable to create delete-delay temp file.\n");
+ exit_cleanup(RERR_FILEIO);
+ }
+ dry_run = save_dry_run;
+ unlink(fnametmp);
+}
+
+static int read_delay_line(FILE *fp, char *buf, int bsize)
+{
+ int ch, mode = 0;
+
+ if ((ch = fgetc(fp)) == EOF)