mirror of
https://github.com/RsyncProject/rsync.git
synced 2026-10-20 21:04:15 -04:00
a couple more system calls wrapped in syscall.c
This commit is contained in:
1 parent
366345fe05
commit
1b2d733af2
4 files changed
+25
-7
No files matched your search
@@ -296,7 +296,7 @@ static char *get_local_name(struct file_list *flist,char *name)
|
||||
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 {
|
||||
|
||||
@@ -384,10 +384,10 @@ void recv_generator(char *fname,struct file_list *flist,int i,int f_out)
|
||||
}
|
||||
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));
|
||||
}
|
||||
@@ -834,7 +834,7 @@ int recv_files(int f_in,struct file_list *flist,char *local_name,int f_gen)
|
||||
} 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);
|
||||
@@ -878,14 +878,14 @@ int recv_files(int f_in,struct file_list *flist,char *local_name,int f_gen)
|
||||
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. */
|
||||
|
||||
@@ -77,3 +77,21 @@ int do_chmod(const char *path, mode_t mode)
|
||||
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);
|
||||
}
|
||||
Reference in new issue
Block a user