if (!name)
return NULL;
- if (mkdir(name,0777 & ~orig_umask) != 0) {
+ if (do_mkdir(name,0777 & ~orig_umask) != 0) {
fprintf(FERROR,"mkdir %s : %s (1)\n",name,strerror(errno));
exit_cleanup(1);
} else {
}
statret = -1;
}
- if (statret != 0 && mkdir(fname,file->mode) != 0 && errno != EEXIST) {
+ if (statret != 0 && do_mkdir(fname,file->mode) != 0 && errno != EEXIST) {
if (!(relative_paths && errno==ENOENT &&
create_directory_path(fname)==0 &&
- mkdir(fname,file->mode)==0)) {
+ do_mkdir(fname,file->mode)==0)) {
fprintf(FERROR,"mkdir %s : %s (2)\n",
fname,strerror(errno));
}
} else {
sprintf(fnametmp,"%s.XXXXXX",fname);
}
- if (NULL == mktemp(fnametmp)) {
+ if (NULL == do_mktemp(fnametmp)) {
fprintf(FERROR,"mktemp %s failed\n",fnametmp);
receive_data(f_in,buf,-1,NULL);
if (buf) unmap_file(buf);
continue;
}
sprintf(fnamebak,"%s%s",fname,backup_suffix);
- if (rename(fname,fnamebak) != 0 && errno != ENOENT) {
+ if (do_rename(fname,fnamebak) != 0 && errno != ENOENT) {
fprintf(FERROR,"rename %s %s : %s\n",fname,fnamebak,strerror(errno));
continue;
}
}
/* move tmp file over real file */
- if (rename(fnametmp,fname) != 0) {
+ if (do_rename(fnametmp,fname) != 0) {
if (errno == EXDEV) {
/* rename failed on cross-filesystem link.
Copy the file instead. */
return chmod(path, mode);
}
#endif
+
+int do_rename(char *fname1, char *fname2)
+{
+ if (dry_run) return 0;
+ return rename(fname1, fname2);
+}
+
+int do_mkdir(char *fname, mode_t mode)
+{
+ if (dry_run) return 0;
+ return mkdir(fname, mode);
+}
+
+char *do_mktemp(char *template)
+{
+ if (dry_run) return NULL;
+ return mktemp(template);
+}