/* if the file exists already and we aren't perserving
presmissions then act as though the remote end sent
us the file permissions we already have */
- file->mode = st.st_mode;
+ file->mode = (file->mode & _S_IFMT) | (st.st_mode & ~_S_IFMT);
}
if (S_ISDIR(file->mode)) {
fd = do_open(fnamecmp, O_RDONLY, 0);
if (fd == -1) {
- rprintf(FERROR,"failed to open %s : %s\n",fnamecmp,strerror(errno));
- rprintf(FERROR,"skipping %s\n",fname);
+ rprintf(FERROR,"failed to open %s, continuing : %s\n",fnamecmp,strerror(errno));
+ /* pretend the file didn't exist */
+ write_int(f_out,i);
+ send_sums(NULL,f_out);
return;
}