a couple more system calls wrapped in syscall.c

This commit is contained in:
Andrew Tridgell committed 1998-04-05 06:26:24 +00:00
1 parent 366345fe05
commit 1b2d733af2
4 files changed
+25 -7

No files matched your search

+1 -1
View File
@@ -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 {
+5 -5
View File
@@ -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. */
+18
View File
@@ -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);
}
+1 -1
View File
@@ -298,7 +298,7 @@ int create_directory_path(char *fname)
p = fname;
while ((p=strchr(p,'/'))) {
*p = 0;
mkdir(fname,0777 & ~orig_umask);
do_mkdir(fname,0777 & ~orig_umask);
*p = '/';
p++;
}